update locales part I.
authoralta88@gmail.com
Sat, 23 Jan 2010 10:28:36 -0700
changeset 1041 9c7b8d856c0bf9fc5e764c8114d1a404b3e12d32
parent 1040 b5a98c3b4396f344aa0121b2a6d009487211c024
child 1042 9e75a38979777b034941608e49a2c5ccc3fbc35f
push id178
push usermyk@mozilla.com
push dateMon, 25 Jan 2010 20:39:38 +0000
update locales part I.
chrome.manifest.in
install.rdf.in
locale/bg-BG/about.properties
locale/bg-BG/browser.dtd
locale/bg-BG/collections.dtd
locale/bg-BG/datastore.properties
locale/bg-BG/date.js
locale/bg-BG/filterTextbox.dtd
locale/bg-BG/firstrun.dtd
locale/bg-BG/list.dtd
locale/bg-BG/login.dtd
locale/bg-BG/login.properties
locale/bg-BG/message.dtd
locale/bg-BG/message.properties
locale/bg-BG/notification.dtd
locale/bg-BG/opml.properties
locale/bg-BG/preferences.dtd
locale/bg-BG/preferences.properties
locale/bg-BG/river.dtd
locale/bg-BG/river.properties
locale/bg-BG/search.dtd
locale/bg-BG/search.properties
locale/bg-BG/sources.dtd
locale/bg-BG/stream.dtd
locale/bg-BG/subscribe.properties
locale/bg-BG/toolbar.dtd
locale/bg-BG/utils.properties
locale/bg-BG/write.dtd
locale/bg-BG/write.properties
locale/cs-CZ/about.properties
locale/cs-CZ/browser.dtd
locale/cs-CZ/collections.dtd
locale/cs-CZ/datastore.properties
locale/cs-CZ/date.js
locale/cs-CZ/filterTextbox.dtd
locale/cs-CZ/firstrun.dtd
locale/cs-CZ/list.dtd
locale/cs-CZ/login.dtd
locale/cs-CZ/login.properties
locale/cs-CZ/message.dtd
locale/cs-CZ/message.properties
locale/cs-CZ/notification.dtd
locale/cs-CZ/opml.properties
locale/cs-CZ/preferences.dtd
locale/cs-CZ/preferences.properties
locale/cs-CZ/river.dtd
locale/cs-CZ/river.properties
locale/cs-CZ/search.dtd
locale/cs-CZ/search.properties
locale/cs-CZ/sources.dtd
locale/cs-CZ/stream.dtd
locale/cs-CZ/subscribe.properties
locale/cs-CZ/toolbar.dtd
locale/cs-CZ/utils.properties
locale/cs-CZ/write.dtd
locale/cs-CZ/write.properties
locale/da-DK/about.properties
locale/da-DK/browser.dtd
locale/da-DK/collections.dtd
locale/da-DK/datastore.properties
locale/da-DK/date.js
locale/da-DK/filterTextbox.dtd
locale/da-DK/list.dtd
locale/da-DK/login.dtd
locale/da-DK/login.properties
locale/da-DK/message.dtd
locale/da-DK/message.properties
locale/da-DK/opml.properties
locale/da-DK/preferences.dtd
locale/da-DK/preferences.properties
locale/da-DK/river.dtd
locale/da-DK/sources.dtd
locale/da-DK/stream.dtd
locale/da-DK/toolbar.dtd
locale/da-DK/utils.properties
locale/da-DK/write.dtd
locale/da-DK/write.properties
locale/de-DE/message.dtd
locale/de-DE/search.dtd
locale/en-US/collections.dtd
locale/en-US/search.properties
locale/es-ES/message.dtd
locale/es-ES/search.dtd
locale/fr/about.properties
locale/fr/browser.dtd
locale/fr/collections.dtd
locale/fr/datastore.properties
locale/fr/firstrun.dtd
locale/fr/list.dtd
locale/fr/login.properties
locale/fr/message.dtd
locale/fr/message.properties
locale/fr/notification.dtd
locale/fr/opml.properties
locale/fr/preferences.dtd
locale/fr/preferences.properties
locale/fr/river.dtd
locale/fr/river.properties
locale/fr/search.dtd
locale/fr/search.properties
locale/fr/sources.dtd
locale/fr/subscribe.properties
locale/fr/toolbar.dtd
locale/fr/utils.properties
locale/fy-NL/about.properties
locale/fy-NL/browser.dtd
locale/fy-NL/collections.dtd
locale/fy-NL/datastore.properties
locale/fy-NL/date.js
locale/fy-NL/filterTextbox.dtd
locale/fy-NL/firstrun.dtd
locale/fy-NL/list.dtd
locale/fy-NL/login.dtd
locale/fy-NL/login.properties
locale/fy-NL/message.dtd
locale/fy-NL/message.properties
locale/fy-NL/notification.dtd
locale/fy-NL/opml.properties
locale/fy-NL/preferences.dtd
locale/fy-NL/preferences.properties
locale/fy-NL/river.dtd
locale/fy-NL/river.properties
locale/fy-NL/search.dtd
locale/fy-NL/search.properties
locale/fy-NL/sources.dtd
locale/fy-NL/stream.dtd
locale/fy-NL/subscribe.properties
locale/fy-NL/toolbar.dtd
locale/fy-NL/utils.properties
locale/fy-NL/write.dtd
locale/fy-NL/write.properties
locale/hu-HU/message.dtd
locale/hu-HU/search.dtd
locale/ja-JP/about.properties
locale/ja-JP/browser.dtd
locale/ja-JP/collections.dtd
locale/ja-JP/datastore.properties
locale/ja-JP/date.js
locale/ja-JP/filterTextbox.dtd
locale/ja-JP/firstrun.dtd
locale/ja-JP/list.dtd
locale/ja-JP/login.dtd
locale/ja-JP/login.properties
locale/ja-JP/message.dtd
locale/ja-JP/message.properties
locale/ja-JP/notification.dtd
locale/ja-JP/opml.properties
locale/ja-JP/preferences.dtd
locale/ja-JP/preferences.properties
locale/ja-JP/river.dtd
locale/ja-JP/river.properties
locale/ja-JP/search.dtd
locale/ja-JP/search.properties
locale/ja-JP/sidebar.dtd
locale/ja-JP/sources.dtd
locale/ja-JP/stream.dtd
locale/ja-JP/subscribe.dtd
locale/ja-JP/subscribe.properties
locale/ja-JP/toolbar.dtd
locale/ja-JP/utils.properties
locale/ja-JP/write.dtd
locale/ja-JP/write.properties
locale/nl-NL/about.properties
locale/nl-NL/browser.dtd
locale/nl-NL/collections.dtd
locale/nl-NL/date.js
locale/nl-NL/list.dtd
locale/nl-NL/login.dtd
locale/nl-NL/login.properties
locale/nl-NL/message.dtd
locale/nl-NL/preferences.dtd
locale/nl-NL/river.dtd
locale/nl-NL/sidebar.dtd
locale/nl-NL/subscribe.dtd
locale/nl/about.properties
locale/nl/browser.dtd
locale/nl/collections.dtd
locale/nl/datastore.properties
locale/nl/date.js
locale/nl/filterTextbox.dtd
locale/nl/firstrun.dtd
locale/nl/list.dtd
locale/nl/login.dtd
locale/nl/login.properties
locale/nl/message.dtd
locale/nl/message.properties
locale/nl/notification.dtd
locale/nl/opml.properties
locale/nl/preferences.dtd
locale/nl/preferences.properties
locale/nl/river.dtd
locale/nl/river.properties
locale/nl/search.dtd
locale/nl/search.properties
locale/nl/sources.dtd
locale/nl/stream.dtd
locale/nl/subscribe.properties
locale/nl/toolbar.dtd
locale/nl/utils.properties
locale/nl/write.dtd
locale/nl/write.properties
locale/nn-NO/about.properties
locale/nn-NO/browser.dtd
locale/nn-NO/collections.dtd
locale/nn-NO/datastore.properties
locale/nn-NO/date.js
locale/nn-NO/filterTextbox.dtd
locale/nn-NO/firstrun.dtd
locale/nn-NO/list.dtd
locale/nn-NO/login.dtd
locale/nn-NO/login.properties
locale/nn-NO/message.dtd
locale/nn-NO/message.properties
locale/nn-NO/notification.dtd
locale/nn-NO/opml.properties
locale/nn-NO/preferences.dtd
locale/nn-NO/preferences.properties
locale/nn-NO/river.dtd
locale/nn-NO/river.properties
locale/nn-NO/search.dtd
locale/nn-NO/search.properties
locale/nn-NO/sources.dtd
locale/nn-NO/stream.dtd
locale/nn-NO/subscribe.properties
locale/nn-NO/toolbar.dtd
locale/nn-NO/utils.properties
locale/nn-NO/write.dtd
locale/nn-NO/write.properties
locale/pl-PL/about.properties
locale/pl-PL/browser.dtd
locale/pl-PL/collections.dtd
locale/pl-PL/datastore.properties
locale/pl-PL/date.js
locale/pl-PL/filterTextbox.dtd
locale/pl-PL/firstrun.dtd
locale/pl-PL/list.dtd
locale/pl-PL/login.dtd
locale/pl-PL/login.properties
locale/pl-PL/message.dtd
locale/pl-PL/message.properties
locale/pl-PL/notification.dtd
locale/pl-PL/opml.properties
locale/pl-PL/preferences.dtd
locale/pl-PL/preferences.properties
locale/pl-PL/river.dtd
locale/pl-PL/river.properties
locale/pl-PL/search.dtd
locale/pl-PL/search.properties
locale/pl-PL/sources.dtd
locale/pl-PL/stream.dtd
locale/pl-PL/subscribe.properties
locale/pl-PL/toolbar.dtd
locale/pl-PL/utils.properties
locale/pl-PL/write.dtd
locale/pl-PL/write.properties
locale/pt-BR/about.properties
locale/pt-BR/browser.dtd
locale/pt-BR/collections.dtd
locale/pt-BR/date.js
locale/pt-BR/list.dtd
locale/pt-BR/login.dtd
locale/pt-BR/login.properties
locale/pt-BR/message.dtd
locale/pt-BR/preferences.dtd
locale/pt-BR/river.dtd
locale/pt-BR/sidebar.dtd
locale/pt-BR/subscribe.dtd
locale/pt-PT/message.dtd
locale/pt-PT/search.dtd
locale/ru-RU/about.properties
locale/ru-RU/browser.dtd
locale/ru-RU/collections.dtd
locale/ru-RU/datastore.properties
locale/ru-RU/date.js
locale/ru-RU/filterTextbox.dtd
locale/ru-RU/firstrun.dtd
locale/ru-RU/list.dtd
locale/ru-RU/login.dtd
locale/ru-RU/login.properties
locale/ru-RU/message.dtd
locale/ru-RU/message.properties
locale/ru-RU/notification.dtd
locale/ru-RU/opml.properties
locale/ru-RU/preferences.dtd
locale/ru-RU/preferences.properties
locale/ru-RU/river.dtd
locale/ru-RU/river.properties
locale/ru-RU/search.dtd
locale/ru-RU/search.properties
locale/ru-RU/sources.dtd
locale/ru-RU/stream.dtd
locale/ru-RU/subscribe.properties
locale/ru-RU/toolbar.dtd
locale/ru-RU/utils.properties
locale/ru-RU/write.dtd
locale/ru-RU/write.properties
locale/zh-CN/message.dtd
locale/zh-CN/search.dtd
--- a/chrome.manifest.in
+++ b/chrome.manifest.in
@@ -41,21 +41,23 @@ content snowl   @chrome_path@content/
 # Register separate skins for each primary platform so we can fit personas
 # into each one's very different skin.
 skin    snowl   classic/1.0   @chrome_path@skin/luna/   os=WINNT    osversion<6
 skin    snowl   classic/1.0   @chrome_path@skin/aero/   os=WINNT    osversion>=6
 skin    snowl   classic/1.0   @chrome_path@skin/mac/    os=Darwin
 skin    snowl   classic/1.0   @chrome_path@skin/linux/  os=Linux
 
 # localizations in alphabetical order
+locale  snowl   bg-BG   @chrome_path@locale/bg-BG/
 locale  snowl   cs-CZ   @chrome_path@locale/cs-CZ/
-locale  snowl   da-DK   @chrome_path@locale/da-DK/
 locale  snowl   de-DE   @chrome_path@locale/de-DE/
 locale  snowl   en-US   @chrome_path@locale/en-US/
 locale  snowl   es-ES   @chrome_path@locale/es-ES/
-locale  snowl   fr-FR   @chrome_path@locale/fr-FR/
+locale  snowl   fr   @chrome_path@locale/fr/
+locale  snowl   fy-NL   @chrome_path@locale/fy-NL/
 locale  snowl   hu-HU   @chrome_path@locale/hu-HU/
-locale  snowl   ja-JP   @chrome_path@locale/ja-JP/
-locale  snowl   nl-NL   @chrome_path@locale/nl-NL/
+locale  snowl   jp-JP   @chrome_path@locale/jp-JP/
+locale  snowl   nl   @chrome_path@locale/nl/
+locale  snowl   nn-NO   @chrome_path@locale/nn-NO/
 locale  snowl   pl-PL   @chrome_path@locale/pl-PL/
-locale  snowl   pt-BR   @chrome_path@locale/pt-BR/
 locale  snowl   pt-PT   @chrome_path@locale/pt-PT/
+locale  snowl   ru-RU   @chrome_path@locale/ru-RU/
 locale  snowl   zh-CN   @chrome_path@locale/zh-CN/
--- a/install.rdf.in
+++ b/install.rdf.in
@@ -8,28 +8,28 @@
     <em:name>Snowl</em:name>
     <em:version>@package_version@</em:version>
     <em:description>conversations redelivered</em:description>
     <em:creator>Myk Melez</em:creator>
     <em:developer>alta88</em:developer>
     <em:developer>Atul Varma</em:developer>
 
     <!-- localizers (from Babelzilla and other places) in alphabetical order -->
-    <em:translator>drry</em:translator>           <!-- ja-JP, Babelzilla -->
+    <em:translator>bjorni</em:translator>        <!-- nn-NO, Babelzilla -->
     <em:translator>geolocale</em:translator>      <!-- de-DE, Babelzilla -->
-    <em:translator>joildo</em:translator>         <!-- pt-BR, Babelzilla -->
-    <em:translator>JTojnar</em:translator>        <!-- cs-CZ, Babelzilla -->
     <em:translator>kkemenczy</em:translator>      <!-- hu-HU, Babelzilla -->
-    <em:translator>markh</em:translator>          <!-- nl-NL, Babelzilla -->
+    <em:translator>markh</em:translator>          <!-- nl, Babelzilla -->
     <em:translator>mrfyda</em:translator>         <!-- pt-PT, Babelzilla -->
-    <em:translator>myahoo</em:translator>         <!-- fr-FR, Babelzilla -->
+    <em:translator>goofy,myahoo</em:translator>         <!-- fr, Babelzilla -->
+    <em:translator>moZes</em:translator>        <!-- fy-NL, Babelzilla -->
     <em:translator>RigoNet</em:translator>        <!-- es-ES, Babelzilla -->
     <em:translator>steekid</em:translator>        <!-- zh-CN, Babelzilla -->
-    <em:translator>typh</em:translator>           <!-- da-DK, Babelzilla -->
-    <em:translator>Wacław Jacek</em:translator>   <!-- pl-PL, Babelzilla -->
+    <em:translator>stoyan</em:translator>        <!-- bg-BG, Babelzilla -->
+    <em:translator>TLemur</em:translator>        <!-- ru-RU, Babelzilla -->
+    <em:translator>Wacław Jacek</em:translator>        <!-- pl-PL, Babelzilla -->
 
     <em:homepageURL>http://labs.mozilla.com/projects/snowl/</em:homepageURL>
     <em:optionsURL>chrome://snowl/content/preferences.xul</em:optionsURL>
     <!-- <em:aboutURL>chrome://snowl/content/about.xul</em:aboutURL> -->
     <em:aboutURL/>
     <em:iconURL>chrome://snowl/content/icons/snowl-40.png</em:iconURL>
     @update_url_tag@
 
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/about.properties
@@ -0,0 +1,45 @@
+# LOCALIZATION NOTE: description found in Addons list when selected and About
+
+#extensions.snowl@mozilla.org.description = Conversations redelivered
+
+# XXX Is there a better way to localize the attribution string?  Perhaps we
+
+# could stick the content in an XHTML file that gets localized, and then we
+
+# could load the localized version in an iframe inside the About dialog?
+
+# LOCALIZATION NOTE: The attribution string is static but includes links
+
+# to the icons and licenses it references, so we use a property to construct it.
+
+#   %1$S = link to the silk icon set
+
+#   %2$S = link to the Creative Commons Attribution 2.5 License
+
+#   %3$S = link to the OPML Icon Project
+
+#   %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
+
+contributors1=Повечето пиктограми са от %1$S с %2$S лиценз. OPML пиктограмите са от %3$S, лицензирани под %4$S.
+#contributors2       = The OPML icon is from %1$S, licensed under a %2$S.
+
+# XXX Should any of these be localized, or is it important to use their
+
+# original names?
+
+silkIconSetName=Silk набор пиктограми от famfamfam
+ccA25LicenseName=Creative Commons Attribution 2.5 License
+opmlIconProjectName=Проект за пиктограми за OPML
+ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 License
+# LOCALIZATION NOTE: These URLs are here because it seems better than
+
+# hardcoding them in the script that constructs the attribution string,
+
+# but they probably shouldn't be localized (unless perhaps the pages
+
+# referenced have localized versions).
+
+silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
+ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/
+opmlIconProjectURL=http://opmlicons.com/
+ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/browser.dtd
@@ -0,0 +1,64 @@
+<!-- The Tools > Snowl menu. -->
+<!ENTITY snowlMenu.label "Snowl">
+<!ENTITY snowlMenu.accesskey "w">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY listView.label "List">
+<!ENTITY listView.accesskey "l">
+<!ENTITY riverView.label "River">
+<!ENTITY riverView.accesskey "R">
+<!ENTITY streamView.label "Stream">
+<!ENTITY streamView.accesskey "t">
+<!ENTITY checkForNewMessages.label "Check for New Messages">
+<!ENTITY checkForNewMessages.accesskey "c">
+<!ENTITY subscribe.label "Subscribe...">
+<!ENTITY subscribe.accesskey "s">
+<!ENTITY importOPML.label "Import OPML...">
+<!ENTITY importOPML.accesskey "i">
+<!ENTITY exportOPML.label "Export OPML...">
+<!ENTITY exportOPML.accesskey "x">
+<!ENTITY options.label "Options">
+<!ENTITY options.accesskey "O">
+<!ENTITY rebuildDB.label "Rebuild Places Database">
+<!ENTITY rebuildDB.accesskey "D">
+<!-- These labels and access keys are for items in the View > Sidebar menu,
+   - where the user needs more context that these are for Snowl commands,
+   - since the sidebar menu also includes commands for non-Snowl functions. 
+-->
+<!ENTITY listViewSidebarMenuItem.label "Message Collections">
+<!ENTITY listViewSidebarMenuItem.accesskey "l">
+<!ENTITY listViewSidebar.label "Message Collections">
+<!ENTITY streamViewSidebarMenuItem.label "Message Stream">
+<!ENTITY streamViewSidebarMenuItem.accesskey "t">
+<!ENTITY streamViewSidebar.label "Message Stream">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY snowlLayoutMenu.label "Layouts">
+<!ENTITY snowlLayoutMenu.accesskey "y">
+<!ENTITY layoutClassic.label "Classic">
+<!ENTITY layoutClassic.accesskey "C">
+<!ENTITY layoutVertical.label "Vertical">
+<!ENTITY layoutVertical.accesskey "V">
+<!ENTITY layoutWideMessage.label "Wide Message">
+<!ENTITY layoutWideMessage.accesskey "M">
+<!ENTITY layoutWideThread.label "Wide List">
+<!ENTITY layoutWideThread.accesskey "L">
+<!ENTITY layoutStacked.label "Stacked">
+<!ENTITY layoutStacked.accesskey "S">
+<!ENTITY showHeader.label "Show Header">
+<!ENTITY showHeader.accesskey "H">
+<!ENTITY wrapHeader.label "Wrap All Headers">
+<!ENTITY wrapHeader.accesskey "W">
+<!ENTITY toolbar.label "Sidebar Toolbar">
+<!ENTITY toolbar.accesskey "d">
+<!-- These labels and access keys are for toolbar buttons -->
+<!ENTITY toggleList.label "List">
+<!ENTITY toggleList.tooltip "Show/Hide the Snowl List of Messages">
+<!ENTITY toggleStream.label "Stream">
+<!ENTITY toggleStream.tooltip "Show/Hide the Snowl Message Stream">
+<!ENTITY toggleRiver.label "River">
+<!ENTITY toggleRiver.tooltip "Show/Hide the Snowl River of Messages">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/collections.dtd
@@ -0,0 +1,36 @@
+<!ENTITY nameCol.label "Name">
+<!-- Collections contextmenu -->
+<!ENTITY markRead.label "Mark as Read">
+<!ENTITY markRead.accesskey "d">
+<!ENTITY markAllRead.label "Mark All as Read">
+<!ENTITY refresh.label "Refresh Source">
+<!ENTITY refresh.accesskey "R">
+<!ENTITY refreshAll.label "Refresh All Sources">
+<!ENTITY refreshAll.accesskey "c">
+<!ENTITY pause.label "Pause Refresh">
+<!ENTITY pause.accesskey "P">
+<!ENTITY pauseAll.label "Pause All Refresh">
+<!ENTITY resume.label "Resume Refresh">
+<!ENTITY resume.accesskey "m">
+<!ENTITY resumeAll.label "Resume All Refresh">
+<!ENTITY removeSource.label "Remove Source">
+<!ENTITY removeSource.accesskey "S">
+<!ENTITY removeAuthor.label "Remove Author">
+<!ENTITY removeAuthor.accesskey "A">
+<!ENTITY newView.label "New View…">
+<!ENTITY newView.accesskey "V">
+<!ENTITY removeView.label "Remove View">
+<!ENTITY removeView.accesskey "w">
+<!ENTITY view.label "View:">
+<!ENTITY view.accesskey "V">
+<!ENTITY viewDefault.label "Default">
+<!ENTITY viewSources.label "Sources">
+<!ENTITY viewAuthors.label "Authors">
+<!ENTITY search.label "Search:">
+<!ENTITY search.accesskey "S">
+<!ENTITY searchMessages.label "Messages">
+<!ENTITY searchMessages.accesskey "M">
+<!ENTITY searchCollections.label "Collections">
+<!ENTITY searchCollections.accesskey "C">
+<!ENTITY searchHelp.label "Help">
+<!ENTITY searchHelp.accesskey "H">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/datastore.properties
@@ -0,0 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
+allCollectionName= All Messages
+sourcesCollectionName= All Sources
+authorsCollectionName= All Authors
+customCollectionName= Custom
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg= Rebuild Snowl Places
+rebuildPlacesDialogMsg= The Snowl Places database will be rebuilt, due to an upgrade or database recovery or user request.   This may take a few minutes depending on the size of your database.  Progress of each converted item is shown in the statusbar.
+rebuildPlacesStarted= Rebuild Places Database started...
+rebuildPlacesConverted= Converted to Places:
+rebuildPlacesCompleted= Rebuild Places Database completed
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg= Rebuild Snowl Places Authors
+rebuildPlacesAuthorDialogMsg= There are %1$S Author records in the database.  Do you wish to create an Authors collection?  An Authors collection can be created at any time by rebuilding the Snowl Places database.
+# New View title for dialog
+
+newViewTitle= New View
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg= Remove Source
+removeSourceDialogMsg= Removing this source will permanently remove the source and all of its authors and messages.
+removeAuthorTitleMsg= Remove Author
+removeAuthorDialogMsg= Removing this author will permanently remove the author and all of the author's messages.
+removeViewTitleMsg= Remove View
+removeViewDialogMsg= Confirm removing this view.
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/date.js
@@ -0,0 +1,145 @@
+/**
+ * @version: 1.0 Alpha-1
+ * @author: Coolite Inc. http://www.coolite.com/
+ * @date: 2008-05-13
+ * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
+ * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
+ * @website: http://www.datejs.com/
+ */
+Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
+return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
+return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
+return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
+return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
+return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
+var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
+if(x.seconds){this.addSeconds(x.seconds);}
+if(x.minutes){this.addMinutes(x.minutes);}
+if(x.hours){this.addHours(x.hours);}
+if(x.weeks){this.addWeeks(x.weeks);}
+if(x.months){this.addMonths(x.months);}
+if(x.years){this.addYears(x.years);}
+if(x.days){this.addDays(x.days);}
+return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
+g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
+$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
+return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
+if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
+if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
+if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
+if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
+if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
+if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
+if(config.timezone){this.setTimezone(config.timezone);}
+if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
+if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
+return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
+else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
+return this;}
+return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
+return'"'+this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z"';};}
+$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
+var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
+x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
+return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
+return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
+if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
+this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
+return this;}
+return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
+return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
+var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
+return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
+var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
+if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
+if(k==v){break;}}
+return true;}
+if(j.substring(j.length-1)!="s"){j+="s";}
+return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
+$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
+if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
+this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
+return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
+(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
+break;}
+return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
+return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
+throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
+return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
+if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){r=null;}
+if(r){return r;}}
+throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
+return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
+rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
+s=q[1];}
+if(!r){throw new $P.Exception(s);}
+if(q){throw new $P.Exception(q[1]);}
+if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
+return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
+rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
+if(!last&&q[1].length===0){last=true;}
+if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
+p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
+if(rx[1].length<best[1].length){best=rx;}
+if(best[1].length===0){break;}}
+if(best[0].length===0){return best;}
+if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
+best[1]=q[1];}
+return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
+return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
+if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
+var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
+return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
+var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
+if(!this.year){this.year=now.getFullYear();}
+if(!this.month&&this.month!==0){this.month=now.getMonth();}
+if(!this.day){this.day=1;}
+if(!this.hour){this.hour=0;}
+if(!this.minute){this.minute=0;}
+if(!this.second){this.second=0;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
+var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
+return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
+for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
+var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
+var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
+if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
+if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
+this.year=temp.getFullYear();}
+if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
+if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
+if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
+if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
+if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
+if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
+if(!this.unit){this.unit="day";}
+if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
+this[this.unit+"s"]=this.value*orient;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
+if((this.month||this.month===0)&&!this.day){this.day=1;}
+if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
+if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
+return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
+fn=_C[keys]=_.any.apply(null,px);}
+return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
+return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
+return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
+if(s instanceof Date){return s;}
+try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/filterTextbox.dtd
@@ -0,0 +1,1 @@
+<!ENTITY filterTextbox.emptytext "Търсене в съобщенията">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Getting Started with Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "You've just installed Snowl, an experiment in messaging in the browser.">
+<!ENTITY snowl.firstrun.access.tips "Access Snowl from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png'/> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.buttons "Add buttons to your toolbars for quicker access to Snowl features via the <code>View &gt; Toolbars &gt; Customize…</code> menu option.">
+<!ENTITY snowl.firstrun.suscribe.howto "Subscribe to feeds by clicking the feed icon <img src='chrome://browser/skin/feeds/feedIcon16.png'/> that appears in the Firefox location bar when you visit a web site with a feed.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Subscribe to Twitter or import an OPML file from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png' /> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.read.messages "Read messages in the <a href='&link.to.river;'>river</a>, <a href='&link.to.stream;'>stream</a>, and <a href='&link.to.list;'>list </a> views.">
+<!ENTITY snowl.firstrun.write.messages "Write a message by pressing the write button <img src='chrome://snowl/content/icons/email_add.png' /> in any view.">
+<!ENTITY snowl.firstrun.get.involved "Get involved!">
+<!ENTITY snowl.a.learn.more.about.snowl "Learn more about Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "tell us what you think">
+<!ENTITY snowl.a.browse.bug.reports "browse bug reports">
+<!ENTITY snowl.a.report.a.bug "report a bug">
+<!ENTITY snowl.a.check.out.the.source "check out the source">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/list.dtd
@@ -0,0 +1,17 @@
+<!ENTITY page.title "Snowl">
+<!ENTITY sourceCol.label "Source">
+<!ENTITY authorCol.label "Author">
+<!ENTITY subjectCol.label "Subject">
+<!ENTITY timestampCol.label "Date">
+<!ENTITY datereceivedCol.label "Date Received">
+<!ENTITY readCol.label "Read">
+<!ENTITY flaggedCol.label "Flagged">
+<!ENTITY sortBy.label "Sort By ">
+<!ENTITY openListMessage.label "Open Message">
+<!ENTITY openListMessage.accesskey "O">
+<!ENTITY selectAll.label "Select All">
+<!ENTITY selectAll.accesskey "A">
+<!ENTITY deleteMessages.label "Delete Selected Messages">
+<!ENTITY deleteMessages.accesskey "D">
+<!ENTITY undeleteMessages.label "Undelete Selected Messages">
+<!ENTITY undeleteMessages.accesskey "U">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/login.dtd
@@ -0,0 +1,6 @@
+<!ENTITY dialog.title "Удостоверяване">
+<!ENTITY realm.label "Източниците казват:">
+<!ENTITY username.label "Потребител:">
+<!ENTITY password.label "Парола:">
+<!ENTITY showPassword.label "Показване на паролата">
+<!ENTITY rememberPassword.label "Запомняне на вярна парола">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/login.properties
@@ -0,0 +1,14 @@
+#   %S=URL (напр.: http://planet.mozilla.org/)
+
+# the user to enter their username and password to access a source.
+
+# 
+
+#   %1$S = name (f.e. Planet Mozilla)
+
+#   %2$S = URL (f.e. http://planet.mozilla.org/)
+
+namedSourcePrompt=Източникът %1$S <%2$S> изисква потребителско име и парола.
+#   %S = URL (f.e. http://planet.mozilla.org/)
+
+namelessSourcePrompt=Източникът %S изисква потребителско име и парола.
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/message.dtd
@@ -0,0 +1,12 @@
+<!ENTITY author.label "Автор:">
+<!ENTITY author.accesskey "А">
+<!ENTITY subject.label "Относно:">
+<!ENTITY subject.accesskey "О">
+<!ENTITY timestamp.label "Дата:">
+<!ENTITY link.label "Връзка:">
+<!ENTITY pinButton.label "Показване на заглавката">
+<!ENTITY pinButton.tooltip "Превключва показването и скриването на заглавката">
+<!ENTITY toggleHeader.label "Превключване на заглавката">
+<!ENTITY toggleHeader.tooltip "Превключва заглавката на съобщението от кратка, основна и пълна">
+<!ENTITY deleteMessagesButton.label "Изтриване на съобщение">
+<!ENTITY deleteMessagesButton.tooltip "Изтриване на това съобщение">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/message.properties
@@ -0,0 +1,15 @@
+# Display page for message whose source has been unsubscribed or otherwise
+
+# cannot be found in the database.
+
+messageNotFound=Това съобщение е било изтрито или не може да бъде намерено(id: %1$S).
+messageNotFoundTitle=Съобщението %1$S не беше намерено
+# Keyboard keys for actions on message(s) in the message list.  Must be one char
+
+# corresponding to a keyboard key.
+
+messageDelete=и
+messageUndelete=о
+messageMarkRead=п
+messageMarkAllRead=В
+messageMarkFlagged=М
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Отмяна">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/opml.properties
@@ -0,0 +1,22 @@
+# The title of the file picker dialog through which the user picks the name
+
+# and location of the exported file.
+
+filePickerTitle=Експортиране източници като OPML файл
+# The title of the file filter that restricts the set of files shown in
+
+# the file picker dialog to OPML files (i.e. those with .opml extensions).
+
+opmlFilterTitle=OPML Файлове
+# The default name for the file in the file picker dialog.
+
+# Note: this string includes both the name (sources) and the extension (.opml),
+
+# but only the name should be localized.  The extension should remain the same
+
+# across all locales.
+
+defaultFilename=sources.opml
+# The title of the OPML document generated by the exporter.
+
+documentTitle=Snowl Източници
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/preferences.dtd
@@ -0,0 +1,58 @@
+<!-- Subscribe pane -->
+<!ENTITY subscribe.title "Subscribe">
+<!ENTITY source.label "Subscribe to a Message Source">
+<!ENTITY feeds.label "Feed">
+<!ENTITY feeds.accesskey "F">
+<!ENTITY twitter.label "Twitter">
+<!ENTITY twitter.accesskey "T">
+<!ENTITY location.label "Location:">
+<!ENTITY name.label "Name:">
+<!ENTITY subscribeButton.label "Subscribe">
+<!ENTITY subscribeButton.accesskey "S">
+<!ENTITY closeButton.label "Back">
+<!ENTITY closeButton.accesskey "B">
+<!ENTITY clearButton.label "Clear">
+<!ENTITY clearButton.accesskey "C">
+<!-- This is used by subscribe.xul, which also uses this DTD file. -->
+<!ENTITY page.title "Snowl: Subscribe to Message Source">
+<!-- Customize pane -->
+<!ENTITY settings.title "Customize">
+<!ENTITY settings.label "Customize default settings for a Message Source type">
+<!-- The entities below are commented out because they aren't being used yet,
+   - and they may change before we start using them, so don't localize them. 
+-->
+<!ENTITY mail.label "Mail">
+<!ENTITY mail.accesskey "M">
+<!ENTITY newsgroup.label "Newsgroup">
+<!ENTITY newsgroup.accesskey "N">
+<!-- General pane -->
+<!ENTITY general.title "General">
+<!-- Subscriptions pane -->
+<!ENTITY subscriptions.title "Subscriptions">
+<!-- Organize pane -->
+<!ENTITY organize.title "Organize">
+<!-- Refresh and Retention panel entities, currently used by Properties dialog -->
+<!ENTITY refresh.label "Refresh">
+<!ENTITY refreshText.label "The refresh interval may be customized.">
+<!ENTITY refreshMinutes.label "Refresh every">
+<!ENTITY refreshMinutes.accesskey "R">
+<!ENTITY minutes.label "minutes">
+<!ENTITY refreshStatus.label "Current refresh connection status for this source.">
+<!ENTITY refreshState.label "Status:">
+<!ENTITY refreshDate.label "Last refreshed:">
+<!ENTITY refreshCode.label "Last error code:">
+<!ENTITY refreshError.label "Last error message:">
+<!ENTITY retention.label "Retention">
+<!ENTITY retentionCleanup.label "Messages can be deleted according to the following rules.">
+<!ENTITY retentionUseType.label "Use default setting for this message type">
+<!ENTITY retentionUseType.accesskey "d">
+<!ENTITY retentionKeepAll.label "Don't delete any messages">
+<!ENTITY retentionKeepAll.accesskey "n">
+<!ENTITY retentionKeepRecent.label "Delete all but the most recent">
+<!ENTITY retentionKeepRecent.accesskey "r">
+<!ENTITY message.label "messages">
+<!ENTITY retentionDeleteMsg.label "Delete messages older than">
+<!ENTITY retentionDeleteMsg.accesskey "o">
+<!ENTITY daysOld.label "days">
+<!ENTITY retentionKeepFlagged.label "Always keep flagged messages">
+<!ENTITY retentionKeepFlagged.accesskey "k">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/preferences.properties
@@ -0,0 +1,18 @@
+title= Snowl Preferences
+titleWindows= Snowl Options
+# Status messages when subscribing
+
+messageConnecting= Connecting...
+messageDuplicate= You are already subscribed to this message source.
+messageInvalid= The location you entered is not recognizable.
+messageInvalidLoginData= You have to enter a username and password to subscribe to this message source.
+messageConnectionError= There was an error connecting to this message source.  Please check the location and try again.
+messagePassword= Your credentials were not accepted.  Please check your username and password and try again.
+messageDbBusy= The Database is temporarily busy.  Please try again after all sources have finished refreshing.
+messageConnected= Connected.
+messageGettingMessages= Getting messages...
+messageSuccess= You have successfully subscribed to this message source.
+messageGenericError= There was an error completing the subscription to this message source.  Error: %1$S.
+# Customize panel
+
+settingsDefaultText= Always use this default and override any custom setting
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/river.dtd
@@ -0,0 +1,9 @@
+<!ENTITY page.title "Snowl: Поток от съобщения">
+<!ENTITY bodyButton.tooltip "Показване на кратки пълни съобщения.">
+<!ENTITY orderButton.tooltip "Обръщане на реда на съобщенията.">
+<!ENTITY columnsButton.tooltip "Показване на съобщенията в колони.">
+<!ENTITY decrementPeriodButton.tooltip "Преден ден">
+<!ENTITY incrementPeriodButton.tooltip "Следващ ден">
+<!ENTITY periodDay.label "Ден">
+<!ENTITY periodWeek.label "Седница">
+<!ENTITY periodMonth.label "Месец">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Други подпрозорци
+subscriptions=Абонаменти
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=Вие се абонирахте за %1$S в Snowl!
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Search Help">
+<!ENTITY search.caption "Search Messages Guide">
+<!ENTITY search.header1 "Search is based on SQLite's Full Text Search (FTS) capabilities and limitations.">
+<!ENTITY search.header2 "Valid Syntax:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Match all items starting with 'foo'; both 'foo' and 'foobar'.">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Match all items containing exactly 'foo'; 'foo' but not 'foobar'.">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Match all items with both 'foo' AND 'bar'.">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Match all items with either 'foo' OR 'bar'.">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Match all items with 'foo' AND 'bar' but NOT 'baz'.">
+<!ENTITY search.example6 "">
+<!ENTITY search.explanation6 "Note: there can only be ONE negation term and it must be the LAST term in the search query.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Match all items where 'foo' is NEAR 'bar', meaning within N words of 'bar'.  Valid values for N are 0-9 (default is 10 if N is blank).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Match all items where 'foo' is within 2 words of 'bar' and 'bar' is within 10 words of 'baz biff'.">
+<!ENTITY search.header3 "Syntax errors are indicated by a red background.">
+<!ENTITY search.header4 "Invalid syntax:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Wildcard prefixing is invalid.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Leading and trailing spaces are invalid in a quoted string.">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Non alphanumeric symbols are invalid in nonquoted strings.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Quoted strings cannot be negated.">
+<!ENTITY search.header5 "Searching for symbols in quoted strings returns unexpected results.  In addition, wildcards are not supported within words.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Finds 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Finds 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Finds 'foo b r', 'foo b=r', etc. but not 'foo bar'.">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText=Колекции
+searchMessagesEmptyText=Съобщения
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/sources.dtd
@@ -0,0 +1,1 @@
+<!ENTITY subscribeUsing.label "Абониране чрез:">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/stream.dtd
@@ -0,0 +1,1 @@
+<!ENTITY page.title "Snowl: Поток от съобщения">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Абониране
+chooseApplicationMenuItem=Избор приложение...
+chooseApplicationDialogTitle=Избор на приложение
+alwaysUse=Винаги това
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=Използване винаги на %S за абонамент за фийдове.
+alwaysUseForAudioPodcasts=Използване винаги на %S за абонамент за подкасти.
+alwaysUseForVideoPodcasts=Използване винаги на %S за абонамент за видео подкасти.
+subscribeFeedUsing=Абонамент чрез
+subscribeAudioPodcastUsing=Абонамент чрез
+subscribeVideoPodcastUsing=Абонамент чрез
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/toolbar.dtd
@@ -0,0 +1,10 @@
+<!ENTITY subscribeButton.tooltip "Абониране към източници на съобщения.">
+<!ENTITY unsubscribeButton.tooltip "Отменя абонамента към избрания източник.">
+<!ENTITY refreshButton.tooltip "Презарежда източниците на съобщения.">
+<!ENTITY exportButton.tooltip "Експортира източниците на съобщения като OPML.">
+<!ENTITY unreadButton.tooltip "Показване на нечетените съобщения за избраните колекции.">
+<!ENTITY flaggedButton.tooltip "Показване на маркираните съобщения за избраните колекции.">
+<!ENTITY listToolbarButton.tooltip "Превключване на лентата с инструментите">
+<!ENTITY writeButton.tooltip "Писане на съобщение.">
+<!ENTITY showDeletedButton.tooltip "Показване на изтритите съобщения за избраните колекции.">
+<!ENTITY purgeDeletedButton.tooltip "Изчистване на изтритите съобщения за избраните колекции.">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/utils.properties
@@ -0,0 +1,31 @@
+unknownDate= unknown
+monday= Monday
+tuesday= Tuesday
+wednesday= Wednesday
+thursday= Thursday
+friday= Friday
+saturday= Saturday
+sunday= Sunday
+# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
+
+# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
+
+yesterdayTime= Yesterday %S
+future= The Future
+evening= Evening
+afternoon= Afternoon
+morning= Morning
+# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
+
+# of the morning.  Snowls uses this expression to describe the hours between
+
+# midnight and six in the morning (i.e. 00:00 - 06:00).
+
+weeHours= Wee Hours
+today= Today
+yesterday= Yesterday
+older= Older
+weekOne= Week One
+weekTwo= Week Two
+weekThree= Week Three
+weekFour= Week Four
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/write.dtd
@@ -0,0 +1,1 @@
+<!ENTITY sendButton.label "Изпращане">
new file mode 100644
--- /dev/null
+++ b/locale/bg-BG/write.properties
@@ -0,0 +1,3 @@
+sendButton.label=Изпращане
+sendButton.label.sending=Изпращане
+sendButton.label.sent=Изпратени
deleted file mode 100644
--- a/locale/cs-CZ/about.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-contributors1=Většina ikon jsou z %1$S, šířeny pod licencí %2$S. Ikony OPML jsou z %3$S, licncovány pod %4$S.
-silkIconSetName=Sada silk ikon od famfamfam
-ccA25LicenseName=Licence Creative Commons Attribution 2.5
-opmlIconProjectName=Projekt ikony OPML
-ccASA25LicenseName=Licence Creative Commons Attribution-Share Alike 2.5
-#babelzillaURL=http://www.babelzilla.org/
-silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
-ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/
-opmlIconProjectURL=http://opmlicons.com/
-ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
deleted file mode 100644
--- a/locale/cs-CZ/browser.dtd
+++ /dev/null
@@ -1,58 +0,0 @@
-<!ENTITY snowlMenu.label "Snowl">
-<!ENTITY snowlMenu.accesskey "w">
-<!ENTITY listView.label "Seznam">
-<!ENTITY listView.accesskey "S">
-<!ENTITY riverView.label "Řeka">
-<!ENTITY riverView.accesskey "e">
-<!ENTITY streamView.label "Proud">
-<!ENTITY streamView.accesskey "P">
-<!ENTITY checkForNewMessages.label "Zkontolovat nové zprávy">
-<!ENTITY checkForNewMessages.accesskey "k">
-<!ENTITY subscribe.label "Odebírat...">
-<!ENTITY subscribe.accesskey "O">
-<!ENTITY importOPML.label "Importovat OPML...">
-<!ENTITY importOPML.accesskey "I">
-<!ENTITY exportOPML.label "Exportovat OPML...">
-<!ENTITY exportOPML.accesskey "x">
-<!ENTITY options.label "Možnosti">
-<!ENTITY options.accesskey "M">
-<!ENTITY listViewSidebarMenuItem.label "Seznam zpráv">
-<!ENTITY listViewSidebarMenuItem.accesskey "z">
-<!ENTITY listViewSidebar.label "Seznam zpráv">
-<!ENTITY streamViewSidebarMenuItem.label "Proud zpráv">
-<!ENTITY streamViewSidebarMenuItem.accesskey "P">
-<!ENTITY streamViewSidebar.label "Proud zpráv">
-<!ENTITY snowlLayoutMenu.label "Rozhraní">
-<!ENTITY snowlLayoutMenu.accesskey "R">
-<!ENTITY layoutClassic.label "Klasické">
-<!ENTITY layoutClassic.accesskey "K">
-<!ENTITY layoutVertical.label "Vertikální">
-<!ENTITY layoutVertical.accesskey "V">
-<!ENTITY layoutWideMessage.label "Široká zpráva">
-<!ENTITY layoutWideMessage.accesskey "z">
-<!ENTITY layoutWideThread.label "Široký seznam">
-<!ENTITY layoutWideThread.accesskey "m">
-<!ENTITY layoutStacked.label "Nad sebou">
-<!ENTITY layoutStacked.accesskey "N">
-<!ENTITY headerNone.label "Žádná hlavičku">
-<!ENTITY headerNone.accesskey "h">
-<!ENTITY headerBrief.label "Stručná hlavička">
-<!ENTITY headerBrief.accesskey "S">
-<!ENTITY headerFull.label "Úplná hlavička">
-<!ENTITY headerFull.accesskey "l">
-<!ENTITY toolbar.label "Postraní lišta">
-<!ENTITY toolbar.accesskey "P">
-<!ENTITY viewtoolbar.label "Lišta seznamu">
-<!ENTITY viewtoolbar.accesskey "u">
-<!ENTITY hierarchyOff.label "Rovné uspořádání kolekce">
-<!ENTITY hierarchyOff.accesskey "R">
-<!ENTITY hierarchyOn.label "Hierarchické uspořádání kolekce">
-<!ENTITY hierarchyOn.accesskey "H">
-<!ENTITY toggleList.label "Snowl přepínání zobrazení seznamu">
-<!ENTITY toggleList.tooltip "Přepnout zobrazení seznamu">
-<!ENTITY toggleStream.label "Snowl přepínání zobrazení proudů">
-<!ENTITY toggleStream.tooltip "Přepnout zobrazení proudu">
-<!ENTITY toggleRiver.label "Snowl přepínání zobrazení řeky">
-<!ENTITY toggleRiver.tooltip "Přepnout zobrazení řeky">
-<!ENTITY toggleHeader.label "Snowl přepínání hlavičky">
-<!ENTITY toggleHeader.tooltip "Přepnout hlavičku zprávy na žádnou, stručnou nebo plnou">
deleted file mode 100644
--- a/locale/cs-CZ/collections.dtd
+++ /dev/null
@@ -1,7 +0,0 @@
-<!ENTITY nameCol.label "Jméno">
-<!ENTITY refresh.label "Obnovit">
-<!ENTITY refresh.accesskey "t">
-<!ENTITY refreshAll.label "Obnovit všechny zdroje">
-<!ENTITY refreshAll.accesskey "v">
-<!ENTITY unsubscribe.label "Zrušit odběr">
-<!ENTITY unsubscribe.accesskey "Z">
deleted file mode 100644
--- a/locale/cs-CZ/datastore.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-allCollectionName=Vše
-sourcesCollectionName=Zdroje
-authorsCollectionName=Autoři
deleted file mode 100644
--- a/locale/cs-CZ/date.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * @version: 1.0 Alpha-1
- * @author: Coolite Inc. http://www.coolite.com/
- * @date: 2008-05-13
- * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
- * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
- * @website: http://www.datejs.com/
- */
-Date.CultureInfo={name:"cs-CZ",englishName:"Czech (Czech Republic)",nativeName:"čeština (Česká republika)",dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],abbreviatedDayNames:["ne","po","út","st","čt","pá","so"],shortestDayNames:["ne","po","út","st","čt","pá","so"],firstLetterDayNames:["n","p","ú","s","č","p","s"],monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],abbreviatedMonthNames:["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"],amDesignator:"dop.",pmDesignator:"odp.",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"d.M.yyyy",longDate:"d. MMMM yyyy",shortTime:"H:mm",longTime:"H:mm:ss",fullDateTime:"d. MMMM yyyy H:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"dd MMMM",yearMonth:"MMMM yyyy"},regexPatterns:{jan:/^leden/i,feb:/^únor/i,mar:/^březen/i,apr:/^duben/i,may:/^květen/i,jun:/^červen/i,jul:/^červenec/i,aug:/^srpen/i,sep:/^září/i,oct:/^říjen/i,nov:/^listopad/i,dec:/^prosinec/i,sun:/^neděle/i,mon:/^pondělí/i,tue:/^úterý/i,wed:/^středa/i,thu:/^čtvrtek/i,fri:/^pátek/i,sat:/^sobota/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
-return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
-return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
-return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
-return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
-return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
-var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
-if(x.seconds){this.addSeconds(x.seconds);}
-if(x.minutes){this.addMinutes(x.minutes);}
-if(x.hours){this.addHours(x.hours);}
-if(x.weeks){this.addWeeks(x.weeks);}
-if(x.months){this.addMonths(x.months);}
-if(x.years){this.addYears(x.years);}
-if(x.days){this.addDays(x.days);}
-return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
-g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
-$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
-return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
-if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
-if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
-if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
-if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
-if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
-if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
-if(config.timezone){this.setTimezone(config.timezone);}
-if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
-if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
-return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
-else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
-return this;}
-return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
-return'"'+this.getUTCFullYear()+'-'+
-f(this.getUTCMonth()+1)+'-'+
-f(this.getUTCDate())+'T'+
-f(this.getUTCHours())+':'+
-f(this.getUTCMinutes())+':'+
-f(this.getUTCSeconds())+'Z"';};}
-$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
-var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
-x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
-return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
-return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
-if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
-this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
-return this;}
-return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
-return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
-var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
-return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
-var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
-if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
-if(k==v){break;}}
-return true;}
-if(j.substring(j.length-1)!="s"){j+="s";}
-return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
-$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
-if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
-this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
-return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
-(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
-break;}
-return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
-return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
-throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
-return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
-if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){r=null;}
-if(r){return r;}}
-throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
-return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
-rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
-s=q[1];}
-if(!r){throw new $P.Exception(s);}
-if(q){throw new $P.Exception(q[1]);}
-if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
-return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
-rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
-if(!last&&q[1].length===0){last=true;}
-if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
-p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
-if(rx[1].length<best[1].length){best=rx;}
-if(best[1].length===0){break;}}
-if(best[0].length===0){return best;}
-if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
-best[1]=q[1];}
-return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
-return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
-if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
-var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
-return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
-var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
-if(!this.year){this.year=now.getFullYear();}
-if(!this.month&&this.month!==0){this.month=now.getMonth();}
-if(!this.day){this.day=1;}
-if(!this.hour){this.hour=0;}
-if(!this.minute){this.minute=0;}
-if(!this.second){this.second=0;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
-var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
-return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
-for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
-var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
-var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
-if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
-if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
-this.year=temp.getFullYear();}
-if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
-if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
-if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
-if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
-if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
-if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
-if(!this.unit){this.unit="day";}
-if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
-this[this.unit+"s"]=this.value*orient;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
-if((this.month||this.month===0)&&!this.day){this.day=1;}
-if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
-if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
-return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
-fn=_C[keys]=_.any.apply(null,px);}
-return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
-return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
-return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
-if(s instanceof Date){return s;}
-try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
deleted file mode 100644
--- a/locale/cs-CZ/filterTextbox.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY filterTextbox.emptytext "Hledat zprávy">
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Začínáme se Snowlem">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "Právě jste nainstalovali Snowl, experiment ve zpracování zpráv v prohlížeči.">
+<!ENTITY snowl.firstrun.access.tips "Access Snowl from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png'/> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.buttons "Add buttons to your toolbars for quicker access to Snowl features via the <code>View &gt; Toolbars &gt; Customize…</code> menu option.">
+<!ENTITY snowl.firstrun.suscribe.howto "Subscribe to feeds by clicking the feed icon <img src='chrome://browser/skin/feeds/feedIcon16.png'/> that appears in the Firefox location bar when you visit a web site with a feed.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Subscribe to Twitter or import an OPML file from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png' /> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.read.messages "Read messages in the <a href='&link.to.river;'>river</a>, <a href='&link.to.stream;'>stream</a>, and <a href='&link.to.list;'>list </a> views.">
+<!ENTITY snowl.firstrun.write.messages "Write a message by pressing the write button <img src='chrome://snowl/content/icons/email_add.png' /> in any view.">
+<!ENTITY snowl.firstrun.get.involved "Zapojte se!">
+<!ENTITY snowl.a.learn.more.about.snowl "Zjistěte více o Snowlu">
+<!ENTITY snowl.a.tell.us.what.you.think "řekněte nám co si myslíte">
+<!ENTITY snowl.a.browse.bug.reports "procházet ohlášení chyb">
+<!ENTITY snowl.a.report.a.bug "oznámit chybu">
+<!ENTITY snowl.a.check.out.the.source "check out the source">
deleted file mode 100644
--- a/locale/cs-CZ/list.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<!ENTITY page.title "Snowl">
-<!ENTITY placementButton.tooltip "Přepne umístění.">
-<!ENTITY unreadButton.tooltip "Zobrazí pouze nepřečtené zprávy.">
-<!ENTITY authorCol.label "Autor">
-<!ENTITY subjectCol.label "Předmět">
-<!ENTITY timestampCol.label "Datum">
-<!ENTITY openListMessage.label "Otevřít zprávu">
-<!ENTITY openListMessage.accesskey "O">
deleted file mode 100644
--- a/locale/cs-CZ/login.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY dialog.title "Vyžadováno ověření">
-<!ENTITY realm.label "Zdroj říká:">
-<!ENTITY username.label "Uživatelské jméno">
-<!ENTITY password.label "Heslo:">
-<!ENTITY showPassword.label "Zobrazit heslo">
-<!ENTITY rememberPassword.label "Zapamatovat si heslo pokud je správné.">
deleted file mode 100644
--- a/locale/cs-CZ/login.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-namedSourcePrompt=Zdroj %1$S <%2$S> vyžaduje uživatelské jméno a heslo.
-#   %S=URL (např. http://planet.mozilla.org/)
-namelessSourcePrompt=Zdroj %S vyžaduje uživatelské jméno a heslo.
deleted file mode 100644
--- a/locale/cs-CZ/message.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY author.label "Autor:">
-<!ENTITY subject.label "Předmět:">
-<!ENTITY timestamp.label "Datum:">
-<!ENTITY link.label "Odkaz:">
deleted file mode 100644
--- a/locale/cs-CZ/message.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-messageNotFound=Tato zpráva byla smazána nebo nemůže být nalezena (id: %1$S).
-messageNotFoundTitle=Zpráva %1$S nenalezena
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Zpět">
deleted file mode 100644
--- a/locale/cs-CZ/opml.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-filePickerTitle=Exportovat zdroje jako soubor OPML
-opmlFilterTitle=Soubory OPML
-defaultFilename=zdroje.opml
-documentTitle=Zdroje Snowl
deleted file mode 100644
--- a/locale/cs-CZ/preferences.dtd
+++ /dev/null
@@ -1,22 +0,0 @@
-<!ENTITY subscribe.title "Odebírat">
-<!ENTITY source.label "Odebírat zdroj zpráv">
-<!ENTITY feeds.label "Kanál">
-<!ENTITY feeds.accesskey "k">
-<!ENTITY twitter.label "Twitter">
-<!ENTITY twitter.accesskey "T">
-<!ENTITY location.label "Umístění:">
-<!ENTITY name.label "Název:">
-<!ENTITY subscribeButton.label "Odebírat">
-<!ENTITY subscribeButton.accesskey "O">
-<!ENTITY closeButton.label "Zpět">
-<!ENTITY closeButton.accesskey "Z">
-<!ENTITY clearButton.label "Vymazat">
-<!ENTITY clearButton.accesskey "V">
-<!ENTITY page.title "Snowl: Odebírat zdroj zpráv">
-<!ENTITY mail.label "Pošta">
-<!ENTITY mail.accesskey "P">
-<!ENTITY newsgroup.label "Diskusní skupina">
-<!ENTITY newsgroup.accesskey "D">
-<!ENTITY general.title "Hlavní">
-<!ENTITY subscriptions.title "Příspěvky">
-<!ENTITY organize.title "Setřídit">
deleted file mode 100644
--- a/locale/cs-CZ/preferences.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-messageConnecting=Připojování
-messageDuplicate=Tento zdroj zpráv již odebíráte.
-messageInvalid=Adresa kterou jste zadali nebyla rozpoznána.
-messageInvalidLoginData=Musíte zadat uživatelské jméno a heslo pro odebírání tohoto zdroje zpráv.
-messageConnectionError=Vyskytla se chyba v přiopojení k tomuto zdroji zpráv. Prosím překontrolujte adresu a zkuste to znovu.
-messagePassword=Vaše doklady nebyly přijaty. Prosím kontrolujte vaše uživatelské jméno a heslo a zkuste to znovu.
-messageConnected=Připojeno.
-messageGettingMessages=Získávání zpráv...
-messageSuccess=Úspěšně odebíráte tento zdroj zpráv.
-title=Předvolvy Snowl
-titleWindows=Možnosti Snowlu
deleted file mode 100644
--- a/locale/cs-CZ/river.dtd
+++ /dev/null
@@ -1,9 +0,0 @@
-<!ENTITY page.title "Snowl: Řeka zpráv">
-<!ENTITY bodyButton.tooltip "Zobrazí shrnutí/obsah zprávy">
-<!ENTITY orderButton.tooltip "Převrátí pořádí zpráv.">
-<!ENTITY columnsButton.tooltip "Zobrazí zprávy ve sloupcích.">
-<!ENTITY periodAnytime.label "Kdykoliv">
-<!ENTITY periodToday.label "Dnes">
-<!ENTITY periodYesterday.label "Včera">
-<!ENTITY periodLast7Days.label "Posledních 7 dní">
-<!ENTITY periodLast4Weeks.label "Poslední 4 týdny">
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Ostatní panely
+subscriptions=Odběry
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=Odebíráte %1$S ve Snowlu!
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Nápověda hledání">
+<!ENTITY search.caption "Průvodce oznámeními vyhledávání">
+<!ENTITY search.header1 "Vyhledávání je založeno na schopnostech a omezeních fulltextového vyhledávání SQLite (FTS).">
+<!ENTITY search.header2 "Správná syntaxe:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Souhlasí všechny položky začínající na 'foo'; 'foo' i 'foobar'.">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Souhlasí všechny položky obsahující přesně 'foo'; 'foo' ale ne 'foobar'.">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Souhlasí všechny položky s 'foo' a 'bar' zároveň.">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Souhlasí všechny položky buď s 'foo' nebo 'bar'.">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Souhlasí všechny položky s 'foo' a 'bar' ne 'baz'.">
+<!ENTITY search.example6 "">
+<!ENTITY search.explanation6 "Poznámka: zde se může nacházet pouze JEDEN záporný výraz a musí být POSLEDNÍ výraz v hledaném dotazu.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Match all items where 'foo' is NEAR 'bar', meaning within N words of 'bar'.  Valid values for N are 0-9 (default is 10 if N is blank).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Match all items where 'foo' is within 2 words of 'bar' and 'bar' is within 10 words of 'baz biff'.">
+<!ENTITY search.header3 "Chyby syntaxe jsou označené červeným pozadím.">
+<!ENTITY search.header4 "Špatná syntaxe:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Wildcard prefixing is invalid.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Mezery na začátku a na konci jsou špatné v řetězci v uvozovkách.">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Non alphanumeric symbols are invalid in nonquoted strings.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Quoted strings cannot be negated.">
+<!ENTITY search.header5 "Searching for symbols in quoted strings returns unexpected results.  In addition, wildcards are not supported within words.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Finds 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Finds 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Finds 'foo b r', 'foo b=r', etc. but not 'foo bar'.">
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText=Kolekce
+searchMessagesEmptyText=Zprávy
deleted file mode 100644
--- a/locale/cs-CZ/sources.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY page.title "Snowl: Zdroje zpráv">
-<!ENTITY nameCol.label "Jméno">
-<!ENTITY closeButton.label "Zavřít">
deleted file mode 100644
--- a/locale/cs-CZ/stream.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY page.title "Proud zpráv Snowl">
new file mode 100644
--- /dev/null
+++ b/locale/cs-CZ/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Odebrat nyní
+chooseApplicationMenuItem=Vybrat aplikaci...
+chooseApplicationDialogTitle=Vybrat aplikaci
+alwaysUse=Vždy použít
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=Vždy použít %S pro odebírání zdrojů.
+alwaysUseForAudioPodcasts=Vždy použít %S pro odebírání podkastů.
+alwaysUseForVideoPodcasts=Vždy použít %S pro odebírání video podkastů.
+subscribeFeedUsing=Odebírat pomocí
+subscribeAudioPodcastUsing=Odebírat pomocí
+subscribeVideoPodcastUsing=Odebírat pomocí
deleted file mode 100644
--- a/locale/cs-CZ/toolbar.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY subscribeButton.tooltip "Začne odebírat ze zrojů zpráv.">
-<!ENTITY unsubscribeButton.tooltip "Zruší odběr z vybraných zrojů zpráv.">
-<!ENTITY refreshButton.tooltip "Obnoví všechny zdroje zpráv.">
-<!ENTITY exportButton.tooltip "Exportuje zdroje zpráv jako OPML.">
-<!ENTITY writeButton.tooltip "Napíše zprávu.">
deleted file mode 100644
--- a/locale/cs-CZ/utils.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-unknownDate=neznámé
-monday=Pondělí
-tuesday=Úterý
-wednesday=Středa
-thursday=Čtvrtek
-friday=Pátek
-saturday=Sobota
-sunday=Neděle
-yesterdayTime=Včera %S
-future=Budoucnost
-evening=Večer
-afternoon=Odpoledne
-morning=Ráno
-weeHours=Časně ráno
-today=Dnes
-yesterday=Včera
-older=Starší
-weekOne=Jeden týden
-weekTwo=Dva týdny
-weekThree=Tři týdny
-weekFour=Čtyři týdny
deleted file mode 100644
--- a/locale/cs-CZ/write.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY sendButton.label "Odeslat">
deleted file mode 100644
--- a/locale/cs-CZ/write.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-sendButton.label=Odeslat
-sendButton.label.sending=Odesílání...
-sendButton.label.sent=Odesláno
deleted file mode 100644
--- a/locale/da-DK/about.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-version=version %S
-attribution=De Fleste ikoner er fra %1$S, licenseret under %2$S. OPML ikoner er fra %3$S, licenseret under %4$S.
-silkIconSetName=Silke ikon sættet af famfamfam
-ccA25LicenseName=Creative Commons Attribution 2.5 License
-opmlIconProjectName=OPML ikon projekt
-ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 License
-silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
-ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/
-opmlIconProjectURL=http://opmlicons.com/
-ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
deleted file mode 100644
--- a/locale/da-DK/browser.dtd
+++ /dev/null
@@ -1,58 +0,0 @@
-<!ENTITY snowlMenu.label "Snowl">
-<!ENTITY snowlMenu.accesskey "w">
-<!ENTITY listView.label "Liste">
-<!ENTITY listView.accesskey "L">
-<!ENTITY riverView.label "Flod">
-<!ENTITY riverView.accesskey "F">
-<!ENTITY streamView.label "Strøm">
-<!ENTITY streamView.accesskey "S">
-<!ENTITY checkForNewMessages.label "Tjek for nye meddelelser">
-<!ENTITY checkForNewMessages.accesskey "T">
-<!ENTITY subscribe.label "Abonner...">
-<!ENTITY subscribe.accesskey "A">
-<!ENTITY importOPML.label "Importer OPML...">
-<!ENTITY importOPML.accesskey "I">
-<!ENTITY exportOPML.label "Eksporter OPML...">
-<!ENTITY exportOPML.accesskey "E">
-<!ENTITY options.label "Indstillinger">
-<!ENTITY options.accesskey "n">
-<!ENTITY listViewSidebarMenuItem.label "Meddelelses liste">
-<!ENTITY listViewSidebarMenuItem.accesskey "l">
-<!ENTITY listViewSidebar.label "Meddelelses liste">
-<!ENTITY streamViewSidebarMenuItem.label "Meddelelses strøm">
-<!ENTITY streamViewSidebarMenuItem.accesskey "s">
-<!ENTITY streamViewSidebar.label "Meddelelses strøm">
-<!ENTITY snowlLayoutMenu.label "Layouts">
-<!ENTITY snowlLayoutMenu.accesskey "y">
-<!ENTITY layoutClassic.label "Klassisk">
-<!ENTITY layoutClassic.accesskey "K">
-<!ENTITY layoutVertical.label "Vertikal">
-<!ENTITY layoutVertical.accesskey "V">
-<!ENTITY layoutWideMessage.label "Bred meddelelse">
-<!ENTITY layoutWideMessage.accesskey "m">
-<!ENTITY layoutWideThread.label "Bred liste">
-<!ENTITY layoutWideThread.accesskey "l">
-<!ENTITY layoutStacked.label "Stablet">
-<!ENTITY layoutStacked.accesskey "S">
-<!ENTITY headerNone.label "Ingen Overskrift">
-<!ENTITY headerNone.accesskey "I">
-<!ENTITY headerBrief.label "Kort Overskrift">
-<!ENTITY headerBrief.accesskey "K">
-<!ENTITY headerFull.label "Fuld Overskrift">
-<!ENTITY headerFull.accesskey "F">
-<!ENTITY toolbar.label "Sidebjælke">
-<!ENTITY toolbar.accesskey "b">
-<!ENTITY viewtoolbar.label "Værktøjslinje">
-<!ENTITY viewtoolbar.accesskey "v">
-<!ENTITY hierarchyOff.label "Flade samlinger">
-<!ENTITY hierarchyOff.accesskey "f">
-<!ENTITY hierarchyOn.label "Hierarkiske samlinger">
-<!ENTITY hierarchyOn.accesskey "H">
-<!ENTITY toggleList.label "Snowl skift til listevisning">
-<!ENTITY toggleList.tooltip "Skift til listevisning">
-<!ENTITY toggleStream.label "Snowl skift til Strøm visning">
-<!ENTITY toggleStream.tooltip "Skift til Strøm visning">
-<!ENTITY toggleRiver.label "Snowl skift til Flod visning">
-<!ENTITY toggleRiver.tooltip "Skift til Flod visning">
-<!ENTITY toggleHeader.label "Snowl skift Overskrift">
-<!ENTITY toggleHeader.tooltip "Skift meddelelses overskrift til ingen, kort, eller fuld">
deleted file mode 100644
--- a/locale/da-DK/collections.dtd
+++ /dev/null
@@ -1,7 +0,0 @@
-<!ENTITY nameCol.label "Navn">
-<!ENTITY refresh.label "Opdater">
-<!ENTITY refresh.accesskey "O">
-<!ENTITY refreshAll.label "Opdater alle kilder">
-<!ENTITY refreshAll.accesskey "A">
-<!ENTITY unsubscribe.label "Afmeld abonnement">
-<!ENTITY unsubscribe.accesskey "f">
deleted file mode 100644
--- a/locale/da-DK/datastore.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-allCollectionName=Alle
-sourcesCollectionName=Kilder
-authorsCollectionName=Forfattere
deleted file mode 100644
--- a/locale/da-DK/date.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * @version: 1.0 Alpha-1
- * @author: Coolite Inc. http://www.coolite.com/
- * @date: 2008-05-13
- * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
- * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
- * @website: http://www.datejs.com/
- */
-Date.CultureInfo={name:"da-DK",englishName:"Danish (Denmark)",nativeName:"dansk (Danmark)",dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],abbreviatedDayNames:["sø","ma","ti","on","to","fr","lø"],shortestDayNames:["sø","ma","ti","on","to","fr","lø"],firstLetterDayNames:["s","m","t","o","t","f","l"],monthNames:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],abbreviatedMonthNames:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],amDesignator:"",pmDesignator:"",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"dd-MM-yyyy",longDate:"d. MMMM yyyy",shortTime:"HH:mm",longTime:"HH:mm:ss",fullDateTime:"d. MMMM yyyy HH:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"d. MMMM",yearMonth:"MMMM yyyy"},regexPatterns:{jan:/^jan(uar)?/i,feb:/^feb(ruar)?/i,mar:/^mar(ts)?/i,apr:/^apr(il)?/i,may:/^maj/i,jun:/^jun(i)?/i,jul:/^jul(i)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^okt(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^søndag/i,mon:/^mandag/i,tue:/^tirsdag/i,wed:/^onsdag/i,thu:/^torsdag/i,fri:/^fredag/i,sat:/^lørdag/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
-return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
-return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
-return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
-return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
-return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
-var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
-if(x.seconds){this.addSeconds(x.seconds);}
-if(x.minutes){this.addMinutes(x.minutes);}
-if(x.hours){this.addHours(x.hours);}
-if(x.weeks){this.addWeeks(x.weeks);}
-if(x.months){this.addMonths(x.months);}
-if(x.years){this.addYears(x.years);}
-if(x.days){this.addDays(x.days);}
-return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
-g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
-$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
-return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
-if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
-if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
-if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
-if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
-if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
-if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
-if(config.timezone){this.setTimezone(config.timezone);}
-if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
-if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
-return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
-else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
-return this;}
-return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
-return'"'+this.getUTCFullYear()+'-'+
-f(this.getUTCMonth()+1)+'-'+
-f(this.getUTCDate())+'T'+
-f(this.getUTCHours())+':'+
-f(this.getUTCMinutes())+':'+
-f(this.getUTCSeconds())+'Z"';};}
-$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
-var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
-x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
-return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
-return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
-if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
-this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
-return this;}
-return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
-return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
-var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
-return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
-var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
-if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
-if(k==v){break;}}
-return true;}
-if(j.substring(j.length-1)!="s"){j+="s";}
-return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
-$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
-if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
-this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
-return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
-(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
-break;}
-return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
-return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
-throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
-return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
-if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){r=null;}
-if(r){return r;}}
-throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
-return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
-rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
-s=q[1];}
-if(!r){throw new $P.Exception(s);}
-if(q){throw new $P.Exception(q[1]);}
-if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
-return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
-rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
-if(!last&&q[1].length===0){last=true;}
-if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
-p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
-if(rx[1].length<best[1].length){best=rx;}
-if(best[1].length===0){break;}}
-if(best[0].length===0){return best;}
-if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
-best[1]=q[1];}
-return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
-return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
-if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
-var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
-return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
-var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
-if(!this.year){this.year=now.getFullYear();}
-if(!this.month&&this.month!==0){this.month=now.getMonth();}
-if(!this.day){this.day=1;}
-if(!this.hour){this.hour=0;}
-if(!this.minute){this.minute=0;}
-if(!this.second){this.second=0;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
-var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
-return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
-for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
-var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
-var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
-if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
-if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
-this.year=temp.getFullYear();}
-if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
-if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
-if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
-if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
-if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
-if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
-if(!this.unit){this.unit="day";}
-if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
-this[this.unit+"s"]=this.value*orient;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
-if((this.month||this.month===0)&&!this.day){this.day=1;}
-if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
-if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
-return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
-fn=_C[keys]=_.any.apply(null,px);}
-return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
-return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
-return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
-if(s instanceof Date){return s;}
-try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
deleted file mode 100644
--- a/locale/da-DK/filterTextbox.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY filterTextbox.emptytext "Søg Meddelelser">
deleted file mode 100644
--- a/locale/da-DK/list.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<!ENTITY page.title "Snowl">
-<!ENTITY placementButton.tooltip "Skift placering.">
-<!ENTITY unreadButton.tooltip "Vis kun ulæste meddelelser.">
-<!ENTITY authorCol.label "Ophavsmand">
-<!ENTITY subjectCol.label "Emne">
-<!ENTITY timestampCol.label "Dato">
-<!ENTITY openListMessage.label "Åbn meddelelse">
-<!ENTITY openListMessage.accesskey "Å">
deleted file mode 100644
--- a/locale/da-DK/login.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY dialog.title "Godkendelse anmodes">
-<!ENTITY realm.label "Kilden siger:">
-<!ENTITY username.label "Brugernavn:">
-<!ENTITY password.label "Adgangkode:">
-<!ENTITY showPassword.label "Vis adgangskode">
-<!ENTITY rememberPassword.label "Husk denne adgangskode når den er korrekt.">
deleted file mode 100644
--- a/locale/da-DK/login.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-namedSourcePrompt=Kilden %1$S <%2$S> anmoder om brugernavn og adgangskode
-#   %S=URL (f.e. http://planet.mozilla.org/)
-namelessSourcePrompt=Kilden anmoder om brugernavn og adgangskode
deleted file mode 100644
--- a/locale/da-DK/message.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY author.label "Ophavsmand:">
-<!ENTITY subject.label "Emne:">
-<!ENTITY timestamp.label "Dato:">
-<!ENTITY link.label "Link:">
deleted file mode 100644
--- a/locale/da-DK/message.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-messageNotFound=Den meddelelse er slettet eller kan ikke findes (id:%1$S).
-messageNotFoundTitle=Meddelelse %1$S blev ikke fundet
deleted file mode 100644
--- a/locale/da-DK/opml.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-filePickerTitle=Eksporter kilder som en OPML fil
-opmlFilterTitle=OPML fil
-defaultFilename=sources.opml
-documentTitle=Snowl Kilder
deleted file mode 100644
--- a/locale/da-DK/preferences.dtd
+++ /dev/null
@@ -1,22 +0,0 @@
-<!ENTITY subscribe.title "Abonner">
-<!ENTITY source.label "Abonner kilde">
-<!ENTITY feeds.label "Feed">
-<!ENTITY feeds.accesskey "F">
-<!ENTITY twitter.label "Twitter">
-<!ENTITY twitter.accesskey "T">
-<!ENTITY location.label "Sted:">
-<!ENTITY name.label "Navn">
-<!ENTITY subscribeButton.label "Abonner">
-<!ENTITY subscribeButton.accesskey "A">
-<!ENTITY closeButton.label "Tilbage">
-<!ENTITY closeButton.accesskey "T">
-<!ENTITY clearButton.label "Ryd">
-<!ENTITY clearButton.accesskey "R">
-<!ENTITY page.title "Snowl: Abonner kilde">
-<!ENTITY mail.label "Mail">
-<!ENTITY mail.accesskey "M">
-<!ENTITY newsgroup.label "Nyhedsgruppe">
-<!ENTITY newsgroup.accesskey "N">
-<!ENTITY general.title "Generel">
-<!ENTITY subscriptions.title "Abonnementer">
-<!ENTITY organize.title "Organiser">
deleted file mode 100644
--- a/locale/da-DK/preferences.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-messageConnecting=Forbinder...
-messageDuplicate=Du abonnerer allerede på denne kilde.
-messageInvalid=Adressen du angav er ikke genkendelig.
-messageInvalidLoginData=Du skal angive en brugernavn og adgangskode for at abonnere på denne kilde.
-messageConnectionError=Der var en fejl under forbindelsen til denne kilde. Tjek venligst adressen og prøv igen.
-messagePassword=Dine referencer blev ikke accepteret. Tjek venligst brugernavn og adgangskode og  prøv igen.
-messageConnected=Forbundet.
-messageGettingMessages=Modtager meddelelser...
-messageSuccess=Du abonnerer nu denne kilde.
-title=Snowl Præferencer
-titleWindows=Snowl Indstillinger
deleted file mode 100644
--- a/locale/da-DK/river.dtd
+++ /dev/null
@@ -1,9 +0,0 @@
-<!ENTITY page.title "Snowl: Meddelelses flod">
-<!ENTITY bodyButton.tooltip "Vis sammendrag/indhold.">
-<!ENTITY orderButton.tooltip "Omvend ordenen">
-<!ENTITY columnsButton.tooltip "Vis meddelelserne i kolumner.">
-<!ENTITY periodAnytime.label "Når som helst">
-<!ENTITY periodToday.label "I dag">
-<!ENTITY periodYesterday.label "I går">
-<!ENTITY periodLast7Days.label "Sidste 7 dage">
-<!ENTITY periodLast4Weeks.label "Sidste 4 uger">
deleted file mode 100644
--- a/locale/da-DK/sources.dtd
+++ /dev/null
@@ -1,3 +0,0 @@
-<!ENTITY page.title "Snowl: Meddelelses kilde">
-<!ENTITY nameCol.label "Navn">
-<!ENTITY closeButton.label "Luk">
deleted file mode 100644
--- a/locale/da-DK/stream.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY page.title "Snowl Meddelelses Strøm">
deleted file mode 100644
--- a/locale/da-DK/toolbar.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY subscribeButton.tooltip "Abonner kilde">
-<!ENTITY unsubscribeButton.tooltip "Afmeld abonnement fra denne valgte kilde.">
-<!ENTITY refreshButton.tooltip "Opdater alle meddelelses kilder.">
-<!ENTITY exportButton.tooltip "Eksporter meddelelses kilder som OPML">
-<!ENTITY writeButton.tooltip "Skriv en meddelelse">
deleted file mode 100644
--- a/locale/da-DK/utils.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-unknownDate=Ukendt
-monday=Mandag
-tuesday=Tirsdag
-wednesday=Onsdag
-thursday=Torsdag
-friday=Fredag
-saturday=Lørdag
-sunday=Søndag
-yesterdayTime=I går %S
-future=Fremtiden
-evening=Aften
-afternoon=Eftermiddag
-morning=Morgen
-weeHours=Få timer
-today=I dag
-yesterday=I går
-older=Ældre
-weekOne=Første uge
-weekTwo=Anden uge
-weekThree=Tredje uge
-weekFour=Fjerde uge
deleted file mode 100644
--- a/locale/da-DK/write.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY sendButton.label "Send">
deleted file mode 100644
--- a/locale/da-DK/write.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-sendButton.label=Send
-sendButton.label.sending=Sender...
-sendButton.label.sent=Sendt
--- a/locale/de-DE/message.dtd
+++ b/locale/de-DE/message.dtd
@@ -2,11 +2,11 @@
 <!ENTITY author.accesskey "A">
 <!ENTITY subject.label "Betreff:">
 <!ENTITY subject.accesskey "B">
 <!ENTITY timestamp.label "Datum:">
 <!ENTITY link.label "Link:">
 <!ENTITY pinButton.label "Überschrift anheften">
 <!ENTITY pinButton.tooltip "Heftet diese Überschrift an den Anfang der Liste bzw. löst diese davon">
 <!ENTITY toggleHeader.label "Überschrift umschalten">
-<!ENTITY toggleHeader.tooltip "Zeit die Nachrichtenüberschrift in gekürzter, normaler oder vollständiger Länge an, damit nach einer Anpassung an Höhe gespart werden kann.">
+<!ENTITY toggleHeader.tooltip "Zeit die Nachrichtenüberschrift in gekürzter, normaler oder vollständiger Länge an.">
 <!ENTITY deleteMessagesButton.label "Nachricht löschen">
 <!ENTITY deleteMessagesButton.tooltip "Diese Nachricht löschen">
--- a/locale/de-DE/search.dtd
+++ b/locale/de-DE/search.dtd
@@ -1,26 +1,38 @@
 <!-- Search Help -->
 <!ENTITY search.title "Hilfe durchsuchen">
 <!ENTITY search.caption "Nachrichtenguide durchsuchen">
 <!ENTITY search.header1 "Die Suche basiert auf den Möglichkeiten und Beschränkungen der SQLite Volltextsuche (FTS).">
 <!ENTITY search.header2 "Gültige Syntax:">
+<!ENTITY search.example1 "wom, &quot;wom*&quot;">
 <!ENTITY search.explanation1 "Alle Elemente finden, die mit „wom“ beginnen (z.B. „wom“ und „wombat“)">
+<!ENTITY search.example2 "&quot;wom&quot;">
 <!ENTITY search.explanation2 "Alle Elemente finden, die genau „wom“ enthalten (z.B. „wom“, aber nicht „wombat“)">
 <!ENTITY search.example3 "wom bat">
 <!ENTITY search.explanation3 "Alle Elemente finden, die „wom“ und „bat“ enthalten.">
 <!ENTITY search.example4 "wom | bat">
 <!ENTITY search.explanation4 "Alle Elemente finden, die entweder „wom“ oder „bat“ enthalten.">
 <!ENTITY search.example5 "wom bat -bar">
 <!ENTITY search.explanation5 "Alle Elemente finden, die „wom“ und „bat“, aber nicht „bar“ enthalten.">
-<!ENTITY search.example6 "wom bat -bar">
+<!ENTITY search.example6 "">
 <!ENTITY search.explanation6 "Hinweis: Es darf nur eine Verneinung vorhanden sein, die ans Ende der Suchanfrage gestellt werden muss.">
 <!ENTITY search.example7 "wom ~N bat">
 <!ENTITY search.explanation7 "Alle Elemente finden, bei denen „wom“ in der Nähe von „bat“ liegt, es dürfen also nur N Wörter dazwischen sein. Erlaubte Werte für N sind 0 bis 9 (bzw. 10, wenn N leer gelassen wird).">
+<!ENTITY search.example8 "wom ~2 bat ~ &quot;bar biff&quot;">
 <!ENTITY search.explanation8 "Alle Elemente finden, bei denen „wom“ innerhalb von zwei Wörtern zu „bat“ liegt und „bat“ innerhalb von zehn Wörtern zu „bar biff“ liegt.">
 <!ENTITY search.header3 "Syntaxfehler werden durch eine rote Markierung gekennzeichnet.">
 <!ENTITY search.header4 "Ungültige Syntax:">
+<!ENTITY search.example9 "&quot;*wom bat&quot;, *bat">
 <!ENTITY search.explanation9 "Das Voranstellen eines Platzhalters ist ungültig.">
+<!ENTITY search.example10 "&quot;wom bat &quot;">
 <!ENTITY search.explanation10 "Eine Zeichenkette in Anführungszeichen darf nicht mit Leerzeichen beginnen oder abschließen.">
 <!ENTITY search.example11 ".wom-bat?">
 <!ENTITY search.explanation11 "Zeichen, die nicht alphanumerisch sind, müssen zwischen Anführungszeichen stehen.">
+<!ENTITY search.example12 "-&quot;wom bat&quot;">
 <!ENTITY search.explanation12 "Zeichenketten in Anführungszeichen dürfen nicht verneint werden.">
 <!ENTITY search.header5 "Die Suche nach Symbolen, die sich Zeichenketten in Anführungszeichen befinden, könnte unerwartete Ergebnisse zurückliefern. Weiterhin sind keine Platzhalter in Wörtern erlaubt.">
+<!ENTITY search.example13 "&quot;wom-----bat&quot;">
+<!ENTITY search.explanation13 "Findet 'wom bat', 'wom-bat'.">
+<!ENTITY search.example14 "&quot;wom-bat&quot;">
+<!ENTITY search.explanation14 "Findet 'wom bat'.">
+<!ENTITY search.example15 "&quot; wom b*t&quot;">
+<!ENTITY search.explanation15 "Findet 'wom b t', 'wom b=t', usw., aber nicht 'wom bat'.">
--- a/locale/en-US/collections.dtd
+++ b/locale/en-US/collections.dtd
@@ -25,14 +25,26 @@
 
 <!ENTITY view.label                   "View:">
 <!ENTITY view.accesskey               "V">
 <!ENTITY viewDefault.label            "Default">
 <!ENTITY viewSources.label            "Sources">
 <!ENTITY viewAuthors.label            "Authors">
 <!ENTITY search.label                 "Search:">
 <!ENTITY search.accesskey             "S">
-<!ENTITY searchMessages.label         "Messages">
+<!ENTITY searchSubject.label          "Subject">
+<!ENTITY searchSubject.accesskey      "S">
+<!ENTITY searchSender.label           "Sender">
+<!ENTITY searchSender.accesskey       "n">
+<!ENTITY searchRecipient.label        "Recipient">
+<!ENTITY searchRecipient.accesskey    "R">
+<!ENTITY searchHeaders.label          "All Headers">
+<!ENTITY searchHeaders.accesskey      "d">
+<!ENTITY searchMessages.label         "Messages (FTS)">
 <!ENTITY searchMessages.accesskey     "M">
+<!ENTITY searchMessagesRE.label       "Messages (RegEx)">
+<!ENTITY searchMessagesRE.accesskey   "e">
 <!ENTITY searchCollections.label      "Collections">
 <!ENTITY searchCollections.accesskey  "C">
+<!ENTITY searchIgnoreCase.label       "Ignore Case">
+<!ENTITY searchIgnoreCase.accesskey   "I">
 <!ENTITY searchHelp.label             "Help">
 <!ENTITY searchHelp.accesskey         "H">
--- a/locale/en-US/search.properties
+++ b/locale/en-US/search.properties
@@ -1,3 +1,8 @@
 # LOCALIZATION NOTE emptytext message in List View search box
+searchSubjectEmptyText      = Subject
+searchSenderEmptyText       = Sender (Author, From)
+searchRecipientEmptyText    = Recipient (To, Cc)
+searchHeadersEmptyText      = All Headers
+searchMessagesFTSEmptyText  = Messages (FTS)
+searchMessagesEmptyText     = Messages (RegEx)
 searchCollectionsEmptyText  = Collections
-searchMessagesEmptyText     = Messages
--- a/locale/es-ES/message.dtd
+++ b/locale/es-ES/message.dtd
@@ -2,11 +2,11 @@
 <!ENTITY author.accesskey "A">
 <!ENTITY subject.label "Tema:">
 <!ENTITY subject.accesskey "T">
 <!ENTITY timestamp.label "Fecha:">
 <!ENTITY link.label "Enlace:">
 <!ENTITY pinButton.label "Inmovilizar cabecera">
 <!ENTITY pinButton.tooltip "Conmutar inmovilizar cabecera permanente">
 <!ENTITY toggleHeader.label "Conmutar Cabecera">
-<!ENTITY toggleHeader.tooltip "Conmutar cabecera de mensaje de entre breve, básica o completa; en cabecera básica o completa, conmutar para guardar altura después de ajustar">
+<!ENTITY toggleHeader.tooltip "Conmutar cabecera de mensaje de entre breve, básica o completa">
 <!ENTITY deleteMessagesButton.label "Borrar Mensaje">
 <!ENTITY deleteMessagesButton.tooltip "Borrar este Mensaje">
--- a/locale/es-ES/search.dtd
+++ b/locale/es-ES/search.dtd
@@ -1,26 +1,38 @@
 <!-- Search Help -->
 <!ENTITY search.title "Ayuda de búsqueda">
 <!ENTITY search.caption "Guía de Búsqueda de mensajes">
 <!ENTITY search.header1 "Buscar está basado en las capacidades y limitaciones de Full Text Search (FTS) de SQLite">
 <!ENTITY search.header2 "Sintaxis válida:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
 <!ENTITY search.explanation1 "Coinciden todos los elementos que empiezan con 'foo'; o 'foo' y 'foobar'.">
+<!ENTITY search.example2 "&quot;foo&quot;">
 <!ENTITY search.explanation2 "Coinciden todos los elementos que contienen exactamente 'foo'; 'foo' pero no 'foobar'.">
 <!ENTITY search.example3 "foo bar">
-<!ENTITY search.explanation3 "C">
+<!ENTITY search.explanation3 "Coinciden todos los elementos con 'foo' y 'bar'.">
 <!ENTITY search.example4 "foo | bar">
 <!ENTITY search.explanation4 "Coinciden todos los elementos con 'foo' o 'bar'.">
 <!ENTITY search.example5 "foo bar -baz">
 <!ENTITY search.explanation5 "Coinciden todos los elementos con 'foo' y 'bar', pero sin 'baz'.">
 <!ENTITY search.example6 "">
 <!ENTITY search.explanation6 "Nota: solo puede haber UN término de negación y debe estar al final al final de la sentencia de búsqueda.">
 <!ENTITY search.example7 "foo ~N bar">
 <!ENTITY search.explanation7 "Coinciden todos los elementos en los que 'foo' está CERCA de 'bar,">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
 <!ENTITY search.explanation8 "Coinciden todos lo elementos en los que 'foo' a dos palabras de 'bar' y 'bar' está hasta 10 palabras de &quot;baz biff&quot;.">
 <!ENTITY search.header3 "Errores de sintaxis se indican con fondo en rojo.">
 <!ENTITY search.header4 "Sintaxis no válida:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
 <!ENTITY search.explanation9 "El prefijo comodín no es válido.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
 <!ENTITY search.explanation10 "Espacios al inicio y al final no son válidos en una cadena entrecomillada.">
 <!ENTITY search.example11 ".foo-bar?">
 <!ENTITY search.explanation11 "Símbolos no alfanuméricos no son válidos en cadenas no entrecomilladas.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
 <!ENTITY search.explanation12 "Cadenas entrecomilladas no pueden ser negadas.">
 <!ENTITY search.header5 "La búsqueda de símbolos en cadenas entrecomilladas devuelve resultados inesperados. Además, los comodines no están soportados dentro de palabras.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Busca 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Busca 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Busca 'foo b r', 'foo b=r', etc., pero no 'foo bar'.">
--- a/locale/fr/about.properties
+++ b/locale/fr/about.properties
@@ -1,10 +1,45 @@
+#babelzillaURL=http://www.babelzilla.org/
+
+#extensions.snowl@mozilla.org.description = Conversations redelivered
+
+# XXX Is there a better way to localize the attribution string?  Perhaps we
+
+# could stick the content in an XHTML file that gets localized, and then we
+
+# could load the localized version in an iframe inside the About dialog?
+
+# LOCALIZATION NOTE: The attribution string is static but includes links
+
+# to the icons and licenses it references, so we use a property to construct it.
+
+#   %1$S = link to the silk icon set
+
+#   %2$S = link to the Creative Commons Attribution 2.5 License
+
+#   %3$S = link to the OPML Icon Project
+
+#   %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
+
 contributors1=D'autres icônes proviennent de %1$S, utilisant la licence %2$S. L'icône OPML provient de %3$S, avec la licence %4$S.
+#contributors2       = The OPML icon is from %1$S, licensed under a %2$S.
+
+# XXX Should any of these be localized, or is it important to use their
+
+# original names?
+
 silkIconSetName=Icônes Silk faites par famfamfam
 ccA25LicenseName=Creative Commons paternité, licence 2.5
 opmlIconProjectName=Icône du projet OPML
 ccASA25LicenseName=Creative Commons paternité, partage des conditions initiales à l'identique, licence 2.5
-#babelzillaURL=http://www.babelzilla.org/
+# LOCALIZATION NOTE: These URLs are here because it seems better than
+
+# hardcoding them in the script that constructs the attribution string,
+
+# but they probably shouldn't be localized (unless perhaps the pages
+
+# referenced have localized versions).
+
 silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
 ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/deed.fr
 opmlIconProjectURL=http://opmlicons.com/
 ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/deed.fr
--- a/locale/fr/browser.dtd
+++ b/locale/fr/browser.dtd
@@ -1,58 +1,67 @@
+<!-- The Tools > Snowl menu. -->
 <!ENTITY snowlMenu.label "Snowl">
 <!ENTITY snowlMenu.accesskey "w">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+
+-->
 <!ENTITY listView.label "Liste de messages">
 <!ENTITY listView.accesskey "m">
 <!ENTITY riverView.label "Rivière de messages">
-<!ENTITY riverView.accesskey "v">
+<!ENTITY riverView.accesskey "R">
 <!ENTITY streamView.label "Flux">
-<!ENTITY streamView.accesskey "x">
+<!ENTITY streamView.accesskey "F">
 <!ENTITY checkForNewMessages.label "Vérifier les messages">
 <!ENTITY checkForNewMessages.accesskey "v">
 <!ENTITY subscribe.label "S'abonner…">
 <!ENTITY subscribe.accesskey "s">
 <!ENTITY importOPML.label "Import d'OPML…">
 <!ENTITY importOPML.accesskey "i">
 <!ENTITY exportOPML.label "Export d'OPML…">
 <!ENTITY exportOPML.accesskey "x">
 <!ENTITY options.label "Options">
 <!ENTITY options.accesskey "O">
+<!ENTITY rebuildDB.label "Reconstruire la base de données des marque-pages">
+<!ENTITY rebuildDB.accesskey "q">
+<!-- These labels and access keys are for items in the View > Sidebar menu,
+   - where the user needs more context that these are for Snowl commands,
+   - since the sidebar menu also includes commands for non-Snowl functions. 
+
+-->
 <!ENTITY listViewSidebarMenuItem.label "Liste de messages">
 <!ENTITY listViewSidebarMenuItem.accesskey "l">
 <!ENTITY listViewSidebar.label "Liste de messages">
 <!ENTITY streamViewSidebarMenuItem.label "Liste de flux">
 <!ENTITY streamViewSidebarMenuItem.accesskey "t">
 <!ENTITY streamViewSidebar.label "Liste de flux">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+
+-->
 <!ENTITY snowlLayoutMenu.label "Disposition">
-<!ENTITY snowlLayoutMenu.accesskey "i">
+<!ENTITY snowlLayoutMenu.accesskey "D">
 <!ENTITY layoutClassic.label "Classique">
 <!ENTITY layoutClassic.accesskey "C">
 <!ENTITY layoutVertical.label "Vertical">
 <!ENTITY layoutVertical.accesskey "v">
 <!ENTITY layoutWideMessage.label "Message entier">
 <!ENTITY layoutWideMessage.accesskey "e">
 <!ENTITY layoutWideThread.label "Liste entière">
 <!ENTITY layoutWideThread.accesskey "l">
 <!ENTITY layoutStacked.label "Empilé">
 <!ENTITY layoutStacked.accesskey "p">
-<!ENTITY headerNone.label "Pas d'en-tête">
-<!ENTITY headerNone.accesskey "n">
-<!ENTITY headerBrief.label "En-têtes réduits">
-<!ENTITY headerBrief.accesskey "d">
-<!ENTITY headerFull.label "En-têtes complets">
-<!ENTITY headerFull.accesskey "p">
+<!ENTITY showHeader.label "Voir l'en-tête">
+<!ENTITY showHeader.accesskey "o">
+<!ENTITY wrapHeader.label "Aller à la ligne dans tous les en-têtes">
+<!ENTITY wrapHeader.accesskey "l">
 <!ENTITY toolbar.label "Barre d'outils du panneau latéral">
 <!ENTITY toolbar.accesskey "t">
-<!ENTITY viewtoolbar.label "Barre d'outils de la liste">
-<!ENTITY viewtoolbar.accesskey "i">
-<!ENTITY hierarchyOff.label "Collections simplifiées">
-<!ENTITY hierarchyOff.accesskey "f">
-<!ENTITY hierarchyOn.label "Collections hiérarchiques">
-<!ENTITY hierarchyOn.accesskey "h">
+<!-- These labels and access keys are for toolbar buttons -->
 <!ENTITY toggleList.label "Changement de vue de liste Snowl">
 <!ENTITY toggleList.tooltip "Changement de vue de liste">
 <!ENTITY toggleStream.label "Changement de vue de flux Snowl">
 <!ENTITY toggleStream.tooltip "Changement de vue de flux">
 <!ENTITY toggleRiver.label "Changement de vue de rivière Snowl">
 <!ENTITY toggleRiver.tooltip "Changement de vue de rivière">
-<!ENTITY toggleHeader.label "Changement d'en-tête Snowl">
-<!ENTITY toggleHeader.tooltip "Changer l'en-tête de message à vide, bref ou complet">
--- a/locale/fr/collections.dtd
+++ b/locale/fr/collections.dtd
@@ -1,7 +1,36 @@
 <!ENTITY nameCol.label "Nom">
+<!-- Collections contextmenu -->
+<!ENTITY markRead.label "Marquer comme lu">
+<!ENTITY markRead.accesskey "u">
+<!ENTITY markAllRead.label "Marquer comme lu">
 <!ENTITY refresh.label "Rafraîchir">
 <!ENTITY refresh.accesskey "R">
 <!ENTITY refreshAll.label "Rafraîchir toutes les sources">
-<!ENTITY refreshAll.accesskey "a">
-<!ENTITY unsubscribe.label "Se désabonner">
-<!ENTITY unsubscribe.accesskey "d">
+<!ENTITY refreshAll.accesskey "c">
+<!ENTITY pause.label "Interrompre l'actualisation">
+<!ENTITY pause.accesskey "I">
+<!ENTITY pauseAll.label "Interrompre toutes les actualisations">
+<!ENTITY resume.label "Reprendre l'actualisation">
+<!ENTITY resume.accesskey "R">
+<!ENTITY resumeAll.label "Reprendre toutes les actualisations">
+<!ENTITY removeSource.label "Retirer la source">
+<!ENTITY removeSource.accesskey "s">
+<!ENTITY removeAuthor.label "Retirer l'auteur">
+<!ENTITY removeAuthor.accesskey "a">
+<!ENTITY newView.label "Nouvelle vue…">
+<!ENTITY newView.accesskey "v">
+<!ENTITY removeView.label "Retirer la vue">
+<!ENTITY removeView.accesskey "u">
+<!ENTITY view.label "Vue :">
+<!ENTITY view.accesskey "v">
+<!ENTITY viewDefault.label "Par défaut">
+<!ENTITY viewSources.label "Sources">
+<!ENTITY viewAuthors.label "Auteurs">
+<!ENTITY search.label "Rechercher :">
+<!ENTITY search.accesskey "h">
+<!ENTITY searchMessages.label "Messages">
+<!ENTITY searchMessages.accesskey "M">
+<!ENTITY searchCollections.label "Collections">
+<!ENTITY searchCollections.accesskey "C">
+<!ENTITY searchHelp.label "Aide">
+<!ENTITY searchHelp.accesskey "d">
--- a/locale/fr/datastore.properties
+++ b/locale/fr/datastore.properties
@@ -1,3 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
 allCollectionName=Tous
 sourcesCollectionName=Sources
 authorsCollectionName=Auteurs
+customCollectionName=Personnaliser
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg=Reconstruire les adresses de Snowl
+rebuildPlacesDialogMsg=La base de données des des marque-pages de Snowl va être reconstruite, en raison d'une mise à niveau ou d'une restauration demandée par l'utilisateur. Cela peut prendre quelques minutes suivant la taille de la base de données. La progression du traitement de chaque objet est montrée dans la barre d'état.
+rebuildPlacesStarted=Début de reconstruction de la base de données…
+rebuildPlacesConverted=Convertis en Places :
+rebuildPlacesCompleted=Reconstruction de la base de données de Places terminée
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg=Reconstruire les auteurs de laces pour Snowl
+rebuildPlacesAuthorDialogMsg=Il y a %1$S enregistrements d'auteurs dans la base de données. Souhaitez-vous créer une collection d'auteurs ? Une collection d'auteurs peut être créée à n'importe quel moment en reconstruisant la basse de données des Places de Snowl.
+# New View title for dialog
+
+newViewTitle=Nouvel affichage
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg=Supprimer la source
+removeSourceDialogMsg=Supprimer cette source est une opération définitive qui supprimer également tous ses auteurs et tous les messages.
+removeAuthorTitleMsg=Supprimer un auteur
+removeAuthorDialogMsg=Supprimer cet auteur est une opération définitive, qui supprimera aussi tous ses messages.
+removeViewTitleMsg=Supprimer une vue
+removeViewDialogMsg=Confirmer la suppression d'une vue.
--- a/locale/fr/firstrun.dtd
+++ b/locale/fr/firstrun.dtd
@@ -1,14 +1,14 @@
-<!ENTITY snowl.title.getting.started.with.snowl "Getting Started with Snowl">
-<!ENTITY snowl.p.you.ve.just.installed.snowl "You've just installed Snowl, an experiment in messaging in the browser.">
-<!ENTITY snowl.firstrun.access.tips "Access Snowl from the <code>Tools > Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png'/> in the bottom left corner of your browser window.">
-<!ENTITY snowl.firstrun.buttons "Add buttons to your toolbars for quicker access to Snowl features via the <code>View > Toolbars > Customize…</code> menu option.">
-<!ENTITY snowl.firstrun.suscribe.howto "Subscribe to feeds by clicking the feed icon <img src='chrome://browser/skin/feeds/feedIcon16.png'/> that appears in the Firefox location bar when you visit a web site with a feed and selecting Snowl from the list of feed readers on the feed preview page.">
-<!ENTITY snowl.firstrun.suscribe.twitter "Subscribe to Twitter or import an OPML file from the <code>Tools > Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png' /> in the bottom left corner of your browser window.">
-<!ENTITY snowl.firstrun.read.messages "Read messages in the <a href='&link.to.river;'>river</a>, <a href='&link.to.stream;'>stream</a>, and <a href='&link.to.list;'>list </a> views.">
-<!ENTITY snowl.firstrun.write.messages "Write a message by pressing the write button <img src='chrome://snowl/content/icons/email_add.png' /> in any view.">
-<!ENTITY snowl.firstrun.get.involved "Get involved!">
-<!ENTITY snowl.a.learn.more.about.snowl "Learn more about Snowl">
-<!ENTITY snowl.a.tell.us.what.you.think "tell us what you think">
-<!ENTITY snowl.a.browse.bug.reports "browse bug reports">
-<!ENTITY snowl.a.report.a.bug "report a bug">
-<!ENTITY snowl.a.check.out.the.source "check out the source">
\ No newline at end of file
+<!ENTITY snowl.title.getting.started.with.snowl "Débuter avec Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "Vous venez d'installer Snowl, une extension expérimentale de gestion du courrier dans le navigateur.">
+<!ENTITY snowl.firstrun.access.tips "Accéder à Snowl depuis le menu <code>Outils &gt; Snowl</code> ou le bouton Snowl <img src='chrome://snowl/content/icons/snowl-16.png'/> en bas à gauche de la fenêtre de votre navigateur.">
+<!ENTITY snowl.firstrun.buttons "Ajouter des boutons à vos barres d'outils pour un accès plus rapide aux éléments de Snowl en passant par le menu <code>Affichage &gt; Barres d'outils &gt; Personnaliser…</code>">
+<!ENTITY snowl.firstrun.suscribe.howto "Pour vous abonner aux flux, cliquer sur leur icône <img src='chrome://browser/skin/feeds/feedIcon16.png'/> apparaissant dans la barre d'adresse de Firefox lors de la visite d'un site Web en disposant.">
+<!ENTITY snowl.firstrun.suscribe.twitter "S'abonner à Twitter ou importer un fichier OPML depuis le menu <code>Outils &gt; Snowl</code> ou le bouton Snowl <img src='chrome://snowl/content/icons/snowl-16.png' /> dans le coin en bas à gauche de votre fenêtre de navigateur.">
+<!ENTITY snowl.firstrun.read.messages "Lisez vos messages messages dans une <a href='&link.to.river;'>rivière</a>, <a href='&link.to.stream;'>un flux</a>, et <a href='&link.to.list;'>list </a> des vues.">
+<!ENTITY snowl.firstrun.write.messages "Écrivez un message en cliquant sur le bouton pour écrire <img src='chrome://snowl/content/icons/email_add.png' /> depuis tout affichage.">
+<!ENTITY snowl.firstrun.get.involved "Impliquez-vous !">
+<!ENTITY snowl.a.learn.more.about.snowl "Apprenez-en davantage sur Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "Donnez-nous votre avis">
+<!ENTITY snowl.a.browse.bug.reports "Parcourez les rapports de bug">
+<!ENTITY snowl.a.report.a.bug "Rapportez un bug">
+<!ENTITY snowl.a.check.out.the.source "Jetez un coup d'œil au code source">
--- a/locale/fr/list.dtd
+++ b/locale/fr/list.dtd
@@ -1,8 +1,17 @@
 <!ENTITY page.title "Snowl">
-<!ENTITY placementButton.tooltip "Inverser l'emplacement.">
-<!ENTITY unreadButton.tooltip "Ne voir que les messages non lus.">
+<!ENTITY sourceCol.label "Source">
 <!ENTITY authorCol.label "Auteur">
 <!ENTITY subjectCol.label "Sujet">
 <!ENTITY timestampCol.label "Date">
+<!ENTITY datereceivedCol.label "Données reçues">
+<!ENTITY readCol.label "Lus">
+<!ENTITY flaggedCol.label "Marqués">
+<!ENTITY sortBy.label "Classer par">
 <!ENTITY openListMessage.label "Ouvrir le message">
 <!ENTITY openListMessage.accesskey "O">
+<!ENTITY selectAll.label "Tout sélectionner">
+<!ENTITY selectAll.accesskey "T">
+<!ENTITY deleteMessages.label "Supprimer les messages sélectionnés">
+<!ENTITY deleteMessages.accesskey "S">
+<!ENTITY undeleteMessages.label "Récupérer les messages sélectionnés">
+<!ENTITY undeleteMessages.accesskey "R">
--- a/locale/fr/login.properties
+++ b/locale/fr/login.properties
@@ -1,3 +1,14 @@
+#   %S=URL (par ex. http://planet.mozilla.org/)
+
+# the user to enter their username and password to access a source.
+
+# 
+
+#   %1$S = name (f.e. Planet Mozilla)
+
+#   %2$S = URL (f.e. http://planet.mozilla.org/)
+
 namedSourcePrompt=La source %1$S <%2$S> nécessite un nom d'utilisateur et un mot de passe.
-#   %S=URL (par ex. http://planet.mozilla.org/)
+#   %S = URL (f.e. http://planet.mozilla.org/)
+
 namelessSourcePrompt=La source %S nécessite un nom d'utilisateur et un mot de passe.
--- a/locale/fr/message.dtd
+++ b/locale/fr/message.dtd
@@ -1,4 +1,12 @@
 <!ENTITY author.label "Auteur :">
+<!ENTITY author.accesskey "A">
 <!ENTITY subject.label "Sujet :">
+<!ENTITY subject.accesskey "S">
 <!ENTITY timestamp.label "Date :">
 <!ENTITY link.label "Lien :">
+<!ENTITY pinButton.label "Fixer l'en-tête">
+<!ENTITY pinButton.tooltip "Active/désactive l'en-tête permanent">
+<!ENTITY toggleHeader.label "Activer/désactiver l'en-tête">
+<!ENTITY toggleHeader.tooltip "En-tête du message en mode minimal, basique ou complet.">
+<!ENTITY deleteMessagesButton.label "Supprimer le message">
+<!ENTITY deleteMessagesButton.tooltip "Supprimer ce message">
--- a/locale/fr/message.properties
+++ b/locale/fr/message.properties
@@ -1,2 +1,15 @@
+# Display page for message whose source has been unsubscribed or otherwise
+
+# cannot be found in the database.
+
 messageNotFound=Le message a été effacé ou ne peut être trouvé (id. : %1$S).
 messageNotFoundTitle=Message %1$S non trouvé
+# Keyboard keys for actions on message(s) in the message list.  Must be one char
+
+# corresponding to a keyboard key.
+
+messageDelete=s
+messageUndelete=a
+messageMarkRead=l
+messageMarkAllRead=t
+messageMarkFlagged=m
new file mode 100644
--- /dev/null
+++ b/locale/fr/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Défaire">
--- a/locale/fr/opml.properties
+++ b/locale/fr/opml.properties
@@ -1,4 +1,22 @@
+# The title of the file picker dialog through which the user picks the name
+
+# and location of the exported file.
+
 filePickerTitle=Exporter les sources sous forme de fichiers OPML
+# The title of the file filter that restricts the set of files shown in
+
+# the file picker dialog to OPML files (i.e. those with .opml extensions).
+
 opmlFilterTitle=Fichiers OPML
+# The default name for the file in the file picker dialog.
+
+# Note: this string includes both the name (sources) and the extension (.opml),
+
+# but only the name should be localized.  The extension should remain the same
+
+# across all locales.
+
 defaultFilename=sources.opml
+# The title of the OPML document generated by the exporter.
+
 documentTitle=Sources Snowl
--- a/locale/fr/preferences.dtd
+++ b/locale/fr/preferences.dtd
@@ -1,22 +1,58 @@
+<!-- Subscribe pane -->
 <!ENTITY subscribe.title "S'abonner">
 <!ENTITY source.label "S'abonner à une source de messages">
 <!ENTITY feeds.label "Flux">
 <!ENTITY feeds.accesskey "f">
 <!ENTITY twitter.label "Twitter">
 <!ENTITY twitter.accesskey "t">
 <!ENTITY location.label "Adresse :">
 <!ENTITY name.label "Nom :">
 <!ENTITY subscribeButton.label "S'abonner">
 <!ENTITY subscribeButton.accesskey "b">
 <!ENTITY closeButton.label "Retour">
 <!ENTITY closeButton.accesskey "r">
 <!ENTITY clearButton.label "Effacer">
 <!ENTITY clearButton.accesskey "c">
+<!-- This is used by subscribe.xul, which also uses this DTD file. -->
 <!ENTITY page.title "Snowl : s'abonner à une source de messages">
+<!-- Customize pane -->
+<!ENTITY settings.title "Personnaliser">
+<!ENTITY settings.label "Personnaliser les paramètres par défaut pour une source de messages">
+<!-- The entities below are commented out because they aren't being used yet,
+   - and they may change before we start using them, so don't localize them. 
+-->
 <!ENTITY mail.label "Courriel">
 <!ENTITY mail.accesskey "u">
 <!ENTITY newsgroup.label "Groupe">
 <!ENTITY newsgroup.accesskey "g">
+<!-- General pane -->
 <!ENTITY general.title "Général">
+<!-- Subscriptions pane -->
 <!ENTITY subscriptions.title "Abonnements">
+<!-- Organize pane -->
 <!ENTITY organize.title "Organiser">
+<!-- Refresh and Retention panel entities, currently used by Properties dialog -->
+<!ENTITY refresh.label "Actualiser">
+<!ENTITY refreshText.label "L'intervalle entre deux actualisations est personnalisable">
+<!ENTITY refreshMinutes.label "Actualiser toutes les">
+<!ENTITY refreshMinutes.accesskey "A">
+<!ENTITY minutes.label "minutes">
+<!ENTITY refreshStatus.label "Statut courant de l'actualisation pour cette source.">
+<!ENTITY refreshState.label "Statut :">
+<!ENTITY refreshDate.label "Dernière actualisation :">
+<!ENTITY refreshCode.label "Dernier code d'erreur :">
+<!ENTITY refreshError.label "Dernier message d'erreur :">
+<!ENTITY retention.label "Retenue">
+<!ENTITY retentionCleanup.label "Les messages peuvent être détruits en fonction des règles suivantes.">
+<!ENTITY retentionUseType.label "Utiliser les paramètres par défaut pour ce type de message">
+<!ENTITY retentionUseType.accesskey "U">
+<!ENTITY retentionKeepAll.label "Ne détruire aucun message">
+<!ENTITY retentionKeepAll.accesskey "N">
+<!ENTITY retentionKeepRecent.label "Tout détruire sauf les">
+<!ENTITY retentionKeepRecent.accesskey "T">
+<!ENTITY message.label "derniers messages">
+<!ENTITY retentionDeleteMsg.label "Détruire les messages qui datent de plus de">
+<!ENTITY retentionDeleteMsg.accesskey "D">
+<!ENTITY daysOld.label "jours">
+<!ENTITY retentionKeepFlagged.label "Toujours conserver les messages marqués">
+<!ENTITY retentionKeepFlagged.accesskey "C">
--- a/locale/fr/preferences.properties
+++ b/locale/fr/preferences.properties
@@ -1,11 +1,18 @@
+title=Préférences de Snowl
+titleWindows=Options de Snowl
+# Status messages when subscribing
+
 messageConnecting=Connexion…
 messageDuplicate=Il y a déjà un abonnement à cette source de messages.
 messageInvalid=L'adresse que vous avez entrée n'est pas reconnue.
 messageInvalidLoginData=Vous devez entrer un identifiant et un mot de passe pour vous abonner à cette source de messages.
-messageConnectionError= There was an error connecting to this message source.  Please check the location and try again.
-messagePassword= Your credentials were not accepted.  Please check your username and password and try again.
-messageConnected= Connected.
-messageGettingMessages= Getting messages...
-messageSuccess= You have successfully subscribed to this message source.
-title= Snowl Preferences
-titleWindows= Snowl Options
+messageConnectionError=Il y a eu un erreur de connexion à la source de ce message. Merci de vérifier l'adresse puis de réessayer.
+messagePassword=Vos identifiants n'ont pas été acceptés. Merci de vérifier le nom d'utilisateur et le mot de passe puis de réessayer.
+messageDbBusy=La base de données et occupée pour l'instant. Veuillez réessayer lorsque toutes le sources auront été actualisées.
+messageConnected=Connecté
+messageGettingMessages=Récupération de messages…
+messageSuccess=L'inscription à cette source de messages a eu lieu avec succès.
+messageGenericError=Une erreur s'est produite dans la phase finale de l'abonnement à cette source de messages. Erreur : %1$S.
+# Customize panel
+
+settingsDefaultText=Toujours utiliser ceci par défaut et remplacer tout autre paramètre personnalisé
--- a/locale/fr/river.dtd
+++ b/locale/fr/river.dtd
@@ -1,9 +1,9 @@
 <!ENTITY page.title "Snowl : rivière de messages">
 <!ENTITY bodyButton.tooltip "Voir résumé / contenu des messages.">
 <!ENTITY orderButton.tooltip "Inverser l'ordre des messages.">
 <!ENTITY columnsButton.tooltip "Afficher les messages en colonnes.">
-<!ENTITY periodAnytime.label "Tout le temps">
-<!ENTITY periodToday.label "Aujourd'hui">
-<!ENTITY periodYesterday.label "Hier">
-<!ENTITY periodLast7Days.label "7 derniers jours">
-<!ENTITY periodLast4Weeks.label "4 dernières semaines">
+<!ENTITY decrementPeriodButton.tooltip "Jour précédent">
+<!ENTITY incrementPeriodButton.tooltip "Jour suivant">
+<!ENTITY periodDay.label "Jour">
+<!ENTITY periodWeek.label "Semaine">
+<!ENTITY periodMonth.label "Mois">
new file mode 100644
--- /dev/null
+++ b/locale/fr/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Autres onglets
+subscriptions=Abonnements
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=Vous avez souscrit à un abonnement à %1$S via Snowl !
new file mode 100644
--- /dev/null
+++ b/locale/fr/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Aide pour la recherche">
+<!ENTITY search.caption "Guide des messages de recherche">
+<!ENTITY search.header1 "La recherche est basée sur la recherche de texte intégral SQLite (« Full Text Search ») et ses limites.">
+<!ENTITY search.header2 "Syntaxe valide :">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Recherche tous les éléments commençant par « foo », par exemple « foo » et « foobar ».">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Recherche tous les éléments contenant exactement par « foo », par exemple « foo » mais pas « foobar ».">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Recherche tous les éléments avec « foo » ET « bar ».">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Recherche tous les éléments avec « foo » OU « bar ».">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Recherche tous les éléments avec « foo » ET « bar » mais SANS « baz ».">
+<!ENTITY search.example6 ".">
+<!ENTITY search.explanation6 "Notez : il ne peut y avoir qu'UN SEUL terme négatif et il doit le DERNIER élément de la chaîne de requête.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Recherche tous les éléments dans lesquels « foo » est PRÈS DE « bar », ce qui veut dire dans un rayon de N mots autour de « bar ». Les valeurs correctes de N sont comprises entre 0 et 9 (par défaut 10 si N est laissé vide).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Récupère tous les éléments dans lesquels « foo » est proche à deux mots près de « bar » et « bar » dans un rayon de dix mots autour de « bazz biff ».">
+<!ENTITY search.header3 "Les erreurs de syntaxe sont indiquées par un arrière-plan rouge.">
+<!ENTITY search.header4 "Syntaxe non valide :">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Le caractère de remplacement (joker) est invalide">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Les espaces en tête ou en fin de chaîne citée sont invalides">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Les symboles alphanumériques ne sont pas valides dans les chaînes hors-citation.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Les chaînes citées ne peuvent être exclues">
+<!ENTITY search.header5 "La recherche des symboles dans les chaînes citées a retourné des résultats inattendus. De plus, les caractères jokers ne sont pas pris en charge dans les mots.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Trouve 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Trouve 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Trouve 'foo b r', 'foo b=r', etc. mais pas 'foo bar'.">
new file mode 100644
--- /dev/null
+++ b/locale/fr/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText=Collections
+searchMessagesEmptyText=Messages
--- a/locale/fr/sources.dtd
+++ b/locale/fr/sources.dtd
@@ -1,3 +1,1 @@
-<!ENTITY page.title "Snowl : sources de messages">
-<!ENTITY nameCol.label "Nom">
-<!ENTITY closeButton.label "Fermer">
+<!ENTITY subscribeUsing.label "S'enregistrer en utilisant :">
new file mode 100644
--- /dev/null
+++ b/locale/fr/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Abonnez-vous maintenant
+chooseApplicationMenuItem=Choisir une application…
+chooseApplicationDialogTitle=Choisir une application
+alwaysUse=Toujours utiliser
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=Toujours utiliser %S pour s'abonner aux flux.
+alwaysUseForAudioPodcasts=Toujours utiliser %S pour s'abonner aux podcasts.
+alwaysUseForVideoPodcasts=Toujours utiliser %S pour s'abonner aux podcasts vidéo.
+subscribeFeedUsing=S'abonner en utilisant
+subscribeAudioPodcastUsing=S'abonner en utilisant
+subscribeVideoPodcastUsing=S'abonner en utilisant
--- a/locale/fr/toolbar.dtd
+++ b/locale/fr/toolbar.dtd
@@ -1,5 +1,10 @@
 <!ENTITY subscribeButton.tooltip "S'abonner aux sources de messages.">
 <!ENTITY unsubscribeButton.tooltip "Se désabonner pour les sources de messages choisies.">
 <!ENTITY refreshButton.tooltip "Actualiser toutes les sources de messages.">
 <!ENTITY exportButton.tooltip "Exporter les sources de messages sous forme d'OPML.">
+<!ENTITY unreadButton.tooltip "Afficher les messages nouveaux et non lus des collections sélectionnées">
+<!ENTITY flaggedButton.tooltip "Afficher les messages marqués pour les collections sélectionnées">
+<!ENTITY listToolbarButton.tooltip "Afficher/masquer la barre d'outils">
 <!ENTITY writeButton.tooltip "Écrire un message.">
+<!ENTITY showDeletedButton.tooltip "Afficher les messages supprimés des collections sélectionnées.">
+<!ENTITY purgeDeletedButton.tooltip "Éliminer tous les messages supprimés des collections sélectionnée">
--- a/locale/fr/utils.properties
+++ b/locale/fr/utils.properties
@@ -1,21 +1,31 @@
 unknownDate=Inconnue
 monday=Lundi
 tuesday=Mardi
 wednesday=Mercredi
 thursday=Jeudi
 friday=Vendredi
 saturday=Samedi
 sunday=Dimanche
+# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
+
+# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
+
 yesterdayTime=Hier %S
 future=Dans le futur
 evening=Soirée
 afternoon=Après-midi
 morning=Matin
+# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
+
+# of the morning.  Snowls uses this expression to describe the hours between
+
+# midnight and six in the morning (i.e. 00:00 - 06:00).
+
 weeHours=En pleine nuit
 today=Aujourd'hui
 yesterday=Hier
 older=Plus tard
 weekOne=Semaine 1
 weekTwo=Semaine 2
 weekThree=Semaine 3
 weekFour=Semaine 4
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/about.properties
@@ -0,0 +1,45 @@
+# LOCALIZATION NOTE: description found in Addons list when selected and About
+
+#extensions.snowl@mozilla.org.description = Conversations redelivered
+
+# XXX Is there a better way to localize the attribution string?  Perhaps we
+
+# could stick the content in an XHTML file that gets localized, and then we
+
+# could load the localized version in an iframe inside the About dialog?
+
+# LOCALIZATION NOTE: The attribution string is static but includes links
+
+# to the icons and licenses it references, so we use a property to construct it.
+
+#   %1$S = link to the silk icon set
+
+#   %2$S = link to the Creative Commons Attribution 2.5 License
+
+#   %3$S = link to the OPML Icon Project
+
+#   %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
+
+contributors1=De measte ikoantsjes binne fan de %1$S, lisinsearre ûnder in %2$S. It OPML ikoantsje is fan %3$S, lisinsearre ûnder in %4$S.
+#contributors2       = The OPML icon is from %1$S, licensed under a %2$S.
+
+# XXX Should any of these be localized, or is it important to use their
+
+# original names?
+
+silkIconSetName=Silk ikoanenset troch famfamfam
+ccA25LicenseName=Creative Commons Attribution 2.5 Lisinsje
+opmlIconProjectName=OPML Ikoanprojekt
+ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 Lisinsje
+# LOCALIZATION NOTE: These URLs are here because it seems better than
+
+# hardcoding them in the script that constructs the attribution string,
+
+# but they probably shouldn't be localized (unless perhaps the pages
+
+# referenced have localized versions).
+
+silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
+ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/
+opmlIconProjectURL=http://opmlicons.com/
+ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/browser.dtd
@@ -0,0 +1,64 @@
+<!-- The Tools > Snowl menu. -->
+<!ENTITY snowlMenu.label "Snowl">
+<!ENTITY snowlMenu.accesskey "w">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY listView.label "List">
+<!ENTITY listView.accesskey "l">
+<!ENTITY riverView.label "Rivier">
+<!ENTITY riverView.accesskey "R">
+<!ENTITY streamView.label "Stream">
+<!ENTITY streamView.accesskey "t">
+<!ENTITY checkForNewMessages.label "Kontrolearje op nije berjochten">
+<!ENTITY checkForNewMessages.accesskey "c">
+<!ENTITY subscribe.label "Abonnearje...">
+<!ENTITY subscribe.accesskey "b">
+<!ENTITY importOPML.label "Ymportearje OPML...">
+<!ENTITY importOPML.accesskey "y">
+<!ENTITY exportOPML.label "Eksportearje OPML...">
+<!ENTITY exportOPML.accesskey "k">
+<!ENTITY options.label "Opsjes">
+<!ENTITY options.accesskey "O">
+<!ENTITY rebuildDB.label "Plakken database op 'e nij opboue">
+<!ENTITY rebuildDB.accesskey "d">
+<!-- These labels and access keys are for items in the View > Sidebar menu,
+   - where the user needs more context that these are for Snowl commands,
+   - since the sidebar menu also includes commands for non-Snowl functions. 
+-->
+<!ENTITY listViewSidebarMenuItem.label "Berjochtkolleksjes">
+<!ENTITY listViewSidebarMenuItem.accesskey "l">
+<!ENTITY listViewSidebar.label "Berjochtkolleksjes">
+<!ENTITY streamViewSidebarMenuItem.label "Berjochtstream">
+<!ENTITY streamViewSidebarMenuItem.accesskey "t">
+<!ENTITY streamViewSidebar.label "Berjochtstream">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY snowlLayoutMenu.label "Layouts">
+<!ENTITY snowlLayoutMenu.accesskey "y">
+<!ENTITY layoutClassic.label "Klassyk">
+<!ENTITY layoutClassic.accesskey "K">
+<!ENTITY layoutVertical.label "Fertikaal">
+<!ENTITY layoutVertical.accesskey "F">
+<!ENTITY layoutWideMessage.label "Breed berjocht">
+<!ENTITY layoutWideMessage.accesskey "b">
+<!ENTITY layoutWideThread.label "Brede list">
+<!ENTITY layoutWideThread.accesskey "l">
+<!ENTITY layoutStacked.label "Stapele">
+<!ENTITY layoutStacked.accesskey "S">
+<!ENTITY showHeader.label "Toan kop">
+<!ENTITY showHeader.accesskey "k">
+<!ENTITY wrapHeader.label "Alle koppen gearfetsje">
+<!ENTITY wrapHeader.accesskey "A">
+<!ENTITY toolbar.label "Sidebalke-arkbalke">
+<!ENTITY toolbar.accesskey "d">
+<!-- These labels and access keys are for toolbar buttons -->
+<!ENTITY toggleList.label "Snowl wiksel listbyld">
+<!ENTITY toggleList.tooltip "Wiksel listbyld">
+<!ENTITY toggleStream.label "Snowl wiksel streambyld">
+<!ENTITY toggleStream.tooltip "Wiksel streambyld">
+<!ENTITY toggleRiver.label "Snowl wiksel rivierbyld">
+<!ENTITY toggleRiver.tooltip "Wiksel rivierbyld">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/collections.dtd
@@ -0,0 +1,36 @@
+<!ENTITY nameCol.label "Namme">
+<!-- Collections contextmenu -->
+<!ENTITY markRead.label "Markearje as lêzen">
+<!ENTITY markRead.accesskey "l">
+<!ENTITY markAllRead.label "Markearje alles as lêzen">
+<!ENTITY refresh.label "Boarne ferfarske">
+<!ENTITY refresh.accesskey "f">
+<!ENTITY refreshAll.label "Alle boarnen ferfarske">
+<!ENTITY refreshAll.accesskey "A">
+<!ENTITY pause.label "Ferfarskjen pausearje">
+<!ENTITY pause.accesskey "p">
+<!ENTITY pauseAll.label "Al it ferfarskjen pausearje">
+<!ENTITY resume.label "Trochgean mei ferfarskjen">
+<!ENTITY resume.accesskey "m">
+<!ENTITY resumeAll.label "Trochgean mei al it ferfarskjen">
+<!ENTITY removeSource.label "Boarne fuortsmite">
+<!ENTITY removeSource.accesskey "f">
+<!ENTITY removeAuthor.label "Auteur fuortsmite">
+<!ENTITY removeAuthor.accesskey "u">
+<!ENTITY newView.label "Nij byld...">
+<!ENTITY newView.accesskey "N">
+<!ENTITY removeView.label "Byld fuortsmite">
+<!ENTITY removeView.accesskey "y">
+<!ENTITY view.label "Byld:">
+<!ENTITY view.accesskey "B">
+<!ENTITY viewDefault.label "Standert">
+<!ENTITY viewSources.label "Boarnen">
+<!ENTITY viewAuthors.label "Auteurs">
+<!ENTITY search.label "Sykje:">
+<!ENTITY search.accesskey "S">
+<!ENTITY searchMessages.label "Berjochten">
+<!ENTITY searchMessages.accesskey "B">
+<!ENTITY searchCollections.label "Kolleksjes">
+<!ENTITY searchCollections.accesskey "K">
+<!ENTITY searchHelp.label "Help">
+<!ENTITY searchHelp.accesskey "H">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/datastore.properties
@@ -0,0 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
+allCollectionName=Alle berjochten
+sourcesCollectionName=Alle boarnen
+authorsCollectionName=Alle auteurs
+customCollectionName=Oanpast
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg=Fernij Snowl Plakken
+rebuildPlacesDialogMsg=De Snowl Plakken database sil fernijd wurde, troch in fernijing, database werstel of brûkersfersyk.   Dit kin in pear minuten duorje ôfhinklik fan de grutte fan jo database.  Foartgong fan elk konvertearre item is toand yn de steatbalke.
+rebuildPlacesStarted=Fernijing Plakkendatabase starten...
+rebuildPlacesConverted=Konvertearre nei Plakken:
+rebuildPlacesCompleted=Fernijing Plakkendatabase dienmakke
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg=Snowl plakken auteurs opnij meitsje
+rebuildPlacesAuthorDialogMsg=Der binne %1$S auteurgegevens yn de database. Wolle jo in auteurskolleksje meitsje? In auteurskolleksje kin altyd makke wurde as de Snowl plakken database opnij makke wurd.
+# New View title for dialog
+
+newViewTitle=Nij byld
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg=Boarne fuortsmite
+removeSourceDialogMsg=As jo dizze boarne fuortsmite sil de boarne en al syn auteurs en berjochten permanint fuortsmiten wurde.
+removeAuthorTitleMsg=Auteur fuortsmite
+removeAuthorDialogMsg=As jo dizze auteur  fuortsmite sil de auteur en al syn berjochten permanint fuortsmiten wurde.
+removeViewTitleMsg=Byld fuortsmite
+removeViewDialogMsg=Befestigje it fuortsmiten fan dit byld.
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/date.js
@@ -0,0 +1,145 @@
+/**
+ * @version: 1.0 Alpha-1
+ * @author: Coolite Inc. http://www.coolite.com/
+ * @date: 2008-05-13
+ * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
+ * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
+ * @website: http://www.datejs.com/
+ */
+Date.CultureInfo={name:"fy-NL",englishName:"Frisian (Frisian )",nativeName:"Frysk (Nederlân)",dayNames:["snein","maondei","tiisdei","woansdei","tongersdei","freed","sneon"],abbreviatedDayNames:["si","mo","ti","wo","to","fr","so"],shortestDayNames:["si","mo","ti","wo","to","fr","so"],firstLetterDayNames:["s","m","t","w","t","f","z"],monthNames:["jannewaris","febrewaris","maart","april","maaie","juny","july","augustus","septimber","oktober","novimber","desimber"],abbreviatedMonthNames:["jan","feb","mrt","apr","mai","jun","jul","aug","sep","okt","nov","des"],amDesignator:"",pmDesignator:"",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"d-M-yyyy",longDate:"dddd d MMMM yyyy",shortTime:"H:mm",longTime:"H:mm:ss",fullDateTime:"dddd d MMMM yyyy H:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"dd MMMM",yearMonth:"MMMM yyyy"},regexPatterns:{jan:/^jan(newaris)?/i,feb:/^feb(rewaris)?/i,mar:/^maart/i,apr:/^apr(il)?/i,may:/^maa(ie)/i,jun:/^jun(y)?/i,jul:/^jul(y)?/i,aug:/^aug(ustus)?/i,sep:/^sep(t(imber)?)?/i,oct:/^okt(ober)?/i,nov:/^nov(imber)?/i,dec:/^des(imber)?/i,sun:/^snein/i,mon:/^moandei/i,tue:/^tiisdei/i,wed:/^woansdei/i,thu:/^tongersdei/i,fri:/^freed/i,sat:/^sneon/i,future:/^folgjende/i,past:/^lêste|foarige|foar(ige)?/i,add:/^(\+|nei|fan|hence)/i,subtract:/^(\-|foar|fer(lyn)?)/i,yesterday:/^jus(ter)?/i,today:/^h(jo(ed)?)?/i,tomorrow:/^mo(arn)?/i,now:/^n(o)?/i,millisecond:/^ms|milli(sekonde)?s?/i,second:/^sek(onde)?s?/i,minute:/^mn|min(út)?s?/i,hour:/^o(ere)?s?/i,week:/^w(ike)?s?/i,month:/^m(oanne)?s?/i,day:/^d(ei)?s?/i,year:/^j(ier)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
+return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
+return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
+return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
+return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
+return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
+var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
+if(x.seconds){this.addSeconds(x.seconds);}
+if(x.minutes){this.addMinutes(x.minutes);}
+if(x.hours){this.addHours(x.hours);}
+if(x.weeks){this.addWeeks(x.weeks);}
+if(x.months){this.addMonths(x.months);}
+if(x.years){this.addYears(x.years);}
+if(x.days){this.addDays(x.days);}
+return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
+g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
+$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
+return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
+if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
+if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
+if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
+if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
+if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
+if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
+if(config.timezone){this.setTimezone(config.timezone);}
+if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
+if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
+return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
+else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
+return this;}
+return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
+return'"'+this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z"';};}
+$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
+var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
+x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
+return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
+return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
+if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
+this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
+return this;}
+return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
+return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
+var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
+return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
+var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
+if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
+if(k==v){break;}}
+return true;}
+if(j.substring(j.length-1)!="s"){j+="s";}
+return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
+$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
+if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
+this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
+return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
+(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
+break;}
+return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
+return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
+throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
+return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
+if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){r=null;}
+if(r){return r;}}
+throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
+return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
+rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
+s=q[1];}
+if(!r){throw new $P.Exception(s);}
+if(q){throw new $P.Exception(q[1]);}
+if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
+return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
+rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
+if(!last&&q[1].length===0){last=true;}
+if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
+p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
+if(rx[1].length<best[1].length){best=rx;}
+if(best[1].length===0){break;}}
+if(best[0].length===0){return best;}
+if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
+best[1]=q[1];}
+return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
+return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
+if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
+var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
+return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
+var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
+if(!this.year){this.year=now.getFullYear();}
+if(!this.month&&this.month!==0){this.month=now.getMonth();}
+if(!this.day){this.day=1;}
+if(!this.hour){this.hour=0;}
+if(!this.minute){this.minute=0;}
+if(!this.second){this.second=0;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
+var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
+return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
+for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
+var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
+var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
+if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
+if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
+this.year=temp.getFullYear();}
+if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
+if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
+if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
+if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
+if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
+if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
+if(!this.unit){this.unit="day";}
+if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
+this[this.unit+"s"]=this.value*orient;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
+if((this.month||this.month===0)&&!this.day){this.day=1;}
+if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
+if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
+return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
+fn=_C[keys]=_.any.apply(null,px);}
+return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
+return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
+return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
+if(s instanceof Date){return s;}
+try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/filterTextbox.dtd
@@ -0,0 +1,1 @@
+<!ENTITY filterTextbox.emptytext "Sykje berjochten">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Starte mei Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "Jo hawwe krekt Snowl ynstallearre, in eksperiment yn kommunisearje yn de browser.">
+<!ENTITY snowl.firstrun.access.tips "Iepenje Snowl fia it <code>Ekstra &gt; Snowl</code> menu of de Snowlknop <img src='chrome://snowl/content/icons/snowl-16.png'/> yn de linkerûnderhoeke fan jo browserskerm.">
+<!ENTITY snowl.firstrun.buttons "Foegje knoppen ta oan jo arkbalken foar flugger tagong ta Snowl opsjes fia de <code>Byld &gt; Arkbalken &gt; Oanpasse…</code> menu-opsje.">
+<!ENTITY snowl.firstrun.suscribe.howto "Abonnearje op feeds troch te klikken op it feedikoantsje <img src='chrome://browser/skin/feeds/feedIcon16.png'/> dy't ferskynt yn de Firefox adresbalke as jo in side besykje mei in feed.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Abonnearje o-p Twitter of ymportearje in OPML-bestân fia it <code>Ekstra &gt; Snowl</code> menu of de Snowlknop <img src='chrome://snowl/content/icons/snowl-16.png'/> yn de linkerûnderhoeke fan jo browserskerm.">
+<!ENTITY snowl.firstrun.read.messages "Lês berjochten yn de <a href='&link.to.river;'>rivier</a>, <a href='&link.to.stream;'>stream</a> en <a href='&link.to.list;'>list </a> bylden.">
+<!ENTITY snowl.firstrun.write.messages "Skriuw in berjocht troch te kliken op de skriuwknop <img src='chrome://snowl/content/icons/email_add.png' /> yn elk byld.">
+<!ENTITY snowl.firstrun.get.involved "Doch mei!">
+<!ENTITY snowl.a.learn.more.about.snowl "Lear mear oer Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "fertel ús wat jo tinke">
+<!ENTITY snowl.a.browse.bug.reports "blêdzje troch bugreports">
+<!ENTITY snowl.a.report.a.bug "rapportearje in bug">
+<!ENTITY snowl.a.check.out.the.source "kontrolearje de boarne">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/list.dtd
@@ -0,0 +1,17 @@
+<!ENTITY page.title "Snowl">
+<!ENTITY sourceCol.label "Boarne">
+<!ENTITY authorCol.label "Auteur">
+<!ENTITY subjectCol.label "Underwerp">
+<!ENTITY timestampCol.label "Datum">
+<!ENTITY datereceivedCol.label "Untfongen gegevens">
+<!ENTITY readCol.label "Lêzen">
+<!ENTITY flaggedCol.label "Flagge">
+<!ENTITY sortBy.label "Sortearre op">
+<!ENTITY openListMessage.label "Iepen berjocht">
+<!ENTITY openListMessage.accesskey "I">
+<!ENTITY selectAll.label "Selektearje alles">
+<!ENTITY selectAll.accesskey "S">
+<!ENTITY deleteMessages.label "Selektearre berjochten fuortsmite">
+<!ENTITY deleteMessages.accesskey "f">
+<!ENTITY undeleteMessages.label "Selektearre berjochten tebeksette">
+<!ENTITY undeleteMessages.accesskey "t">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/login.dtd
@@ -0,0 +1,6 @@
+<!ENTITY dialog.title "Autentikaasje nedich">
+<!ENTITY realm.label "De boarne seit:">
+<!ENTITY username.label "Brûkersnamme:">
+<!ENTITY password.label "Wachtwurd:">
+<!ENTITY showPassword.label "Toan wachtwurd:">
+<!ENTITY rememberPassword.label "Unthâld dit wachtwurd as it goed is">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/login.properties
@@ -0,0 +1,14 @@
+# LOCALIZATION NOTE: The next two strings are for the message that prompts
+
+# the user to enter their username and password to access a source.
+
+# 
+
+#   %1$S = name (f.e. Planet Mozilla)
+
+#   %2$S = URL (f.e. http://planet.mozilla.org/)
+
+namedSourcePrompt=De boarne %1$S <%2$S> freget in brûkersnamme en wachtwurd.
+#   %S = URL (f.e. http://planet.mozilla.org/)
+
+namelessSourcePrompt=De boarne %S freget in brûkersnamme en wachtwurd.
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/message.dtd
@@ -0,0 +1,12 @@
+<!ENTITY author.label "Auteur:">
+<!ENTITY author.accesskey "A">
+<!ENTITY subject.label "Underwerp:">
+<!ENTITY subject.accesskey "S">
+<!ENTITY timestamp.label "Satum:">
+<!ENTITY link.label "Keppeling:">
+<!ENTITY pinButton.label "Pinkop">
+<!ENTITY pinButton.tooltip "Wiksel pin om om permaninte kop yn/út te stellen">
+<!ENTITY toggleHeader.label "Wiksle kop">
+<!ENTITY toggleHeader.tooltip "Wiksel berjochtkop nei koart, basis of folslein">
+<!ENTITY deleteMessagesButton.label "Berjocht fuortsmite">
+<!ENTITY deleteMessagesButton.tooltip "Dit berjocht fuortsmite">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/message.properties
@@ -0,0 +1,15 @@
+# Display page for message whose source has been unsubscribed or otherwise
+
+# cannot be found in the database.
+
+messageNotFound=It berjocht is fuortsmiten of kin net fûn wurde (id: %1$S).
+messageNotFoundTitle=Berjocht %1$S net fûn
+# Keyboard keys for actions on message(s) in the message list.  Must be one char
+
+# corresponding to a keyboard key.
+
+messageDelete=d
+messageUndelete=u
+messageMarkRead=r
+messageMarkAllRead=R
+messageMarkFlagged=f
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Ungedien meitsje">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/opml.properties
@@ -0,0 +1,22 @@
+# The title of the file picker dialog through which the user picks the name
+
+# and location of the exported file.
+
+filePickerTitle=Eksportearje boarnen as OPML bestân
+# The title of the file filter that restricts the set of files shown in
+
+# the file picker dialog to OPML files (i.e. those with .opml extensions).
+
+opmlFilterTitle=OPML bestannen
+# The default name for the file in the file picker dialog.
+
+# Note: this string includes both the name (sources) and the extension (.opml),
+
+# but only the name should be localized.  The extension should remain the same
+
+# across all locales.
+
+defaultFilename=boarnen.opml
+# The title of the OPML document generated by the exporter.
+
+documentTitle=Snowl boarnen
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/preferences.dtd
@@ -0,0 +1,58 @@
+<!-- Subscribe pane -->
+<!ENTITY subscribe.title "Abonnearje">
+<!ENTITY source.label "Abonnearje op in berjochtboarne">
+<!ENTITY feeds.label "Feed">
+<!ENTITY feeds.accesskey "F">
+<!ENTITY twitter.label "Twitter">
+<!ENTITY twitter.accesskey "T">
+<!ENTITY location.label "Lokaasje:">
+<!ENTITY name.label "Namme:">
+<!ENTITY subscribeButton.label "Abonnearje">
+<!ENTITY subscribeButton.accesskey "A">
+<!ENTITY closeButton.label "Tebek">
+<!ENTITY closeButton.accesskey "T">
+<!ENTITY clearButton.label "Wiskje">
+<!ENTITY clearButton.accesskey "W">
+<!-- This is used by subscribe.xul, which also uses this DTD file. -->
+<!ENTITY page.title "Snowl: Abonnearje op berjochtboarne">
+<!-- Customize pane -->
+<!ENTITY settings.title "Oanpasse">
+<!ENTITY settings.label "Standert ynstellings oanpasse foar in berjochtboarnetype">
+<!-- The entities below are commented out because they aren't being used yet,
+   - and they may change before we start using them, so don't localize them. 
+-->
+<!ENTITY mail.label "E-mail">
+<!ENTITY mail.accesskey "E">
+<!ENTITY newsgroup.label "Nijsgroep">
+<!ENTITY newsgroup.accesskey "N">
+<!-- General pane -->
+<!ENTITY general.title "Algemien">
+<!-- Subscriptions pane -->
+<!ENTITY subscriptions.title "Abonneminten">
+<!-- Organize pane -->
+<!ENTITY organize.title "Organisearje">
+<!-- Refresh and Retention panel entities, currently used by Properties dialog -->
+<!ENTITY refresh.label "Ferfarskje">
+<!ENTITY refreshText.label "De ferfarskynterval kin oanpast wurde">
+<!ENTITY refreshMinutes.label "Ferfarsk elke">
+<!ENTITY refreshMinutes.accesskey "F">
+<!ENTITY minutes.label "minuten">
+<!ENTITY refreshStatus.label "Aktuele ferfarskferbining steat foar dizze boarne.">
+<!ENTITY refreshState.label "Steat:">
+<!ENTITY refreshDate.label "Lêste ferfarsking:">
+<!ENTITY refreshCode.label "Lêste flaterkoade:">
+<!ENTITY refreshError.label "Lêste flaterberjocht:">
+<!ENTITY retention.label "Behâld">
+<!ENTITY retentionCleanup.label "Messages can be deleted according to the following rules.">
+<!ENTITY retentionUseType.label "Use default setting for this message type">
+<!ENTITY retentionUseType.accesskey "d">
+<!ENTITY retentionKeepAll.label "Don't delete any messages">
+<!ENTITY retentionKeepAll.accesskey "n">
+<!ENTITY retentionKeepRecent.label "Delete all but the most recent">
+<!ENTITY retentionKeepRecent.accesskey "r">
+<!ENTITY message.label "berjochten">
+<!ENTITY retentionDeleteMsg.label "Delete messages older than">
+<!ENTITY retentionDeleteMsg.accesskey "o">
+<!ENTITY daysOld.label "dagen">
+<!ENTITY retentionKeepFlagged.label "Always keep flagged messages">
+<!ENTITY retentionKeepFlagged.accesskey "k">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/preferences.properties
@@ -0,0 +1,18 @@
+title=Snowl foarkarren
+titleWindows=Snowl opsjes
+# Status messages when subscribing
+
+messageConnecting=Ferbining...
+messageDuplicate=Jo binne al abonnearre op dizze berjochtboarne.
+messageInvalid=De lokaasje dy't jo opjoegen wurdt net werkend.
+messageInvalidLoginData=Jo moatte in brûkersnamme en wachtwurd opjaan om te abonnearjen op dizze brjochtboarne.
+messageConnectionError=Der is in flater bard troch it ferbinen mei dizze berjochtboarne. Kontrolearje asjobleaft de lokaasje en besykje it op 'e nij.
+messagePassword=Jo gegevens wurde net akseptearre. Kontrolearje asjobleaft jo brûkersnamme en wachtwurd en probearje nochris.
+messageDbBusy=De Database is tiidlik dwaande.  Besykje it letter asjobleaft nochris as alle boarnen klear binne mei ferfarskjen.
+messageConnected=Ferbûn.
+messageGettingMessages=Berjochten krije...
+messageSuccess=Jo binne súksesfol abonnearre op dizze berjochtboarne.
+messageGenericError=Der is in flater bard mei it dienmeitsjen fan it abonnearjen op dizze berjochtboarne. Flater:%1$S.
+# Customize panel
+
+settingsDefaultText=Altyd de standert brûke en oanpaste ynstellings net brûke
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/river.dtd
@@ -0,0 +1,9 @@
+<!ENTITY page.title "Snowl: Rivier fan berjochten">
+<!ENTITY bodyButton.tooltip "Toan berjocht gearfetting/ynhâld">
+<!ENTITY orderButton.tooltip "Draai de folchoarder fan de berjochten om.">
+<!ENTITY columnsButton.tooltip "Toan de berjochten yn kolommen.">
+<!ENTITY decrementPeriodButton.tooltip "Foarige dei">
+<!ENTITY incrementPeriodButton.tooltip "Folgjende dei">
+<!ENTITY periodDay.label "Dei">
+<!ENTITY periodWeek.label "Wike">
+<!ENTITY periodMonth.label "Moanne">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Oare ljepblêden
+subscriptions=Abonneminten
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=Jo hawwe jo abonnearre op %1$S yn Snowl!
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Sykhelp">
+<!ENTITY search.caption "Sykje berjochtengids">
+<!ENTITY search.header1 "Sykjen is basearre op SQLLite's Full Text Search (FTS) mooglikheden en beheinings.">
+<!ENTITY search.header2 "Falide syntaks:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Lyk oan alle items begjinnend mei 'foo'; sawol 'foo' en 'foobar'.">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Lyk oan alle items mei eksakt 'foo'; sawol 'foo' en 'foobar'.">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Lyk oan alle items mei sawol 'foo' en 'foobar'.">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Lyk oan alle items mei of 'foo' of 'foobar'.">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Lyk oan alle items mei 'foo' EN 'bar' mar net 'baz'.">
+<!ENTITY search.example6 ".">
+<!ENTITY search.explanation6 "Let op: der kin mar IEN oerlizterm wêze en it moat de LÊSTE term yn de sykopdracht wêze.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Lyk oan alle items wêr't 'foo' is tichtby 'bar', wat betsjut mei N wurden of 'bar'. Falide weardenfoar N binne 0-9 (standert is 10 as N blanko is).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Lyk oan alle items wêr't 'foo' is yn 2 wurden of 'bar' en 'bar' is yn 10 wurden fan &quot;baz biff&quot;.">
+<!ENTITY search.header3 "Syntaksflaters wurde oanjûn mei in reade eftergrûn.">
+<!ENTITY search.header4 "Ynfalide syntaks:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Joker foarheaksel is ynfalide.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Foar- en neirinnende spaasjes binne ynfalide yn in oanhelle tekst.">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Net alfanûmerike symboalen binne ynfalide yn net-oanhelle tekst.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Oanhelle tekst kin net negearre wurde.">
+<!ENTITY search.header5 "Sykje nei symboalen yn oanhelle tekst jout net-ferwachte resultaten. Fierder, jokers wurde net stipe binnen wurden.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Finds 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Finds 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Finds 'foo b r', 'foo b=r', etc. but not 'foo bar'.">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText=Kolleksjes
+searchMessagesEmptyText=Berjochten
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/sources.dtd
@@ -0,0 +1,1 @@
+<!ENTITY subscribeUsing.label "Abonnearje mei:">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/stream.dtd
@@ -0,0 +1,1 @@
+<!ENTITY page.title "Snowl berjochtestream">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Abonnearje no
+chooseApplicationMenuItem=Kies applikaasje...
+chooseApplicationDialogTitle=Kies applikaasje
+alwaysUse=Brûk altyd
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=Altyd %S brûke om te abonnearjen op feeds.
+alwaysUseForAudioPodcasts=Altyd %S brûke om te abonnearjen op podcasts.
+alwaysUseForVideoPodcasts=Altyd %S brûke om te abonnearjen op fideopodcasts.
+subscribeFeedUsing=Abonnearje mei
+subscribeAudioPodcastUsing=Abonnearje mei
+subscribeVideoPodcastUsing=Abonnearje mei
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/toolbar.dtd
@@ -0,0 +1,10 @@
+<!ENTITY subscribeButton.tooltip "Abonnearje op berjochtboarnen.">
+<!ENTITY unsubscribeButton.tooltip "Abonnemint opsizze op selektearre berjochtboarnen.">
+<!ENTITY refreshButton.tooltip "Ferfarsk alle berjochtboarnen.">
+<!ENTITY exportButton.tooltip "Eksportearje berjochtboarnen as OPML.">
+<!ENTITY unreadButton.tooltip "Toan nije en net-lêzen berjochten foar selektearre kolleksjes.">
+<!ENTITY flaggedButton.tooltip "Toan berjochten mei in flagge foar selektearre kolleksjes.">
+<!ENTITY listToolbarButton.tooltip "Wiksel byld arkbalke.">
+<!ENTITY writeButton.tooltip "Skriuw in berjocht.">
+<!ENTITY showDeletedButton.tooltip "Toan fuortsmiten berjochten foar selektearre kolleksjes.">
+<!ENTITY purgeDeletedButton.tooltip "Smit alle fuortsmiten berjochten fan selektearre kolleksjes folslein fuort.">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/utils.properties
@@ -0,0 +1,31 @@
+unknownDate=net bekend
+monday=Moandei
+tuesday=Tiisdei
+wednesday=Woansdei
+thursday=Tongersdei
+friday=Freed
+saturday=Sbeon
+sunday=Snein
+# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
+
+# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
+
+yesterdayTime=Juster %S
+future=De takomst
+evening=Jûn
+afternoon=Middeis
+morning=Moarns
+# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
+
+# of the morning.  Snowls uses this expression to describe the hours between
+
+# midnight and six in the morning (i.e. 00:00 - 06:00).
+
+weeHours=Moarns betiid
+today=Hjoed
+yesterday=Juster
+older=Alder
+weekOne=Wike ien
+weekTwo=Wike twa
+weekThree=Wike trije
+weekFour=Wike fjouwer
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/write.dtd
@@ -0,0 +1,1 @@
+<!ENTITY sendButton.label "Ferstjoer">
new file mode 100644
--- /dev/null
+++ b/locale/fy-NL/write.properties
@@ -0,0 +1,3 @@
+sendButton.label=Ferstjoer
+sendButton.label.sending=Underweis...
+sendButton.label.sent=Ferstjoerd
--- a/locale/hu-HU/message.dtd
+++ b/locale/hu-HU/message.dtd
@@ -2,11 +2,11 @@
 <!ENTITY author.accesskey "S">
 <!ENTITY subject.label "Tárgy:">
 <!ENTITY subject.accesskey "T">
 <!ENTITY timestamp.label "Dátum:">
 <!ENTITY link.label "Hivatkozás:">
 <!ENTITY pinButton.label "Fejléc kitűzése">
 <!ENTITY pinButton.tooltip "Megjeleníti vagy eltávolítja a fejlécet">
 <!ENTITY toggleHeader.label "Fejléc váltása">
-<!ENTITY toggleHeader.tooltip "Fejléc váltása rövid, alap és teljes nézet között; az alap és a teljes nézetnél a magasságbeállítások mentésre kerülnek.">
+<!ENTITY toggleHeader.tooltip "Fejléc váltása rövid, alap és teljes nézet között.">
 <!ENTITY deleteMessagesButton.label "Üzenet törlése">
 <!ENTITY deleteMessagesButton.tooltip "Kiválasztott üzenet törlése">
--- a/locale/hu-HU/search.dtd
+++ b/locale/hu-HU/search.dtd
@@ -1,26 +1,38 @@
 <!-- Search Help -->
 <!ENTITY search.title "Keresés súgó">
 <!ENTITY search.caption "Üzenetkereső segédlet">
 <!ENTITY search.header1 "A keresés az SQLite teljes szöveges keresésén alapszik (annak lehetőségeivel és korlátaival).">
 <!ENTITY search.header2 "Érvényes szintaxis:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
 <!ENTITY search.explanation1 "Illeszkedik a 'foo'-val kezdődő elemekre, így a 'foo'-ra és a 'foobar'-ra is.">
+<!ENTITY search.example2 "&quot;foo&quot;">
 <!ENTITY search.explanation2 "Csak a 'foo' elemekre illeszkedik, a 'foobar'-ra nem.">
 <!ENTITY search.example3 "foo bar">
 <!ENTITY search.explanation3 "Minden elemre illeszkedik ami 'foo' ÉS 'bar'.">
 <!ENTITY search.example4 "foo | bar">
 <!ENTITY search.explanation4 "Minden elemre illeszkedik ami 'foo' VAGY 'bar'.">
 <!ENTITY search.example5 "foo bar -baz">
 <!ENTITY search.explanation5 "Minden elemre illeszkedik ami 'foo' ÉS 'bar', de NEM 'baz'.">
 <!ENTITY search.example6 "">
 <!ENTITY search.explanation6 "Megjegyzés: csak EGYETLEN negáló feltétel lehet és annak az utolsónak kell lennie a keresési feltételben.">
 <!ENTITY search.example7 "foo ~N bar">
 <!ENTITY search.explanation7 "Illeszkedik minden elemre, ahol a 'foo' a 'bar' KÖZELÉBEN található N szón belül. Az N érték 0 és 9 között lehet (az alapértelmezett 10, ha az N nincs megadva).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
 <!ENTITY search.explanation8 "Illeszkedik minden elemre, ahol a 'foo' két 'bar' között van és 'bar' a ''baz biff''-től maximum 10 szóra található.">
 <!ENTITY search.header3 "A szintaktikai hiba piros háttérrel jelenik meg.">
 <!ENTITY search.header4 "Hibás szintaxis:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
 <!ENTITY search.explanation9 "A helyettesítő karakter előtagként való használata nem megengedett.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
 <!ENTITY search.explanation10 "Idézett szövegekben">
 <!ENTITY search.example11 ".foo-bar?">
 <!ENTITY search.explanation11 "A nem alfanumerikus szimbólumok használata nem megengedett a nem idézett szövegekben.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
 <!ENTITY search.explanation12 "Időzőjelbe tett szöveg nem negálható.">
 <!ENTITY search.header5 "Idézőjelbe tett szöveg keresése nem megfelelő eredménnyel zárult. Továbbá, a helyettesítő karakterek nem támogatottal a szavakon belül.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "'foo bar', 'foo-bar' keresése.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "'foo bar' keresése.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "'foo b r', 'foo b=r' stb., de nem a 'foo bar' keresése">
deleted file mode 100644
--- a/locale/ja-JP/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-attribution=\u5927\u90E8\u5206\u306E\u30A2\u30A4\u30B3\u30F3\u306F %1$S \u304B\u3089\u3001%2$S\u306E\u4E0B\u306B\u4F7F\u7528\u8A31\u8AFE\u3055\u308C\u3066\u3044\u307E\u3059\u3002OPML \u30A2\u30A4\u30B3\u30F3\u306F %3$S \u304B\u3089\u3001%4$S\u306E\u4E0B\u306B\u4F7F\u7528\u8A31\u8AFE\u3055\u308C\u3066\u3044\u307E\u3059\u3002
-silkIconSetName=famfamfam \u306B\u3088\u308B Silk Icons
-ccA25LicenseName=\u30AF\u30EA\u30A8\u30A4\u30C6\u30A3\u30D6\u30FB\u30B3\u30E2\u30F3\u30BA \u8868\u793A 2.5 \u30E9\u30A4\u30BB\u30F3\u30B9
-opmlIconProjectName=OPML Icon Project
-ccASA25LicenseName=\u30AF\u30EA\u30A8\u30A4\u30C6\u30A3\u30D6\u30FB\u30B3\u30E2\u30F3\u30BA \u8868\u793A-\u7D99\u627F 2.5 \u30E9\u30A4\u30BB\u30F3\u30B9
-silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
-ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/deed.ja
-opmlIconProjectURL=http://opmlicons.com/
-ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/deed.ja
deleted file mode 100644
--- a/locale/ja-JP/browser.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY riverView.label "メッセージの流れ">
-<!ENTITY riverView.accesskey "v">
-<!ENTITY listView.label "メッセージ一覧">
-<!ENTITY listView.accesskey "m">
-<!ENTITY sidebar.label "Snowl">
deleted file mode 100644
--- a/locale/ja-JP/collections.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY nameCol.label "名前">
-<!ENTITY subscribeButton.tooltip "メッセージ源を購読します。">
-<!ENTITY unsubscribeButton.tooltip "メッセージ源の購読を解除します。">
-<!ENTITY refreshButton.tooltip "メッセージ源を更新します。">
-<!ENTITY exportButton.tooltip "メッセージ源を OPML として書き出します。">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/datastore.properties
@@ -0,0 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
+allCollectionName= All Messages
+sourcesCollectionName= All Sources
+authorsCollectionName= All Authors
+customCollectionName= Custom
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg= Rebuild Snowl Places
+rebuildPlacesDialogMsg= The Snowl Places database will be rebuilt, due to an upgrade or database recovery or user request.   This may take a few minutes depending on the size of your database.  Progress of each converted item is shown in the statusbar.
+rebuildPlacesStarted= Rebuild Places Database started...
+rebuildPlacesConverted= Converted to Places:
+rebuildPlacesCompleted= Rebuild Places Database completed
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg= Rebuild Snowl Places Authors
+rebuildPlacesAuthorDialogMsg= There are %1$S Author records in the database.  Do you wish to create an Authors collection?  An Authors collection can be created at any time by rebuilding the Snowl Places database.
+# New View title for dialog
+
+newViewTitle= New View
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg= Remove Source
+removeSourceDialogMsg= Removing this source will permanently remove the source and all of its authors and messages.
+removeAuthorTitleMsg= Remove Author
+removeAuthorDialogMsg= Removing this author will permanently remove the author and all of the author's messages.
+removeViewTitleMsg= Remove View
+removeViewDialogMsg= Confirm removing this view.
deleted file mode 100644
--- a/locale/ja-JP/date.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * @version: 1.0 Alpha-1
- * @author: Coolite Inc. http://www.coolite.com/
- * @date: 2008-05-13
- * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
- * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
- * @website: http://www.datejs.com/
- */
-Date.CultureInfo={name:"ja-JP",englishName:"Japanese (Japan)",nativeName:"日本語 (日本)",dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],abbreviatedDayNames:["日","月","火","水","木","金","土"],shortestDayNames:["日","月","火","水","木","金","土"],firstLetterDayNames:["日","月","火","水","木","金","土"],monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],abbreviatedMonthNames:["1","2","3","4","5","6","7","8","9","10","11","12"],amDesignator:"午前",pmDesignator:"午後",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"ymd",formatPatterns:{shortDate:"yyyy/MM/dd",longDate:"yyyy'年'M'月'd'日'",shortTime:"H:mm",longTime:"H:mm:ss",fullDateTime:"yyyy'年'M'月'd'日' H:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"M'月'd'日'",yearMonth:"yyyy'年'M'月'"},regexPatterns:{jan:/^1(月)?/i,feb:/^2(月)?/i,mar:/^3(月)?/i,apr:/^4(月)?/i,may:/^5(月)?/i,jun:/^6(月)?/i,jul:/^7(月)?/i,aug:/^8(月)?/i,sep:/^9(月)?/i,oct:/^10(月)?/i,nov:/^11(月)?/i,dec:/^12(月)?/i,sun:/^日曜日/i,mon:/^月曜日/i,tue:/^火曜日/i,wed:/^水曜日/i,thu:/^木曜日/i,fri:/^金曜日/i,sat:/^土曜日/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
-return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
-return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
-return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
-return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
-return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
-var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
-if(x.seconds){this.addSeconds(x.seconds);}
-if(x.minutes){this.addMinutes(x.minutes);}
-if(x.hours){this.addHours(x.hours);}
-if(x.weeks){this.addWeeks(x.weeks);}
-if(x.months){this.addMonths(x.months);}
-if(x.years){this.addYears(x.years);}
-if(x.days){this.addDays(x.days);}
-return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
-g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
-$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
-return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
-if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
-if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
-if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
-if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
-if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
-if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
-if(config.timezone){this.setTimezone(config.timezone);}
-if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
-if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
-return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
-else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
-return this;}
-return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
-return'"'+this.getUTCFullYear()+'-'+
-f(this.getUTCMonth()+1)+'-'+
-f(this.getUTCDate())+'T'+
-f(this.getUTCHours())+':'+
-f(this.getUTCMinutes())+':'+
-f(this.getUTCSeconds())+'Z"';};}
-$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
-var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
-x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
-return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
-return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
-if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
-this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
-return this;}
-return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
-return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
-var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
-return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
-var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
-if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
-if(k==v){break;}}
-return true;}
-if(j.substring(j.length-1)!="s"){j+="s";}
-return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
-$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
-if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
-this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
-return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
-(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
-break;}
-return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
-return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
-throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
-return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
-if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){r=null;}
-if(r){return r;}}
-throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
-return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
-rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
-s=q[1];}
-if(!r){throw new $P.Exception(s);}
-if(q){throw new $P.Exception(q[1]);}
-if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
-return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
-rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
-if(!last&&q[1].length===0){last=true;}
-if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
-p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
-if(rx[1].length<best[1].length){best=rx;}
-if(best[1].length===0){break;}}
-if(best[0].length===0){return best;}
-if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
-best[1]=q[1];}
-return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
-return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
-if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
-var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
-return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
-var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
-if(!this.year){this.year=now.getFullYear();}
-if(!this.month&&this.month!==0){this.month=now.getMonth();}
-if(!this.day){this.day=1;}
-if(!this.hour){this.hour=0;}
-if(!this.minute){this.minute=0;}
-if(!this.second){this.second=0;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
-var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
-return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
-for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
-var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
-var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
-if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
-if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
-this.year=temp.getFullYear();}
-if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
-if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
-if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
-if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
-if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
-if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
-if(!this.unit){this.unit="day";}
-if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
-this[this.unit+"s"]=this.value*orient;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
-if((this.month||this.month===0)&&!this.day){this.day=1;}
-if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
-if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
-return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
-fn=_C[keys]=_.any.apply(null,px);}
-return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
-return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
-return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
-if(s instanceof Date){return s;}
-try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/filterTextbox.dtd
@@ -0,0 +1,1 @@
+<!ENTITY filterTextbox.emptytext "Search Messages">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Getting Started with Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "You've just installed Snowl, an experiment in messaging in the browser.">
+<!ENTITY snowl.firstrun.access.tips "Access Snowl from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png'/> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.buttons "Add buttons to your toolbars for quicker access to Snowl features via the <code>View &gt; Toolbars &gt; Customize…</code> menu option.">
+<!ENTITY snowl.firstrun.suscribe.howto "Subscribe to feeds by clicking the feed icon <img src='chrome://browser/skin/feeds/feedIcon16.png'/> that appears in the Firefox location bar when you visit a web site with a feed.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Subscribe to Twitter or import an OPML file from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png' /> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.read.messages "Read messages in the <a href='&link.to.river;'>river</a>, <a href='&link.to.stream;'>stream</a>, and <a href='&link.to.list;'>list </a> views.">
+<!ENTITY snowl.firstrun.write.messages "Write a message by pressing the write button <img src='chrome://snowl/content/icons/email_add.png' /> in any view.">
+<!ENTITY snowl.firstrun.get.involved "Get involved!">
+<!ENTITY snowl.a.learn.more.about.snowl "Learn more about Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "tell us what you think">
+<!ENTITY snowl.a.browse.bug.reports "browse bug reports">
+<!ENTITY snowl.a.report.a.bug "report a bug">
+<!ENTITY snowl.a.check.out.the.source "check out the source">
deleted file mode 100644
--- a/locale/ja-JP/list.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY placementButton.tooltip "配置を切り替えます。">
-<!ENTITY currentButton.tooltip "現在のメッセージのみ表示します。">
-<!ENTITY unreadButton.tooltip "未読メッセージのみ表示します。">
-<!ENTITY authorCol.label "作者">
-<!ENTITY subjectCol.label "題名">
-<!ENTITY timestampCol.label "日時">
deleted file mode 100644
--- a/locale/ja-JP/login.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY dialog.title "認証を要求されました">
-<!ENTITY realm.label "情報源による提示:">
-<!ENTITY username.label "ユーザー名:">
-<!ENTITY password.label "パスワード:">
-<!ENTITY showPassword.label "パスワードを表示する">
-<!ENTITY rememberPassword.label "このパスワードが正しければ記憶する">
deleted file mode 100644
--- a/locale/ja-JP/login.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-namedSourcePrompt=\u60C5\u5831\u6E90 %1$S <%2$S> \u306F\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8981\u6C42\u3057\u3066\u3044\u307E\u3059\u3002
-#   %S=URL (f.e. http://planet.mozilla.org/)
-namelessSourcePrompt=\u60C5\u5831\u6E90 %S \u306F\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8981\u6C42\u3057\u3066\u3044\u307E\u3059\u3002
deleted file mode 100644
--- a/locale/ja-JP/message.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY author.label "作者:">
-<!ENTITY subject.label "題名:">
-<!ENTITY timestamp.label "日時:">
-<!ENTITY link.label "リンク:">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/message.properties
@@ -0,0 +1,15 @@
+# Display page for message whose source has been unsubscribed or otherwise
+
+# cannot be found in the database.
+
+messageNotFound= This message has been deleted or cannot be found (id: %1$S).
+messageNotFoundTitle= Message %1$S not found
+# Keyboard keys for actions on message(s) in the message list.  Must be one char
+
+# corresponding to a keyboard key.
+
+messageDelete= d
+messageUndelete= u
+messageMarkRead= r
+messageMarkAllRead= R
+messageMarkFlagged= f
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Undo">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/opml.properties
@@ -0,0 +1,22 @@
+# The title of the file picker dialog through which the user picks the name
+
+# and location of the exported file.
+
+filePickerTitle= Export sources as an OPML file
+# The title of the file filter that restricts the set of files shown in
+
+# the file picker dialog to OPML files (i.e. those with .opml extensions).
+
+opmlFilterTitle= OPML Files
+# The default name for the file in the file picker dialog.
+
+# Note: this string includes both the name (sources) and the extension (.opml),
+
+# but only the name should be localized.  The extension should remain the same
+
+# across all locales.
+
+defaultFilename= sources.opml
+# The title of the OPML document generated by the exporter.
+
+documentTitle= Snowl Sources
deleted file mode 100644
--- a/locale/ja-JP/preferences.dtd
+++ /dev/null
@@ -1,2 +0,0 @@
-<!ENTITY prefwindow.title "Snowl 設定">
-<!ENTITY noPreferences.message "Snowl には今のところ設定がありません。">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/preferences.properties
@@ -0,0 +1,18 @@
+title= Snowl Preferences
+titleWindows= Snowl Options
+# Status messages when subscribing
+
+messageConnecting= Connecting...
+messageDuplicate= You are already subscribed to this message source.
+messageInvalid= The location you entered is not recognizable.
+messageInvalidLoginData= You have to enter a username and password to subscribe to this message source.
+messageConnectionError= There was an error connecting to this message source.  Please check the location and try again.
+messagePassword= Your credentials were not accepted.  Please check your username and password and try again.
+messageDbBusy= The Database is temporarily busy.  Please try again after all sources have finished refreshing.
+messageConnected= Connected.
+messageGettingMessages= Getting messages...
+messageSuccess= You have successfully subscribed to this message source.
+messageGenericError= There was an error completing the subscription to this message source.  Error: %1$S.
+# Customize panel
+
+settingsDefaultText= Always use this default and override any custom setting
deleted file mode 100644
--- a/locale/ja-JP/river.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY page.title "Snowl: メッセージの流れ">
-<!ENTITY currentButton.tooltip "現在のメッセージのみ表示します。">
-<!ENTITY bodyButton.tooltip "メッセージの要約・内容を表示します。">
-<!ENTITY orderButton.tooltip "メッセージの順序を反転します。">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Other Tabs
+subscriptions=Subscriptions
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=You've subscribed to %1$S in Snowl!
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Search Help">
+<!ENTITY search.caption "Search Messages Guide">
+<!ENTITY search.header1 "Search is based on SQLite's Full Text Search (FTS) capabilities and limitations.">
+<!ENTITY search.header2 "Valid Syntax:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Match all items starting with 'foo'; both 'foo' and 'foobar'.">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Match all items containing exactly 'foo'; 'foo' but not 'foobar'.">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Match all items with both 'foo' AND 'bar'.">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Match all items with either 'foo' OR 'bar'.">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Match all items with 'foo' AND 'bar' but NOT 'baz'.">
+<!ENTITY search.example6 "">
+<!ENTITY search.explanation6 "Note: there can only be ONE negation term and it must be the LAST term in the search query.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Match all items where 'foo' is NEAR 'bar', meaning within N words of 'bar'.  Valid values for N are 0-9 (default is 10 if N is blank).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Match all items where 'foo' is within 2 words of 'bar' and 'bar' is within 10 words of 'baz biff'.">
+<!ENTITY search.header3 "Syntax errors are indicated by a red background.">
+<!ENTITY search.header4 "Invalid syntax:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Wildcard prefixing is invalid.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Leading and trailing spaces are invalid in a quoted string.">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Non alphanumeric symbols are invalid in nonquoted strings.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Quoted strings cannot be negated.">
+<!ENTITY search.header5 "Searching for symbols in quoted strings returns unexpected results.  In addition, wildcards are not supported within words.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Finds 'foo bar', 'foo-bar'.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Finds 'foo bar'.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Finds 'foo b r', 'foo b=r', etc. but not 'foo bar'.">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText= Collections
+searchMessagesEmptyText= Messages
deleted file mode 100644
--- a/locale/ja-JP/sidebar.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY page.title "Snowl サイドバー">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/sources.dtd
@@ -0,0 +1,1 @@
+<!ENTITY subscribeUsing.label "Subscribe using:">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/stream.dtd
@@ -0,0 +1,1 @@
+<!ENTITY page.title "Snowl Message Stream">
deleted file mode 100644
--- a/locale/ja-JP/subscribe.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<!ENTITY page.title "Snowl: メッセージ源の購読">
-<!ENTITY feedsTab.label "フィード">
-<!ENTITY twitterTab.label "Twitter">
-<!ENTITY opmlTab.label "OPML">
-<!ENTITY location.label "場所:">
-<!ENTITY subscribeButton.label "購読">
-<!ENTITY importOPMLButton.label "OPML ファイルを取り込む...">
-<!ENTITY closeButton.label "閉じる">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Subscribe Now
+chooseApplicationMenuItem=Choose Application…
+chooseApplicationDialogTitle=Choose Application
+alwaysUse=Always use
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=Always use %S to subscribe to feeds.
+alwaysUseForAudioPodcasts=Always use %S to subscribe to podcasts.
+alwaysUseForVideoPodcasts=Always use %S to subscribe to video podcasts.
+subscribeFeedUsing=Subscribe using
+subscribeAudioPodcastUsing=Subscribe using
+subscribeVideoPodcastUsing=Subscribe using
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/toolbar.dtd
@@ -0,0 +1,10 @@
+<!ENTITY subscribeButton.tooltip "Subscribe to message sources.">
+<!ENTITY unsubscribeButton.tooltip "Unsubscribe from selected message sources.">
+<!ENTITY refreshButton.tooltip "Refresh all message sources.">
+<!ENTITY exportButton.tooltip "Export message sources as OPML.">
+<!ENTITY unreadButton.tooltip "Show new and unread messages for selected collections.">
+<!ENTITY flaggedButton.tooltip "Show flagged messages for selected collections.">
+<!ENTITY listToolbarButton.tooltip "Toggle View toolbar.">
+<!ENTITY writeButton.tooltip "Write a message.">
+<!ENTITY showDeletedButton.tooltip "Show deleted messages for selected collections.">
+<!ENTITY purgeDeletedButton.tooltip "Purge all deleted messages from selected collections.">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/utils.properties
@@ -0,0 +1,31 @@
+unknownDate= unknown
+monday= Monday
+tuesday= Tuesday
+wednesday= Wednesday
+thursday= Thursday
+friday= Friday
+saturday= Saturday
+sunday= Sunday
+# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
+
+# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
+
+yesterdayTime= Yesterday %S
+future= The Future
+evening= Evening
+afternoon= Afternoon
+morning= Morning
+# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
+
+# of the morning.  Snowls uses this expression to describe the hours between
+
+# midnight and six in the morning (i.e. 00:00 - 06:00).
+
+weeHours= Wee Hours
+today= Today
+yesterday= Yesterday
+older= Older
+weekOne= Week One
+weekTwo= Week Two
+weekThree= Week Three
+weekFour= Week Four
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/write.dtd
@@ -0,0 +1,1 @@
+<!ENTITY sendButton.label "Send">
new file mode 100644
--- /dev/null
+++ b/locale/ja-JP/write.properties
@@ -0,0 +1,3 @@
+sendButton.label= Send
+sendButton.label.sending= Sending...
+sendButton.label.sent= Sent
deleted file mode 100644
--- a/locale/nl-NL/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-attribution=De meeste pictogrammen zijn afkomstig uit de %1$S, gelicentieerd onder een %2$S. Het OPML-pictogram is afkomstig van het %3$S, gelicentieerd onder een %4$S.
-silkIconSetName=Silk-pictogrammenset door famfamfam
-ccA25LicenseName=Creative Commons Attribution 2.5 Licentie
-opmlIconProjectName=OPML Icon Project
-ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 Licentie
-silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
-ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/+
-opmlIconProjectURL=http://opmlicons.com/
-ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
deleted file mode 100644
--- a/locale/nl-NL/browser.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY riverView.label "Berichtenrivier">
-<!ENTITY riverView.accesskey "v">
-<!ENTITY listView.label "Berichtenlijst">
-<!ENTITY listView.accesskey "B">
-<!ENTITY sidebar.label "Snowl">
deleted file mode 100644
--- a/locale/nl-NL/collections.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!ENTITY nameCol.label "Naam">
-<!ENTITY subscribeButton.tooltip "Abonneren op berichtenbronnen.">
-<!ENTITY unsubscribeButton.tooltip "Abonnement op berichtenbronnen opzeggen.">
-<!ENTITY refreshButton.tooltip "Berichtenbronnen vernieuwen.">
-<!ENTITY exportButton.tooltip "Berichtenbronnen als OPML exporteren.">
deleted file mode 100644
--- a/locale/nl-NL/date.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * @version: 1.0 Alpha-1
- * @author: Coolite Inc. http://www.coolite.com/
- * @date: 2008-05-13
- * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
- * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
- * @website: http://www.datejs.com/
- */
-Date.CultureInfo={name:"nl-NL",englishName:"Dutch (Netherlands)",nativeName:"Nederlands (Nederland)",dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],abbreviatedDayNames:["zo","ma","di","wo","do","vr","za"],shortestDayNames:["zo","ma","di","wo","do","vr","za"],firstLetterDayNames:["z","m","d","w","d","v","z"],monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],abbreviatedMonthNames:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],amDesignator:"",pmDesignator:"",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"d-M-yyyy",longDate:"dddd d MMMM yyyy",shortTime:"H:mm",longTime:"H:mm:ss",fullDateTime:"dddd d MMMM yyyy H:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"dd MMMM",yearMonth:"MMMM yyyy"},regexPatterns:{jan:/^jan(uari)?/i,feb:/^feb(ruari)?/i,mar:/^maart/i,apr:/^apr(il)?/i,may:/^mei/i,jun:/^jun(i)?/i,jul:/^jul(i)?/i,aug:/^aug(ustus)?/i,sep:/^sep(t(ember)?)?/i,oct:/^okt(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^zondag/i,mon:/^maandag/i,tue:/^dinsdag/i,wed:/^woensdag/i,thu:/^donderdag/i,fri:/^vrijdag/i,sat:/^zaterdag/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
-return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
-return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
-return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
-return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
-return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
-var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
-if(x.seconds){this.addSeconds(x.seconds);}
-if(x.minutes){this.addMinutes(x.minutes);}
-if(x.hours){this.addHours(x.hours);}
-if(x.weeks){this.addWeeks(x.weeks);}
-if(x.months){this.addMonths(x.months);}
-if(x.years){this.addYears(x.years);}
-if(x.days){this.addDays(x.days);}
-return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
-g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
-$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
-return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
-if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
-if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
-if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
-if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
-if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
-if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
-if(config.timezone){this.setTimezone(config.timezone);}
-if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
-if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
-return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
-else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
-return this;}
-return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
-return'"'+this.getUTCFullYear()+'-'+
-f(this.getUTCMonth()+1)+'-'+
-f(this.getUTCDate())+'T'+
-f(this.getUTCHours())+':'+
-f(this.getUTCMinutes())+':'+
-f(this.getUTCSeconds())+'Z"';};}
-$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
-var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
-x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
-(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
-return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
-return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
-if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
-this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
-return this;}
-return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
-return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
-var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
-return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
-var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
-if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
-if(k==v){break;}}
-return true;}
-if(j.substring(j.length-1)!="s"){j+="s";}
-return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
-$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
-if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
-this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
-return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
-(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
-break;}
-return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
-return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
-throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
-return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
-if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){r=null;}
-if(r){return r;}}
-throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
-try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
-rx.push(r[0]);s=r[1];}
-return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
-return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
-rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
-s=q[1];}
-if(!r){throw new $P.Exception(s);}
-if(q){throw new $P.Exception(q[1]);}
-if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
-return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
-rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
-if(!last&&q[1].length===0){last=true;}
-if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
-p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
-if(rx[1].length<best[1].length){best=rx;}
-if(best[1].length===0){break;}}
-if(best[0].length===0){return best;}
-if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
-best[1]=q[1];}
-return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
-return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
-if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
-var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
-return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
-var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
-if(!this.year){this.year=now.getFullYear();}
-if(!this.month&&this.month!==0){this.month=now.getMonth();}
-if(!this.day){this.day=1;}
-if(!this.hour){this.hour=0;}
-if(!this.minute){this.minute=0;}
-if(!this.second){this.second=0;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
-var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
-return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
-for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
-var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
-var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
-if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
-if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
-this.year=temp.getFullYear();}
-if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
-if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
-if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
-if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
-if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
-if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
-if(!this.unit){this.unit="day";}
-if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
-this[this.unit+"s"]=this.value*orient;}
-if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
-if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
-if((this.month||this.month===0)&&!this.day){this.day=1;}
-if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
-if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
-return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
-fn=_C[keys]=_.any.apply(null,px);}
-return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
-return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
-return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
-if(s instanceof Date){return s;}
-try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
-return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
deleted file mode 100644
--- a/locale/nl-NL/list.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY placementButton.tooltip "Plaatsing wisselen.">
-<!ENTITY currentButton.tooltip "Alleen huidige berichten weergeven.">
-<!ENTITY unreadButton.tooltip "Alleen ongelezen berichten weergeven.">
-<!ENTITY authorCol.label "Schrijver">
-<!ENTITY subjectCol.label "Onderwerp">
-<!ENTITY timestampCol.label "Datum">
deleted file mode 100644
--- a/locale/nl-NL/login.dtd
+++ /dev/null
@@ -1,6 +0,0 @@
-<!ENTITY dialog.title "Aanmelding verzocht">
-<!ENTITY realm.label "De bron zegt:">
-<!ENTITY username.label "Gebruikersnaam">
-<!ENTITY password.label "Wachtwoord:">
-<!ENTITY showPassword.label "Wachtwoord weergeven">
-<!ENTITY rememberPassword.label "Dit wachtwoord onthouden als het correct is">
deleted file mode 100644
--- a/locale/nl-NL/login.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-namedSourcePrompt=De bron %1$S <%2$S> vraagt om een gebruikersnaam en wachtwoord.
-#   %S=URL (b.v. http://planet.mozilla.org/)
-namelessSourcePrompt=De bron %S vraagt om een gebruikersnaam en wachtwoord.
deleted file mode 100644
--- a/locale/nl-NL/message.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY author.label "Schrijver:">
-<!ENTITY subject.label "Onderwerp:">
-<!ENTITY timestamp.label "Datum:">
-<!ENTITY link.label "Koppeling:">
deleted file mode 100644
--- a/locale/nl-NL/preferences.dtd
+++ /dev/null
@@ -1,2 +0,0 @@
-<!ENTITY prefwindow.title "Snowl voorkeuren">
-<!ENTITY noPreferences.message "Snowl heeft nog geen voorkeursinstellingen">
deleted file mode 100644
--- a/locale/nl-NL/river.dtd
+++ /dev/null
@@ -1,4 +0,0 @@
-<!ENTITY page.title "Snowl: Berichtenrivier">
-<!ENTITY currentButton.tooltip "Alleen huidige berichten weergeven.">
-<!ENTITY bodyButton.tooltip "Berichtsamenvattingen/inhoud weergeven.">
-<!ENTITY orderButton.tooltip "Berichtenvolgorde omkeren.">
deleted file mode 100644
--- a/locale/nl-NL/sidebar.dtd
+++ /dev/null
@@ -1,1 +0,0 @@
-<!ENTITY page.title "Snowl-zijbalk">
deleted file mode 100644
--- a/locale/nl-NL/subscribe.dtd
+++ /dev/null
@@ -1,8 +0,0 @@
-<!ENTITY page.title "Snowl: Abonneren op berichtenbronnen">
-<!ENTITY feedsTab.label "Feeds">
-<!ENTITY twitterTab.label "Twitter">
-<!ENTITY opmlTab.label "OPML">
-<!ENTITY location.label "Locatie:">
-<!ENTITY subscribeButton.label "Abonneren">
-<!ENTITY importOPMLButton.label "OPML-bestand importeren...">
-<!ENTITY closeButton.label "Sluiten">
new file mode 100644
--- /dev/null
+++ b/locale/nl/about.properties
@@ -0,0 +1,45 @@
+# LOCALIZATION NOTE: description found in Addons list when selected and About
+
+#extensions.snowl@mozilla.org.description = Conversations redelivered
+
+# XXX Is there a better way to localize the attribution string?  Perhaps we
+
+# could stick the content in an XHTML file that gets localized, and then we
+
+# could load the localized version in an iframe inside the About dialog?
+
+# LOCALIZATION NOTE: The attribution string is static but includes links
+
+# to the icons and licenses it references, so we use a property to construct it.
+
+#   %1$S = link to the silk icon set
+
+#   %2$S = link to the Creative Commons Attribution 2.5 License
+
+#   %3$S = link to the OPML Icon Project
+
+#   %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
+
+contributors1=De meeste pictogrammen zijn van de %1$S, onder een %2$S. Het OPML-pictogram is van %3$S, onder een %4$S.
+#contributors2       = The OPML icon is from %1$S, licensed under a %2$S.
+
+# XXX Should any of these be localized, or is it important to use their
+
+# original names?
+
+silkIconSetName=Silk-pictogrammenset door famfamfam
+ccA25LicenseName=Creative Commons Attribution 2.5 Licentie
+opmlIconProjectName=OPML Icon Project
+ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 Licentie
+# LOCALIZATION NOTE: These URLs are here because it seems better than
+
+# hardcoding them in the script that constructs the attribution string,
+
+# but they probably shouldn't be localized (unless perhaps the pages
+
+# referenced have localized versions).
+
+silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
+ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/+
+opmlIconProjectURL=http://opmlicons.com/
+ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
new file mode 100644
--- /dev/null
+++ b/locale/nl/browser.dtd
@@ -0,0 +1,64 @@
+<!-- The Tools > Snowl menu. -->
+<!ENTITY snowlMenu.label "Snowl">
+<!ENTITY snowlMenu.accesskey "w">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY listView.label "Berichtenlijst">
+<!ENTITY listView.accesskey "B">
+<!ENTITY riverView.label "Berichtenrivier">
+<!ENTITY riverView.accesskey "v">
+<!ENTITY streamView.label "Stroom">
+<!ENTITY streamView.accesskey "t">
+<!ENTITY checkForNewMessages.label "Op nieuwe berichten controleren">
+<!ENTITY checkForNewMessages.accesskey "c">
+<!ENTITY subscribe.label "Abonneren…">
+<!ENTITY subscribe.accesskey "A">
+<!ENTITY importOPML.label "OPML importeren…">
+<!ENTITY importOPML.accesskey "i">
+<!ENTITY exportOPML.label "OPML exporteren…">
+<!ENTITY exportOPML.accesskey "x">
+<!ENTITY options.label "Opties">
+<!ENTITY options.accesskey "O">
+<!ENTITY rebuildDB.label "Plaatsdatabase herbouwen">
+<!ENTITY rebuildDB.accesskey "b">
+<!-- These labels and access keys are for items in the View > Sidebar menu,
+   - where the user needs more context that these are for Snowl commands,
+   - since the sidebar menu also includes commands for non-Snowl functions. 
+-->
+<!ENTITY listViewSidebarMenuItem.label "Berichtencollecties">
+<!ENTITY listViewSidebarMenuItem.accesskey "l">
+<!ENTITY listViewSidebar.label "Berichtencollecties">
+<!ENTITY streamViewSidebarMenuItem.label "Berichtenstroom">
+<!ENTITY streamViewSidebarMenuItem.accesskey "t">
+<!ENTITY streamViewSidebar.label "Berichtenstroom">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY snowlLayoutMenu.label "Opmaak">
+<!ENTITY snowlLayoutMenu.accesskey "m">
+<!ENTITY layoutClassic.label "Klassiek">
+<!ENTITY layoutClassic.accesskey "K">
+<!ENTITY layoutVertical.label "Verticaal">
+<!ENTITY layoutVertical.accesskey "V">
+<!ENTITY layoutWideMessage.label "Breed bericht">
+<!ENTITY layoutWideMessage.accesskey "B">
+<!ENTITY layoutWideThread.label "Brede lijst">
+<!ENTITY layoutWideThread.accesskey "L">
+<!ENTITY layoutStacked.label "Gestapeld">
+<!ENTITY layoutStacked.accesskey "s">
+<!ENTITY showHeader.label "Header weergeven">
+<!ENTITY showHeader.accesskey "H">
+<!ENTITY wrapHeader.label "Alle headers afbreken">
+<!ENTITY wrapHeader.accesskey "f">
+<!ENTITY toolbar.label "Zijbalkwerkbalk">
+<!ENTITY toolbar.accesskey "Z">
+<!-- These labels and access keys are for toolbar buttons -->
+<!ENTITY toggleList.label "Snowl lijstweergave wisselen">
+<!ENTITY toggleList.tooltip "Lijstweergave wisselen">
+<!ENTITY toggleStream.label "Snowl stroomweergave wisselen">
+<!ENTITY toggleStream.tooltip "Stroomweergave wisselen">
+<!ENTITY toggleRiver.label "Snowl rivierweergave wisselen">
+<!ENTITY toggleRiver.tooltip "Rivierweergave wisselen">
new file mode 100644
--- /dev/null
+++ b/locale/nl/collections.dtd
@@ -0,0 +1,36 @@
+<!ENTITY nameCol.label "Naam">
+<!-- Collections contextmenu -->
+<!ENTITY markRead.label "Als gelezen markeren">
+<!ENTITY markRead.accesskey "M">
+<!ENTITY markAllRead.label "Alles als gelezen markeren">
+<!ENTITY refresh.label "Bron vernieuwen">
+<!ENTITY refresh.accesskey "V">
+<!ENTITY refreshAll.label "Alle bronnen vernieuwen">
+<!ENTITY refreshAll.accesskey "u">
+<!ENTITY pause.label "Verversing pauzeren">
+<!ENTITY pause.accesskey "P">
+<!ENTITY pauseAll.label "Alle verversing pauzeren">
+<!ENTITY resume.label "Verversing hervatten">
+<!ENTITY resume.accesskey "a">
+<!ENTITY resumeAll.label "Alle verversing hervatten">
+<!ENTITY removeSource.label "Bron verwijderen">
+<!ENTITY removeSource.accesskey "w">
+<!ENTITY removeAuthor.label "Schrijver verwijderen">
+<!ENTITY removeAuthor.accesskey "j">
+<!ENTITY newView.label "Nieuwe weergave…">
+<!ENTITY newView.accesskey "N">
+<!ENTITY removeView.label "Weergave verwijderen">
+<!ENTITY removeView.accesskey "d">
+<!ENTITY view.label "Weergave:">
+<!ENTITY view.accesskey "g">
+<!ENTITY viewDefault.label "Standaard">
+<!ENTITY viewSources.label "Bronnen">
+<!ENTITY viewAuthors.label "Schrijvers">
+<!ENTITY search.label "Zoeken:">
+<!ENTITY search.accesskey "Z">
+<!ENTITY searchMessages.label "Berichten">
+<!ENTITY searchMessages.accesskey "h">
+<!ENTITY searchCollections.label "Collecties">
+<!ENTITY searchCollections.accesskey "C">
+<!ENTITY searchHelp.label "Help">
+<!ENTITY searchHelp.accesskey "p">
new file mode 100644
--- /dev/null
+++ b/locale/nl/datastore.properties
@@ -0,0 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
+allCollectionName=Alle berichten
+sourcesCollectionName=Alle bronnen
+authorsCollectionName=Alle schrijvers
+customCollectionName=Aangepast
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg=Snowl-plaatsen opnieuw opbouwen
+rebuildPlacesDialogMsg=De Snowl plaatsdatabase zal worden herbouwd vanwege een upgrade, een databaseherstel of een gebruikersverzoek. Dit kan een paar minuten duren afhankelijk van de omvang van uw database. De voortgang van elk omgevormd onderdeel wordt weergegeven in de statusbalk.
+rebuildPlacesStarted=Herbouwen van plaatsdatabase gestart…
+rebuildPlacesConverted=Omgevormd naar plaatsen:
+rebuildPlacesCompleted=Herbouwen van plaatsdatabase afgerond
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg=Snowl-plaatsschrijvers herbouwen
+rebuildPlacesAuthorDialogMsg=Er zijn %1$S schrijversrecords in de database. Wilt u een schrijverscollectie maken? Een schrijverscollectie kan op elk gewenst moment worden gemaakt door de Snowl-plaatsdatabase te herbouwen.
+# New View title for dialog
+
+newViewTitle=Nieuwe weergave
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg=Bron verwijderen
+removeSourceDialogMsg=Door deze bron te verwijderen wordt de bron permanent verwijderd, samen met alle schrijvers en berichten.
+removeAuthorTitleMsg=Schrijver verwijderen
+removeAuthorDialogMsg=Door deze schrijver te verwijderen worden de schrijver en al diens berichten verwijderd.
+removeViewTitleMsg=Weergave verwijderen
+removeViewDialogMsg=Bevestig verwijdering van deze weergave.
new file mode 100644
--- /dev/null
+++ b/locale/nl/date.js
@@ -0,0 +1,145 @@
+/**
+ * @version: 1.0 Alpha-1
+ * @author: Coolite Inc. http://www.coolite.com/
+ * @date: 2008-05-13
+ * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
+ * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
+ * @website: http://www.datejs.com/
+ */
+Date.CultureInfo={name:"nl-NL",englishName:"Dutch (Netherlands)",nativeName:"Nederlands (Nederland)",dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],abbreviatedDayNames:["zo","ma","di","wo","do","vr","za"],shortestDayNames:["zo","ma","di","wo","do","vr","za"],firstLetterDayNames:["z","m","d","w","d","v","z"],monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],abbreviatedMonthNames:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],amDesignator:"",pmDesignator:"",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"d-M-yyyy",longDate:"dddd d MMMM yyyy",shortTime:"H:mm",longTime:"H:mm:ss",fullDateTime:"dddd d MMMM yyyy H:mm:ss",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"dd MMMM",yearMonth:"MMMM yyyy"},regexPatterns:{jan:/^jan(uari)?/i,feb:/^feb(ruari)?/i,mar:/^maart/i,apr:/^apr(il)?/i,may:/^mei/i,jun:/^jun(i)?/i,jul:/^jul(i)?/i,aug:/^aug(ustus)?/i,sep:/^sep(t(ember)?)?/i,oct:/^okt(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^zondag/i,mon:/^maandag/i,tue:/^dinsdag/i,wed:/^woensdag/i,thu:/^donderdag/i,fri:/^vrijdag/i,sat:/^zaterdag/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
+return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
+return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
+return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
+return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
+return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
+var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
+if(x.seconds){this.addSeconds(x.seconds);}
+if(x.minutes){this.addMinutes(x.minutes);}
+if(x.hours){this.addHours(x.hours);}
+if(x.weeks){this.addWeeks(x.weeks);}
+if(x.months){this.addMonths(x.months);}
+if(x.years){this.addYears(x.years);}
+if(x.days){this.addDays(x.days);}
+return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
+g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
+$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
+return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
+if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
+if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
+if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
+if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
+if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
+if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
+if(config.timezone){this.setTimezone(config.timezone);}
+if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
+if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
+return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
+else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
+return this;}
+return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
+return'"'+this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z"';};}
+$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
+var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
+x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
+return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
+return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
+if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
+this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
+return this;}
+return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
+return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
+var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
+return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
+var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
+if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
+if(k==v){break;}}
+return true;}
+if(j.substring(j.length-1)!="s"){j+="s";}
+return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
+$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
+if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
+this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
+return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
+(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
+break;}
+return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
+return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
+throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
+return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
+if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){r=null;}
+if(r){return r;}}
+throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
+return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
+rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
+s=q[1];}
+if(!r){throw new $P.Exception(s);}
+if(q){throw new $P.Exception(q[1]);}
+if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
+return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
+rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
+if(!last&&q[1].length===0){last=true;}
+if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
+p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
+if(rx[1].length<best[1].length){best=rx;}
+if(best[1].length===0){break;}}
+if(best[0].length===0){return best;}
+if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
+best[1]=q[1];}
+return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
+return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
+if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
+var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
+return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
+var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
+if(!this.year){this.year=now.getFullYear();}
+if(!this.month&&this.month!==0){this.month=now.getMonth();}
+if(!this.day){this.day=1;}
+if(!this.hour){this.hour=0;}
+if(!this.minute){this.minute=0;}
+if(!this.second){this.second=0;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
+var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
+return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
+for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
+var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
+var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
+if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
+if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
+this.year=temp.getFullYear();}
+if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
+if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
+if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
+if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
+if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
+if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
+if(!this.unit){this.unit="day";}
+if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
+this[this.unit+"s"]=this.value*orient;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
+if((this.month||this.month===0)&&!this.day){this.day=1;}
+if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
+if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
+return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
+fn=_C[keys]=_.any.apply(null,px);}
+return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
+return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
+return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
+if(s instanceof Date){return s;}
+try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
new file mode 100644
--- /dev/null
+++ b/locale/nl/filterTextbox.dtd
@@ -0,0 +1,1 @@
+<!ENTITY filterTextbox.emptytext "Berichten zoeken">
new file mode 100644
--- /dev/null
+++ b/locale/nl/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Van start met Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "U hebt zojuist Snowl geïnstalleerd, een experiment in berichten verzenden in de browser.">
+<!ENTITY snowl.firstrun.access.tips "U kunt Snowl starten via menu <code>Extra &gt; Snowl</code> of de knop Snowl <img src='chrome://snowl/content/icons/snowl-16.png'/> links onderin uw browservenster.">
+<!ENTITY snowl.firstrun.buttons "Voeg knoppen aan uw werkbalken toe voor snellere toegang tot de functies van Snowl via de menu-optie <code>Beeld &gt; Werkbalken &gt; Aanpassen…</code>.">
+<!ENTITY snowl.firstrun.suscribe.howto "Abonneer u op feeds door op het feedpictogram <img src='chrome://browser/skin/feeds/feedIcon16.png'/>, dat in de adresbalk van Firefox verschijnt wanneer u een website met een feed bezoekt, te klikken.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Schrijf u in bij Twitter of importeer een OPML-bestand vanuit het menu <code>Extra &gt; Snowl</code> of de knop Snowl <img src='chrome://snowl/content/icons/snowl-16.png' /> links onderin uw browservenster.">
+<!ENTITY snowl.firstrun.read.messages "Lees berichten in de <a href='&link.to.river;'>rivier</a>-, <a href='&link.to.stream;'>stroom</a>- en <a href='&link.to.list;'>lijst</a>weergaven.">
+<!ENTITY snowl.firstrun.write.messages "Schrijf een bericht door op de schrijfknop <img src='chrome://snowl/content/icons/email_add.png' /> te drukken in elke weergave.">
+<!ENTITY snowl.firstrun.get.involved "Doe mee!">
+<!ENTITY snowl.a.learn.more.about.snowl "Meer over Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "Vertel ons wat u ervan vindt">
+<!ENTITY snowl.a.browse.bug.reports "Blader door foutrapporten">
+<!ENTITY snowl.a.report.a.bug "Rapporteer een fout">
+<!ENTITY snowl.a.check.out.the.source "Bekijk de broncode">
new file mode 100644
--- /dev/null
+++ b/locale/nl/list.dtd
@@ -0,0 +1,17 @@
+<!ENTITY page.title "Snowl">
+<!ENTITY sourceCol.label "Bron">
+<!ENTITY authorCol.label "Schrijver">
+<!ENTITY subjectCol.label "Onderwerp">
+<!ENTITY timestampCol.label "Datum">
+<!ENTITY datereceivedCol.label "Datum ontvangen">
+<!ENTITY readCol.label "Gelezen">
+<!ENTITY flaggedCol.label "Gelabeld">
+<!ENTITY sortBy.label "Sorteren op">
+<!ENTITY openListMessage.label "Bericht openen">
+<!ENTITY openListMessage.accesskey "O">
+<!ENTITY selectAll.label "Alles selecteren">
+<!ENTITY selectAll.accesskey "A">
+<!ENTITY deleteMessages.label "Geselecteerde berichten verwijderen">
+<!ENTITY deleteMessages.accesskey "w">
+<!ENTITY undeleteMessages.label "Geselecteerde berichten terugzetten">
+<!ENTITY undeleteMessages.accesskey "u">
new file mode 100644
--- /dev/null
+++ b/locale/nl/login.dtd
@@ -0,0 +1,6 @@
+<!ENTITY dialog.title "Aanmelding verzocht">
+<!ENTITY realm.label "De bron zegt:">
+<!ENTITY username.label "Gebruikersnaam">
+<!ENTITY password.label "Wachtwoord:">
+<!ENTITY showPassword.label "Wachtwoord weergeven">
+<!ENTITY rememberPassword.label "Dit wachtwoord onthouden als het correct is">
new file mode 100644
--- /dev/null
+++ b/locale/nl/login.properties
@@ -0,0 +1,14 @@
+#   %S=URL (b.v. http://planet.mozilla.org/)
+
+# the user to enter their username and password to access a source.
+
+# 
+
+#   %1$S = name (f.e. Planet Mozilla)
+
+#   %2$S = URL (f.e. http://planet.mozilla.org/)
+
+namedSourcePrompt=De bron %1$S <%2$S> vraagt om een gebruikersnaam en wachtwoord.
+#   %S = URL (f.e. http://planet.mozilla.org/)
+
+namelessSourcePrompt=De bron %S vraagt om een gebruikersnaam en wachtwoord.
new file mode 100644
--- /dev/null
+++ b/locale/nl/message.dtd
@@ -0,0 +1,12 @@
+<!ENTITY author.label "Schrijver:">
+<!ENTITY author.accesskey "S">
+<!ENTITY subject.label "Onderwerp:">
+<!ENTITY subject.accesskey "O">
+<!ENTITY timestamp.label "Datum:">
+<!ENTITY link.label "Koppeling:">
+<!ENTITY pinButton.label "Header vastzetten">
+<!ENTITY pinButton.tooltip "Vastzetten wisselen om permanente header in te stellen of vrij te geven">
+<!ENTITY toggleHeader.label "Header wisselen">
+<!ENTITY toggleHeader.tooltip "Wissel de berichtheader naar kort, basis of volledig">
+<!ENTITY deleteMessagesButton.label "Bericht verwijderen">
+<!ENTITY deleteMessagesButton.tooltip "Dit bericht verwijderen">
new file mode 100644
--- /dev/null
+++ b/locale/nl/message.properties
@@ -0,0 +1,15 @@
+# Display page for message whose source has been unsubscribed or otherwise
+
+# cannot be found in the database.
+
+messageNotFound=Dit bericht is verwijderd of is niet gevonden (id: %1$S).
+messageNotFoundTitle=Bericht %1$S niet gevonden
+# Keyboard keys for actions on message(s) in the message list.  Must be one char
+
+# corresponding to a keyboard key.
+
+messageDelete=w
+messageUndelete=g
+messageMarkRead=l
+messageMarkAllRead=G
+messageMarkFlagged=b
new file mode 100644
--- /dev/null
+++ b/locale/nl/notification.dtd
@@ -0,0 +1,1 @@
+<!ENTITY undo.label "Ongedaan maken">
new file mode 100644
--- /dev/null
+++ b/locale/nl/opml.properties
@@ -0,0 +1,22 @@
+# The title of the file picker dialog through which the user picks the name
+
+# and location of the exported file.
+
+filePickerTitle=Bronnen als OPML-bestand exporteren
+# The title of the file filter that restricts the set of files shown in
+
+# the file picker dialog to OPML files (i.e. those with .opml extensions).
+
+opmlFilterTitle=OPML-bestanden
+# The default name for the file in the file picker dialog.
+
+# Note: this string includes both the name (sources) and the extension (.opml),
+
+# but only the name should be localized.  The extension should remain the same
+
+# across all locales.
+
+defaultFilename=bronnen.opml
+# The title of the OPML document generated by the exporter.
+
+documentTitle=Snowl-bronnen
new file mode 100644
--- /dev/null
+++ b/locale/nl/preferences.dtd
@@ -0,0 +1,58 @@
+<!-- Subscribe pane -->
+<!ENTITY subscribe.title "Abonneren">
+<!ENTITY source.label "Abonneren op een berichtenbron">
+<!ENTITY feeds.label "Feed">
+<!ENTITY feeds.accesskey "F">
+<!ENTITY twitter.label "Twitter">
+<!ENTITY twitter.accesskey "T">
+<!ENTITY location.label "Locatie:">
+<!ENTITY name.label "Naam:">
+<!ENTITY subscribeButton.label "Abonneren">
+<!ENTITY subscribeButton.accesskey "A">
+<!ENTITY closeButton.label "Terug">
+<!ENTITY closeButton.accesskey "r">
+<!ENTITY clearButton.label "Wissen">
+<!ENTITY clearButton.accesskey "W">
+<!-- This is used by subscribe.xul, which also uses this DTD file. -->
+<!ENTITY page.title "Snowl: Abonneren op berichtenbron">
+<!-- Customize pane -->
+<!ENTITY settings.title "Aanpassen">
+<!ENTITY settings.label "Standaardinstellingen voor een berichtenbrontype aanpassen">
+<!-- The entities below are commented out because they aren't being used yet,
+   - and they may change before we start using them, so don't localize them. 
+-->
+<!ENTITY mail.label "Mail">
+<!ENTITY mail.accesskey "M">
+<!ENTITY newsgroup.label "Newsgroup">
+<!ENTITY newsgroup.accesskey "N">
+<!-- General pane -->
+<!ENTITY general.title "Algemeen">
+<!-- Subscriptions pane -->
+<!ENTITY subscriptions.title "Abonnementen">
+<!-- Organize pane -->
+<!ENTITY organize.title "Organiseren">
+<!-- Refresh and Retention panel entities, currently used by Properties dialog -->
+<!ENTITY refresh.label "Verversen">
+<!ENTITY refreshText.label "Het verversingsinterval kan worden aangepast.">
+<!ENTITY refreshMinutes.label "Elke">
+<!ENTITY refreshMinutes.accesskey "E">
+<!ENTITY minutes.label "minuten verversen">
+<!ENTITY refreshStatus.label "Huidige verversingsstatus voor deze bron.">
+<!ENTITY refreshState.label "Status:">
+<!ENTITY refreshDate.label "Laatst ververst:">
+<!ENTITY refreshCode.label "Laatste foutcode:">
+<!ENTITY refreshError.label "Laatste foutbericht:">
+<!ENTITY retention.label "Behoud">
+<!ENTITY retentionCleanup.label "Berichten kunnen worden verwijderd volgens de volgende regels.">
+<!ENTITY retentionUseType.label "Standaardinstelling voor dit berichttype gebruiken">
+<!ENTITY retentionUseType.accesskey "d">
+<!ENTITY retentionKeepAll.label "Geen berichten verwijderen">
+<!ENTITY retentionKeepAll.accesskey "G">
+<!ENTITY retentionKeepRecent.label "Alles behalve de meest recente">
+<!ENTITY retentionKeepRecent.accesskey "r">
+<!ENTITY message.label "berichten verwidjeren">
+<!ENTITY retentionDeleteMsg.label "Berichten verwijderen die ouder zijn dan">
+<!ENTITY retentionDeleteMsg.accesskey "o">
+<!ENTITY daysOld.label "dagen">
+<!ENTITY retentionKeepFlagged.label "Gelabelde berichten altijd behouden">
+<!ENTITY retentionKeepFlagged.accesskey "h">
new file mode 100644
--- /dev/null
+++ b/locale/nl/preferences.properties
@@ -0,0 +1,18 @@
+title=Snowl voorkeuren
+titleWindows=Snowl opties
+# Status messages when subscribing
+
+messageConnecting=Verbinding maken…
+messageDuplicate=U bent al geabonneerd op deze berichtenbron.
+messageInvalid=De door u opgegeven locatie wordt niet herkend.
+messageInvalidLoginData=U dient een gebruikersnaam en wachtwoord in te geven om u te abonneren op deze berichtenbron.
+messageConnectionError=Er is een fout opgetreden bij verbinden met de berichtenbron. Controleer a.u.b. de locatie en probeer het opnieuw.
+messagePassword=Uw aanmeldgegevens zijn niet geaccepteerd. Controleer a.u.b. uw gebruikersnaam en wachtwoord en probeer het opnieuw.
+messageDbBusy=De database is tijdelijk bezet. Probeer het later nog eens als alle bronnen ververst zijn.
+messageConnected=Verbonden.
+messageGettingMessages=Berichten ophalen…
+messageSuccess=U bent succesvol geabonneerd op deze berichtenbron.
+messageGenericError=Er is een fout opgetreden bij afronden van het abonneren op deze berichtenbron. Fout: %1$S.
+# Customize panel
+
+settingsDefaultText=Altijd deze standaardinstelling gebruiken en alle aangepaste instellingen negeren
new file mode 100644
--- /dev/null
+++ b/locale/nl/river.dtd
@@ -0,0 +1,9 @@
+<!ENTITY page.title "Snowl: Berichtenrivier">
+<!ENTITY bodyButton.tooltip "Berichtsamenvattingen/inhoud weergeven.">
+<!ENTITY orderButton.tooltip "Berichtenvolgorde omkeren.">
+<!ENTITY columnsButton.tooltip "Berichten weergeven in kolommen.">
+<!ENTITY decrementPeriodButton.tooltip "Vorige dag">
+<!ENTITY incrementPeriodButton.tooltip "Volgende dag">
+<!ENTITY periodDay.label "Dag">
+<!ENTITY periodWeek.label "Week">
+<!ENTITY periodMonth.label "Maand">
new file mode 100644
--- /dev/null
+++ b/locale/nl/river.properties
@@ -0,0 +1,7 @@
+otherTabs=Overige tabbladen
+subscriptions=Abonnementen
+# LOCALIZATION NOTE:
+
+#   %1$S = the name of the feed
+
+subscribed=U bent geabonneerd op %1$S in Snowl!
new file mode 100644
--- /dev/null
+++ b/locale/nl/search.dtd
@@ -0,0 +1,38 @@
+<!-- Search Help -->
+<!ENTITY search.title "Zoekhulp">
+<!ENTITY search.caption "Gids bij berichten zoeken">
+<!ENTITY search.header1 "Zoeken is gebaseerd op SQLite Full Text Search (FTS) met dezelfde mogelijkheden en beperkingen.">
+<!ENTITY search.header2 "Geldige opmaak:">
+<!ENTITY search.example1 "foo, &quot;foo*&quot;">
+<!ENTITY search.explanation1 "Alle berichten zoeken die beginnen met ‘foo’; zowel ‘foo’ als ‘foobar’.">
+<!ENTITY search.example2 "&quot;foo&quot;">
+<!ENTITY search.explanation2 "Alle berichten zoeken die exact ‘foo’ bevatten; ‘foo’ maar niet ‘foobar’.">
+<!ENTITY search.example3 "foo bar">
+<!ENTITY search.explanation3 "Alle berichten zoeken met zowel ‘foo’ als ‘bar’.">
+<!ENTITY search.example4 "foo | bar">
+<!ENTITY search.explanation4 "Alle berichten zoeken met ‘foo’ of ‘bar’.">
+<!ENTITY search.example5 "foo bar -baz">
+<!ENTITY search.explanation5 "Alle berichten zoeken met ‘foo’ EN ‘bar’ maar NIET ‘baz’.">
+<!ENTITY search.example6 "-">
+<!ENTITY search.explanation6 "Opmerking: er kan slechts één uitzonderingsterm worden opgegeven en dit dient de laatste term in de zoekopdracht te zijn.">
+<!ENTITY search.example7 "foo ~N bar">
+<!ENTITY search.explanation7 "Alle berichten zoeken waar ‘foo’ zich VLAKBIJ ‘bar’ bevindt, d.w.z. binnen N woorden van ‘bar’. Geldige waarden voor N zijn 0-9 (standaard is 10 indien N blanco is).">
+<!ENTITY search.example8 "foo ~2 bar ~ &quot;baz biff&quot;">
+<!ENTITY search.explanation8 "Alle berichten zoeken waar ‘foo’ zich binnen 2 woorden van ‘bar’ bevindt en ‘bar’ zich binnen 10 woorden van ‘baz biff’ bevindt.">
+<!ENTITY search.header3 "Opmaakfouten worden weergegeven met een rode achtergrond.">
+<!ENTITY search.header4 "Ongeldige opmaak:">
+<!ENTITY search.example9 "&quot;*foo bar&quot;, *bar">
+<!ENTITY search.explanation9 "Wildcards vooraf zijn ongeldig.">
+<!ENTITY search.example10 "&quot; foo bar  &quot;">
+<!ENTITY search.explanation10 "Voorafgaande en volgende spaties zijn ongeldig in een aangehaald zinsdeel.">
+<!ENTITY search.example11 ".foo-bar?">
+<!ENTITY search.explanation11 "Niet-alfanumerieke symbolen zijn ongeldig in niet-aangehaalde zinsdelen.">
+<!ENTITY search.example12 "-&quot;foo bar&quot;">
+<!ENTITY search.explanation12 "Aangehaalde zinsdelen kunnen niet worden uitgezonderd.">
+<!ENTITY search.header5 "Zoeken naar symbolen in aangehaalde zinsdelen geeft onverwachte resultaten. Daarbij worden wildcards niet ondersteund binnen woorden.">
+<!ENTITY search.example13 "&quot;foo-----bar&quot;">
+<!ENTITY search.explanation13 "Zoekt ‘foo bar’, ‘foo-bar’.">
+<!ENTITY search.example14 "&quot;foo-bar&quot;">
+<!ENTITY search.explanation14 "Zoekt ‘foo bar’.">
+<!ENTITY search.example15 "&quot;foo b*r&quot;">
+<!ENTITY search.explanation15 "Zoekt ‘foo b r’, ‘foo b=r’, enz., maar niet ‘foo bar’.">
new file mode 100644
--- /dev/null
+++ b/locale/nl/search.properties
@@ -0,0 +1,4 @@
+# LOCALIZATION NOTE emptytext message in List View search box
+
+searchCollectionsEmptyText=Collecties
+searchMessagesEmptyText=Berichten
new file mode 100644
--- /dev/null
+++ b/locale/nl/sources.dtd
@@ -0,0 +1,1 @@
+<!ENTITY subscribeUsing.label "Abonneren met:">
new file mode 100644
--- /dev/null
+++ b/locale/nl/stream.dtd
@@ -0,0 +1,1 @@
+<!ENTITY page.title "Snowl berichtenstroom">
new file mode 100644
--- /dev/null
+++ b/locale/nl/subscribe.properties
@@ -0,0 +1,18 @@
+subscribeNow=Nu abonneren
+chooseApplicationMenuItem=Kies toepassing…
+chooseApplicationDialogTitle=Toepassing kiezen
+alwaysUse=Altijd gebruiken
+# LOCALIZATION NOTE: The next three strings explains to the user what they're 
+
+# doing.
+
+#   e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+
+#   %S = application to use (Miro, iTunes, ...)
+
+alwaysUseForFeeds=%S altijd gebruiken om op feeds te abonneren.
+alwaysUseForAudioPodcasts=%S altijd gebruiken om op podcasts te abonneren.
+alwaysUseForVideoPodcasts=%S altijd gebruiken om op videopodcasts te abonneren.
+subscribeFeedUsing=Abonneren met
+subscribeAudioPodcastUsing=Abonneren met
+subscribeVideoPodcastUsing=Abonneren met
new file mode 100644
--- /dev/null
+++ b/locale/nl/toolbar.dtd
@@ -0,0 +1,10 @@
+<!ENTITY subscribeButton.tooltip "Abonneren op berichtenbronnen">
+<!ENTITY unsubscribeButton.tooltip "Abonnement op geselecteerde berichtenbronnen opzeggen.">
+<!ENTITY refreshButton.tooltip "Alle berichtenbronnen verversen.">
+<!ENTITY exportButton.tooltip "Berichtenbronnen exporteren als OPML.">
+<!ENTITY unreadButton.tooltip "Nieuwe en ongelezen berichten weergeven voor geselecteerde bronnen.">
+<!ENTITY flaggedButton.tooltip "Gelabelde berichten voor geselecteerde collecties weergeven.">
+<!ENTITY listToolbarButton.tooltip "Werkbalk Beeld wisselen">
+<!ENTITY writeButton.tooltip "Een bericht schrijven">
+<!ENTITY showDeletedButton.tooltip "Verwijderde berichten voor geselecteerde collecties weergeven.">
+<!ENTITY purgeDeletedButton.tooltip "Alle verwijderde berichten uit geselecteerde collecties definitief verwijderen.">
new file mode 100644
--- /dev/null
+++ b/locale/nl/utils.properties
@@ -0,0 +1,31 @@
+unknownDate=onbekend
+monday=Maandag
+tuesday=Dinsdag
+wednesday=Woensdag
+thursday=Donderdag
+friday=Vrijdag
+saturday=Zaterdag
+sunday=Zondag
+# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
+
+# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
+
+yesterdayTime=Gisteren om %S
+future=de toekomst
+evening=Avond
+afternoon=Middag
+morning=Ochtend
+# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
+
+# of the morning.  Snowls uses this expression to describe the hours between
+
+# midnight and six in the morning (i.e. 00:00 - 06:00).
+
+weeHours=’s Nachts
+today=Vandaag
+yesterday=Gisteren
+older=Ouder
+weekOne=Week één
+weekTwo=Week twee
+weekThree=Week drie
+weekFour=Week vier
new file mode 100644
--- /dev/null
+++ b/locale/nl/write.dtd
@@ -0,0 +1,1 @@
+<!ENTITY sendButton.label "Verzenden">
new file mode 100644
--- /dev/null
+++ b/locale/nl/write.properties
@@ -0,0 +1,3 @@
+sendButton.label=Verzenden
+sendButton.label.sending=Verzenden…
+sendButton.label.sent=Verzonden
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/about.properties
@@ -0,0 +1,45 @@
+# LOCALIZATION NOTE: description found in Addons list when selected and About
+
+#extensions.snowl@mozilla.org.description = Conversations redelivered
+
+# XXX Is there a better way to localize the attribution string?  Perhaps we
+
+# could stick the content in an XHTML file that gets localized, and then we
+
+# could load the localized version in an iframe inside the About dialog?
+
+# LOCALIZATION NOTE: The attribution string is static but includes links
+
+# to the icons and licenses it references, so we use a property to construct it.
+
+#   %1$S = link to the silk icon set
+
+#   %2$S = link to the Creative Commons Attribution 2.5 License
+
+#   %3$S = link to the OPML Icon Project
+
+#   %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
+
+contributors1=Flesteparten av ikona er frå %1$S, lisensiert under a %2$S. OPML-ikona er frå %3$S, lisensiert under a %4$S.
+#contributors2       = The OPML icon is from %1$S, licensed under a %2$S.
+
+# XXX Should any of these be localized, or is it important to use their
+
+# original names?
+
+silkIconSetName=Silk icon set by famfamfam
+ccA25LicenseName=Creative Commons Attribution 2.5 License
+opmlIconProjectName=OPML Icon Project
+ccASA25LicenseName=Creative Commons Attribution-Share Alike 2.5 License
+# LOCALIZATION NOTE: These URLs are here because it seems better than
+
+# hardcoding them in the script that constructs the attribution string,
+
+# but they probably shouldn't be localized (unless perhaps the pages
+
+# referenced have localized versions).
+
+silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
+ccA25LicenseURL=http://opmlicons.com/
+opmlIconProjectURL=http://opmlicons.com/
+ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/browser.dtd
@@ -0,0 +1,64 @@
+<!-- The Tools > Snowl menu. -->
+<!ENTITY snowlMenu.label "Snowl">
+<!ENTITY snowlMenu.accesskey "w">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY listView.label "Liste">
+<!ENTITY listView.accesskey "l">
+<!ENTITY riverView.label "Elv">
+<!ENTITY riverView.accesskey "E">
+<!ENTITY streamView.label "Straum">
+<!ENTITY streamView.accesskey "t">
+<!ENTITY checkForNewMessages.label "Sjå etter nye meldingar">
+<!ENTITY checkForNewMessages.accesskey "S">
+<!ENTITY subscribe.label "Abonner …">
+<!ENTITY subscribe.accesskey "A">
+<!ENTITY importOPML.label "Importer OPML …">
+<!ENTITY importOPML.accesskey "I">
+<!ENTITY exportOPML.label "Eksporter OPML …">
+<!ENTITY exportOPML.accesskey "k">
+<!ENTITY options.label "Innstillingar">
+<!ENTITY options.accesskey "I">
+<!ENTITY rebuildDB.label "Rebuild Places Database">
+<!ENTITY rebuildDB.accesskey "D">
+<!-- These labels and access keys are for items in the View > Sidebar menu,
+   - where the user needs more context that these are for Snowl commands,
+   - since the sidebar menu also includes commands for non-Snowl functions. 
+-->
+<!ENTITY listViewSidebarMenuItem.label "Message Collections">
+<!ENTITY listViewSidebarMenuItem.accesskey "l">
+<!ENTITY listViewSidebar.label "Message Collections">
+<!ENTITY streamViewSidebarMenuItem.label "Meldingsstraum">
+<!ENTITY streamViewSidebarMenuItem.accesskey "e">
+<!ENTITY streamViewSidebar.label "Meldingsstraum">
+<!-- These labels and access keys are for items in the Tools > Snowl menu,
+   - where the user doesn't need to be reminded that these are Snowl commands,
+   - since it is obvious from their placement in the Snowl menu. 
+-->
+<!ENTITY snowlLayoutMenu.label "Formgjeving">
+<!ENTITY snowlLayoutMenu.accesskey "F">
+<!ENTITY layoutClassic.label "Classic">
+<!ENTITY layoutClassic.accesskey "C">
+<!ENTITY layoutVertical.label "Vertikal">
+<!ENTITY layoutVertical.accesskey "V">
+<!ENTITY layoutWideMessage.label "Brei melding">
+<!ENTITY layoutWideMessage.accesskey "B">
+<!ENTITY layoutWideThread.label "Brei liste">
+<!ENTITY layoutWideThread.accesskey "l">
+<!ENTITY layoutStacked.label "Stabla">
+<!ENTITY layoutStacked.accesskey "S">
+<!ENTITY showHeader.label "Vis overskrift">
+<!ENTITY showHeader.accesskey "V">
+<!ENTITY wrapHeader.label "Wrap All Headers">
+<!ENTITY wrapHeader.accesskey "W">
+<!ENTITY toolbar.label "Sidebar Toolbar">
+<!ENTITY toolbar.accesskey "d">
+<!-- These labels and access keys are for toolbar buttons -->
+<!ENTITY toggleList.label "List">
+<!ENTITY toggleList.tooltip "Show/Hide the Snowl List of Messages">
+<!ENTITY toggleStream.label "Stream">
+<!ENTITY toggleStream.tooltip "Show/Hide the Snowl Message Stream">
+<!ENTITY toggleRiver.label "River">
+<!ENTITY toggleRiver.tooltip "Show/Hide the Snowl River of Messages">
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/collections.dtd
@@ -0,0 +1,36 @@
+<!ENTITY nameCol.label "Namn">
+<!-- Collections contextmenu -->
+<!ENTITY markRead.label "Merk som lesen">
+<!ENTITY markRead.accesskey "M">
+<!ENTITY markAllRead.label "Mark All as Read">
+<!ENTITY refresh.label "Oppdater kjelde">
+<!ENTITY refresh.accesskey "O">
+<!ENTITY refreshAll.label "Oppdater alle kjelder">
+<!ENTITY refreshAll.accesskey "a">
+<!ENTITY pause.label "Pause Refresh">
+<!ENTITY pause.accesskey "P">
+<!ENTITY pauseAll.label "Pause All Refresh">
+<!ENTITY resume.label "Resume Refresh">
+<!ENTITY resume.accesskey "m">
+<!ENTITY resumeAll.label "Resume All Refresh">
+<!ENTITY removeSource.label "Fjern kjelde">
+<!ENTITY removeSource.accesskey "F">
+<!ENTITY removeAuthor.label "Fjern forfattar">
+<!ENTITY removeAuthor.accesskey "o">
+<!ENTITY newView.label "New View…">
+<!ENTITY newView.accesskey "V">
+<!ENTITY removeView.label "Remove View">
+<!ENTITY removeView.accesskey "w">
+<!ENTITY view.label "View:">
+<!ENTITY view.accesskey "V">
+<!ENTITY viewDefault.label "Standard">
+<!ENTITY viewSources.label "Kjelder">
+<!ENTITY viewAuthors.label "Forfattarar">
+<!ENTITY search.label "Søk:">
+<!ENTITY search.accesskey "S">
+<!ENTITY searchMessages.label "Meldingar">
+<!ENTITY searchMessages.accesskey "M">
+<!ENTITY searchCollections.label "Samlingar">
+<!ENTITY searchCollections.accesskey "S">
+<!ENTITY searchHelp.label "Hjelp">
+<!ENTITY searchHelp.accesskey "H">
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/datastore.properties
@@ -0,0 +1,32 @@
+# These are the default collections that Snowl displays in the collections pane.
+
+# They get inserted into the database when it is first created after the user
+
+# installs Snowl.
+
+allCollectionName=Alle meldingar
+sourcesCollectionName=Alle kjelder
+authorsCollectionName=Alle forfattarar
+customCollectionName=Sjølvvald
+# Places rebuild notification alert
+
+rebuildPlacesTitleMsg=Bygg opp att Snowl-stader
+rebuildPlacesDialogMsg= The Snowl Places database will be rebuilt, due to an upgrade or database recovery or user request.   This may take a few minutes depending on the size of your database.  Progress of each converted item is shown in the statusbar.
+rebuildPlacesStarted= Rebuild Places Database started...
+rebuildPlacesConverted= Converted to Places:
+rebuildPlacesCompleted= Rebuild Places Database completed
+# Places author rebuild confirmation dialog strings
+
+rebuildPlacesAuthorTitleMsg= Rebuild Snowl Places Authors
+rebuildPlacesAuthorDialogMsg= There are %1$S Author records in the database.  Do you wish to create an Authors collection?  An Authors collection can be created at any time by rebuilding the Snowl Places database.
+# New View title for dialog
+
+newViewTitle= New View
+# Remove items confirm dialog strings
+
+removeSourceTitleMsg= Remove Source
+removeSourceDialogMsg= Removing this source will permanently remove the source and all of its authors and messages.
+removeAuthorTitleMsg= Remove Author
+removeAuthorDialogMsg= Removing this author will permanently remove the author and all of the author's messages.
+removeViewTitleMsg= Remove View
+removeViewDialogMsg= Confirm removing this view.
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/date.js
@@ -0,0 +1,145 @@
+/**
+ * @version: 1.0 Alpha-1
+ * @author: Coolite Inc. http://www.coolite.com/
+ * @date: 2008-05-13
+ * @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
+ * @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. 
+ * @website: http://www.datejs.com/
+ */
+Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
+return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
+return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
+return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
+return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
+return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
+var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
+if(x.seconds){this.addSeconds(x.seconds);}
+if(x.minutes){this.addMinutes(x.minutes);}
+if(x.hours){this.addHours(x.hours);}
+if(x.weeks){this.addWeeks(x.weeks);}
+if(x.months){this.addMonths(x.months);}
+if(x.years){this.addYears(x.years);}
+if(x.days){this.addDays(x.days);}
+return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
+g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
+$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
+return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
+if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
+if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
+if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
+if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
+if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
+if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
+if(config.timezone){this.setTimezone(config.timezone);}
+if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
+if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
+return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
+else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
+return this;}
+return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
+return'"'+this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z"';};}
+$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
+var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
+x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
+(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
+return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
+return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
+if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
+this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
+return this;}
+return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
+return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
+var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
+return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
+var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
+if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
+if(k==v){break;}}
+return true;}
+if(j.substring(j.length-1)!="s"){j+="s";}
+return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
+$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
+if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
+this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
+return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
+(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
+break;}
+return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
+return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
+throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
+return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
+if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){r=null;}
+if(r){return r;}}
+throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
+try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
+rx.push(r[0]);s=r[1];}
+return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
+return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
+rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
+s=q[1];}
+if(!r){throw new $P.Exception(s);}
+if(q){throw new $P.Exception(q[1]);}
+if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
+return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
+rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
+if(!last&&q[1].length===0){last=true;}
+if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
+p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
+if(rx[1].length<best[1].length){best=rx;}
+if(best[1].length===0){break;}}
+if(best[0].length===0){return best;}
+if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
+best[1]=q[1];}
+return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
+return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
+if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
+var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
+return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
+var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
+if(!this.year){this.year=now.getFullYear();}
+if(!this.month&&this.month!==0){this.month=now.getMonth();}
+if(!this.day){this.day=1;}
+if(!this.hour){this.hour=0;}
+if(!this.minute){this.minute=0;}
+if(!this.second){this.second=0;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
+var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
+return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
+for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
+var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
+var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
+if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
+if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
+this.year=temp.getFullYear();}
+if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
+if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
+if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
+if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
+if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
+if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
+if(!this.unit){this.unit="day";}
+if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
+this[this.unit+"s"]=this.value*orient;}
+if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
+if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
+if((this.month||this.month===0)&&!this.day){this.day=1;}
+if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
+if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
+return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
+fn=_C[keys]=_.any.apply(null,px);}
+return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
+return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
+return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
+if(s instanceof Date){return s;}
+try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
+return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/filterTextbox.dtd
@@ -0,0 +1,1 @@
+<!ENTITY filterTextbox.emptytext "Søk i meldingar">
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/firstrun.dtd
@@ -0,0 +1,14 @@
+<!ENTITY snowl.title.getting.started.with.snowl "Kom i gang med Snowl">
+<!ENTITY snowl.p.you.ve.just.installed.snowl "Du har nettopp installert Snowl, eit eksperiment med meldingar i nettlesaren.">
+<!ENTITY snowl.firstrun.access.tips "Få tilgang til <code>Tools &gt; Snowl</code>-menyen eller Snowl-knappen <img src='chrome://snowl/content/icons/snowl-16.png'/> nederst i det venstre hjørnet i nettlesarvindauget.">
+<!ENTITY snowl.firstrun.buttons "Add buttons to your toolbars for quicker access to Snowl features via the <code>View &gt; Toolbars &gt; Customize…</code> menu option.">
+<!ENTITY snowl.firstrun.suscribe.howto "Subscribe to feeds by clicking the feed icon <img src='chrome://browser/skin/feeds/feedIcon16.png'/> that appears in the Firefox location bar when you visit a web site with a feed.">
+<!ENTITY snowl.firstrun.suscribe.twitter "Subscribe to Twitter or import an OPML file from the <code>Tools &gt; Snowl</code> menu or the Snowl button <img src='chrome://snowl/content/icons/snowl-16.png' /> in the bottom left corner of your browser window.">
+<!ENTITY snowl.firstrun.read.messages "Read messages in the <a href='&link.to.river;'>river</a>, <a href='&link.to.stream;'>stream</a>, and <a href='&link.to.list;'>list </a> views.">
+<!ENTITY snowl.firstrun.write.messages "Write a message by pressing the write button <img src='chrome://snowl/content/icons/email_add.png' /> in any view.">
+<!ENTITY snowl.firstrun.get.involved "Involver deg.">
+<!ENTITY snowl.a.learn.more.about.snowl "Finn ut meir om Snowl">
+<!ENTITY snowl.a.tell.us.what.you.think "fortel oss kva du synest">
+<!ENTITY snowl.a.browse.bug.reports "browse bug reports">
+<!ENTITY snowl.a.report.a.bug "report a bug">
+<!ENTITY snowl.a.check.out.the.source "check out the source">
new file mode 100644
--- /dev/null
+++ b/locale/nn-NO/list.dtd
@@ -0,0 +1,17 @@
+<!ENTITY page.title "Snowl">
+<!ENTITY sourceCol.label "Kjelde">
+<!ENTITY authorCol.label "Forfattar">
+<!ENTITY subjectCol.label "Emne">
+<!ENTITY timestampCol.label "Dato">
+<!ENTITY datereceivedCol.label "Date Received">
+<!ENTITY readCol.label "Read">
+<!ENTITY flaggedCol.label "Flagged">
+<!ENTITY sortBy.label "Sort By ">
+<!ENTITY openListMessage.label "Opne melding">
+<!ENTITY openListMessage.accesskey "O">
+<!ENTITY selectAll.label "Vel alle">