[Pkg-cli-apps-commits] [SCM] sparkleshare branch, upstream, updated. upstream/0.2.5-2-gf4116ff

Carlos Martín Nieto carlos at cmartin.tk
Sun Nov 13 23:18:47 UTC 2011


The following commit has been merged in the upstream branch:
commit 8a32190e8cb09b6ea6cd42fed9cc56aa9ca467ce
Author: Carlos Martín Nieto <carlos at cmartin.tk>
Date:   Sun Nov 13 21:26:56 2011 +0100

    Imported Upstream version 0.4.0

diff --git a/AUTHORS b/AUTHORS
old mode 100644
new mode 100755
index f2aa8b0..fb3bb87
--- a/AUTHORS
+++ b/AUTHORS
@@ -37,6 +37,7 @@ Contributors:
 	Simon Pither <simon at pither.com>
 	Steven Harms <sharms at ubuntu.com>
 	Sven Mueller <thelightmaker at gmail.com>
+	Travis Glenn Hansen <travisghansen at yahoo.com>
 	Vincent Untz <vuntz at gnome.org>
 	Will Thompson <will at willthompson.co.uk>
 
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/Makefile.am b/Makefile.am
old mode 100644
new mode 100755
diff --git a/Makefile.in b/Makefile.in
index 195253c..aa67be7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -39,8 +39,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	AUTHORS NEWS config.guess config.sub install-sh ltmain.sh \
 	missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -131,6 +130,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -150,6 +151,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -163,6 +165,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -174,6 +177,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -184,6 +189,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
diff --git a/NEWS b/NEWS
old mode 100644
new mode 100755
index 220610f..7103f42
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,21 @@
-0.2.5 for Linux and Mac (...):
+0.4.0 for Linux and Mac (Sun Nov 12 2011):
+        Hylke: It has been a while since the last release. Since so many 
+        things changed, and it being (softly) incompatible with 0.2, I decided 
+        to call it 0.4. Here are the most important improvements:
+
+        - Support OS X Lion
+        - Revamped "Add Hosted Project..." dialog
+        - First run tutorial
+        - Clicking notifications opens the event log
+        - Support for organisation/host plugins
+        - Adding empty folders now works
+        - More useful error reporting
+        - Progress bar on the initial sync, and a button to cancel
+        - Replace IRC by a custom protocol as the default notification system
+        - Many many fixes for crashes and bugs
+
+
+0.2.5 for Linux and Mac (Mon Jul 25 2011):
 
         Hylke: Reimplement notes to be less buggy and backend independent. Polish
         about dialog and event log html. Fix a bug where large collections of files 
diff --git a/README b/README
index 610ebbc..8dfd1a4 100644
--- a/README
+++ b/README
@@ -1,30 +1,21 @@
-SparkleShare
-============
+# SparkleShare
 
 SparkleShare is a collaboration and sharing tool that is designed to keep
 things simple and to stay out of your way. It allows you to instantly sync
 with any Git repository you have access to.
 
-Though SparkleShare is not made to be a graphical frontend 
-for git or a backup tool, it may be useful for other kinds of purposes as well, 
-like backing up small files or monitoring your favourite project. In contrast 
-to the projects name, we will very likely refuse to implement your personal 
-ponies.
-
 SparkleShare currently works on Linux and Mac. A Windows port and mobile
 device support are planned for the future.
 
 
-License
-=======
+# License
 
 SparkleShare is free software and licensed under the GNU GPLv3 or later. You
 are welcome to change and redistribute it under certain conditions. For more
 information see the LICENSE file or visit http://www.gnu.org/licenses/gpl-3.0.html
 
 
-Run on Linux:
-=============
+# Run on Linux
 
 Requirements:
 
@@ -41,7 +32,6 @@ Requirements:
    - webkitgtk
    - webkit-sharp
 
-
 Run the service, either click the SparkleShare launcher or:
 
    $ sparkleshare start
@@ -61,20 +51,18 @@ Note:
    own server by hand.
 
 
-Build on Linux:
-===============
+# Build on Linux
 
 Installing the build dependencies on Debian or Ubuntu:
 
    $ sudo apt-get install gtk-sharp2 mono-runtime mono-devel monodevelop \
-     libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev \
+     libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev mono-gmcs \
      libwebkit-cil-dev intltool libtool python-nautilus libndesk-dbus-glib1.0-cil-dev
 
 For Ubuntu libappindicator support, run the following before building:
 
    $ sudo apt-get install libappindicator0.1-cil-dev 
-
-
+   
 On Fedora:
 
    $ sudo yum install gtk-sharp2-devel mono-core mono-devel monodevelop \
@@ -82,7 +70,6 @@ On Fedora:
      notify-sharp-devel webkit-sharp-devel webkitgtk-devel libtool intltool \
      gnome-doc-utils
 
-
 You can build and install SparkleShare like this:
 
    $ ./configure --prefix=/usr (or ./autogen.sh if you build from the repository)
@@ -94,16 +81,14 @@ Note:
    Use '--prefix=/usr' if you want the Nautilus extension to work.
 
 
-Run on Mac:
-===========
+# Run on Mac
 
-Just double-click the SparkleShare.app.
+Just double-click the SparkleShare bundle.
 
 
-Build on Mac:
-=============
+# Build on Mac
 
-Install the Mono Framework, MonoDevelop and the MonoMac plugin (you find it in Add-in Manager).
+Install Xcode, the Mono Framework, MonoDevelop and the MonoMac plugin (you can find it in MonoDevelop => Add-in Manager).
 
 You may need to adjust some environment variables to let the build environment tools find mono:
    
@@ -111,66 +96,32 @@ You may need to adjust some environment variables to let the build environment t
    $ export PKG_CONFIG=/Library/Frameworks/Mono.framework/Versions/Current/bin/pkg-config
    $ export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig
 
-Then you need either MacPorts or Homebrew. Go on and choose one of the next two sections.
-
-
-Using MacPorts
---------------
-
-Install git, automake, and intltool:
+Install git, automake, and intltool using MacPorts:
 
    $ sudo port install git-core automake intltool
-
+   
 Start the first part of the build:
 
-   $ ./autogen.sh
+   $ ./autogen.sh --enable-gtkui=no
    $ make
-
-The last step will give you some errors in SparkleShare.exe, ignore these and go on to the
-MonoDevelop section.
-
-
-Using Homebrew
---------------
-
-Because there are old versions of autoconf and automake installed on OS X, they are not in 
-the official master branch. It's easy to create the formulas:
-
-   $ brew create $url
    
-Now install the formulas.
-
-You can have a look at this branch for the created Formulas:
-https://github.com/toabi/homebrew/commits/sparkleshare
-
-You also have to comment out the 'keg_only' in gettext and remove it if you already
-installed it. If you created the formulas install them:
-
-	$ brew install git autoconf automake intltool gettext
-
-Now start the first part of the build:
-
-	$ export ACLOCAL_FLAGS="-I /usr/local/share/aclocal"
-	$ cd SmartIrc4net
-	$ ./autogen.sh
-	$ cd ..
-	$ ./autogen.sh
-	$ make
-
-Ignore the error and continue to the MonoDevelop-part.
+Now that you have compiled the libraries, open 'SparkleShare/Mac/SparkleShare.sln' in
+MonoDevelop and start the build.
 
+To create the SparkleShare.app, make sure the project is focused and select Project from the menu bar 
+and click "Create Mac Installer...". Make sure to select "Don't link assemblies". 
 
-Building the Cocoa UI MonoDevelop
----------------------------------
+Save the SparkleShare.app somewhere. Paste the contents of 
+the following file in SparkleShare.app/Contents/MonoBundle/config:
+https://raw.github.com/gist/1aeffa61bac73fc08eca/0c0f09ef9e36864c35f34fd5e8bf4f99886be193/gistfile1.txt
 
-Now that you have compiled the libraries, open 'SparkleShare/Mac/SparkleShare.sln' in
-MonoDevelop and start the build.
+Copy /Library/Frameworks/Mono.framework/Versions/Current/lib/libintl.dylib 
+to SparkleShare.app/Contents/Resources
 
-To create the SparkleShare.app, select Project from the menu bar and click "Create Mac Installer..."
+Now you should have a working bundle that you can run.
 
 
-Info
-====
+# Info
 
 Official website:
 http://www.sparkleshare.org/
diff --git a/SmartIrc4net/aclocal.m4 b/SmartIrc4net/aclocal.m4
index 273e967..d5d544a 100644
--- a/SmartIrc4net/aclocal.m4
+++ b/SmartIrc4net/aclocal.m4
@@ -47,7 +47,8 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -93,7 +94,8 @@ m4_define([_PKG_CONFIG],
     pkg_cv_[]$1="$$1"
  elif test -n "$PKG_CONFIG"; then
     PKG_CHECK_EXISTS([$3],
-                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
 		     [pkg_failed=yes])
  else
     pkg_failed=untried
@@ -141,9 +143,9 @@ if test $pkg_failed = yes; then
    	AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -156,7 +158,7 @@ $$1_PKG_ERRORS
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT])
+_PKG_TEXT])[]dnl
         ])
 elif test $pkg_failed = untried; then
      	AC_MSG_RESULT([no])
@@ -167,7 +169,7 @@ path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
diff --git a/SmartIrc4net/configure b/SmartIrc4net/configure
index 18e2c12..2f890ad 100755
--- a/SmartIrc4net/configure
+++ b/SmartIrc4net/configure
@@ -2292,6 +2292,7 @@ ASSEMBLY_VERSION="0.4.5.0"
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -2421,6 +2422,7 @@ if test -n "$MONO_MODULE_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MONO_MODULE_CFLAGS=`$PKG_CONFIG --cflags "mono >= 1.2.6" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -2437,6 +2439,7 @@ if test -n "$MONO_MODULE_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MONO_MODULE_LIBS=`$PKG_CONFIG --libs "mono >= 1.2.6" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -2456,9 +2459,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono >= 1.2.6" 2>&1`
+	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono >= 1.2.6" 2>&1`
         else
-	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono >= 1.2.6" 2>&1`
+	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono >= 1.2.6" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$MONO_MODULE_PKG_ERRORS" >&5
@@ -2473,7 +2476,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables MONO_MODULE_CFLAGS
 and MONO_MODULE_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -2489,7 +2491,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	MONO_MODULE_CFLAGS=$pkg_cv_MONO_MODULE_CFLAGS
 	MONO_MODULE_LIBS=$pkg_cv_MONO_MODULE_LIBS
diff --git a/SparkleLib/AssemblyInfo.cs b/SparkleLib/AssemblyInfo.cs
index 3512872..1a44042 100644
--- a/SparkleLib/AssemblyInfo.cs
+++ b/SparkleLib/AssemblyInfo.cs
@@ -7,5 +7,5 @@
 using System.Reflection;
 using System.Runtime.CompilerServices;
 
-[assembly: AssemblyVersion("0.2.5")]
+[assembly: AssemblyVersion("0.4.0")]
 [assembly: AssemblyTitle ("SparkleShare")]
diff --git a/SparkleLib/AssemblyInfo.cs.in b/SparkleLib/AssemblyInfo.cs.in
old mode 100644
new mode 100755
diff --git a/SparkleLib/Defines.cs b/SparkleLib/Defines.cs
index c79cfff..018eb5d 100644
--- a/SparkleLib/Defines.cs
+++ b/SparkleLib/Defines.cs
@@ -20,11 +20,11 @@ namespace SparkleLib {
 
 	public class Defines {
 
-		public const string VERSION         = "0.2.5";
-		public const string LOCALE_DIR      = "/usr/share/locale";
-		public const string DATAROOTDIR     = "/usr/share";
+		public const string VERSION         = "0.4.0";
+		public const string LOCALE_DIR      = "/usr/local/share/locale";
+		public const string DATAROOTDIR     = "/usr/local/share";
 		public const string GETTEXT_PACKAGE = "sparkleshare";
-		public const string PREFIX          = "/usr";
+		public const string PREFIX          = "/usr/local";
 	}
 }
 
diff --git a/SparkleLib/Defines.cs.in b/SparkleLib/Defines.cs.in
old mode 100644
new mode 100755
diff --git a/SparkleLib/Git/SparkleFetcherGit.cs b/SparkleLib/Git/SparkleFetcherGit.cs
old mode 100644
new mode 100755
index 101d0bf..36b6a45
--- a/SparkleLib/Git/SparkleFetcherGit.cs
+++ b/SparkleLib/Git/SparkleFetcherGit.cs
@@ -18,13 +18,16 @@
 using System;
 using System.IO;
 using System.Diagnostics;
-using System.Xml;
+using System.Text.RegularExpressions;
 
 namespace SparkleLib {
 
     // Sets up a fetcher that can get remote folders
     public class SparkleFetcherGit : SparkleFetcherBase {
 
+        private SparkleGit git;
+
+
         public SparkleFetcherGit (string server, string remote_folder, string target_folder) :
             base (server, remote_folder, target_folder)
         {
@@ -57,13 +60,20 @@ namespace SparkleLib {
             } else {
                 server = server.TrimEnd ("/".ToCharArray ());
 
+                string protocol = "ssh://";
+
                 if (server.StartsWith ("ssh://"))
+                    server   = server.Substring (6);
+
+                if (server.StartsWith ("git://")) {
                     server = server.Substring (6);
+                    protocol = "git://";
+                }
 
                 if (!server.Contains ("@"))
                     server = "git@" + server;
 
-                server = "ssh://" + server;
+                server = protocol + server;
             }
 
             base.target_folder = target_folder;
@@ -73,15 +83,51 @@ namespace SparkleLib {
 
         public override bool Fetch ()
         {
-            SparkleGit git = new SparkleGit (SparkleConfig.DefaultConfig.TmpPath,
-                "clone \"" + base.remote_url + "\" " + "\"" + base.target_folder + "\"");
-
-            git.Start ();
-            git.WaitForExit ();
+            this.git = new SparkleGit (SparkleConfig.DefaultConfig.TmpPath,
+                "clone " +
+                "--progress " + // Redirects progress stats to standarderror
+                "\"" + base.remote_url + "\" " + "\"" + base.target_folder + "\"");
+            
+            this.git.StartInfo.RedirectStandardError = true;
+            this.git.Start ();
+            
+            double percentage = 1.0;
+            Regex progress_regex = new Regex (@"([0-9]+)%", RegexOptions.Compiled);
+            
+            while (!this.git.StandardError.EndOfStream) {
+                string line = this.git.StandardError.ReadLine ();
+                Match match = progress_regex.Match (line);
+                
+                double number = 0.0;
+                if (match.Success) {
+                    number = double.Parse (match.Groups [1].Value);
+                    
+                    // The cloning progress consists of two stages: the "Compressing 
+                    // objects" stage which we count as 20% of the total progress, and 
+                    // the "Receiving objects" stage which we count as the last 80%
+                    if (line.Contains ("|"))
+                        // "Receiving objects" stage
+                        number = (number / 100 * 75 + 20);    
+                    else
+                        // "Compressing objects" stage
+                        number = (number / 100 * 20);
+                }
+                
+                if (number >= percentage) {
+                    percentage = number;
+                    
+                    // FIXME: for some reason it doesn't go above 95%
+                    base.OnProgressChanged (percentage);
+                }
+                
+                System.Threading.Thread.Sleep (100);        
+            }
+            
+            this.git.WaitForExit ();
 
-            SparkleHelpers.DebugInfo ("Git", "Exit code " + git.ExitCode.ToString ());
+            SparkleHelpers.DebugInfo ("Git", "Exit code " + this.git.ExitCode.ToString ());
 
-            if (git.ExitCode != 0) {
+            if (this.git.ExitCode != 0) {
                 return false;
             } else {
                 InstallConfiguration ();
@@ -91,40 +137,35 @@ namespace SparkleLib {
         }
 
 
+        public override void Stop ()
+        {
+            if (this.git != null) {
+                this.git.Kill ();
+                this.git.Dispose ();
+            }
+
+            base.Stop ();
+        }
+
+
         // Install the user's name and email and some config into
         // the newly cloned repository
         private void InstallConfiguration ()
         {
-            string global_config_file_path = Path.Combine (SparkleConfig.DefaultConfig.TmpPath, "config.xml");
-
-            if (!File.Exists (global_config_file_path))
-                return;
-
             string repo_config_file_path = SparkleHelpers.CombineMore (base.target_folder, ".git", "config");
             string config = String.Join (Environment.NewLine, File.ReadAllLines (repo_config_file_path));
 
+            string n = Environment.NewLine;
+
+            // Show special characters in the logs
+            config = config.Replace ("[core]" + n,
+                "[core]" + n + "quotepath = false" + n);
+
             // Be case sensitive explicitly to work on Mac
             config = config.Replace ("ignorecase = true", "ignorecase = false");
 
             // Ignore permission changes
             config = config.Replace ("filemode = true", "filemode = false");
-            config = config.Replace ("fetch = +refs/heads/*:refs/remotes/origin/*", 
-                "fetch = +refs/heads/*:refs/remotes/origin/*" + Environment.NewLine +
-                "\tfetch = +refs/notes/*:refs/notes/*");
-
-            // Add user info
-            string n        = Environment.NewLine;
-            XmlDocument xml = new XmlDocument();
-            xml.Load (global_config_file_path);
-
-            XmlNode node_name  = xml.SelectSingleNode ("//user/name/text()");
-            XmlNode node_email = xml.SelectSingleNode ("//user/email/text()");
-
-            // TODO: just use commands instead of messing with the config file
-            config += n +
-                      "[user]" + n +
-                      "\tname  = " + node_name.Value + n +
-                      "\temail = " + node_email.Value + n;
 
             // Write the config to the file
             TextWriter writer = new StreamWriter (repo_config_file_path);
@@ -146,6 +187,10 @@ namespace SparkleLib {
                 // gedit and emacs
                 writer.WriteLine ("*~");
 
+                // Firefox and Chromium temporary download files
+                writer.WriteLine ("*.part");
+                writer.WriteLine ("*.crdownload");
+
                 // vi(m)
                 writer.WriteLine (".*.sw[a-z]");
                 writer.WriteLine ("*.un~");
@@ -169,6 +214,24 @@ namespace SparkleLib {
                 writer.WriteLine ("Thumbs.db");
                 writer.WriteLine ("Desktop.ini");
 
+		// MS Office
+                writer.WriteLine ("~*.tmp");
+                writer.WriteLine ("~*.TMP");
+                writer.WriteLine ("*~*.tmp");
+                writer.WriteLine ("*~*.TMP");
+                writer.WriteLine ("~*.ppt");
+                writer.WriteLine ("~*.pptx");
+                writer.WriteLine ("~*.PPT");
+                writer.WriteLine ("~*.PPTX");
+                writer.WriteLine ("~*.xls");
+                writer.WriteLine ("~*.xlsx");
+                writer.WriteLine ("~*.XLS");
+                writer.WriteLine ("~*.XLSX");
+                writer.WriteLine ("~*.doc");
+                writer.WriteLine ("~*.docx");
+                writer.WriteLine ("~*.DOC");
+                writer.WriteLine ("~*.DOCX");
+
                 // CVS
                 writer.WriteLine ("*/CVS/*");
                 writer.WriteLine (".cvsignore");
diff --git a/SparkleLib/Git/SparkleRepoGit.cs b/SparkleLib/Git/SparkleRepoGit.cs
old mode 100644
new mode 100755
index 407cd74..2bba8c0
--- a/SparkleLib/Git/SparkleRepoGit.cs
+++ b/SparkleLib/Git/SparkleRepoGit.cs
@@ -30,22 +30,31 @@ namespace SparkleLib {
             base (path, backend) { }
 
 
+        private string identifier = null;
+
         public override string Identifier {
             get {
+                if (string.IsNullOrEmpty (this.identifier)) {
 
-                // Because git computes a hash based on content,
-                // author, and timestamp; it is unique enough to
-                // use the hash of the first commit as an identifier
-                // for our folder
-                SparkleGit git = new SparkleGit (LocalPath, "rev-list --reverse HEAD");
-                git.Start ();
+                    // Because git computes a hash based on content,
+                    // author, and timestamp; it is unique enough to
+                    // use the hash of the first commit as an identifier
+                    // for our folder
+                    SparkleGit git = new SparkleGit (LocalPath, "rev-list --reverse HEAD");
+                    git.Start ();
 
-                // Reading the standard output HAS to go before
-                // WaitForExit, or it will hang forever on output > 4096 bytes
-                string output = git.StandardOutput.ReadToEnd ();
-                git.WaitForExit ();
+                    // Reading the standard output HAS to go before
+                    // WaitForExit, or it will hang forever on output > 4096 bytes
+                    string output = git.StandardOutput.ReadToEnd ();
+                    git.WaitForExit ();
 
-                return output.Substring (0, 40);
+                    if (output.Length < 40)
+                        return null;
+
+                    this.identifier = output.Substring (0, 40);
+                }
+
+                return this.identifier;
             }
         }
 
@@ -78,6 +87,7 @@ namespace SparkleLib {
             }
         }
 
+
         public override string CurrentRevision {
             get {
 
@@ -128,7 +138,9 @@ namespace SparkleLib {
         public override bool SyncUp ()
         {
             Add ();
-            Commit ("Changes made by SparkleShare");
+
+            string message = FormatCommitMessage ();
+            Commit (message);
 
             SparkleGit git = new SparkleGit (LocalPath, "push origin master");
             git.Start ();
@@ -160,6 +172,8 @@ namespace SparkleLib {
 
         public override bool AnyDifferences {
             get {
+                FillEmptyDirectories (LocalPath);
+
                 SparkleGit git = new SparkleGit (LocalPath, "status --porcelain");
                 git.Start ();
 
@@ -194,7 +208,7 @@ namespace SparkleLib {
 
                 if (value) {
                     if (!File.Exists (unsynced_file_path))
-                        File.Create (unsynced_file_path);
+                        File.Create (unsynced_file_path).Close ();
                 } else {
                     File.Delete (unsynced_file_path);
                 }
@@ -227,7 +241,11 @@ namespace SparkleLib {
         // Commits the made changes
         private void Commit (string message)
         {
-            SparkleGit git = new SparkleGit (LocalPath, "commit -m \"" + message + "\"");
+            SparkleGit git = new SparkleGit (LocalPath,
+                "commit -m \"" + message + "\" " +
+                "--author=\"" + SparkleConfig.DefaultConfig.User.Name +
+                " <" + SparkleConfig.DefaultConfig.User.Email + ">\"");
+
             git.Start ();
             git.StandardOutput.ReadToEnd ();
             git.WaitForExit ();
@@ -318,8 +336,10 @@ namespace SparkleLib {
                     git_theirs.Start ();
                     git_theirs.WaitForExit ();
 
-                    // Append a timestamp to local version
-                    string timestamp            = DateTime.Now.ToString ("HH:mm MMM d");
+                    // Append a timestamp to local version.
+                    // Windows doesn't allow colons in the file name, so
+                    // we use "h" between the hours and minutes instead.
+                    string timestamp            = DateTime.Now.ToString ("HH\\hmm MMM d");
                     string their_path           = conflicting_path + " (" + SparkleConfig.DefaultConfig.User.Name + ", " + timestamp + ")";
                     string abs_conflicting_path = Path.Combine (LocalPath, conflicting_path);
                     string abs_their_path       = Path.Combine (LocalPath, their_path);
@@ -348,7 +368,7 @@ namespace SparkleLib {
                     // We need to specifically mention the file, so
                     // we can't reuse the Add () method
                     SparkleGit git_add = new SparkleGit (LocalPath,
-                        "add " + conflicting_path);
+                        "add \"" + conflicting_path + "\"");
                     git_add.Start ();
                     git_add.WaitForExit ();
 
@@ -378,8 +398,10 @@ namespace SparkleLib {
 
             List <SparkleChangeSet> change_sets = new List <SparkleChangeSet> ();
 
-            SparkleGit git_log = new SparkleGit (LocalPath, "log -" + count + " --raw -M --date=iso");
+            // Console.InputEncoding  = System.Text.Encoding.Unicode;
             Console.OutputEncoding = System.Text.Encoding.Unicode;
+
+            SparkleGit git_log = new SparkleGit (LocalPath, "log -" + count + " --raw -M --date=iso");
             git_log.Start ();
 
             // Reading the standard output HAS to go before
@@ -462,6 +484,9 @@ namespace SparkleLib {
                             string file_path   = entry_line.Substring (39);
                             string to_file_path;
 
+                            if (file_path.EndsWith (".empty"))
+                                file_path = file_path.Substring (0, file_path.Length - ".empty".Length);
+
                             if (change_type.Equals ("A") && !file_path.Contains (".notes")) {
                                 change_set.Added.Add (file_path);
 
@@ -484,7 +509,8 @@ namespace SparkleLib {
 
                     if ((change_set.Added.Count +
                          change_set.Edited.Count +
-                         change_set.Deleted.Count) > 0) {
+                         change_set.Deleted.Count +
+                         change_set.MovedFrom.Count) > 0) {
 
                         change_set.Notes.AddRange (GetNotes (change_set.Revision));
                         change_sets.Add (change_set);
@@ -496,6 +522,22 @@ namespace SparkleLib {
         }
 
 
+        // Git doesn't track empty directories, so this method
+        // fills them all with a hidden empty file
+        private void FillEmptyDirectories (string path)
+        {
+            foreach (string child_path in Directory.GetDirectories (path)) {
+                if (child_path.EndsWith (".git") || child_path.EndsWith (".notes"))
+                    continue;
+
+                FillEmptyDirectories (child_path);
+            }
+
+            if (Directory.GetFiles (path).Length == 0 && !path.Equals (LocalPath))
+                File.Create (Path.Combine (path, ".empty")).Close ();
+        }
+
+
         // Creates a pretty commit message based on what has changed
         private string FormatCommitMessage ()
         {
diff --git a/SparkleLib/Makefile.am b/SparkleLib/Makefile.am
old mode 100644
new mode 100755
diff --git a/SparkleLib/Makefile.in b/SparkleLib/Makefile.in
index 33a94f7..5c97f91 100644
--- a/SparkleLib/Makefile.in
+++ b/SparkleLib/Makefile.in
@@ -40,8 +40,7 @@ DIST_COMMON = $(srcdir)/AssemblyInfo.cs.in $(srcdir)/Defines.cs.in \
 @ENABLE_TESTS_TRUE at am__append_1 = " $(NUNIT_LIBS)"
 subdir = SparkleLib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -103,6 +102,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -122,6 +123,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -135,6 +137,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -146,6 +149,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -156,6 +161,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
diff --git a/SparkleLib/SparkleBackend.cs b/SparkleLib/SparkleBackend.cs
old mode 100644
new mode 100755
index 248cd3f..c916fa8
--- a/SparkleLib/SparkleBackend.cs
+++ b/SparkleLib/SparkleBackend.cs
@@ -32,6 +32,7 @@ namespace SparkleLib {
         public SparkleBackend (string name, string [] paths)
         {
             Name = name;
+            Path = "git";
 
             foreach (string path in paths) {
                 if (File.Exists (path)) {
diff --git a/SparkleLib/SparkleChangeSet.cs b/SparkleLib/SparkleChangeSet.cs
old mode 100644
new mode 100755
diff --git a/SparkleLib/SparkleConfig.cs b/SparkleLib/SparkleConfig.cs
old mode 100644
new mode 100755
index bf9e4c6..86f869c
--- a/SparkleLib/SparkleConfig.cs
+++ b/SparkleLib/SparkleConfig.cs
@@ -28,10 +28,9 @@ namespace SparkleLib {
 
         public static string ConfigPath = Path.Combine (
             Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData),
-            "sparkleshare");
+                "sparkleshare");
 
-        public static SparkleConfig DefaultConfig = new SparkleConfig (
-            ConfigPath, "config.xml");
+        public static SparkleConfig DefaultConfig = new SparkleConfig (ConfigPath, "config.xml");
 
 
         public string FullPath;
@@ -65,10 +64,30 @@ namespace SparkleLib {
                 SparkleHelpers.DebugInfo ("Config", "Created \"" + icons_path + "\"");
             }
 
-            if (!File.Exists (FullPath))
+            try {
+              Load (FullPath);
+              
+            } catch (TypeInitializationException) {
+                CreateInitialConfig ();
+
+            } catch (FileNotFoundException) {
                 CreateInitialConfig ();
 
-            Load (FullPath);
+            } catch (XmlException) {
+            
+                FileInfo file = new FileInfo (FullPath);
+                
+                if (file.Length == 0) {
+                    File.Delete (FullPath);
+                    CreateInitialConfig ();
+
+                } else {
+                    throw new XmlException (FullPath + " does not contain a valid config XML structure.");
+                }
+
+            } finally {
+                Load (FullPath);
+            }
         }
 
 
@@ -92,17 +111,15 @@ namespace SparkleLib {
             if (string.IsNullOrEmpty (user_name))
                 user_name = "Unknown";
 
-            TextWriter writer = new StreamWriter (FullPath);
-            string n          = Environment.NewLine;
-
-            writer.Write ("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + n +
-                          "<sparkleshare>" + n +
-                          "  <user>" + n +
-                          "    <name>" + user_name + "</name>" + n +
-                          "    <email>Unknown</email>" + n +
-                          "  </user>" + n +
-                          "</sparkleshare>");
-            writer.Close ();
+            string n = Environment.NewLine;
+            File.WriteAllText (FullPath,
+                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + n +
+                "<sparkleshare>" + n +
+                "  <user>" + n +
+                "    <name>" + user_name + "</name>" + n +
+                "    <email>Unknown</email>" + n +
+                "  </user>" + n +
+                "</sparkleshare>");
 
             SparkleHelpers.DebugInfo ("Config", "Created \"" + FullPath + "\"");
         }
@@ -234,7 +251,6 @@ namespace SparkleLib {
         }
 
 
-
         public List<string> Hosts {
             get {
                 List<string> hosts = new List<string> ();
@@ -256,10 +272,16 @@ namespace SparkleLib {
                 List<string> hosts = new List<string> ();
 
                 foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) {
-                    Uri uri = new Uri (node_folder ["url"].InnerText);
+                    try {
+                        Uri uri = new Uri (node_folder ["url"].InnerText);
+
+                        if (uri.UserInfo != "git" && !hosts.Contains (uri.UserInfo + "@" + uri.Host))
+                            hosts.Add (uri.UserInfo + "@" + uri.Host);
 
-                    if ("git" != uri.UserInfo && !hosts.Contains (uri.UserInfo + "@" + uri.Host))
-                        hosts.Add (uri.UserInfo + "@" + uri.Host);
+                    } catch (UriFormatException) {
+                        SparkleHelpers.DebugInfo ("Config",
+                            "Ignoring badly formatted URI: " + node_folder ["url"].InnerText);
+                    }
                 }
 
               return hosts;
@@ -333,3 +355,4 @@ namespace SparkleLib {
             base (message) { }
     }
 }
+
diff --git a/SparkleLib/SparkleFetcherBase.cs b/SparkleLib/SparkleFetcherBase.cs
old mode 100644
new mode 100755
index 0f2f673..bc2adf2
--- a/SparkleLib/SparkleFetcherBase.cs
+++ b/SparkleLib/SparkleFetcherBase.cs
@@ -31,18 +31,19 @@ namespace SparkleLib {
         public delegate void StartedEventHandler ();
         public delegate void FinishedEventHandler ();
         public delegate void FailedEventHandler ();
+        public delegate void ProgressChangedEventHandler (double percentage);
 
         public event StartedEventHandler Started;
         public event FinishedEventHandler Finished;
         public event FailedEventHandler Failed;
+        public event ProgressChangedEventHandler ProgressChanged;
 
         protected string target_folder;
         protected string remote_url;
-        private Thread thread;
-
-        public abstract bool Fetch ();
 
+        private Thread thread;
 
+        
         public SparkleFetcherBase (string server, string remote_folder, string target_folder)
         {
             this.target_folder = target_folder;
@@ -50,6 +51,9 @@ namespace SparkleLib {
         }
 
 
+        public abstract bool Fetch ();
+
+
         // Clones the remote repository
         public void Start ()
         {
@@ -95,6 +99,13 @@ namespace SparkleLib {
         }
 
 
+        public virtual void Stop ()
+        {
+            this.thread.Abort ();
+            this.thread.Join ();
+        }
+
+
         public string RemoteUrl {
             get {
                 return this.remote_url;
@@ -110,7 +121,13 @@ namespace SparkleLib {
             }
         }
 
-
+        
+        protected void OnProgressChanged (double percentage) {
+            if (ProgressChanged != null)
+                ProgressChanged (percentage);    
+        }
+    
+        
         private void DisableHostKeyCheckingForHost (string host)
         {
             string path = SparkleConfig.DefaultConfig.HomePath;
@@ -123,8 +140,10 @@ namespace SparkleLib {
 
             string ssh_config_path      = Path.Combine (path, ".ssh");
             string ssh_config_file_path = SparkleHelpers.CombineMore (path, ".ssh", "config");
-            string ssh_config           = Environment.NewLine + "Host " + host +
-                                          Environment.NewLine + "\tStrictHostKeyChecking no";
+            string ssh_config           = Environment.NewLine + "# <SparkleShare>" +
+                                          Environment.NewLine + "Host " + host +
+                                          Environment.NewLine + "\tStrictHostKeyChecking no" +
+                                          Environment.NewLine + "# </SparkleShare>";
 
             if (!Directory.Exists (ssh_config_path))
                 Directory.CreateDirectory (ssh_config_path);
@@ -135,16 +154,14 @@ namespace SparkleLib {
                 writer.Close ();
 
             } else {
-                TextWriter writer = new StreamWriter (ssh_config_file_path);
-                writer.WriteLine (ssh_config);
-                writer.Close ();
+                File.WriteAllText (ssh_config_file_path, ssh_config);
             }
 
             UnixFileSystemInfo file_info = new UnixFileInfo (ssh_config_file_path);
             file_info.FileAccessPermissions = (FileAccessPermissions.UserRead |
                                                FileAccessPermissions.UserWrite);
 
-            SparkleHelpers.DebugInfo ("Fetcher", "Disabled host key checking");
+            SparkleHelpers.DebugInfo ("Fetcher", "Disabled host key checking " + host);
         }
         
 
@@ -159,25 +176,37 @@ namespace SparkleLib {
             }
 
             string ssh_config_file_path = SparkleHelpers.CombineMore (path, ".ssh", "config");
-            string ssh_config           = Environment.NewLine + "Host " + host +
-                                          Environment.NewLine + "\tStrictHostKeyChecking no";
 
             if (File.Exists (ssh_config_file_path)) {
-                StreamReader reader = new StreamReader (ssh_config_file_path);
-                string current_ssh_config = reader.ReadToEnd ();
-                reader.Close ();
+                string current_ssh_config = File.ReadAllText (ssh_config_file_path);
 
-                current_ssh_config = current_ssh_config.Remove (
-                    current_ssh_config.IndexOf (ssh_config), ssh_config.Length);
+                current_ssh_config = current_ssh_config.Trim ();
+                string [] lines = current_ssh_config.Split (Environment.NewLine.ToCharArray ());
+                string new_ssh_config = "";
+                bool in_sparkleshare_section = false;
+
+                foreach (string line in lines) {
+                    if (line.StartsWith ("# <SparkleShare>")) {
+                        in_sparkleshare_section = true;
+                        continue;
+                    }
+
+                    if (line.StartsWith ("# </SparkleShare>")) {
+                        in_sparkleshare_section = false;
+                        continue;
+                    }
+
+                    if (in_sparkleshare_section)
+                        continue;
+
+                    new_ssh_config += line + Environment.NewLine;
+                }
 
-                bool has_some_ssh_config = new Regex (@"[a-z]").IsMatch (current_ssh_config);
-                if (!has_some_ssh_config) {
+                if (string.IsNullOrEmpty (new_ssh_config.Trim ())) {
                     File.Delete (ssh_config_file_path);
 
                 } else {
-                    TextWriter writer = new StreamWriter (ssh_config_file_path);
-                    writer.WriteLine (current_ssh_config);
-                    writer.Close ();
+                    File.WriteAllText (ssh_config_file_path, new_ssh_config.Trim ());
 
                     UnixFileSystemInfo file_info = new UnixFileInfo (ssh_config_file_path);
                     file_info.FileAccessPermissions = (FileAccessPermissions.UserRead |
@@ -185,7 +214,7 @@ namespace SparkleLib {
                 }
             }
 
-            SparkleHelpers.DebugInfo ("Fetcher", "Enabled host key checking");
+            SparkleHelpers.DebugInfo ("Fetcher", "Enabled host key checking for " + host);
         }
 
 
diff --git a/SparkleLib/SparkleHelpers.cs b/SparkleLib/SparkleHelpers.cs
old mode 100644
new mode 100755
index 741648d..b2b1a45
--- a/SparkleLib/SparkleHelpers.cs
+++ b/SparkleLib/SparkleHelpers.cs
@@ -65,16 +65,34 @@ namespace SparkleLib {
                 string [] files = Directory .GetFiles(path);
 
                 foreach (string file in files)
-                    File.SetAttributes (file, FileAttributes.Normal);
+                    if (!IsSymlink (file))
+                        File.SetAttributes (file, FileAttributes.Normal);
             }
         }
 
 
+        // Check if a file is a symbolic link
+        public static bool IsSymlink (string file)
+        {
+            FileAttributes attr = File.GetAttributes (file);
+
+            return ((attr & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint);
+        }
+
+
         // Converts a UNIX timestamp to a more usable time object
         public static DateTime UnixTimestampToDateTime (int timestamp)
         {
             DateTime unix_epoch = new DateTime (1970, 1, 1, 0, 0, 0, 0);
             return unix_epoch.AddSeconds (timestamp);
         }
+
+
+        // Gets the relative path of two hierarchical absolute paths	
+        public static string DiffPaths (string target, string source)
+        {
+            return target.Replace (source + Path.DirectorySeparatorChar, "");      
+        }
     }
 }
+
diff --git a/SparkleLib/SparkleListenerBase.cs b/SparkleLib/SparkleListenerBase.cs
old mode 100644
new mode 100755
index b929384..4ef34a4
--- a/SparkleLib/SparkleListenerBase.cs
+++ b/SparkleLib/SparkleListenerBase.cs
@@ -16,8 +16,10 @@
 
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Timers;
+using System.Linq;
 
 namespace SparkleLib {
 
@@ -50,7 +52,7 @@ namespace SparkleLib {
                 // don't have your own. All data needed to connect is hashed and
                 // we don't store any personal information ever
 
-                uri = "irc://204.62.14.135/";
+                uri = "tcp://204.62.14.135:1986"; // TODO: announcements.sparkleshare.org
             }
 
             Uri announce_uri = new Uri (uri);
@@ -77,10 +79,10 @@ namespace SparkleLib {
                 listeners.Add (new SparkleListenerIrc (announce_uri, folder_identifier));
                 break;
             default:
-                listeners.Add (new SparkleListenerIrc (announce_uri, folder_identifier));
+                listeners.Add (new SparkleListenerTcp (announce_uri, folder_identifier));
                 break;
             }
-            
+
             SparkleHelpers.DebugInfo ("ListenerFactory", "Issued new listener for " + announce_uri);
             return (SparkleListenerBase) listeners [listeners.Count - 1];
         }
@@ -104,20 +106,21 @@ namespace SparkleLib {
         public event AnnouncementEventHandler Announcement;
         public delegate void AnnouncementEventHandler (SparkleAnnouncement announcement);
 
-
         public abstract void Connect ();
         public abstract void Announce (SparkleAnnouncement announcent);
         public abstract void AlsoListenTo (string folder_identifier);
         public abstract bool IsConnected { get; }
 
-
-        protected List<string> channels                = new List<string> ();
-        protected List<SparkleAnnouncement> queue_up   = new List<SparkleAnnouncement> ();
-        protected List<SparkleAnnouncement> queue_down = new List<SparkleAnnouncement> ();
+        protected List<string> channels = new List<string> ();
+        protected Dictionary<string,List<SparkleAnnouncement>> recent_announcements = new Dictionary<string, List<SparkleAnnouncement>> ();
+        protected int max_recent_announcements = 10;
+        protected Dictionary<string, SparkleAnnouncement> queue_up  = new Dictionary<string, SparkleAnnouncement> ();
+        protected Dictionary<string,SparkleAnnouncement> queue_down = new Dictionary<string, SparkleAnnouncement> ();
         protected bool is_connecting;
         protected Uri server;
         protected Timer reconnect_timer = new Timer { Interval = 60 * 1000, Enabled = true };
 
+
         public SparkleListenerBase (Uri server, string folder_identifier)
         {
             this.server = server;
@@ -133,29 +136,23 @@ namespace SparkleLib {
 
         public void AnnounceBase (SparkleAnnouncement announcement)
         {
-            if (IsConnected) {
-                SparkleHelpers.DebugInfo ("Listener",
-                    "Announcing to " + announcement.FolderIdentifier + " on " + this.server);
-
-                Announce (announcement);
+            if (!this.IsRecentAnnounement (announcement)) {
+                if (IsConnected) {
+                    SparkleHelpers.DebugInfo ("Listener",
+                        "Announcing message " + announcement.Message + " to " + announcement.FolderIdentifier + " on " + this.server);
+
+                    Announce (announcement);
+                    this.AddRecentAnnouncement (announcement);
+                } else {
+                    SparkleHelpers.DebugInfo ("Listener", "Can't send message to " + this.server + ". Queuing message");
+                    this.queue_up [announcement.FolderIdentifier] = announcement;
+                }
 
             } else {
-                SparkleHelpers.DebugInfo ("Listener", "Not connected to " + this.server + ". Queuing message");
-                this.queue_up.Add (announcement);
-            }
-        }
-
-
-        public bool HasQueueDownAnnouncement (string folder_identifier)
-        {
-            foreach (SparkleAnnouncement announcement in this.queue_down) {
-                if (announcement.FolderIdentifier.Equals (folder_identifier)) {
-                    this.queue_down.Remove (announcement);
-                    return true;
-                }
+                SparkleHelpers.DebugInfo ("Listener",
+                    "Already processed message " + announcement.Message + " to " + announcement.FolderIdentifier + " from " + this.server);
             }
 
-            return false;
         }
 
 
@@ -168,25 +165,27 @@ namespace SparkleLib {
 
         public void OnConnected ()
         {
-            SparkleHelpers.DebugInfo ("Listener", "Connected to " + Server);
+            SparkleHelpers.DebugInfo ("Listener", "Listening for announcements on " + Server);
 
             if (Connected != null)
                 Connected ();
 
             if (this.queue_up.Count > 0) {
-                SparkleHelpers.DebugInfo ("Listener", "Delivering queued messages...");
+                SparkleHelpers.DebugInfo ("Listener", "Delivering " + this.queue_up.Count + " queued messages...");
 
-                foreach (SparkleAnnouncement announcement in this.queue_up) {
+                foreach (KeyValuePair<string, SparkleAnnouncement> item in this.queue_up) {
+                    SparkleAnnouncement announcement = item.Value;
                     AnnounceBase (announcement);
-                    this.queue_up.Remove (announcement);
                 }
+
+                this.queue_down.Clear ();
             }
         }
 
 
         public void OnDisconnected ()
         {
-            SparkleHelpers.DebugInfo ("Listener", "Disonnected from " + Server);
+            SparkleHelpers.DebugInfo ("Listener", "Signal of " + Server + " lost");
 
             if (Disconnected != null)
                 Disconnected ();
@@ -195,15 +194,71 @@ namespace SparkleLib {
 
         public void OnAnnouncement (SparkleAnnouncement announcement)
         {
-            SparkleHelpers.DebugInfo ("Listener", "Got message from " + announcement.FolderIdentifier + " on " + this.server);
- 
-            this.queue_down.Add (announcement);
+            SparkleHelpers.DebugInfo ("Listener",
+              "Got message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
+
+            if (IsRecentAnnounement(announcement) ){
+                SparkleHelpers.DebugInfo ("Listener",
+                    "Ignoring previously processed message " + announcement.Message + 
+                    " from " + announcement.FolderIdentifier + " on " + this.server);
+                
+                  return;
+            }
+
+            SparkleHelpers.DebugInfo ("Listener",
+                "Processing message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
+
+            AddRecentAnnouncement (announcement);
+            this.queue_down [announcement.FolderIdentifier] = announcement;
 
             if (Announcement != null)
                 Announcement (announcement);
         }
 
 
+        private bool IsRecentAnnounement (SparkleAnnouncement announcement)
+        {
+            if (!HasRecentAnnouncements (announcement.FolderIdentifier)) {
+                return false;
+
+            } else {
+                foreach (SparkleAnnouncement recent_announcement in GetRecentAnnouncements (announcement.FolderIdentifier)) {
+                    if (recent_announcement.Message.Equals (announcement.Message))
+                        return true;
+                }
+
+                return false;
+            }
+        }
+
+
+        private List<SparkleAnnouncement> GetRecentAnnouncements (string folder_identifier)
+        {
+            if (!this.recent_announcements.ContainsKey (folder_identifier))
+                this.recent_announcements [folder_identifier] = new List<SparkleAnnouncement> ();
+
+            return (List<SparkleAnnouncement>) this.recent_announcements [folder_identifier];
+        }
+
+
+        private void AddRecentAnnouncement (SparkleAnnouncement announcement)
+        {
+            List<SparkleAnnouncement> recent_announcements = this.GetRecentAnnouncements (announcement.FolderIdentifier);
+
+            if (!IsRecentAnnounement (announcement))
+                recent_announcements.Add (announcement);
+
+            if (recent_announcements.Count > this.max_recent_announcements)
+                recent_announcements.RemoveRange (0, (recent_announcements.Count - this.max_recent_announcements));
+        }
+
+
+        private bool HasRecentAnnouncements (string folder_identifier)
+        {
+            return this.recent_announcements.ContainsKey (folder_identifier);
+        }
+
+
         public virtual void Dispose ()
         {
             this.reconnect_timer.Dispose ();
@@ -224,3 +279,4 @@ namespace SparkleLib {
         }
     }
 }
+
diff --git a/SparkleLib/SparkleListenerIrc.cs b/SparkleLib/SparkleListenerIrc.cs
old mode 100644
new mode 100755
index 1932ef3..9f9a79c
--- a/SparkleLib/SparkleListenerIrc.cs
+++ b/SparkleLib/SparkleListenerIrc.cs
@@ -29,6 +29,8 @@ namespace SparkleLib {
         private Thread thread;
         private IrcClient client;
         private string nick;
+        private string announcements_password;
+        private bool allow_passwordless_join;
 
 
         public SparkleListenerIrc (Uri server, string folder_identifier) :
@@ -41,6 +43,18 @@ namespace SparkleLib {
             // with a number, so prefix an alphabetic character
             this.nick = "s" + this.nick.Substring (0, 7);
 
+            // Optional password to make the channel access more safe
+            this.announcements_password =
+                SparkleConfig.DefaultConfig.GetConfigOption ("announcements_password");
+
+            // Option to allow access to channel when no password is defined
+            try {
+                string option = SparkleConfig.DefaultConfig.GetConfigOption ("allow_passwordless_join");
+                this.allow_passwordless_join = (option == null || Convert.ToBoolean (option));
+            } catch (Exception) {
+                this.allow_passwordless_join = true;
+            }
+
             base.channels.Add ("#" + folder_identifier);
 
             this.client = new IrcClient () {
@@ -48,6 +62,18 @@ namespace SparkleLib {
                 PingInterval = 60
             };
 
+            string proxy  = Environment.GetEnvironmentVariable ("http_proxy");
+            Uri proxy_uri = null;
+            if (!String.IsNullOrEmpty (proxy) &&
+                Uri.TryCreate (proxy, UriKind.Absolute, out proxy_uri)) {
+
+                if (proxy_uri.Scheme == "http") {
+                    this.client.ProxyType = ProxyType.Http;
+                    this.client.ProxyHost = proxy_uri.Host;
+                    this.client.ProxyPort = proxy_uri.Port;
+                }
+            }
+
             this.client.OnConnected += delegate {
                 base.is_connecting = false;
                 OnConnected ();
@@ -90,13 +116,35 @@ namespace SparkleLib {
                     try {
                         // Connect, login, and join the channel
                         int port = base.server.Port;
-                        if (port < 0) port = 6667;
+
+                        if (port < 0)
+                            port = 6667;
+
                         this.client.Connect (base.server.Host, port);
-                        this.client.Login (this.nick, this.nick);
+                        this.client.Login (this.nick, this.nick, 8, this.nick);
 
                         foreach (string channel in base.channels) {
                             SparkleHelpers.DebugInfo ("ListenerIrc", "Joining channel " + channel);
-                            this.client.RfcJoin (channel);
+
+                            if (!string.IsNullOrEmpty (this.announcements_password)) {
+                                SparkleHelpers.DebugInfo ("ListenerIrc", "Password set to access the channel");
+                                this.client.RfcJoin (channel, this.announcements_password);
+                                this.client.RfcMode (channel, "+k " + this.announcements_password);
+
+                            } else {
+                                if (this.allow_passwordless_join) {
+                                    SparkleHelpers.DebugInfo ("ListenerIrc", "Accessing unprotected channel, change the setting to not access");
+                                    this.client.RfcJoin (channel);
+                                
+                                } else {
+                                    SparkleHelpers.DebugInfo ("ListenerIrc", "Unprotected channel, change the setting to access");
+                                    base.is_connecting = false;
+                                    OnDisconnected ();
+                                    throw new ConnectionException ("Unprotected channel, change the setting to access");
+                                }
+                            }
+
+                            this.client.RfcMode (channel, "+s");
                         }
 
                         // List to the channel, this blocks the thread
@@ -123,7 +171,19 @@ namespace SparkleLib {
 
                 if (IsConnected) {
                     SparkleHelpers.DebugInfo ("ListenerIrc", "Joining channel " + channel);
-                    this.client.RfcJoin (channel);
+                    if (this.announcements_password != null) {
+                        SparkleHelpers.DebugInfo ("ListenerIrc", "Password set to access the channel");
+                        this.client.RfcJoin (channel, this.announcements_password);
+                        this.client.RfcMode (channel, "+k " + this.announcements_password);
+                    } else {
+                        if (allow_passwordless_join) {
+                            SparkleHelpers.DebugInfo ("ListenerIrc", "Accessing a dangerous channel change the setting to not access");
+                            this.client.RfcJoin (channel);
+                        } else {
+                            SparkleHelpers.DebugInfo ("ListenerIrc", "Dangerous channel, change the setting to access");
+                        }
+                    }
+                    this.client.RfcMode (channel, "+s");
                 }
             }
         }
diff --git a/SparkleLib/SparkleListenerTcp.cs b/SparkleLib/SparkleListenerTcp.cs
old mode 100644
new mode 100755
index ee82127..15268a9
--- a/SparkleLib/SparkleListenerTcp.cs
+++ b/SparkleLib/SparkleListenerTcp.cs
@@ -29,7 +29,7 @@ namespace SparkleLib {
     public class SparkleListenerTcp : SparkleListenerBase {
 
         private Thread thread;
-        
+
         // these are shared
         private readonly Object mutex = new Object();
         private Socket socket;
@@ -39,7 +39,6 @@ namespace SparkleLib {
             base (server, folder_identifier)
         {
             base.channels.Add (folder_identifier);
-            this.socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
             this.connected = false;
         }
 
@@ -70,9 +69,11 @@ namespace SparkleLib {
                         // Connect and subscribe to the channel
                         int port = Server.Port;
                         if (port < 0) port = 9999;
-                        this.socket.Connect (Server.Host, port);
 
                         lock (this.mutex) {
+                            this.socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+                            this.socket.Connect (Server.Host, port);
+
                             base.is_connecting = false;
                             this.connected = true;
 
@@ -92,11 +93,14 @@ namespace SparkleLib {
 
                             if (bytes_read > 0) {
                                 string received = Encoding.UTF8.GetString (bytes);
-                                string folder_identifier = received.Substring (0, received.IndexOf ("!"));
-                                string message = received.Substring (received.IndexOf ("!") + 1);
-
-                                OnAnnouncement (new SparkleAnnouncement (folder_identifier, message));
-
+                                string line = received.Substring (0, received.IndexOf ("\n"));
+                                if (!line.Contains ("!"))
+                                    continue;
+                                string folder_identifier = line.Substring (0, line.IndexOf ("!"));
+                                string message = this.CleanMessage (line.Substring (line.IndexOf ("!") + 1));
+                                if (!folder_identifier.Equals("debug") &&
+                                    !String.IsNullOrEmpty(message))
+                                    OnAnnouncement (new SparkleAnnouncement (folder_identifier, message));
                             } else {
                                 SparkleHelpers.DebugInfo ("ListenerTcp", "Error on socket");
 
@@ -108,11 +112,13 @@ namespace SparkleLib {
                                 }
                             }
                         }
-                        
+
                         SparkleHelpers.DebugInfo ("ListenerTcp", "Disconnected from " + Server.Host);
-                        
+
                     } catch (SocketException e) {
                         SparkleHelpers.DebugInfo ("ListenerTcp", "Could not connect to " + Server + ": " + e.Message);
+
+                        OnDisconnected ();
                     }
                 })
             );
@@ -124,6 +130,7 @@ namespace SparkleLib {
         public override void AlsoListenTo (string folder_identifier)
         {
             string channel = folder_identifier;
+
             if (!base.channels.Contains (channel)) {
                 base.channels.Add (channel);
 
@@ -132,8 +139,14 @@ namespace SparkleLib {
 
                     string to_send = "subscribe " + folder_identifier + "\n";
 
-                    lock (this.mutex) {
-                        this.socket.Send (Encoding.UTF8.GetBytes (to_send));
+                    try {
+                        lock (this.mutex) {
+                            this.socket.Send (Encoding.UTF8.GetBytes (to_send));
+                        }
+
+                    } catch (SocketException e) {
+                        SparkleHelpers.DebugInfo ("ListenerTcp", "Could not connect to " + Server + ": " + e.Message);
+                        OnDisconnected ();
                     }
                 }
             }
@@ -145,8 +158,15 @@ namespace SparkleLib {
             string to_send = "announce " + announcement.FolderIdentifier
                 + " " + announcement.Message + "\n";
 
-            lock (this.mutex) {
-                this.socket.Send (Encoding.UTF8.GetBytes (to_send));
+            try {
+
+                lock (this.mutex) {
+                    this.socket.Send (Encoding.UTF8.GetBytes (to_send));
+                }
+            } catch (SocketException e) {
+              SparkleHelpers.DebugInfo ("ListenerTcp", "Could not connect to " + Server + ": " + e.Message);
+
+              OnDisconnected ();
             }
         }
 
@@ -157,5 +177,10 @@ namespace SparkleLib {
             this.thread.Join ();
             base.Dispose ();
         }
+
+        private string CleanMessage(string message)
+        {
+            return message.Trim ().Replace ("\n", "").Replace ("\0", "");
+        }
     }
 }
diff --git a/SparkleLib/SparkleOptions.cs b/SparkleLib/SparkleOptions.cs
old mode 100644
new mode 100755
diff --git a/SparkleLib/SparkleRepoBase.cs b/SparkleLib/SparkleRepoBase.cs
old mode 100644
new mode 100755
index 70cb980..1682b0d
--- a/SparkleLib/SparkleRepoBase.cs
+++ b/SparkleLib/SparkleRepoBase.cs
@@ -21,6 +21,7 @@ using System.IO;
 using System.Security.Cryptography;
 using System.Text;
 using System.Text.RegularExpressions;
+using System.Threading;
 using System.Timers;
 using System.Xml;
 
@@ -41,12 +42,13 @@ namespace SparkleLib {
 
         private SparkleWatcher watcher;
         private TimeSpan poll_interval;
-        private Timer local_timer        = new Timer () { Interval = 0.25 * 1000 };
-        private Timer remote_timer       = new Timer () { Interval = 10 * 1000 };
+        private System.Timers.Timer local_timer  = new System.Timers.Timer () { Interval = 0.25 * 1000 };
+        private System.Timers.Timer remote_timer = new System.Timers.Timer () { Interval = 10 * 1000 };
         private DateTime last_poll       = DateTime.Now;
-        private List <double> sizebuffer = new List<double> ();
+        private List<double> sizebuffer  = new List<double> ();
         private bool has_changed         = false;
         private Object change_lock       = new Object ();
+        private Object watch_lock        = new Object ();
 
         protected SparkleListenerBase listener;
         protected SyncStatus status;
@@ -126,6 +128,7 @@ namespace SparkleLib {
 
                 while (HasUnsyncedChanges)
                     SyncUpBase ();
+
                 EnableWatching ();
             }
 
@@ -232,18 +235,30 @@ namespace SparkleLib {
         {
             this.listener = SparkleListenerFactory.CreateListener (Name, Identifier);
 
+            if (this.listener.IsConnected) {
+                this.poll_interval = this.long_interval;
+
+                new Thread (new ThreadStart (delegate {
+                    if (!IsSyncing && CheckForRemoteChanges ())
+                        SyncDownBase ();
+                })).Start ();
+            }
+
             // Stop polling when the connection to the irc channel is succesful
             this.listener.Connected += delegate {
                 this.poll_interval = this.long_interval;
                 this.last_poll = DateTime.Now;
 
-                // Check for changes manually one more time
-                if (CheckForRemoteChanges ())
-                    SyncDownBase ();
+                if (!IsSyncing) {
 
-                // Push changes that were made since the last disconnect
-                if (HasUnsyncedChanges)
-                    SyncUpBase ();
+                    // Check for changes manually one more time
+                    if (CheckForRemoteChanges ())
+                        SyncDownBase ();
+
+                    // Push changes that were made since the last disconnect
+                    if (HasUnsyncedChanges)
+                        SyncUpBase ();
+                }
             };
 
             // Start polling when the connection to the irc channel is lost
@@ -256,21 +271,32 @@ namespace SparkleLib {
             this.listener.Announcement += delegate (SparkleAnnouncement announcement) {
                 string identifier = Identifier;
 
-                if (announcement.FolderIdentifier == identifier &&
+                if (announcement.FolderIdentifier.Equals (identifier) &&
                     !announcement.Message.Equals (CurrentRevision)) {
-                    if ((Status != SyncStatus.SyncUp)   &&
-                        (Status != SyncStatus.SyncDown) &&
-                        !this.is_buffering) {
 
-                        while (this.listener.HasQueueDownAnnouncement (identifier))
-                            SyncDownBase ();
-                    }
+                    while (this.IsSyncing)
+                        System.Threading.Thread.Sleep (100);
+
+                    SparkleHelpers.DebugInfo ("Listener", "Syncing due to announcement");
+                    SyncDownBase ();
+
+                } else {
+                    if (announcement.FolderIdentifier.Equals (identifier))
+                        SparkleHelpers.DebugInfo ("Listener", "Not syncing, message is for current revision");
                 }
             };
-            
+
             // Start listening
-            if (!this.listener.IsConnected && !this.listener.IsConnecting) {
+            if (!this.listener.IsConnected && !this.listener.IsConnecting)
                 this.listener.Connect ();
+        }
+
+
+        private bool IsSyncing {
+            get {
+                return (Status == SyncStatus.SyncUp   ||
+                        Status == SyncStatus.SyncDown ||
+                        this.is_buffering);
             }
         }
 
@@ -281,7 +307,7 @@ namespace SparkleLib {
                 if (this.has_changed) {
                     if (this.sizebuffer.Count >= 4)
                         this.sizebuffer.RemoveAt (0);
-                        
+
                     DirectoryInfo dir_info = new DirectoryInfo (LocalPath);
                      this.sizebuffer.Add (CalculateFolderSize (dir_info));
 
@@ -293,7 +319,7 @@ namespace SparkleLib {
                         SparkleHelpers.DebugInfo ("Local", "[" + Name + "] Changes have settled.");
                         this.is_buffering = false;
                         this.has_changed  = false;
-                        
+
                         DisableWatching ();
                         while (AnyDifferences)
                             SyncUpBase ();
@@ -437,6 +463,8 @@ namespace SparkleLib {
             if (SyncStatusChanged != null)
                 SyncStatusChanged (SyncStatus.SyncDown);
 
+            string pre_sync_revision = CurrentRevision;
+
             if (SyncDown ()) {
                 SparkleHelpers.DebugInfo ("SyncDown", "[" + Name + "] Done");
                 this.server_online = true;
@@ -444,22 +472,28 @@ namespace SparkleLib {
                 if (SyncStatusChanged != null)
                     SyncStatusChanged (SyncStatus.Idle);
 
-                SparkleChangeSet change_set = GetChangeSets (1) [0];
+                if (!pre_sync_revision.Equals (CurrentRevision)) {
+                    List<SparkleChangeSet> change_sets = GetChangeSets (1);
 
-                bool note_added = false;
-                foreach (string added in change_set.Added) {
-                    if (added.Contains (".notes")) {
-                        if (NewNote != null)
-                            NewNote (change_set.User.Name, change_set.User.Email);
+                   if (change_sets != null && change_sets.Count > 0) {
+                        SparkleChangeSet change_set = change_sets [0];
 
-                        note_added = true;
-                        break;
-                    }
-                }
+                        bool note_added = false;
+                        foreach (string added in change_set.Added) {
+                            if (added.Contains (".notes")) {
+                                if (NewNote != null)
+                                    NewNote (change_set.User.Name, change_set.User.Email);
 
-                if (!note_added) {
-                    if (NewChangeSet != null)
-                        NewChangeSet (change_set);
+                                note_added = true;
+                                break;
+                            }
+                        }
+
+                        if (!note_added) {
+                            if (NewChangeSet != null)
+                                NewChangeSet (change_set);
+                        }
+                    }
                 }
 
                 // There could be changes from a resolved
@@ -486,15 +520,19 @@ namespace SparkleLib {
 
         public void DisableWatching ()
         {
-            this.watcher.EnableRaisingEvents = false;
-            this.local_timer.Stop ();
+            lock (watch_lock) {
+                this.watcher.EnableRaisingEvents = false;
+                this.local_timer.Stop ();
+            }
         }
 
 
         public void EnableWatching ()
         {
-            this.watcher.EnableRaisingEvents = true;
-            this.local_timer.Start ();
+            lock (watch_lock) {
+                this.watcher.EnableRaisingEvents = true;
+                this.local_timer.Start ();
+            }
         }
 
 
diff --git a/SparkleLib/SparkleWatcher.cs b/SparkleLib/SparkleWatcher.cs
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/AppDelegate.cs b/SparkleShare/Mac/AppDelegate.cs
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/Info.plist b/SparkleShare/Mac/Info.plist
old mode 100644
new mode 100755
index 8117ef3..97d1ab9
--- a/SparkleShare/Mac/Info.plist
+++ b/SparkleShare/Mac/Info.plist
@@ -2,8 +2,6 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>CFBundleExecutable</key>
-	<string></string>
 	<key>CFBundleIconFile</key>
 	<string>sparkleshare</string>
 	<key>CFBundleIdentifier</key>
@@ -12,6 +10,8 @@
 	<string>SparkleShare</string>
 	<key>LSMinimumSystemVersion</key>
 	<string>10.6</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
 	<key>NSMainNibFile</key>
 	<string>MainMenu</string>
 	<key>NSPrincipalClass</key>
diff --git a/SparkleShare/Mac/MainMenu.xib b/SparkleShare/Mac/MainMenu.xib
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/MainMenu.xib.designer.cs b/SparkleShare/Mac/MainMenu.xib.designer.cs
old mode 100644
new mode 100755
index 01952cd..1ce6227
--- a/SparkleShare/Mac/MainMenu.xib.designer.cs
+++ b/SparkleShare/Mac/MainMenu.xib.designer.cs
@@ -1,7 +1,7 @@
 // ------------------------------------------------------------------------------
 //  <autogenerated>
 //      This code was generated by a tool.
-//      Mono Runtime Version: 2.0.50727.1433
+//      Mono Runtime Version: 4.0.30319.1
 // 
 //      Changes to this file may cause incorrect behavior and will be lost if 
 //      the code is regenerated.
diff --git a/SparkleShare/Mac/Makefile.am b/SparkleShare/Mac/Makefile.am
old mode 100644
new mode 100755
index 4313776..120c4dc
--- a/SparkleShare/Mac/Makefile.am
+++ b/SparkleShare/Mac/Makefile.am
@@ -7,7 +7,6 @@ EXTRA_DIST = \
   SparkleAlert.cs \
   SparkleSetup.cs \
   SparkleEventLog.cs \
-  SparkleMacController.cs \
   SparkleMacWatcher.cs \
   SparkleShare.csproj \
   SparkleShare.sln \
diff --git a/SparkleShare/Mac/Makefile.in b/SparkleShare/Mac/Makefile.in
index 7e70fe5..15c3199 100644
--- a/SparkleShare/Mac/Makefile.in
+++ b/SparkleShare/Mac/Makefile.in
@@ -34,8 +34,7 @@ POST_UNINSTALL = :
 subdir = SparkleShare/Mac
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -75,6 +74,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -94,6 +95,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -107,6 +109,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -118,6 +121,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -128,6 +133,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -211,7 +217,6 @@ EXTRA_DIST = \
   SparkleAlert.cs \
   SparkleSetup.cs \
   SparkleEventLog.cs \
-  SparkleMacController.cs \
   SparkleMacWatcher.cs \
   SparkleShare.csproj \
   SparkleShare.sln \
diff --git a/SparkleShare/Mac/SparkleAbout.cs b/SparkleShare/Mac/SparkleAbout.cs
old mode 100644
new mode 100755
index e145b12..64a3fc9
--- a/SparkleShare/Mac/SparkleAbout.cs
+++ b/SparkleShare/Mac/SparkleAbout.cs
@@ -69,14 +69,15 @@ namespace SparkleShare {
                 InvokeOnMainThread (delegate {
                     UpdatesTextField.StringValue = "You are running the latest version.";
                     UpdatesTextField.TextColor   =
-                        NSColor.FromCalibratedRgba (0.31f, 0.60f, 0.02f, 1.0f); // Tango Chameleon #3
+                        NSColor.FromCalibratedRgba (0.45f, 0.62f, 0.81f, 1.0f); // Tango Sky Blue #1
                 });
             };
 
             Controller.CheckingForNewVersionEvent += delegate {
                 InvokeOnMainThread (delegate {
                     UpdatesTextField.StringValue = "Checking for updates...";
-                    UpdatesTextField.TextColor   = NSColor.DisabledControlText;
+                    UpdatesTextField.TextColor   =
+                        NSColor.FromCalibratedRgba (0.45f, 0.62f, 0.81f, 1.0f); // Tango Sky Blue #1
                 });
             };
         }
@@ -117,7 +118,8 @@ namespace SparkleShare {
                 DrawsBackground = false,
                 Font            = NSFontManager.SharedFontManager.FontWithFamily
                     ("Lucida Grande", NSFontTraitMask.Unbold, 0, 11),
-                TextColor       = NSColor.DisabledControlText
+                TextColor       =
+                    NSColor.FromCalibratedRgba (0.45f, 0.62f, 0.81f, 1.0f) // Tango Sky Blue #1
             };
 
             CreditsTextField = new NSTextField () {
diff --git a/SparkleShare/Mac/SparkleAlert.cs b/SparkleShare/Mac/SparkleAlert.cs
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/SparkleEventLog.cs b/SparkleShare/Mac/SparkleEventLog.cs
old mode 100644
new mode 100755
index 5dc6aeb..27674b4
--- a/SparkleShare/Mac/SparkleEventLog.cs
+++ b/SparkleShare/Mac/SparkleEventLog.cs
@@ -30,7 +30,7 @@ namespace SparkleShare {
 
     public class SparkleEventLog : NSWindow {
 
-        private SparkleEventLogController controller = new SparkleEventLogController ();
+        public SparkleEventLogController Controller = new SparkleEventLogController ();
 
         private WebView web_view = new WebView (new RectangleF (0, 0, 480, 579), "", "") {
             PolicyDelegate = new SparkleWebPolicyDelegate ()
@@ -83,19 +83,19 @@ namespace SparkleShare {
 
 
             // Hook up the controller events
-            this.controller.UpdateChooserEvent += delegate (string [] folders) {
+            Controller.UpdateChooserEvent += delegate (string [] folders) {
                 InvokeOnMainThread (delegate {
                     UpdateChooser (folders);
                 });
             };
 
-            this.controller.UpdateContentEvent += delegate (string html) {
+            Controller.UpdateContentEvent += delegate (string html) {
                 InvokeOnMainThread (delegate {
                     UpdateContent (html);
                 });
             };
 
-            this.controller.ContentLoadingEvent += delegate {
+            Controller.ContentLoadingEvent += delegate {
                 InvokeOnMainThread (delegate {
                     if (this.web_view.Superview == ContentView)
                         this.web_view.RemoveFromSuperview ();
@@ -109,7 +109,7 @@ namespace SparkleShare {
         public void UpdateChooser (string [] folders)
         {
             if (folders == null)
-                folders = this.controller.Folders;
+                folders = Controller.Folders;
 
             if (this.popup_button != null)
                 this.popup_button.RemoveFromSuperview ();
@@ -129,9 +129,9 @@ namespace SparkleShare {
 
             this.popup_button.Activated += delegate {
                 if (this.popup_button.IndexOfSelectedItem == 0)
-                    this.controller.SelectedFolder = null;
+                    Controller.SelectedFolder = null;
                 else
-                    this.controller.SelectedFolder = this.popup_button.SelectedItem.Title;
+                    Controller.SelectedFolder = this.popup_button.SelectedItem.Title;
             };
 
             ContentView.AddSubview (this.popup_button);
@@ -143,7 +143,7 @@ namespace SparkleShare {
             using (NSAutoreleasePool pool = new NSAutoreleasePool ()) {
                 Thread thread = new Thread (new ThreadStart (delegate {
                     if (html == null)
-                        html = this.controller.HTML;
+                        html = Controller.HTML;
     
                     html = html.Replace ("<!-- $body-font-family -->", "Lucida Grande");
                     html = html.Replace ("<!-- $day-entry-header-font-size -->", "13.6px");
@@ -212,7 +212,7 @@ namespace SparkleShare {
                     string note        = match.Groups [3].Value;
 
                     Thread thread = new Thread (new ThreadStart (delegate {
-                        SparkleShare.Controller.AddNoteToFolder (folder_name, revision, note);
+                        Program.Controller.AddNoteToFolder (folder_name, revision, note);
                     }));
 
                     thread.Start ();
diff --git a/SparkleShare/Mac/SparkleMacController.cs b/SparkleShare/Mac/SparkleMacController.cs
deleted file mode 100644
index 22833d7..0000000
--- a/SparkleShare/Mac/SparkleMacController.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-//   SparkleShare, a collaboration and sharing tool.
-//   Copyright (C) 2010  Hylke Bons <hylkebons at gmail.com>
-//
-//   This program is free software: you can redistribute it and/or modify
-//   it under the terms of the GNU General Public License as published by
-//   the Free Software Foundation, either version 3 of the License, or
-//   (at your option) any later version.
-//
-//   This program is distributed in the hope that it will be useful,
-//   but WITHOUT ANY WARRANTY; without even the implied warranty of
-//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-//   GNU General Public License for more details.
-//
-//   You should have received a copy of the GNU General Public License
-//   along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Diagnostics;
-using System.IO;
-
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-using MonoMac.ObjCRuntime;
-using SparkleLib;
-
-namespace SparkleShare {
-
-	public class SparkleMacController : SparkleController {
-
-        // We have to use our own custom made folder watcher, as
-        // System.IO.FileSystemWatcher fails watching subfolders on Mac
-        private SparkleMacWatcher watcher = new SparkleMacWatcher (SparkleConfig.DefaultConfig.FoldersPath);
-
-        public SparkleMacController () : base () { }
-
-        public override void Initialize ()
-        {
-            base.Initialize ();
-
-            this.watcher.Changed += delegate (string path) {
-                string repo_name;
-
-                if (path.Contains ("/"))
-                    repo_name = path.Substring (0, path.IndexOf ("/"));
-                else
-                    repo_name = path;
-
-                // Ignore changes in the root of each subfolder, these
-                // are already handled bu the repository
-                if (Path.GetFileNameWithoutExtension (path).Equals (repo_name))
-                    return;
-
-                repo_name = repo_name.Trim ("/".ToCharArray ());
-                FileSystemEventArgs args = new FileSystemEventArgs (WatcherChangeTypes.Changed,
-                    Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, path), Path.GetFileName (path));
-
-                foreach (SparkleRepoBase repo in Repositories) {
-                    if (repo.Name.Equals (repo_name))
-                        repo.OnFileActivity (args);
-                }
-            };
-        }
-
-
-		public override void EnableSystemAutostart ()
-		{
-			// N/A
-		}
-
-
-		public override void InstallLauncher ()
-		{
-			// N/A
-		}
-
-		
-		// Adds the SparkleShare folder to the user's
-		// list of bookmarked places
-		public override void AddToBookmarks ()
-		{
-            // TODO: Waiting for NSMutableArray/Dictionary support
-         /* NSDictionary sidebar_plist = NSUserDefaults.StandardUserDefaults.PersistentDomainForName ("com.apple.sidebarlists");
-
-            foreach (object sidebar_item in sidebar_plist.Keys) {
-                if (sidebar_item.ToString ().Equals ("useritems")) {
-                    NSDictionary user_items = (NSDictionary) sidebar_plist.ValueForKey (new NSString (sidebar_item.ToString ()));
-
-                    foreach (NSObject user_item in user_items.Keys) {
-                        if (user_item.ToString ().Equals ("CustomListItems")) {
-                            NSArray custom_items = (NSArray) user_items.ValueForKey (new NSString (user_item.ToString ()));
-
-                            NSDictionary new_dictionary = new NSDictionary ();
-                            new dictionary.SetValueForKey (new NSString ("Test"),  new NSString ("Name"));
-
-                            custom_items.SetValueForKey (new_dictionary, new NSString ("Item 6"));
-                            user_items.SetValueForKey (custom_items, new NSString (user_item.ToString ()));
-                        }
-                    }
-
-                    sidebar_plist.SetValueForKey (user_items, new NSString (sidebar_item.ToString ()));
-                }
-            }
-
-            NSUserDefaults.StandardUserDefaults.SetPersistentDomain (sidebar_plist, "com.apple.sidebarlists"); */
-		}
-		
-
-		// Creates the SparkleShare folder in the user's home folder
-		public override bool CreateSparkleShareFolder ()
-		{
-			if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) {
-				Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath);
-				return true;
-
-			} else {
-				return false;
-			}
-		}
-
-		
-		// Opens the SparkleShare folder or an (optional) subfolder
-		public override void OpenSparkleShareFolder (string subfolder)
-		{
-			string folder = Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, subfolder);
-			folder.Replace (" ", "\\ "); // Escape space-characters			
-			
-			NSWorkspace.SharedWorkspace.OpenFile (folder);
-		}
-		
-		
-		public override string EventLogHTML
-		{
-			get {
-				string resource_path = NSBundle.MainBundle.ResourcePath;
-				string html_path     = Path.Combine (resource_path, "HTML", "event-log.html");
-				
-				StreamReader reader = new StreamReader (html_path);
-				string html = reader.ReadToEnd ();
-				reader.Close ();
-
-                html = html.Replace ("<!-- $jquery-url -->", "file://" +
-                    Path.Combine (NSBundle.MainBundle.ResourcePath, "HTML", "jquery.js"));
-
-                return html;
-			}
-		}
-
-		
-		public override string DayEntryHTML
-		{
-			get {
-				string resource_path = NSBundle.MainBundle.ResourcePath;
-				string html_path     = Path.Combine (resource_path, "HTML", "day-entry.html");
-				
-				StreamReader reader = new StreamReader (html_path);
-				string html = reader.ReadToEnd ();
-				reader.Close ();
-				
-				return html;
-			}
-		}
-		
-	
-		public override string EventEntryHTML
-		{
-			get {
-				string resource_path = NSBundle.MainBundle.ResourcePath;
-				string html_path     = Path.Combine (resource_path, "HTML", "event-entry.html");
-				
-				StreamReader reader = new StreamReader (html_path);
-				string html = reader.ReadToEnd ();
-				reader.Close ();
-				
-				return html;
-			}
-		}
-
-
-        new public void Quit ()
-        {
-            this.watcher.Dispose ();
-            NSApplication.SharedApplication.Terminate (new NSObject ());
-            base.Quit ();
-        }
-	}
-}
diff --git a/SparkleShare/Mac/SparkleMacWatcher.cs b/SparkleShare/Mac/SparkleMacWatcher.cs
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/SparkleSetup.cs b/SparkleShare/Mac/SparkleSetup.cs
old mode 100644
new mode 100755
index 126ce30..f03cc37
--- a/SparkleShare/Mac/SparkleSetup.cs
+++ b/SparkleShare/Mac/SparkleSetup.cs
@@ -20,6 +20,8 @@ using System.Drawing;
 using System.IO;
 using System.Timers;
 
+using System.Collections.Generic;
+
 using Mono.Unix;
 using MonoMac.Foundation;
 using MonoMac.AppKit;
@@ -28,55 +30,81 @@ using MonoMac.WebKit;
 
 namespace SparkleShare {
 
-	public class SparkleSetup : SparkleSetupWindow {
+    public class SparkleSetup : SparkleSetupWindow {
 
         public SparkleSetupController Controller = new SparkleSetupController ();
 
-		private NSButton ContinueButton;
-		private NSButton SyncButton;
-		private NSButton TryAgainButton;
-		private NSButton CancelButton;
-		private NSButton OpenFolderButton;
-		private NSButton FinishButton;
-		private NSForm UserInfoForm;
-		private NSProgressIndicator ProgressIndicator;
-		private NSTextField AddressTextField;
-		private NSTextField FolderNameTextField;
-		private NSTextField ServerTypeLabel;
-		private NSTextField AddressLabel;
-		private NSTextField FolderNameLabel;
-		private NSTextField FolderNameHelpLabel;
-		private NSButtonCell ButtonCellProto;
-		private NSMatrix Matrix;
-		private int ServerType;
+        private NSButton ContinueButton;
+        private NSButton SyncButton;
+        private NSButton TryAgainButton;
+        private NSButton CancelButton;
+        private NSButton SkipTutorialButton;
+        private NSButton OpenFolderButton;
+        private NSButton FinishButton;
+        private NSImage SlideImage;
+        private NSImageView SlideImageView;
+        private NSProgressIndicator ProgressIndicator;
+        private NSTextField EmailLabel;
+        private NSTextField EmailTextField;
+        private NSTextField FullNameTextField;
+        private NSTextField FullNameLabel;
+        private NSTextField AddressTextField;
+        private NSTextField AddressLabel;
+        private NSTextField PathTextField;
+        private NSTextField PathLabel;
+        private NSTextField PathHelpLabel;
+        private NSTextField AddProjectTextField;
         private Timer timer;
+        private NSTableView TableView;
+        private NSScrollView ScrollView;
+        private NSTableColumn IconColumn;
+        private NSTableColumn DescriptionColumn;
+        private SparkleDataSource DataSource;
+
 
-		
-		public SparkleSetup () : base ()
-		{
+        public SparkleSetup () : base ()
+        {
             Controller.ChangePageEvent += delegate (PageType type) {
                 InvokeOnMainThread (delegate {
                     Reset ();
 
                     switch (type) {
-                    case PageType.Setup:
+                    case PageType.Setup: {
 
                         Header       = "Welcome to SparkleShare!";
                         Description  = "Before we can create a SparkleShare folder on this " +
                                        "computer, we need some information from you.";
 
-                        UserInfoForm = new NSForm (new RectangleF (250, 115, 350, 64));
 
-                        UserInfoForm.AddEntry ("Full Name:");
-                        UserInfoForm.AddEntry ("Email Address:");
+                        FullNameLabel = new NSTextField () {
+                            Alignment       = NSTextAlignment.Right,
+                            BackgroundColor = NSColor.WindowBackground,
+                            Bordered        = false,
+                            Editable        = false,
+                            Frame           = new RectangleF (165, Frame.Height - 234, 160, 17),
+                            StringValue     = "Full Name:",
+                            Font            = SparkleUI.Font
+                        };
 
-                        UserInfoForm.CellSize                = new SizeF (280, 22);
-                        UserInfoForm.IntercellSpacing        = new SizeF (4, 4);
-                        UserInfoForm.Cells [0].LineBreakMode = NSLineBreakMode.TruncatingTail;
-                        UserInfoForm.Cells [1].LineBreakMode = NSLineBreakMode.TruncatingTail;
+                        FullNameTextField = new NSTextField () {
+                            Frame           = new RectangleF (330, Frame.Height - 238, 196, 22),
+                            StringValue     = Controller.GuessedUserName
+                        };
 
-                        UserInfoForm.Cells [0].StringValue   = SparkleShare.Controller.UserName;
-                        UserInfoForm.Cells [1].StringValue   = SparkleShare.Controller.UserEmail;
+                        EmailLabel = new NSTextField () {
+                            Alignment       = NSTextAlignment.Right,
+                            BackgroundColor = NSColor.WindowBackground,
+                            Bordered        = false,
+                            Editable        = false,
+                            Frame           = new RectangleF (165, Frame.Height - 264, 160, 17),
+                            StringValue     = "Email:",
+                            Font            = SparkleUI.Font
+                        };
+
+                        EmailTextField = new NSTextField () {
+                            Frame           = new RectangleF (330, Frame.Height - 268, 196, 22),
+                            StringValue     = Controller.GuessedUserEmail
+                        };
 
                         // TODO: Ugly hack, do properly with events
                         timer = new Timer () {
@@ -92,18 +120,18 @@ namespace SparkleShare {
                             timer.Stop ();
                             timer = null;
 
-                            string full_name = UserInfoForm.Cells [0].StringValue.Trim ();
-                            string email = UserInfoForm.Cells [1].StringValue.Trim ();
+                            string full_name = FullNameTextField.StringValue.Trim ();
+                            string email     = EmailTextField.StringValue.Trim ();
 
                             Controller.SetupPageCompleted (full_name, email);
                         };
 
                         timer.Elapsed += delegate {
                             InvokeOnMainThread (delegate {
-                                bool name_is_valid = !UserInfoForm.Cells [0].StringValue.Trim ().Equals ("");
+                                bool name_is_valid = !FullNameTextField.StringValue.Trim ().Equals ("");
 
-                                bool email_is_valid = SparkleShare.Controller.IsValidEmail (
-                                    UserInfoForm.Cells [1].StringValue.Trim ());
+                                bool email_is_valid = Program.Controller.IsValidEmail (
+                                    EmailTextField.StringValue.Trim ());
 
                                 ContinueButton.Enabled = (name_is_valid && email_is_valid);
                             });
@@ -111,129 +139,153 @@ namespace SparkleShare {
 
                         timer.Start ();
 
-                        ContentView.AddSubview (UserInfoForm);
+                        ContentView.AddSubview (FullNameLabel);
+                        ContentView.AddSubview (FullNameTextField);
+                        ContentView.AddSubview (EmailLabel);
+                        ContentView.AddSubview (EmailTextField);
+
                         Buttons.Add (ContinueButton);
 
                         break;
+                    }
 
-                    case PageType.Add:
+                    case PageType.Add: {
 
-                        Header       = "Where is your remote folder?";
+                        Header       = "Where's your project hosted?";
                         Description  = "";
 
-                        ServerTypeLabel  = new NSTextField () {
-                            Alignment       = NSTextAlignment.Right,
-                            BackgroundColor = NSColor.WindowBackground,
-                            Bordered        = false,
-                            Editable        = false,
-                            Frame           = new RectangleF (150, Frame.Height - 139 , 160, 17),
-                            StringValue     = "Server Type:",
-                            Font            = SparkleUI.Font
-                        };
-
                         AddressLabel = new NSTextField () {
-                            Alignment       = NSTextAlignment.Right,
+                            Alignment       = NSTextAlignment.Left,
                             BackgroundColor = NSColor.WindowBackground,
                             Bordered        = false,
                             Editable        = false,
-                            Frame           = new RectangleF (150, Frame.Height - 237 , 160, 17),
+                            Frame           = new RectangleF (190, Frame.Height - 308, 160, 17),
                             StringValue     = "Address:",
                             Font            = SparkleUI.Font
                         };
 
-                        FolderNameLabel = new NSTextField () {
-                            Alignment       = NSTextAlignment.Right,
+                        AddressTextField = new NSTextField () {
+                            Frame       = new RectangleF (190, Frame.Height - 336, 196, 22),
+                            Font        = SparkleUI.Font,
+                            StringValue = Controller.PreviousAddress,
+                            Enabled     = (Controller.SelectedPlugin.Address == null)
+                        };
+
+
+                        PathLabel = new NSTextField () {
+                            Alignment       = NSTextAlignment.Left,
                             BackgroundColor = NSColor.WindowBackground,
                             Bordered        = false,
                             Editable        = false,
-                            Frame           = new RectangleF (150, Frame.Height - 264 , 160, 17),
-                            StringValue     = "Folder Name:",
+                            Frame           = new RectangleF (190 + 196 + 16, Frame.Height - 308, 160, 17),
+                            StringValue     = "Remote Path:",
                             Font            = SparkleUI.Font
                         };
 
-
-                        AddressTextField = new NSTextField () {
-                            Frame       = new RectangleF (320, Frame.Height - 240 , 256, 22),
-                            Font        = SparkleUI.Font,
-                            StringValue = Controller.PreviousServer
+                        PathTextField = new NSTextField () {
+                            Frame           = new RectangleF (190 + 196 + 16, Frame.Height - 336, 196, 22),
+                            StringValue     = Controller.PreviousPath,
+                            Enabled         = (Controller.SelectedPlugin.Path == null),
+                            Bezeled = true
                         };
 
-                        AddressTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
 
-                        FolderNameTextField = new NSTextField () {
-                            Frame           = new RectangleF (320, Frame.Height - (240 + 22 + 4) , 256, 22),
-                            StringValue     = Controller.PreviousFolder
-                        };
+                        AddressTextField.Cell.LineBreakMode    = NSLineBreakMode.TruncatingTail;
+                        PathTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
 
-                        FolderNameTextField.Cell.LineBreakMode = NSLineBreakMode.TruncatingTail;
 
-                        FolderNameHelpLabel = new NSTextField () {
+                        PathHelpLabel = new NSTextField () {
                             BackgroundColor = NSColor.WindowBackground,
                             Bordered        = false,
                             TextColor       = NSColor.DisabledControlText,
                             Editable        = false,
-                            Frame           = new RectangleF (320, Frame.Height - 285 , 200, 17),
-                            StringValue     = "e.g. ‘rupert/website-design’"
+                            Frame           = new RectangleF (190 + 196 + 16, Frame.Height - 355, 204, 17),
+                            StringValue     = "e.g. ‘rupert/website-design’",
+                            Font            = NSFontManager.SharedFontManager.FontWithFamily
+                                                  ("Lucida Grande", NSFontTraitMask.Condensed, 0, 11)
+                        };
+
+
+                        TableView = new NSTableView () {
+                            Frame            = new RectangleF (0, 0, 0, 0),
+                            RowHeight        = 30,
+                            IntercellSpacing = new SizeF (0, 12),
+                            HeaderView       = null
+                        };
+
+                        ScrollView = new NSScrollView () {
+                            Frame               = new RectangleF (190, Frame.Height - 280, 408, 175),
+                            DocumentView        = TableView,
+                            HasVerticalScroller = true,
+                            BorderType          = NSBorderType.BezelBorder
+                        };
+
+                        IconColumn = new NSTableColumn (new NSImage ()) {
+                            Width = 42,
+                            HeaderToolTip = "Icon",
+                            DataCell = new NSImageCell ()
                         };
 
-                        ServerType = 0;
+                        DescriptionColumn = new NSTableColumn () {
+                            Width         = 350,
+                            HeaderToolTip = "Description",
+                            Editable      = false
+                        };
 
-                        ButtonCellProto = new NSButtonCell ();
-                        ButtonCellProto.SetButtonType (NSButtonType.Radio) ;
+                        DescriptionColumn.DataCell.Font =
+                            NSFontManager.SharedFontManager.FontWithFamily (
+                                "Lucida Grande", NSFontTraitMask.Condensed, 0, 11);
 
-                        Matrix = new NSMatrix (new RectangleF (315, 180, 256, 78),
-                            NSMatrixMode.Radio, ButtonCellProto, 4, 1);
+                        TableView.AddColumn (IconColumn);
+                        TableView.AddColumn (DescriptionColumn);
 
-                        Matrix.CellSize = new SizeF (256, 18);
+                        DataSource = new SparkleDataSource ();
 
-                        Matrix.Cells [0].Title = "My own server";
-                        Matrix.Cells [1].Title = "Github";
-                        Matrix.Cells [2].Title = "Gitorious";
-                        Matrix.Cells [3].Title = "The GNOME Project";
+                        foreach (SparklePlugin plugin in Controller.Plugins)
+                            DataSource.Items.Add (plugin);
 
-                        foreach (NSCell cell in Matrix.Cells)
-                            cell.Font = SparkleUI.Font;
+                        TableView.DataSource = DataSource;
+                        TableView.ReloadData ();
 
-                        // TODO: Ugly hack, do properly with events
-                        timer = new Timer () {
-                            Interval = 50
+
+                        Controller.ChangeAddressFieldEvent += delegate (string text,
+                            string example_text, FieldState state) {
+
+                            InvokeOnMainThread (delegate {
+                                AddressTextField.StringValue = text;
+                                AddressTextField.Enabled     = (state == FieldState.Enabled);
+                            });
                         };
 
-                        timer.Elapsed += delegate {
+
+                        Controller.ChangePathFieldEvent += delegate (string text,
+                            string example_text, FieldState state) {
+
                             InvokeOnMainThread (delegate {
-                                if (Matrix.SelectedRow != ServerType) {
-                                    ServerType = Matrix.SelectedRow;
-
-                                    AddressTextField.Enabled = (ServerType == 0);
-
-                                    switch (ServerType) {
-                                    case 0:
-                                        AddressTextField.StringValue = "";
-                                        FolderNameHelpLabel.StringValue = "e.g. ‘rupert/website-design’";
-                                        break;
-                                    case 1:
-                                        AddressTextField.StringValue = "ssh://git@github.com/";
-                                        FolderNameHelpLabel.StringValue = "e.g. ‘rupert/website-design’";
-                                        break;
-                                    case 2:
-                                        AddressTextField.StringValue = "ssh://git@gitorious.org/";
-                                        FolderNameHelpLabel.StringValue = "e.g. ‘project/website-design’";
-                                        break;
-                                    case 3:
-                                        AddressTextField.StringValue = "ssh://git@gnome.org/git/";
-                                        FolderNameHelpLabel.StringValue = "e.g. ‘gnome-icon-theme’";
-                                        break;
-                                    }
-                                }
+                                PathTextField.StringValue = text;
+                                PathTextField.Enabled     = (state == FieldState.Enabled);
+
+                                if (!string.IsNullOrEmpty (example_text))
+                                    PathHelpLabel.StringValue = "e.g. " + example_text;
+                            });
+                        };
 
+                        TableView.SelectRow (Controller.SelectedPluginIndex, false);
 
-                                if (ServerType == 0 && !AddressTextField.StringValue.Trim ().Equals ("")
-                                    && !FolderNameTextField.StringValue.Trim ().Equals ("")) {
 
-                                    SyncButton.Enabled = true;
+                        timer = new Timer () {
+                            Interval = 50
+                        };
 
-                                } else if (ServerType != 0 &&
-                                           !FolderNameTextField.StringValue.Trim ().Equals ("")) {
+                        // TODO: Use an event
+                        timer.Elapsed += delegate {
+                            if (TableView.SelectedRow != Controller.SelectedPluginIndex)
+                                Controller.SelectedPluginChanged (TableView.SelectedRow);
+
+                            InvokeOnMainThread (delegate {
+                                // TODO: Move checking logic to controller
+                                if (!string.IsNullOrWhiteSpace (AddressTextField.StringValue) &&
+                                    !string.IsNullOrWhiteSpace (PathTextField.StringValue)) {
 
                                     SyncButton.Enabled = true;
 
@@ -241,23 +293,20 @@ namespace SparkleShare {
                                     SyncButton.Enabled = false;
                                 }
                             });
-
                         };
 
                         timer.Start ();
 
-                        ContentView.AddSubview (ServerTypeLabel);
-                        ContentView.AddSubview (Matrix);
 
+                        ContentView.AddSubview (ScrollView);
                         ContentView.AddSubview (AddressLabel);
                         ContentView.AddSubview (AddressTextField);
-
-                        ContentView.AddSubview (FolderNameLabel);
-                        ContentView.AddSubview (FolderNameTextField);
-                        ContentView.AddSubview (FolderNameHelpLabel);
+                        ContentView.AddSubview (PathLabel);
+                        ContentView.AddSubview (PathTextField);
+                        ContentView.AddSubview (PathHelpLabel);
 
                         SyncButton = new NSButton () {
-                            Title = "Sync",
+                            Title = "Add",
                             Enabled = false
                         };
 
@@ -265,9 +314,10 @@ namespace SparkleShare {
                                 timer.Stop ();
                                 timer = null;
 
-                                string folder_name    = FolderNameTextField.StringValue;
-                                string server         = AddressTextField.StringValue;
-                                Controller.AddPageCompleted (server, folder_name);
+                                Controller.AddPageCompleted (
+                                    AddressTextField.StringValue,
+                                    PathTextField.StringValue
+                                );
                             };
 
                         Buttons.Add (SyncButton);
@@ -282,22 +332,34 @@ namespace SparkleShare {
                                 });
                             };
 
-                            Buttons.Add (CancelButton);
+                        Buttons.Add (CancelButton);
 
                         break;
+                    }
 
-                    case PageType.Syncing:
+                    case PageType.Syncing: {
 
-                        Header      = "Syncing folder ‘" + Controller.SyncingFolder + "’…";
+                        Header      = "Adding project ‘" + Controller.SyncingFolder + "’…";
                         Description = "This may take a while.\n" +
                                       "Are you sure it’s not coffee o'clock?";
 
                         ProgressIndicator = new NSProgressIndicator () {
-                            Frame = new RectangleF (190, Frame.Height - 200, 640 - 150 - 80, 20),
-                            Style = NSProgressIndicatorStyle.Bar
+                            Frame    = new RectangleF (190, Frame.Height - 200, 640 - 150 - 80, 20),
+                            Style    = NSProgressIndicatorStyle.Bar,
+                            MinValue = 0.0,
+                            MaxValue = 100.0,
+                            Indeterminate = false,
+                            DoubleValue = 1.0
                         };
 
                         ProgressIndicator.StartAnimation (this);
+                                                                                                
+                        Controller.UpdateProgressBarEvent += delegate (double percentage) {
+                            InvokeOnMainThread (delegate {
+                                ProgressIndicator.DoubleValue = percentage;
+                            });
+                        };
+
                         ContentView.AddSubview (ProgressIndicator);
 
                         FinishButton = new NSButton () {
@@ -305,14 +367,60 @@ namespace SparkleShare {
                             Enabled = false
                         };
 
+                        CancelButton = new NSButton () {
+                            Title = "Cancel"
+                        };
+
+                        CancelButton.Activated += delegate {
+                            Controller.SyncingCancelled ();
+                        };
+
                         Buttons.Add (FinishButton);
+                        Buttons.Add (CancelButton);
 
                         break;
+                    }
 
-                    case PageType.Error:
+                    case PageType.Error: {
 
                         Header      = "Something went wrong…";
-                        Description = "";
+                        Description = "Please check the following:";
+
+                        // Displaying marked up text with Cocoa is
+                        // a pain, so we just use a webview instead
+                        WebView web_view = new WebView ();
+                        web_view.Frame = new RectangleF (190, Frame.Height - 525, 375, 400);
+
+                        string html = "<style>" +
+                            "* {" +
+                            "  font-family: 'Lucida Grande';" +
+                            "  font-size: 12px; cursor: default;" +
+                            "}" +
+                            "body {" +
+                            "  -webkit-user-select: none;" +
+                            "  margin: 0;" +
+                            "  padding: 3px;" +
+                            "}" +
+                            "li {" +
+                            "  margin-bottom: 16px;" +
+                            "  margin-left: 0;" +
+                            "  padding-left: 0;" +
+                            "  line-height: 20px;" +
+                            "}" +
+                            "ul {" +
+                            "  padding-left: 24px;" +
+                            "}" +
+                            "</style>" +
+                            "<ul>" +
+                            "  <li>First, have you tried turning it off and on again?</li>" +
+                            "  <li><b>" + Controller.PreviousUrl + "</b> is the address we've compiled. Does this look alright?</li>" +
+                            "  <li>The host needs to know who you are. Did you upload the key that's in your SparkleShare folder?</li>" +
+                            "</ul>";
+
+                        web_view.MainFrame.LoadHtmlString (html, new NSUrl (""));
+                        web_view.DrawsBackground = false;
+
+                        ContentView.AddSubview (web_view);
 
                         TryAgainButton = new NSButton () {
                             Title = "Try again…"
@@ -325,11 +433,12 @@ namespace SparkleShare {
                         Buttons.Add (TryAgainButton);
 
                         break;
+                    }
 
-                    case PageType.Finished:
+                    case PageType.Finished: {
 
-                        Header      = "Folder synced succesfully!";
-                        Description = "Now you can access the synced files from " +
+                        Header      = "Project succesfully added!";
+                        Description = "Now you can access the files from " +
                                       "‘" + Controller.SyncingFolder + "’ in " +
                                       "your SparkleShare folder.";
 
@@ -339,6 +448,7 @@ namespace SparkleShare {
 
                         FinishButton.Activated += delegate {
                             InvokeOnMainThread (delegate {
+                                Controller.FinishedPageCompleted ();
                                 PerformClose (this);
                             });
                         };
@@ -348,7 +458,7 @@ namespace SparkleShare {
                         };
 
                         OpenFolderButton.Activated += delegate {
-                            SparkleShare.Controller.OpenSparkleShareFolder (Controller.SyncingFolder);
+                            Program.Controller.OpenSparkleShareFolder (Controller.SyncingFolder);
                         };
 
                         Buttons.Add (FinishButton);
@@ -357,12 +467,210 @@ namespace SparkleShare {
                         NSApplication.SharedApplication.RequestUserAttention
                             (NSRequestUserAttentionType.CriticalRequest);
 
+                        NSSound.FromName ("Glass").Play ();
+
                         break;
                     }
 
+                    case PageType.Tutorial: {
+
+                        switch (Controller.TutorialPageNumber) {
+                        case 1: {
+                            Header      = "What's happening next?";
+                            Description = "SparkleShare creates a special folder in your personal folder " +
+                                "that will keep track of your projects.";
+
+                            SkipTutorialButton = new NSButton () {
+                                Title = "Skip Tutorial"
+                            };
+
+                            SkipTutorialButton.Activated += delegate {
+                                Controller.TutorialSkipped ();
+                            };
+
+                            ContinueButton = new NSButton () {
+                                Title = "Continue"
+                            };
+
+                            ContinueButton.Activated += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            string slide_image_path = Path.Combine (NSBundle.MainBundle.ResourcePath,
+                                "Pixmaps", "tutorial-slide-1.png");
+
+                            SlideImage = new NSImage (slide_image_path) {
+                                Size = new SizeF (350, 200)
+                            };
+
+                            SlideImageView = new NSImageView () {
+                                Image = SlideImage,
+                                Frame = new RectangleF (215, Frame.Height - 350, 350, 200)
+                            };
+
+                            ContentView.AddSubview (SlideImageView);
+                            Buttons.Add (ContinueButton);
+                            Buttons.Add (SkipTutorialButton);
+
+                            break;
+                        }
+
+                        case 2: {
+                            Header      = "Sharing files with others";
+                            Description = "All files added to your project folders are synced with the host " +
+                                "automatically, as well as with your collaborators.";
+
+                            ContinueButton = new NSButton () {
+                                Title = "Continue"
+                            };
+
+                            ContinueButton.Activated += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            string slide_image_path = Path.Combine (NSBundle.MainBundle.ResourcePath,
+                                "Pixmaps", "tutorial-slide-2.png");
+
+                            SlideImage = new NSImage (slide_image_path) {
+                                Size = new SizeF (350, 200)
+                            };
+
+                            SlideImageView = new NSImageView () {
+                                Image = SlideImage,
+                                Frame = new RectangleF (215, Frame.Height - 350, 350, 200)
+                            };
+
+                            ContentView.AddSubview (SlideImageView);
+                            Buttons.Add (ContinueButton);
+
+                            break;
+                        }
+
+                        case 3: {
+                            Header      = "The status icon is here to help";
+                            Description = "It shows the syncing process status, " +
+                                "and contains links to your projects and the event log.";
+
+                            ContinueButton = new NSButton () {
+                                Title = "Continue"
+                            };
+
+                            ContinueButton.Activated += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            string slide_image_path = Path.Combine (NSBundle.MainBundle.ResourcePath,
+                                "Pixmaps", "tutorial-slide-3.png");
+
+                            SlideImage = new NSImage (slide_image_path) {
+                                Size = new SizeF (350, 200)
+                            };
+
+                            SlideImageView = new NSImageView () {
+                                Image = SlideImage,
+                                Frame = new RectangleF (215, Frame.Height - 350, 350, 200)
+                            };
+
+                            ContentView.AddSubview (SlideImageView);
+                            Buttons.Add (ContinueButton);
+
+                            break;
+                        }
+
+                        case 4: {
+                            Header      = "Adding projects to SparkleShare";
+                            Description = "Just click this button when you see it on the web, and " +
+                                "the project will be automatically added:";
+
+                            AddProjectTextField = new NSTextField () {
+                                Frame           = new RectangleF (190, Frame.Height - 290, 640 - 240, 44),
+                                BackgroundColor = NSColor.WindowBackground,
+                                Bordered        = false,
+                                Editable        = false,
+                                Font            = SparkleUI.Font,
+                                StringValue     = "…or select ‘Add Hosted Project…’ from the status icon menu " +
+                                "to add one by hand."
+                            };
+
+                            FinishButton = new NSButton () {
+                                Title = "Finish"
+                            };
+
+                            FinishButton.Activated += delegate {
+                                InvokeOnMainThread (delegate {
+                                    PerformClose (this);
+                                });
+                            };
+
+                            string slide_image_path = Path.Combine (NSBundle.MainBundle.ResourcePath,
+                                "Pixmaps", "tutorial-slide-4.png");
+
+                            SlideImage = new NSImage (slide_image_path) {
+                                Size = new SizeF (350, 64)
+                            };
+
+                            SlideImageView = new NSImageView () {
+                                Image = SlideImage,
+                                Frame = new RectangleF (215, Frame.Height - 215, 350, 64)
+                            };
+
+                            ContentView.AddSubview (SlideImageView);
+                            ContentView.AddSubview (AddProjectTextField);
+                            Buttons.Add (FinishButton);
+
+                            break;
+                        }
+                        }
+
+                        break;
+                    }
+                    }
+
                     ShowAll ();
                 });
             };
         }
-	}
+    }
+
+
+    [Register("SparkleDataSource")]
+    public class SparkleDataSource : NSTableViewDataSource {
+
+        public List<object> Items ;
+
+
+        public SparkleDataSource ()
+        {
+            Items = new List<object> ();
+        }
+
+
+        [Export("numberOfRowsInTableView:")]
+        public int numberOfRowsInTableView (NSTableView table_view)
+        {
+            if (Items == null)
+                return 0;
+            else
+                return Items.Count;
+        }
+
+
+        [Export("tableView:objectValueForTableColumn:row:")]
+        public NSObject objectValueForTableColumn (NSTableView table_view,
+            NSTableColumn table_column, int row_index)
+        {
+            // TODO: Style text nicely: "<b>Name</b>\n<grey>Description</grey>"
+            if (table_column.HeaderToolTip.Equals ("Description")) {
+                return new NSString (
+                    (Items [row_index] as SparklePlugin).Name + "\n" +
+                    (Items [row_index] as SparklePlugin).Description
+                );
+
+            } else {
+                return new NSImage ((Items [row_index] as SparklePlugin).ImagePath) {
+                    Size = new SizeF (24, 24)
+                };
+            }
+        }
+    }
 }
diff --git a/SparkleShare/Mac/SparkleSetupWindow.cs b/SparkleShare/Mac/SparkleSetupWindow.cs
old mode 100644
new mode 100755
index 08ef66e..d0a6ed7
--- a/SparkleShare/Mac/SparkleSetupWindow.cs
+++ b/SparkleShare/Mac/SparkleSetupWindow.cs
@@ -42,11 +42,11 @@ namespace SparkleShare {
 
         public SparkleSetupWindow () : base ()
         {
-            SetFrame (new RectangleF (0, 0, 640, 380), true);
+            SetFrame (new RectangleF (0, 0, 640, 420), true);
 
             StyleMask   = NSWindowStyle.Titled;
-            MaxSize     = new SizeF (640, 380);
-            MinSize     = new SizeF (640, 380);
+            MaxSize     = new SizeF (640, 420);
+            MinSize     = new SizeF (640, 420);
             HasShadow   = true;
             BackingType = NSBackingStore.Buffered;
 
@@ -56,12 +56,12 @@ namespace SparkleShare {
                 "Pixmaps", "side-splash.png");
 
             SideSplash = new NSImage (side_splash_path) {
-                Size = new SizeF (150, 407)
+                Size = new SizeF (150, 482)
             };
 
             SideSplashView = new NSImageView () {
                 Image = SideSplash,
-                Frame = new RectangleF (0, 0, 150, 407)
+                Frame = new RectangleF (0, 0, 150, 482)
             };
 
             Buttons = new List <NSButton> ();
@@ -76,7 +76,7 @@ namespace SparkleShare {
             };
             
             DescriptionTextField = new NSTextField () {
-                Frame           = new RectangleF (190, Frame.Height - 155 , 640 - 240, 64),
+                Frame           = new RectangleF (190, Frame.Height - 130, 640 - 240, 44),
                 BackgroundColor = NSColor.WindowBackground,
                 Bordered        = false,
                 Editable        = false,
@@ -129,6 +129,8 @@ namespace SparkleShare {
                     i++;
                 }
             }
+
+            RecalculateKeyViewLoop ();
         }
 
 
@@ -145,5 +147,11 @@ namespace SparkleShare {
             NSApplication.SharedApplication.RemoveWindowsItem (this);
             return;
         }
+
+
+        public override bool AcceptsFirstResponder ()
+        {
+            return true;
+        }
     }
 }
diff --git a/SparkleShare/Mac/SparkleShare.csproj b/SparkleShare/Mac/SparkleShare.csproj
old mode 100644
new mode 100755
index e24b922..d2f8746
--- a/SparkleShare/Mac/SparkleShare.csproj
+++ b/SparkleShare/Mac/SparkleShare.csproj
@@ -62,10 +62,11 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\bin\Meebey.SmartIrc4net.dll</HintPath>
     </Reference>
-    <Reference Include="SparkleLib, Version=0.2.4.0, Culture=neutral, PublicKeyToken=null">
+    <Reference Include="SparkleLib, Version=0.2.5.0, Culture=neutral, PublicKeyToken=null">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\bin\SparkleLib.dll</HintPath>
     </Reference>
+    <Reference Include="System.Net" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="AppDelegate.cs">
@@ -74,14 +75,13 @@
     <Compile Include="MainMenu.xib.designer.cs">
       <DependentUpon>MainMenu.xib</DependentUpon>
     </Compile>
-    <Compile Include="..\SparkleController.cs">
-      <Link>SparkleController.cs</Link>
+    <Compile Include="..\SparkleControllerBase.cs">
+      <Link>SparkleControllerBase.cs</Link>
     </Compile>
-    <Compile Include="SparkleMacController.cs" />
     <Compile Include="SparkleStatusIcon.cs" />
     <Compile Include="SparkleUI.cs" />
-    <Compile Include="..\SparkleShare.cs">
-      <Link>SparkleShare.cs</Link>
+    <Compile Include="..\Program.cs">
+      <Link>Program.cs</Link>
     </Compile>
     <Compile Include="SparkleAbout.cs" />
     <Compile Include="SparkleAlert.cs" />
@@ -106,12 +106,22 @@
     <Compile Include="..\SparkleAboutController.cs">
       <Link>SparkleAboutController.cs</Link>
     </Compile>
+    <Compile Include="..\SparkleExtensions.cs">
+      <Link>SparkleExtensions.cs</Link>
+    </Compile>
+    <Compile Include="SparkleController.cs" />
+    <Compile Include="..\SparklePlugin.cs">
+      <Link>SparklePlugin.cs</Link>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <Page Include="MainMenu.xib" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Info.plist" />
+    <None Include="..\..\data\icons\avatar-default.png">
+      <Link>Pixmaps\avatar-default.png</Link>
+    </None>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
@@ -128,9 +138,6 @@
     <Content Include="..\..\data\side-splash.png">
       <Link>Pixmaps\side-splash.png</Link>
     </Content>
-    <Content Include="..\..\data\avatar-default.png">
-      <Link>Pixmaps\avatar-default.png</Link>
-    </Content>
     <Content Include="..\..\data\sparkleshare-mac.icns">
       <Link>sparkleshare-mac.icns</Link>
     </Content>
@@ -267,10 +274,53 @@
     <Content Include="..\..\data\html\jquery.js">
       <Link>HTML\jquery.js</Link>
     </Content>
+    <Content Include="..\..\data\tutorial-slide-1.png">
+      <Link>Pixmaps\tutorial-slide-1.png</Link>
+    </Content>
+    <Content Include="..\..\data\tutorial-slide-2.png">
+      <Link>Pixmaps\tutorial-slide-2.png</Link>
+    </Content>
+    <Content Include="..\..\data\tutorial-slide-3.png">
+      <Link>Pixmaps\tutorial-slide-3.png</Link>
+    </Content>
+    <Content Include="..\..\data\tutorial-slide-4.png">
+      <Link>Pixmaps\tutorial-slide-4.png</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\bitbucket.xml">
+      <Link>Plugins\bitbucket.xml</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\github.xml">
+      <Link>Plugins\github.xml</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\gitorious.xml">
+      <Link>Plugins\gitorious.xml</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\gnome.xml">
+      <Link>Plugins\gnome.xml</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\own-server.xml">
+      <Link>Plugins\own-server.xml</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\bitbucket.png">
+      <Link>Plugins\bitbucket.png</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\github.png">
+      <Link>Plugins\github.png</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\gitorious.png">
+      <Link>Plugins\gitorious.png</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\gnome.png">
+      <Link>Plugins\gnome.png</Link>
+    </Content>
+    <Content Include="..\..\data\plugins\own-server.png">
+      <Link>Plugins\own-server.png</Link>
+    </Content>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Pixmaps\" />
     <Folder Include="HTML\" />
     <Folder Include="Translations\" />
+    <Folder Include="Plugins\" />
   </ItemGroup>
 </Project>
diff --git a/SparkleShare/Mac/SparkleShare.sln b/SparkleShare/Mac/SparkleShare.sln
old mode 100644
new mode 100755
diff --git a/SparkleShare/Mac/SparkleStatusIcon.cs b/SparkleShare/Mac/SparkleStatusIcon.cs
old mode 100644
new mode 100755
index f72fb1e..55563d6
--- a/SparkleShare/Mac/SparkleStatusIcon.cs
+++ b/SparkleShare/Mac/SparkleStatusIcon.cs
@@ -46,7 +46,14 @@ namespace SparkleShare {
         private NSMenuItem AboutMenuItem;
         private NSMenuItem NotificationsMenuItem;
         private NSMenuItem RecentEventsMenuItem;
-        
+        private NSImage [] AnimationFrames;
+        private NSImage [] AnimationFramesActive;
+        private NSImage ErrorImage;
+        private NSImage ErrorImageActive;
+        private NSImage FolderImage;
+        private NSImage CautionImage;
+        private NSImage SparkleShareImage;
+
         private delegate void Task ();
         private EventHandler [] Tasks;
 
@@ -60,13 +67,24 @@ namespace SparkleShare {
         
         public SparkleStatusIcon () : base ()
         {
-            using (var a = new NSAutoreleasePool ()) {
+            using (var a = new NSAutoreleasePool ())
+            {
+                ErrorImage        = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/error.png");
+                ErrorImageActive  = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/error-active.png");
+                FolderImage       = NSImage.ImageNamed ("NSFolder");
+                CautionImage      = NSImage.ImageNamed ("NSCaution");
+                SparkleShareImage = NSImage.ImageNamed ("sparkleshare-mac");
+
                 Animation = CreateAnimation ();
 
                 StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (28);
                 StatusItem.HighlightMode = true;
     
-                StateText = _("Up to date") + " (" + Controller.FolderSize + ")";
+                if (Controller.Folders.Length == 0)
+                    StateText = _("Welcome to SparkleShare!");
+                else
+                    StateText = _("Up to date") + " — " + Controller.FolderSize;
+
                 CreateMenu ();
     
                 Menu.Delegate = new SparkleStatusIconMenuDelegate ();
@@ -79,11 +97,11 @@ namespace SparkleShare {
                         case IconState.Idle:
     
                             Animation.Stop ();
-
+                            
                             if (Controller.Folders.Length == 0)
                                 StateText = _("Welcome to SparkleShare!");
                             else
-                                StateText = _("Up to date") + " (" + Controller.FolderSize + ")";
+                                StateText = _("Up to date") + " — " + Controller.FolderSize;
     
                             StateMenuItem.Title = StateText;
                             CreateMenu ();
@@ -105,36 +123,35 @@ namespace SparkleShare {
                             StateText = _("Not everything is synced");
                             StateMenuItem.Title = StateText;
                             CreateMenu ();
-    
-                            InvokeOnMainThread (delegate {
-                                StatusItem.Image               = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/error.png");
-                                StatusItem.AlternateImage      = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/error-active.png");
-                                StatusItem.Image.Size          = new SizeF (16, 16);
-                                StatusItem.AlternateImage.Size = new SizeF (16, 16);
-                            });
+
+                            StatusItem.Image               = ErrorImage;
+                            StatusItem.AlternateImage      = ErrorImageActive;
+                            StatusItem.Image.Size          = new SizeF (16, 16);
+                            StatusItem.AlternateImage.Size = new SizeF (16, 16);
+
                             break;
                         }
                     }
                 });
             };
-
-
-
         }
 
 
         public void CreateMenu ()
         {
-            using (NSAutoreleasePool a = new NSAutoreleasePool ()) {
-                StatusItem.Image               = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/idle0.png");
-                StatusItem.AlternateImage      = new NSImage (NSBundle.MainBundle.ResourcePath + "/Pixmaps/idle0-active.png");
+            using (NSAutoreleasePool a = new NSAutoreleasePool ())
+            {
+                StatusItem.Image               = AnimationFrames [0];
+                StatusItem.AlternateImage      = AnimationFramesActive [0];
                 StatusItem.Image.Size          = new SizeF (16, 16);
                 StatusItem.AlternateImage.Size = new SizeF (16, 16);
     
                 Menu = new NSMenu ();
+                Menu.AutoEnablesItems = false;
                 
                     StateMenuItem = new NSMenuItem () {
-                        Title = StateText
+                        Title = StateText,
+                        Enabled = false
                     };
                 
                 Menu.AddItem (StateMenuItem);
@@ -145,36 +162,38 @@ namespace SparkleShare {
                     };
     
                     FolderMenuItem.Activated += delegate {
-                        SparkleShare.Controller.OpenSparkleShareFolder ();
+                        Program.Controller.OpenSparkleShareFolder ();
                     };
                 
-                    FolderMenuItem.Image = NSImage.ImageNamed ("sparkleshare-mac");
-                    FolderMenuItem.Image.Size = new SizeF (16, 16);    
+                    FolderMenuItem.Image = SparkleShareImage;
+                    FolderMenuItem.Image.Size = new SizeF (16, 16);
+                    FolderMenuItem.Enabled = true;
                 
                 Menu.AddItem (FolderMenuItem);
     
-                    FolderMenuItems = new NSMenuItem [SparkleShare.Controller.Folders.Count];
+                    FolderMenuItems = new NSMenuItem [Program.Controller.Folders.Count];
     
                     if (Controller.Folders.Length > 0) {
-                        Tasks = new EventHandler [SparkleShare.Controller.Folders.Count];
+                        Tasks = new EventHandler [Program.Controller.Folders.Count];
     
                         int i = 0;
-                        foreach (string folder_name in SparkleShare.Controller.Folders) {
+                        foreach (string folder_name in Program.Controller.Folders) {
                             NSMenuItem item = new NSMenuItem ();
     
                             item.Title = folder_name;
     
-                            if (SparkleShare.Controller.UnsyncedFolders.Contains (folder_name))
-                                item.Image = NSImage.ImageNamed ("NSCaution");
+                            if (Program.Controller.UnsyncedFolders.Contains (folder_name))
+                                item.Image = CautionImage;
                             else
-                                item.Image = NSImage.ImageNamed ("NSFolder");
-    
+                                item.Image = FolderImage;
+
                             item.Image.Size = new SizeF (16, 16);
                             Tasks [i] = OpenFolderDelegate (folder_name);
     
                             FolderMenuItems [i] = item;
                             FolderMenuItems [i].Activated += Tasks [i];
-    
+                            FolderMenuItem.Enabled = true;
+
                             i++;
                         };
     
@@ -182,7 +201,8 @@ namespace SparkleShare {
                         FolderMenuItems = new NSMenuItem [1];
     
                         FolderMenuItems [0] = new NSMenuItem () {
-                            Title = "No Remote Folders Yet"
+                            Title   = "No projects yet",
+                            Enabled = false
                         };
                     }
     
@@ -192,10 +212,11 @@ namespace SparkleShare {
                 Menu.AddItem (NSMenuItem.SeparatorItem);
     
                     SyncMenuItem = new NSMenuItem () {
-                        Title = "Add Remote Folder…"
+                        Title = "Add Hosted Project…",
+                        Enabled = true
                     };
                 
-                    if (!SparkleShare.Controller.FirstRun) {
+                    if (!Program.Controller.FirstRun) {
                         SyncMenuItem.Activated += delegate {
                             InvokeOnMainThread (delegate {
                                 NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
@@ -218,7 +239,8 @@ namespace SparkleShare {
                 Menu.AddItem (NSMenuItem.SeparatorItem);
     
                     RecentEventsMenuItem = new NSMenuItem () {
-                        Title = "Show Recent Events"
+                        Title = "Open Recent Events",
+                        Enabled = true
                     };
     
                     if (Controller.Folders.Length > 0) {
@@ -237,18 +259,20 @@ namespace SparkleShare {
     
                 Menu.AddItem (RecentEventsMenuItem);
     
-                    NotificationsMenuItem = new NSMenuItem ();
+                    NotificationsMenuItem = new NSMenuItem () {
+                        Enabled = true
+                    };
     
-                    if (SparkleShare.Controller.NotificationsEnabled)
+                    if (Program.Controller.NotificationsEnabled)
                         NotificationsMenuItem.Title = "Turn Notifications Off";
                     else
                         NotificationsMenuItem.Title = "Turn Notifications On";
     
                     NotificationsMenuItem.Activated += delegate {
-                        SparkleShare.Controller.ToggleNotifications ();
+                        Program.Controller.ToggleNotifications ();
     
                         InvokeOnMainThread (delegate {
-                            if (SparkleShare.Controller.NotificationsEnabled)
+                            if (Program.Controller.NotificationsEnabled)
                                 NotificationsMenuItem.Title = "Turn Notifications Off";
                             else
                                 NotificationsMenuItem.Title = "Turn Notifications On";
@@ -259,7 +283,8 @@ namespace SparkleShare {
                 Menu.AddItem (NSMenuItem.SeparatorItem);
     
                     AboutMenuItem = new NSMenuItem () {
-                        Title = "About SparkleShare"
+                        Title = "About SparkleShare",
+                        Enabled = true
                     };
     
                     AboutMenuItem.Activated += delegate {
@@ -288,7 +313,7 @@ namespace SparkleShare {
         private EventHandler OpenFolderDelegate (string name)
         {
             return delegate {
-                SparkleShare.Controller.OpenSparkleShareFolder (name);
+                Program.Controller.OpenSparkleShareFolder (name);
             };
         }
 
@@ -298,6 +323,22 @@ namespace SparkleShare {
         {
             FrameNumber = 0;
 
+            AnimationFrames = new NSImage [] {
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle0.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle1.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle2.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle3.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle4.png"))
+            };
+
+            AnimationFramesActive = new NSImage [] {
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle0-active.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle1-active.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle2-active.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle3-active.png")),
+                new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "idle4-active.png"))
+            };
+
             Timer Animation = new Timer () {
                 Interval = 40
             };
@@ -309,14 +350,8 @@ namespace SparkleShare {
                     FrameNumber = 0;
 
                 InvokeOnMainThread (delegate {
-                    string image_path =    Path.Combine (NSBundle.MainBundle.ResourcePath,
-                        "Pixmaps", "idle" + FrameNumber + ".png");
-
-                    string alternate_image_path = Path.Combine (NSBundle.MainBundle.ResourcePath,
-                        "Pixmaps", "idle" + FrameNumber + "-active.png");
-
-                    StatusItem.Image               = new NSImage (image_path);
-                    StatusItem.AlternateImage      = new NSImage (alternate_image_path);
+                    StatusItem.Image               = AnimationFrames [FrameNumber];
+                    StatusItem.AlternateImage      = AnimationFramesActive [FrameNumber];
                     StatusItem.Image.Size          = new SizeF (16, 16);
                     StatusItem.AlternateImage.Size = new SizeF (16, 16);
                 });
diff --git a/SparkleShare/Mac/SparkleUI.cs b/SparkleShare/Mac/SparkleUI.cs
old mode 100644
new mode 100755
index eb3721a..94dc621
--- a/SparkleShare/Mac/SparkleUI.cs
+++ b/SparkleShare/Mac/SparkleUI.cs
@@ -61,11 +61,12 @@ namespace SparkleShare {
 
                 // Needed for Growl
                 GrowlApplicationBridge.WeakDelegate = this;
+                GrowlApplicationBridge.Delegate = new SparkleGrowlDelegate ();
 
                 NSApplication.SharedApplication.ApplicationIconImage
                     = NSImage.ImageNamed ("sparkleshare.icns");
 
-                if (!SparkleShare.Controller.BackendIsPresent) {
+                if (!Program.Controller.BackendIsPresent) {
                     this.alert = new SparkleAlert ();
                     this.alert.RunModal ();
                     return;
@@ -79,7 +80,7 @@ namespace SparkleShare {
                 StatusIcon = new SparkleStatusIcon ();
                 Bubbles = new SparkleBubbles ();
 
-                if (SparkleShare.Controller.FirstRun) {
+                if (Program.Controller.FirstRun) {
                     Setup = new SparkleSetup ();
                     Setup.Controller.ShowSetupPage ();
                 }
@@ -95,7 +96,7 @@ namespace SparkleShare {
             NSImage folder_icon = new NSImage (folder_icon_path);
                         
             NSWorkspace.SharedWorkspace.SetIconforFile (folder_icon,
-                SparkleShare.Controller.SparklePath, 0);
+                Program.Controller.SparklePath, 0);
         }
 
 
@@ -123,7 +124,7 @@ namespace SparkleShare {
 
         public override void WillTerminate (NSNotification notification)
         {
-            SparkleShare.Controller.Quit ();
+            Program.Controller.Quit ();
         }
     }
 }
diff --git a/SparkleShare/Makefile.am b/SparkleShare/Makefile.am
old mode 100644
new mode 100755
index 15dee26..17e7a0b
--- a/SparkleShare/Makefile.am
+++ b/SparkleShare/Makefile.am
@@ -12,19 +12,21 @@ BUILD_DEFINES="-define:HAVE_APP_INDICATOR"
 endif
 
 SOURCES =  \
+	Program.cs \
 	SparkleAbout.cs \
 	SparkleAboutController.cs \
 	SparkleBubbles.cs \
 	SparkleBubblesController.cs \
 	SparkleController.cs \
+	SparkleControllerBase.cs \
 	SparkleEntry.cs \
 	SparkleEventLog.cs \
 	SparkleEventLogController.cs \
-	SparkleLinController.cs \
+	SparkleExtensions.cs \
+	SparklePlugin.cs \
 	SparkleSetup.cs \
 	SparkleSetupController.cs \
 	SparkleSetupWindow.cs \
-	SparkleShare.cs \
 	SparkleSpinner.cs \
 	SparkleStatusIcon.cs \
 	SparkleStatusIconController.cs \
@@ -36,11 +38,9 @@ SOURCES =  \
 	SparkleEntry.cs \
 	SparkleEventLog.cs \
 	SparkleEventLogController.cs \
-	SparkleLinController.cs \
 	SparkleSetup.cs \
 	SparkleSetupController.cs \
 	SparkleSetupWindow.cs \
-	SparkleShare.cs \
 	SparkleSpinner.cs \
 	SparkleStatusIcon.cs \
 	SparkleStatusIconController.cs \
diff --git a/SparkleShare/Makefile.in b/SparkleShare/Makefile.in
index 16439a9..30faf1c 100644
--- a/SparkleShare/Makefile.in
+++ b/SparkleShare/Makefile.in
@@ -42,8 +42,7 @@ DIST_COMMON = $(dist_Applications_DATA) $(dist_man_MANS) \
 @ENABLE_TESTS_TRUE at am__append_1 = " $(NUNIT_LIBS)"
 subdir = SparkleShare
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -150,6 +149,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -169,6 +170,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -182,6 +184,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -193,6 +196,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -203,6 +208,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -287,19 +293,21 @@ LINK = $(REF_SPARKLESHARE) $(NOTIFY_SHARP_LIBS) $(WEBKIT_SHARP_LIBS) \
 	$(am__append_1)
 @HAVE_APP_INDICATOR_TRUE at BUILD_DEFINES = "-define:HAVE_APP_INDICATOR"
 SOURCES = \
+	Program.cs \
 	SparkleAbout.cs \
 	SparkleAboutController.cs \
 	SparkleBubbles.cs \
 	SparkleBubblesController.cs \
 	SparkleController.cs \
+	SparkleControllerBase.cs \
 	SparkleEntry.cs \
 	SparkleEventLog.cs \
 	SparkleEventLogController.cs \
-	SparkleLinController.cs \
+	SparkleExtensions.cs \
+	SparklePlugin.cs \
 	SparkleSetup.cs \
 	SparkleSetupController.cs \
 	SparkleSetupWindow.cs \
-	SparkleShare.cs \
 	SparkleSpinner.cs \
 	SparkleStatusIcon.cs \
 	SparkleStatusIconController.cs \
@@ -891,11 +899,9 @@ uninstall-man: uninstall-man1
 	SparkleEntry.cs \
 	SparkleEventLog.cs \
 	SparkleEventLogController.cs \
-	SparkleLinController.cs \
 	SparkleSetup.cs \
 	SparkleSetupController.cs \
 	SparkleSetupWindow.cs \
-	SparkleShare.cs \
 	SparkleSpinner.cs \
 	SparkleStatusIcon.cs \
 	SparkleStatusIconController.cs \
diff --git a/SparkleShare/Nautilus/Makefile.am b/SparkleShare/Nautilus/Makefile.am
old mode 100644
new mode 100755
index 68b8772..8240d06
--- a/SparkleShare/Nautilus/Makefile.am
+++ b/SparkleShare/Nautilus/Makefile.am
@@ -1,10 +1,15 @@
 SOURCES =  \
-	sparkleshare-nautilus-extension.py
+	sparkleshare-nautilus-extension.py \
+	sparkleshare-nautilus3-extension.py
 
-if NAUTILUS_EXTENSION_ENABLED
+if NAUTILUS2_EXTENSION_ENABLED
 NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
 extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
-extension_SCRIPTS = $(addprefix $(srcdir)/, $(SOURCES))
-else
-EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in
+extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus-extension.py))
 endif
+if NAUTILUS3_EXTENSION_ENABLED
+NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
+extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
+extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus3-extension.py)
+endif
+EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in sparkleshare-nautilus3-extension.py.in
diff --git a/SparkleShare/Nautilus/Makefile.in b/SparkleShare/Nautilus/Makefile.in
index 7580cc8..336c193 100644
--- a/SparkleShare/Nautilus/Makefile.in
+++ b/SparkleShare/Nautilus/Makefile.in
@@ -34,10 +34,10 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = SparkleShare/Nautilus
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/sparkleshare-nautilus-extension.py.in
+	$(srcdir)/sparkleshare-nautilus-extension.py.in \
+	$(srcdir)/sparkleshare-nautilus3-extension.py.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -51,7 +51,8 @@ am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
-CONFIG_CLEAN_FILES = sparkleshare-nautilus-extension.py
+CONFIG_CLEAN_FILES = sparkleshare-nautilus-extension.py \
+	sparkleshare-nautilus3-extension.py
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -99,6 +100,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -118,6 +121,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -131,6 +135,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -142,6 +147,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -152,6 +159,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -227,12 +235,16 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SOURCES = \
-	sparkleshare-nautilus-extension.py
-
- at NAUTILUS_EXTENSION_ENABLED_TRUE@NAUTILUS_PYTHON_INSTALL_DIR = $(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
- at NAUTILUS_EXTENSION_ENABLED_TRUE@extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
- at NAUTILUS_EXTENSION_ENABLED_TRUE@extension_SCRIPTS = $(addprefix $(srcdir)/, $(SOURCES))
- at NAUTILUS_EXTENSION_ENABLED_FALSE@EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in
+	sparkleshare-nautilus-extension.py \
+	sparkleshare-nautilus3-extension.py
+
+ at NAUTILUS2_EXTENSION_ENABLED_TRUE@NAUTILUS_PYTHON_INSTALL_DIR = $(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
+ at NAUTILUS3_EXTENSION_ENABLED_TRUE@NAUTILUS_PYTHON_INSTALL_DIR = $(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
+ at NAUTILUS2_EXTENSION_ENABLED_TRUE@extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
+ at NAUTILUS3_EXTENSION_ENABLED_TRUE@extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
+ at NAUTILUS2_EXTENSION_ENABLED_TRUE@extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus-extension.py))
+ at NAUTILUS3_EXTENSION_ENABLED_TRUE@extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus3-extension.py)
+EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in sparkleshare-nautilus3-extension.py.in
 all: all-am
 
 .SUFFIXES:
@@ -268,6 +280,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 sparkleshare-nautilus-extension.py: $(top_builddir)/config.status $(srcdir)/sparkleshare-nautilus-extension.py.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+sparkleshare-nautilus3-extension.py: $(top_builddir)/config.status $(srcdir)/sparkleshare-nautilus3-extension.py.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-extensionSCRIPTS: $(extension_SCRIPTS)
 	@$(NORMAL_INSTALL)
 	test -z "$(extensiondir)" || $(MKDIR_P) "$(DESTDIR)$(extensiondir)"
diff --git a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py
similarity index 97%
copy from SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
copy to SparkleShare/Nautilus/sparkleshare-nautilus-extension.py
index e7a157e..790728d 100644
--- a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
+++ b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py
@@ -28,7 +28,7 @@ import gtk
 SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare")
 
 import gettext
-gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale')
+gettext.bindtextdomain('sparkleshare', '/usr/local/share/locale')
 gettext.textdomain('sparkleshare')
 _ = gettext.gettext
 
@@ -121,13 +121,13 @@ class SparkleShareExtension (nautilus.MenuProvider):
 
         os.chdir (file_reference.get_parent ().get_path ())
 
-        time_command   = os.popen ("git log -10 --format='%at' " + file_reference.get_path ()
+        time_command   = os.popen ("git log -10 --format='%at' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
-        author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_path ()
+        author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
-        hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_path ()
+        hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
         i = 0
diff --git a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
old mode 100644
new mode 100755
index e7a157e..a43d761
--- a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
+++ b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
@@ -121,13 +121,13 @@ class SparkleShareExtension (nautilus.MenuProvider):
 
         os.chdir (file_reference.get_parent ().get_path ())
 
-        time_command   = os.popen ("git log -10 --format='%at' " + file_reference.get_path ()
+        time_command   = os.popen ("git log -10 --format='%at' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
-        author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_path ()
+        author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
-        hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_path ()
+        hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_basename ()
             .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
 
         i = 0
diff --git a/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py b/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py
new file mode 100644
index 0000000..13e6041
--- /dev/null
+++ b/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py
@@ -0,0 +1,199 @@
+#   SparkleShare, an instant update workflow to Git.
+#   Copyright (C) 2010  Hylke Bons <hylkebons at gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import shutil
+import time
+import urllib
+
+# http://projects.gnome.org/nautilus-python/documentation/html/
+from gi.repository import Nautilus, GObject, Gtk, Gdk
+
+SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare")
+
+import gettext
+gettext.bindtextdomain('sparkleshare', '/usr/local/share/locale')
+gettext.textdomain('sparkleshare')
+_ = gettext.gettext
+
+class SparkleShareExtension (GObject.GObject, Nautilus.MenuProvider):
+
+
+    def __init__ (self):
+        pass
+
+    def checkout_version (self, menu, file_path, commit_hash, username, timestamp):
+
+        file_name = os.path.basename (file_path)
+        tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_name)
+
+        # Move the current version to a temporary path
+        shutil.move (file_path, tmp_file_path)
+
+        # Check out the earlier version
+        os.chdir (os.path.dirname (file_path))
+        os.popen ("git checkout " + commit_hash + " '" + file_name + "'")
+
+        new_tmp_file_name = file_name + " (" + username + ", "
+        new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") "
+
+        # Rename the checked out file
+        shutil.move (file_name, new_tmp_file_name)
+
+        # Move the original file back
+        shutil.move (tmp_file_path, file_path)
+
+        return True
+
+    def format_web_link (self, path):
+        # Get the remote url used for the repo
+        self.chdir_to_repo_base(path)
+        url_command = os.popen ("git config --get remote.origin.url")
+        origin_url = url_command.readline ().strip ()
+        if not origin_url:
+            return
+        
+        # Get components
+        # TODO use regex here or something not so ugly
+        protocol, remaining = origin_url.split ("://", 1)
+        host, origin_path = remaining.split("@")[1].split("/", 1);
+        # Format the right web url depending on the service
+        repo_base = self.get_repo_base_path(path)
+        relative_path = path.split(repo_base, 1)[1].lstrip("/")
+
+        #url = url.rstrip (".git")
+        if "gitorious.org" in host:
+            # ssh://git@gitorious.org/gnome-design/gnome-design.git
+            # http://gitorious.org/gnome-design/gnome-design/blobs/raw/master/COPYING
+            url = "http://" + host + "/" + urllib.quote(origin_path.rstrip(".git")) + "/blobs/master/" + urllib.quote(relative_path)
+        elif "github.com" in host:
+            # ssh://git@github.com/hbons/SparkleShare.git
+            # https://raw.github.com/hbons/SparkleShare/master/README
+            url = "http://raw.github.com/" + urllib.quote(origin_path.rstrip(".git")) + "/raw/master/" + urllib.quote(relative_path)
+        else:
+            # https://git.one-gear.com/?p=thansen/Public.git;a=blob;f=SparkleShare.txt;hb=HEAD
+            url = "http://" + host + "/?p=" + urllib.quote(origin_path) +";a=blob;f=" + urllib.quote(relative_path) + ";hb=HEAD"
+
+        return url
+
+    def copy_web_link (self, menu, path):
+        url = self.format_web_link(path)
+        clipboard = Gtk.Clipboard.get (Gdk.Atom.intern ("CLIPBOARD", False))
+        clipboard.set_text (url, -1)
+        clipboard.store ()
+
+        return
+   
+    def chdir_to_repo_base(self, file_path):
+        base_path = self.get_repo_base_path(file_path)
+        os.chdir(base_path)
+        
+    def get_repo_base_path(self, path):
+        path = os.path.abspath(path)
+        parts = path.split(SPARKLESHARE_PATH, 1)[1].split("/")
+        if len(parts) > 1:
+            sub_folder = parts[1]
+        else:
+            sub_folder = parts[0]
+        return SPARKLESHARE_PATH + "/" + sub_folder
+
+    def get_file_items (self, window, files):
+
+		# Only work if one file is selected
+        if len (files) != 1:
+            return
+
+        file_reference = files [0]
+
+		# Only work if we're in a SparkleShare repository folder
+        if file_reference.is_directory ():
+            return
+        if not (file_reference.get_parent_uri ().startswith ('file://' + SPARKLESHARE_PATH)):
+            return
+        if file_reference.get_parent_uri () == 'file://' + SPARKLESHARE_PATH:
+            return
+
+        file_path = urllib.unquote ('/' + file_reference.get_uri ().lstrip('file:/'))
+        url = self.format_web_link (file_path)
+        parent_path = os.path.dirname (os.path.abspath (file_path))
+        
+        top_menuitem = Nautilus.MenuItem (name="Nautilus::SparkleShare",
+                                            label="SparkleShare")
+        
+        top_submenu = Nautilus.Menu ()
+        top_menuitem.set_submenu (top_submenu)
+        
+        web_link_menu_item_copy = Nautilus.MenuItem (name="Nautilus::CopyWebLink",
+                                                label=_("Copy Web Link"),
+                                                tip=_("Copy the web address of this file to the clipboard"))
+
+        web_link_menu_item_copy.connect ("activate", self.copy_web_link, file_path)
+        
+
+        epochs        = ["", "", "", "", "", "", "", "", "", ""]
+        commit_hashes = ["", "", "", "", "", "", "", "", "", ""]
+
+
+        time_command   = os.popen ("git log -10 --format='%at' '" + file_path + "'")
+
+        author_command = os.popen ("git log -10 --format='%an' '" + file_path + "'")
+
+        hash_command = os.popen ("git log -10 --format='%H' '" + file_path + "'")
+
+        i = 0
+        for line in time_command.readlines ():
+            epochs [i] = line.strip ("\n")
+            i += 1
+        
+
+        # Only work if there is history
+        if i < 2:
+            top_submenu.append_item (web_link_menu_item_copy)
+            return [top_menuitem]
+
+        i = 0
+        for line in hash_command.readlines ():
+            commit_hashes [i] = line.strip ("\n")
+            i += 1
+
+        earlier_version_menu_item = Nautilus.MenuItem (name="Nautilus::OpenOlderVersion",
+                                                    label=_("Get Earlier Version"),
+                                                    tip=_("Make a copy of an earlier version in this folder"))
+        version_submenu = Nautilus.Menu ()
+
+        i = 0
+        for line in author_command.readlines ():
+
+            if i > 0:
+
+                timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i])))
+                username = line.strip ("\n")
+
+                menu_item = Nautilus.MenuItem (name="Nautilus::Version" + epochs [i],
+                                           label=timestamp + "\t" + username,
+                                           tip=_("Select to get a copy of this version"))
+
+                menu_item.connect ("activate", self.checkout_version, file_path, commit_hashes [i],
+                                   username, time.localtime (float (epochs [i])))
+                version_submenu.append_item (menu_item)
+
+            i += 1
+
+        earlier_version_menu_item.set_submenu (version_submenu)
+        top_submenu.append_item (earlier_version_menu_item)
+        top_submenu.append_item (web_link_menu_item_copy)
+
+        return [top_menuitem]
diff --git a/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py.in b/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py.in
new file mode 100755
index 0000000..4d2164f
--- /dev/null
+++ b/SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py.in
@@ -0,0 +1,199 @@
+#   SparkleShare, an instant update workflow to Git.
+#   Copyright (C) 2010  Hylke Bons <hylkebons at gmail.com>
+#
+#   This program is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import shutil
+import time
+import urllib
+
+# http://projects.gnome.org/nautilus-python/documentation/html/
+from gi.repository import Nautilus, GObject, Gtk, Gdk
+
+SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare")
+
+import gettext
+gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale')
+gettext.textdomain('sparkleshare')
+_ = gettext.gettext
+
+class SparkleShareExtension (GObject.GObject, Nautilus.MenuProvider):
+
+
+    def __init__ (self):
+        pass
+
+    def checkout_version (self, menu, file_path, commit_hash, username, timestamp):
+
+        file_name = os.path.basename (file_path)
+        tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_name)
+
+        # Move the current version to a temporary path
+        shutil.move (file_path, tmp_file_path)
+
+        # Check out the earlier version
+        os.chdir (os.path.dirname (file_path))
+        os.popen ("git checkout " + commit_hash + " '" + file_name + "'")
+
+        new_tmp_file_name = file_name + " (" + username + ", "
+        new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") "
+
+        # Rename the checked out file
+        shutil.move (file_name, new_tmp_file_name)
+
+        # Move the original file back
+        shutil.move (tmp_file_path, file_path)
+
+        return True
+
+    def format_web_link (self, path):
+        # Get the remote url used for the repo
+        self.chdir_to_repo_base(path)
+        url_command = os.popen ("git config --get remote.origin.url")
+        origin_url = url_command.readline ().strip ()
+        if not origin_url:
+            return
+        
+        # Get components
+        # TODO use regex here or something not so ugly
+        protocol, remaining = origin_url.split ("://", 1)
+        host, origin_path = remaining.split("@")[1].split("/", 1);
+        # Format the right web url depending on the service
+        repo_base = self.get_repo_base_path(path)
+        relative_path = path.split(repo_base, 1)[1].lstrip("/")
+
+        #url = url.rstrip (".git")
+        if "gitorious.org" in host:
+            # ssh://git@gitorious.org/gnome-design/gnome-design.git
+            # http://gitorious.org/gnome-design/gnome-design/blobs/raw/master/COPYING
+            url = "http://" + host + "/" + urllib.quote(origin_path.rstrip(".git")) + "/blobs/master/" + urllib.quote(relative_path)
+        elif "github.com" in host:
+            # ssh://git@github.com/hbons/SparkleShare.git
+            # https://raw.github.com/hbons/SparkleShare/master/README
+            url = "http://raw.github.com/" + urllib.quote(origin_path.rstrip(".git")) + "/raw/master/" + urllib.quote(relative_path)
+        else:
+            # https://git.one-gear.com/?p=thansen/Public.git;a=blob;f=SparkleShare.txt;hb=HEAD
+            url = "http://" + host + "/?p=" + urllib.quote(origin_path) +";a=blob;f=" + urllib.quote(relative_path) + ";hb=HEAD"
+
+        return url
+
+    def copy_web_link (self, menu, path):
+        url = self.format_web_link(path)
+        clipboard = Gtk.Clipboard.get (Gdk.Atom.intern ("CLIPBOARD", False))
+        clipboard.set_text (url, -1)
+        clipboard.store ()
+
+        return
+   
+    def chdir_to_repo_base(self, file_path):
+        base_path = self.get_repo_base_path(file_path)
+        os.chdir(base_path)
+        
+    def get_repo_base_path(self, path):
+        path = os.path.abspath(path)
+        parts = path.split(SPARKLESHARE_PATH, 1)[1].split("/")
+        if len(parts) > 1:
+            sub_folder = parts[1]
+        else:
+            sub_folder = parts[0]
+        return SPARKLESHARE_PATH + "/" + sub_folder
+
+    def get_file_items (self, window, files):
+
+		# Only work if one file is selected
+        if len (files) != 1:
+            return
+
+        file_reference = files [0]
+
+		# Only work if we're in a SparkleShare repository folder
+        if file_reference.is_directory ():
+            return
+        if not (file_reference.get_parent_uri ().startswith ('file://' + SPARKLESHARE_PATH)):
+            return
+        if file_reference.get_parent_uri () == 'file://' + SPARKLESHARE_PATH:
+            return
+
+        file_path = urllib.unquote ('/' + file_reference.get_uri ().lstrip('file:/'))
+        url = self.format_web_link (file_path)
+        parent_path = os.path.dirname (os.path.abspath (file_path))
+        
+        top_menuitem = Nautilus.MenuItem (name="Nautilus::SparkleShare",
+                                            label="SparkleShare")
+        
+        top_submenu = Nautilus.Menu ()
+        top_menuitem.set_submenu (top_submenu)
+        
+        web_link_menu_item_copy = Nautilus.MenuItem (name="Nautilus::CopyWebLink",
+                                                label=_("Copy Web Link"),
+                                                tip=_("Copy the web address of this file to the clipboard"))
+
+        web_link_menu_item_copy.connect ("activate", self.copy_web_link, file_path)
+        
+
+        epochs        = ["", "", "", "", "", "", "", "", "", ""]
+        commit_hashes = ["", "", "", "", "", "", "", "", "", ""]
+
+
+        time_command   = os.popen ("git log -10 --format='%at' '" + file_path + "'")
+
+        author_command = os.popen ("git log -10 --format='%an' '" + file_path + "'")
+
+        hash_command = os.popen ("git log -10 --format='%H' '" + file_path + "'")
+
+        i = 0
+        for line in time_command.readlines ():
+            epochs [i] = line.strip ("\n")
+            i += 1
+        
+
+        # Only work if there is history
+        if i < 2:
+            top_submenu.append_item (web_link_menu_item_copy)
+            return [top_menuitem]
+
+        i = 0
+        for line in hash_command.readlines ():
+            commit_hashes [i] = line.strip ("\n")
+            i += 1
+
+        earlier_version_menu_item = Nautilus.MenuItem (name="Nautilus::OpenOlderVersion",
+                                                    label=_("Get Earlier Version"),
+                                                    tip=_("Make a copy of an earlier version in this folder"))
+        version_submenu = Nautilus.Menu ()
+
+        i = 0
+        for line in author_command.readlines ():
+
+            if i > 0:
+
+                timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i])))
+                username = line.strip ("\n")
+
+                menu_item = Nautilus.MenuItem (name="Nautilus::Version" + epochs [i],
+                                           label=timestamp + "\t" + username,
+                                           tip=_("Select to get a copy of this version"))
+
+                menu_item.connect ("activate", self.checkout_version, file_path, commit_hashes [i],
+                                   username, time.localtime (float (epochs [i])))
+                version_submenu.append_item (menu_item)
+
+            i += 1
+
+        earlier_version_menu_item.set_submenu (version_submenu)
+        top_submenu.append_item (earlier_version_menu_item)
+        top_submenu.append_item (web_link_menu_item_copy)
+
+        return [top_menuitem]
diff --git a/SparkleShare/SparkleShare.cs b/SparkleShare/Program.cs
old mode 100644
new mode 100755
similarity index 79%
rename from SparkleShare/SparkleShare.cs
rename to SparkleShare/Program.cs
index 0002e2d..8d5f769
--- a/SparkleShare/SparkleShare.cs
+++ b/SparkleShare/Program.cs
@@ -23,14 +23,14 @@ using System.Runtime.InteropServices;
 using System.Text;
 
 using Mono.Unix;
-using Mono.Unix.Native;
+//using Mono.Unix.Native;
 using SparkleLib;
 using SparkleLib.Options;
 
 namespace SparkleShare {
 
     // This is SparkleShare!
-    public class SparkleShare {
+    public class Program {
 
         public static SparkleController Controller;
         public static SparkleUI UI;
@@ -45,16 +45,6 @@ namespace SparkleShare {
 
         public static void Main (string [] args)
         {
-            // Don't allow running as root on Linux or Mac
-            if ((SparkleBackend.Platform == PlatformID.Unix ||
-                 SparkleBackend.Platform == PlatformID.MacOSX) &&
-                new UnixUserInfo (UnixEnvironment.UserName).UserId == 0) {
-
-                Console.WriteLine (_("Sorry, you can't run SparkleShare with these permissions."));
-                Console.WriteLine (_("Things would go utterly wrong."));
-                Environment.Exit (-1);
-            }
-
             // Parse the command line options
             bool show_help       = false;
             OptionSet option_set = new OptionSet () {
@@ -74,25 +64,10 @@ namespace SparkleShare {
             if (show_help)
                 ShowHelp (option_set);
 
-            // Load the right controller for the OS
-            string controller_name = "Lin";
-            switch (SparkleBackend.Platform) {
-            case PlatformID.Unix:
-                SetProcessName ("sparkleshare");
-                break;
-            case PlatformID.MacOSX:
-                controller_name = "Mac";
-                break;
-            case PlatformID.Win32NT:
-                controller_name = "Win";
-                break;
-            }
 
             // Initialize the controller this way so that
             // there aren't any exceptions in the OS specific UI's
-            Controller = (SparkleController) Activator.CreateInstance (
-                Type.GetType ("SparkleShare.Sparkle" + controller_name + "Controller"));
-
+            Controller = new SparkleController ();
             Controller.Initialize ();
         
             if (Controller != null) {
diff --git a/SparkleShare/SparkleAbout.cs b/SparkleShare/SparkleAbout.cs
old mode 100644
new mode 100755
index 44aa982..6a35cf7
--- a/SparkleShare/SparkleAbout.cs
+++ b/SparkleShare/SparkleAbout.cs
@@ -53,8 +53,8 @@ namespace SparkleShare {
             Title          = _("About SparkleShare");
             AppPaintable   = true;
 
-            string image_path = System.IO.Path.Combine (SparkleUI.AssetsPath,
-                 "pixmaps", "about.png");
+            string image_path = new string [] {SparkleUI.AssetsPath,
+                 "pixmaps", "about.png"}.Combine ();
 
             Realize ();
             Gdk.Pixbuf buf = new Gdk.Pixbuf (image_path);
@@ -75,7 +75,7 @@ namespace SparkleShare {
 
             Controller.VersionUpToDateEvent += delegate {
                 Application.Invoke (delegate {
-                    this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#4e9a06'>{0}</span>",
+                    this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#729fcf'>{0}</span>",
                         _("You are running the latest version."));
 
                     this.updates.ShowAll ();
@@ -84,7 +84,7 @@ namespace SparkleShare {
 
             Controller.CheckingForNewVersionEvent += delegate {
                 Application.Invoke (delegate {
-                    this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#4e9a06'>{0}</span>",
+                    this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#729fcf'>{0}</span>",
                         _("Checking for updates..."));
 
                     this.updates.ShowAll ();
@@ -97,9 +97,6 @@ namespace SparkleShare {
 
         private void CreateAbout ()
         {
-            Gdk.Color color = Style.Foreground (StateType.Insensitive);
-            string secondary_text_color = SparkleUIHelpers.GdkColorToHex (color);
-
             Label version = new Label () {
                 Markup = "<span font_size='small' fgcolor='white'>" +
                          "version " + Controller.RunningVersion +
@@ -109,7 +106,7 @@ namespace SparkleShare {
             };
 
             this.updates = new Label () {
-                Markup = "<span font_size='small' fgcolor='" + secondary_text_color + "'>" +
+                Markup = "<span font_size='small' fgcolor='#729fcf'>" +
                          _("Checking for updates...") +
                          "</span>",
                 Xalign = 0,
diff --git a/SparkleShare/SparkleAboutController.cs b/SparkleShare/SparkleAboutController.cs
old mode 100644
new mode 100755
index 5495dfc..801d84a
--- a/SparkleShare/SparkleAboutController.cs
+++ b/SparkleShare/SparkleAboutController.cs
@@ -71,19 +71,26 @@ namespace SparkleShare {
                 if (args.Error != null)
                     return;
 
-                string new_version = args.Result.Trim ();
+                int running_version = int.Parse (
+                    "" + RunningVersion [0] + RunningVersion [2] + RunningVersion [4]
+                );
+
+                string result = args.Result.Trim ();
+                int new_version = int.Parse (
+                    "" + result [0] + result [2] + result [4]
+                );
 
                 // Add a little delay, making it seems we're
                 // actually doing hard work
                 Thread.Sleep (2 * 1000);
 
-                if (RunningVersion.Equals (new_version)) {
+                if (running_version >= new_version) {
                     if (VersionUpToDateEvent != null)
                         VersionUpToDateEvent ();
 
                 } else {
                     if (NewVersionEvent != null)
-                        NewVersionEvent (new_version);
+                        NewVersionEvent (result);
                 }
 
                 this.version_checker.Start ();
diff --git a/SparkleShare/SparkleBubbles.cs b/SparkleShare/SparkleBubbles.cs
old mode 100644
new mode 100755
index 154f209..1d08df2
--- a/SparkleShare/SparkleBubbles.cs
+++ b/SparkleShare/SparkleBubbles.cs
@@ -30,17 +30,37 @@ namespace SparkleShare {
         public SparkleBubbles ()
         {
             Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) {
-                Notification notification = new Notification () {
-                    Timeout  = 5 * 1000,
-                    Urgency  = Urgency.Low
-                };
+                try {
+                    Notification notification = new Notification () {
+                        Summary = title,
+                        Body    = subtext,
+                        Timeout = 5 * 1000,
+                        Urgency = Urgency.Low
+                    };
+    
+                    if (image_path != null)
+                        notification.Icon = new Gdk.Pixbuf (image_path);
+                    else
+                        notification.IconName = "folder-sparkleshare";
+
+                    notification.Closed += delegate {
+                        Application.Invoke (delegate {
+                            if (SparkleUI.EventLog == null)
+                                SparkleUI.EventLog = new SparkleEventLog ();
+
+                            SparkleUI.EventLog.Controller.SelectedFolder = null;
+
+                            SparkleUI.EventLog.ShowAll ();
+                            SparkleUI.EventLog.Present ();
+                        });
+                    };
 
-                if (image_path != null)
-                    notification.Icon = new Gdk.Pixbuf (image_path);
-                else
-                    notification.IconName = "folder-sparkleshare";
+                    notification.Show ();
 
-                notification.Show ();
+                } catch (Exception) {
+                    // Ignore exceptions thrown by libnotify,
+                    // they're not important enough to crash
+                }
             };
         }
     }
diff --git a/SparkleShare/SparkleBubblesController.cs b/SparkleShare/SparkleBubblesController.cs
old mode 100644
new mode 100755
index 14870aa..dd660b8
--- a/SparkleShare/SparkleBubblesController.cs
+++ b/SparkleShare/SparkleBubblesController.cs
@@ -27,23 +27,23 @@ namespace SparkleShare {
 
         public SparkleBubblesController ()
         {
-            SparkleShare.Controller.ConflictNotificationRaised += delegate {
+            Program.Controller.ConflictNotificationRaised += delegate {
                 ShowBubble ("Ouch! Mid-air collision!",
                             "Don't worry, SparkleShare made a copy of each conflicting file.",
                             null);
             };
 
-            SparkleShare.Controller.NotificationRaised += delegate (string user_name, string user_email,
-                                                                    string message, string folder_path) {
+            Program.Controller.NotificationRaised += delegate (string user_name, string user_email,
+                                                               string message, string folder_path) {
                 ShowBubble (user_name, message,
-                    SparkleShare.Controller.GetAvatar (user_email, 36));
+                    Program.Controller.GetAvatar (user_email, 36));
             };
         }
 
 
         public void ShowBubble (string title, string subtext, string image_path)
         {
-            if (ShowBubbleEvent != null && SparkleShare.Controller.NotificationsEnabled)
+            if (ShowBubbleEvent != null && Program.Controller.NotificationsEnabled)
                 ShowBubbleEvent (title, subtext, image_path);
         }
     }
diff --git a/SparkleShare/SparkleController.cs b/SparkleShare/SparkleController.cs
old mode 100644
new mode 100755
index 7d56512..274322a
--- a/SparkleShare/SparkleController.cs
+++ b/SparkleShare/SparkleController.cs
@@ -19,1135 +19,203 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
-using System.Linq;
-using System.Net;
-using System.Security.Cryptography;
+using System.Runtime.InteropServices;
 using System.Text;
-using System.Text.RegularExpressions;
 using System.Threading;
-using System.Xml;
 
 using Mono.Unix;
 using SparkleLib;
 
 namespace SparkleShare {
 
-    public abstract class SparkleController {
+    public class SparkleController : SparkleControllerBase {
 
-        public List <SparkleRepoBase> Repositories;
-        public string FolderSize;
-        public readonly string SparklePath = SparkleConfig.DefaultConfig.FoldersPath;
 
-        public event OnQuitWhileSyncingEventHandler OnQuitWhileSyncing;
-        public delegate void OnQuitWhileSyncingEventHandler ();
-
-        public event FolderFetchedEventHandler FolderFetched;
-        public delegate void FolderFetchedEventHandler ();
-        
-        public event FolderFetchErrorEventHandler FolderFetchError;
-        public delegate void FolderFetchErrorEventHandler ();
-        
-        public event FolderListChangedEventHandler FolderListChanged;
-        public delegate void FolderListChangedEventHandler ();
-
-        public event FolderSizeChangedEventHandler FolderSizeChanged;
-        public delegate void FolderSizeChangedEventHandler (string folder_size);
-        
-        public event AvatarFetchedEventHandler AvatarFetched;
-        public delegate void AvatarFetchedEventHandler ();
-
-        public event OnIdleEventHandler OnIdle;
-        public delegate void OnIdleEventHandler ();
-
-        public event OnSyncingEventHandler OnSyncing;
-        public delegate void OnSyncingEventHandler ();
-
-        public event OnErrorEventHandler OnError;
-        public delegate void OnErrorEventHandler ();
-
-        public event OnInvitationEventHandler OnInvitation;
-        public delegate void OnInvitationEventHandler (string server, string folder, string token);
-
-        public event ConflictNotificationRaisedEventHandler ConflictNotificationRaised;
-        public delegate void ConflictNotificationRaisedEventHandler ();
-
-        public event NotificationRaisedEventHandler NotificationRaised;
-        public delegate void NotificationRaisedEventHandler (string user_name, string user_email,
-                                                             string message, string repository_path);
-
-        
-        // Short alias for the translations
-        public static string _ (string s)
-        {
-            return Catalog.GetString (s);
-        }
-
-
-        public SparkleController () { }
-
-        public virtual void Initialize ()
-        {
-            InstallLauncher ();
-            EnableSystemAutostart ();
-
-            // Create the SparkleShare folder and add it to the bookmarks
-            if (CreateSparkleShareFolder ())
-                AddToBookmarks ();
-
-            FolderSize = GetFolderSize ();
-
-            if (FirstRun)
-                SparkleConfig.DefaultConfig.SetConfigOption ("notifications", bool.TrueString);
-            else
-                AddKey ();
-
-            // Watch the SparkleShare folder
-            FileSystemWatcher watcher = new FileSystemWatcher (SparkleConfig.DefaultConfig.FoldersPath) {
-                IncludeSubdirectories = false,
-                EnableRaisingEvents   = true,
-                Filter                = "*"
-            };
-
-            // Remove the repository when a delete event occurs
-            watcher.Deleted += delegate (object o, FileSystemEventArgs args) {
-                RemoveRepository (args.FullPath);
-                SparkleConfig.DefaultConfig.RemoveFolder (Path.GetFileName (args.Name));
-
-                if (FolderListChanged != null)
-                    FolderListChanged ();
-
-                FolderSize = GetFolderSize ();
-
-                if (FolderSizeChanged != null)
-                    FolderSizeChanged (FolderSize);
-            };
-
-
-            watcher.Created += delegate (object o, FileSystemEventArgs args) {
-
-                // Handle invitations when the user saves an
-                // invitation into the SparkleShare folder
-                if (args.Name.EndsWith (".sparkle") && !FirstRun) {
-                    XmlDocument xml_doc = new XmlDocument (); 
-                    xml_doc.Load (args.Name);
-
-                    string server = xml_doc.GetElementsByTagName ("server") [0].InnerText;
-                    string folder = xml_doc.GetElementsByTagName ("folder") [0].InnerText;
-                    string token  = xml_doc.GetElementsByTagName ("token") [0].InnerText;
-            
-                    // FIXME: this is broken :\
-                    if (OnInvitation != null)
-                        OnInvitation (server, folder, token);
-                }
-            };
-
-            new Thread (new ThreadStart (PopulateRepositories)).Start ();
-        }
-
-
-        public bool FirstRun {
+        public override string PluginsPath {
             get {
-                return SparkleConfig.DefaultConfig.User.Email.Equals ("Unknown");
+                return SparkleHelpers.CombineMore (Defines.DATAROOTDIR, "sparkleshare", "plugins");
             }
         }
 
 
-        // Uploads the user's public key to the server
-        public bool AcceptInvitation (string server, string folder, string token)
+        public SparkleController () : base ()
         {
-            // The location of the user's public key for SparkleShare
-            string public_key_file_path = SparkleHelpers.CombineMore (SparkleConfig.DefaultConfig.HomePath, ".ssh",
-                "sparkleshare." + UserEmail + ".key.pub");
-
-            if (!File.Exists (public_key_file_path))
-                return false;
-
-            StreamReader reader = new StreamReader (public_key_file_path);
-            string public_key = reader.ReadToEnd ();
-            reader.Close ();
-
-            string url = "https://" + server + "/?folder=" + folder +
-                         "&token=" + token + "&pubkey=" + public_key;
-
-            SparkleHelpers.DebugInfo ("WebRequest", url);
-
-            HttpWebRequest request   = (HttpWebRequest) WebRequest.Create (url);
-            HttpWebResponse response = (HttpWebResponse) request.GetResponse();
-
-            if (response.StatusCode == HttpStatusCode.OK) {
-                response.Close ();
-                return true;
-
-            } else {
-                response.Close ();
-                return false;
-            }
-        }
-
-
-        public List<string> Folders {
-            get {
-                List<string> folders = SparkleConfig.DefaultConfig.Folders;
-                folders.Sort ();
-                return folders;
-            }
-        }
-
-
-        public List<string> PreviousHosts {
-            get {
-                List<string> hosts = SparkleConfig.DefaultConfig.HostsWithUsername;
-                hosts.AddRange(SparkleConfig.DefaultConfig.Hosts);
-                hosts.Sort ();
-                return hosts;
-            }
         }
 
 
-        public List<string> UnsyncedFolders {
-            get {
-                List<string> unsynced_folders = new List<string> ();
-
-                foreach (SparkleRepoBase repo in Repositories) {
-                    if (repo.HasUnsyncedChanges)
-                        unsynced_folders.Add (repo.Name);
-                 }
-
-                return unsynced_folders;
-            }
-        }
-
-
-        public List<SparkleChangeSet> GetLog ()
+        // Creates a .desktop entry in autostart folder to
+        // start SparkleShare automatically at login
+        public override void EnableSystemAutostart ()
         {
-            List<SparkleChangeSet> list = new List<SparkleChangeSet> ();
+            string autostart_path = Path.Combine (Environment.GetFolderPath (
+                Environment.SpecialFolder.ApplicationData), "autostart");
 
-            foreach (SparkleRepoBase repo in Repositories) {
-                List<SparkleChangeSet> change_sets = repo.GetChangeSets (50);
+            string desktopfile_path = Path.Combine (autostart_path, "sparkleshare.desktop");
 
-                if (change_sets != null)
-                    list.AddRange (change_sets);
-                else
-                    SparkleHelpers.DebugInfo ("Log", "Could not create log for " + repo.Name);
-            }
-
-            list.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp)));
-            list.Reverse ();
-
-            if (list.Count > 100)
-                return list.GetRange (0, 100);
-            else
-                return list.GetRange (0, list.Count);
-        }
+            if (!Directory.Exists (autostart_path))
+                Directory.CreateDirectory (autostart_path);
 
+            if (!File.Exists (desktopfile_path)) {
+                TextWriter writer = new StreamWriter (desktopfile_path);
+                writer.WriteLine ("[Desktop Entry]\n" +
+                                  "Type=Application\n" +
+                                  "Name=SparkleShare\n" +
+                                  "Exec=sparkleshare start\n" +
+                                  "Icon=folder-sparkleshare\n" +
+                                  "Terminal=false\n" +
+                                  "X-GNOME-Autostart-enabled=true\n" +
+                                  "Categories=Network");
+                writer.Close ();
 
-        public List<SparkleChangeSet> GetLog (string name)
-        {
-            if (name == null)
-                return GetLog ();
+                // Give the launcher the right permissions so it can be launched by the user
+                UnixFileInfo file_info = new UnixFileInfo (desktopfile_path);
+                file_info.Create (FileAccessPermissions.UserReadWriteExecute);
 
-            string path = Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, name);
-            int log_size = 50;
-            
-            foreach (SparkleRepoBase repo in Repositories) {
-                if (repo.LocalPath.Equals (path))            
-                    return repo.GetChangeSets (log_size);
+                SparkleHelpers.DebugInfo ("Controller", "Enabled autostart on login");
             }
-
-            return null;
         }
         
-        
-        public abstract string EventLogHTML { get; }
-        public abstract string DayEntryHTML { get; }
-        public abstract string EventEntryHTML { get; }
-        
-        
-        public string GetHTMLLog (List<SparkleChangeSet> change_sets)
-        {
-            List <ActivityDay> activity_days = new List <ActivityDay> ();
-            List<string> emails = new List<string> ();
-
-            change_sets.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp)));
-            change_sets.Reverse ();
-
-            if (change_sets.Count == 0)
-                return null;
-
-            foreach (SparkleChangeSet change_set in change_sets) {
-                if (!emails.Contains (change_set.User.Email))
-                    emails.Add (change_set.User.Email);
-
-                bool change_set_inserted = false;
-                foreach (ActivityDay stored_activity_day in activity_days) {
-                    if (stored_activity_day.DateTime.Year  == change_set.Timestamp.Year &&
-                        stored_activity_day.DateTime.Month == change_set.Timestamp.Month &&
-                        stored_activity_day.DateTime.Day   == change_set.Timestamp.Day) {
-
-                        bool squash = false;
-                        foreach (SparkleChangeSet existing_set in stored_activity_day) {
-                            if (change_set.User.Name.Equals (existing_set.User.Name) &&
-                                change_set.User.Email.Equals (existing_set.User.Email) &&
-                                change_set.Folder.Equals (existing_set.Folder)) {
-
-                                existing_set.Added.AddRange (change_set.Added);
-                                existing_set.Edited.AddRange (change_set.Edited);
-                                existing_set.Deleted.AddRange (change_set.Deleted);
-                                existing_set.MovedFrom.AddRange (change_set.MovedFrom);
-                                existing_set.MovedTo.AddRange (change_set.MovedTo);
-                                existing_set.Notes.AddRange (change_set.Notes);
-
-                                existing_set.Added   = existing_set.Added.Distinct ().ToList ();
-                                existing_set.Edited  = existing_set.Edited.Distinct ().ToList ();
-                                existing_set.Deleted = existing_set.Deleted.Distinct ().ToList ();
-
-                                if (DateTime.Compare (existing_set.Timestamp, change_set.Timestamp) < 1) {
-                                    existing_set.FirstTimestamp = existing_set.Timestamp;
-                                    existing_set.Timestamp = change_set.Timestamp;
-                                    existing_set.Revision = change_set.Revision;
-
-                                } else {
-                                    existing_set.FirstTimestamp = change_set.Timestamp;
-                                }
-
-                                squash = true;
-                            }
-                        }
-
-                        if (!squash)
-                            stored_activity_day.Add (change_set);
-
-                        change_set_inserted = true;
-                        break;
-                    }
-                }
-
-                if (!change_set_inserted) {
-                    ActivityDay activity_day = new ActivityDay (change_set.Timestamp);
-                    activity_day.Add (change_set);
-                    activity_days.Add (activity_day);
-                }
-            }
-
-            new Thread (new ThreadStart (delegate {
-                FetchAvatars (emails, 48);
-            })).Start ();
-
-            string event_log_html   = EventLogHTML;
-            string day_entry_html   = DayEntryHTML;
-            string event_entry_html = EventEntryHTML;
-            string event_log        = "";
-
-            foreach (ActivityDay activity_day in activity_days) {
-                string event_entries = "";
-
-                foreach (SparkleChangeSet change_set in activity_day) {
-                    string event_entry = "<dl>";
-
-                    if (change_set.IsMagical) {
-                        event_entry += "<dd>Did something magical</dd>";
-
-                    } else {
-                        if (change_set.Edited.Count > 0) {
-                            foreach (string file_path in change_set.Edited) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-                                
-                                if (File.Exists (absolute_file_path))
-                                    event_entry += "<dd class='document edited'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
-                                else
-                                    event_entry += "<dd class='document edited'>" + file_path + "</dd>";
-                            }
-                        }
-    
-                        if (change_set.Added.Count > 0) {
-                            foreach (string file_path in change_set.Added) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-                                
-                                if (File.Exists (absolute_file_path))
-                                    event_entry += "<dd class='document added'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
-                                else
-                                    event_entry += "<dd class='document added'>" + file_path + "</dd>";
-                            }
-                        }
-    
-                        if (change_set.Deleted.Count > 0) {
-                            foreach (string file_path in change_set.Deleted) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-                                
-                                if (File.Exists (absolute_file_path))
-                                    event_entry += "<dd class='document deleted'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
-                                else
-                                    event_entry += "<dd class='document deleted'>" + file_path + "</dd>";
-                            }
-                        }
-
-                        if (change_set.MovedFrom.Count > 0) {
-                            int i = 0;
-                            foreach (string file_path in change_set.MovedFrom) {
-                                string to_file_path = change_set.MovedTo [i];
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-                                string absolute_to_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-
-                                if (File.Exists (absolute_file_path))
-                                    event_entry += "<dd class='document moved'><a href='" + absolute_file_path + "'>" + file_path + "</a><br/>";
-                                else
-                                    event_entry += "<dd class='document moved'>" + file_path + "<br/>";
-
-                                if (File.Exists (absolute_to_file_path))
-                                    event_entry += "<a href='" + absolute_to_file_path + "'>" + to_file_path + "</a></dd>";
-                                else
-                                    event_entry += to_file_path + "</dd>";
-
-                                i++;
-                            }
-                        }
-                    }
-
-                    string comments = "";
-                    comments = "<div class=\"comments\">";
-
-                    if (change_set.Notes != null) {
-                        change_set.Notes.Sort ((x, y) => (x.Timestamp.CompareTo (y.Timestamp)));
-
-                        foreach (SparkleNote note in change_set.Notes) {
-
-                            string note_avatar = GetAvatar (note.User.Email, 48);
-                            if (File.Exists (note_avatar))
-                                note_avatar = "file://" + note_avatar;
-                            else
-                                note_avatar = "<!-- $no-buddy-icon-background-image -->";
-
-                            comments += "<div class=\"comment-text\">" +
-                                        "<p class=\"comment-author\"" +
-                                        " style=\"background-image: url('" + note_avatar + "');\">" +
-                                        note.User.Name +  "</p>" +
-                                        note.Body +
-                                        "</div>";
-                        }
-                    }
-
-                    comments += "</div>";
-
-                    string change_set_avatar = GetAvatar (change_set.User.Email, 48);
-                    if (File.Exists (change_set_avatar))
-                        change_set_avatar = "file://" + change_set_avatar;
-                    else
-                        change_set_avatar = "<!-- $no-buddy-icon-background-image -->";
-
-                    event_entry   += "</dl>";
-
-                    string timestamp = change_set.Timestamp.ToString ("H:mm");
-
-                    if (!change_set.FirstTimestamp.Equals (new DateTime ()))
-                        timestamp = change_set.FirstTimestamp.ToString ("H:mm") +
-                                    " – " + timestamp;
-
-                    event_entries += event_entry_html.Replace ("<!-- $event-entry-content -->", event_entry)
-                        .Replace ("<!-- $event-user-name -->", change_set.User.Name)
-                        .Replace ("<!-- $event-avatar-url -->", change_set_avatar)
-                        .Replace ("<!-- $event-time -->", timestamp)
-                        .Replace ("<!-- $event-folder -->", change_set.Folder)
-                        .Replace ("<!-- $event-revision -->", change_set.Revision)
-                        .Replace ("<!-- $event-folder-color -->", AssignColor (change_set.Folder))
-                        .Replace ("<!-- $event-comments -->", comments);
-                }
-
-                string day_entry   = "";
-                DateTime today     = DateTime.Now;
-                DateTime yesterday = DateTime.Now.AddDays (-1);
-
-                if (today.Day   == activity_day.DateTime.Day &&
-                    today.Month == activity_day.DateTime.Month && 
-                    today.Year  == activity_day.DateTime.Year) {
-
-                    day_entry = day_entry_html.Replace ("<!-- $day-entry-header -->", "Today");
-
-                } else if (yesterday.Day   == activity_day.DateTime.Day &&
-                           yesterday.Month == activity_day.DateTime.Month &&
-                           yesterday.Year  == activity_day.DateTime.Year) {
-
-                    day_entry = day_entry_html.Replace ("<!-- $day-entry-header -->", "Yesterday");
-
-                } else {
-                    if (activity_day.DateTime.Year != DateTime.Now.Year) {
-
-                        // TRANSLATORS: This is the date in the event logs
-                        day_entry = day_entry_html.Replace ("<!-- $day-entry-header -->",
-                            activity_day.DateTime.ToString (_("dddd, MMMM d, yyyy")));
-
-                    } else {
-
-                        // TRANSLATORS: This is the date in the event logs, without the year
-                        day_entry = day_entry_html.Replace ("<!-- $day-entry-header -->",
-                            activity_day.DateTime.ToString (_("dddd, MMMM d")));
-                    }
-                }
-
-                event_log += day_entry.Replace ("<!-- $day-entry-content -->", event_entries);
-            }
-
-            string html =  event_log_html.Replace ("<!-- $event-log-content -->", event_log)
-                .Replace ("<!-- $username -->", UserName)
-                .Replace ("<!-- $user-avatar-url -->", "file://" + GetAvatar (UserEmail, 48));
-
-            return html;
-        }
-
-
-        // Creates a .desktop entry in autostart folder to
-        // start SparkleShare automatically at login
-        public abstract void EnableSystemAutostart ();
 
         // Installs a launcher so the user can launch SparkleShare
         // from the Internet category if needed
-        public abstract void InstallLauncher ();
-
-        // Adds the SparkleShare folder to the user's
-        // list of bookmarked places
-        public abstract void AddToBookmarks ();
-
-        // Creates the SparkleShare folder in the user's home folder
-        public abstract bool CreateSparkleShareFolder ();
-
-        // Opens the SparkleShare folder or an (optional) subfolder
-        public abstract void OpenSparkleShareFolder (string subfolder);
-
-
-        // Fires events for the current syncing state
-        public void UpdateState ()
+        public override void InstallLauncher ()
         {
-            foreach (SparkleRepoBase repo in Repositories) {
-                if (repo.Status == SyncStatus.SyncDown ||
-                    repo.Status == SyncStatus.SyncUp   ||
-                    repo.IsBuffering) {
-
-                    if (OnSyncing != null)
-                        OnSyncing ();
+            string apps_path = 
+                new string [] {SparkleConfig.DefaultConfig.HomePath,
+                    ".local", "share", "applications"}.Combine ();
 
-                    return;
+            string desktopfile_path = Path.Combine (apps_path, "sparkleshare.desktop");
 
-                } else if (repo.HasUnsyncedChanges) {
-                    if (OnError != null)
-                        OnError ();
+            if (!File.Exists (desktopfile_path)) {
+                if (!Directory.Exists (apps_path))
+                    Directory.CreateDirectory (apps_path);
 
-                    return;
-                }
-            }
-
-            if (OnIdle != null)
-                OnIdle ();
-
-            FolderSize = GetFolderSize ();
-
-            if (FolderSizeChanged != null)
-                FolderSizeChanged (FolderSize);
-        }
+                TextWriter writer = new StreamWriter (desktopfile_path);
+                writer.WriteLine ("[Desktop Entry]\n" +
+                                  "Type=Application\n" +
+                                  "Name=SparkleShare\n" +
+                                  "Comment=Share documents\n" +
+                                  "Exec=sparkleshare start\n" +
+                                  "Icon=folder-sparkleshare\n" +
+                                  "Terminal=false\n" +
+                                  "Categories=Network;");
+                writer.Close ();
 
+                // Give the launcher the right permissions so it can be launched by the user
+                UnixFileInfo file_info = new UnixFileInfo (desktopfile_path);
+                file_info.FileAccessPermissions = FileAccessPermissions.UserReadWriteExecute;
 
-        // Adds a repository to the list of repositories
-        private void AddRepository (string folder_path)
-        {
-            if (folder_path.Equals (SparkleConfig.DefaultConfig.TmpPath))
-                return;
-
-            string folder_name = Path.GetFileName (folder_path);
-            string backend = SparkleConfig.DefaultConfig.GetBackendForFolder (folder_name);
-
-            if (backend == null)
-                return;
-            
-            SparkleRepoBase repo = null;
-
-/*            if (backend.Equals ("Hg"))
-                repo = new SparkleRepoHg (folder_path, new SparkleBackendHg ());
-
-            else if (backend.Equals ("Scp"))
-                repo = new SparkleRepoScp (folder_path, new SparkleBackendScp ());
-
-            else */
-               repo = new SparkleRepoGit (folder_path, SparkleBackend.DefaultBackend);
-
-            repo.NewChangeSet += delegate (SparkleChangeSet change_set) {
-                string message = FormatMessage (change_set);
-
-                if (NotificationRaised != null)
-                    NotificationRaised (change_set.User.Name, change_set.User.Email, message, repo.LocalPath);
-            };
-
-            repo.NewNote += delegate (string user_name, string user_email) {
-                if (NotificationRaised != null)
-                    NotificationRaised (user_name, user_email,
-                        "added a note to " + Path.GetFileName (repo.LocalPath), repo.LocalPath);
-            };
-
-            repo.ConflictResolved += delegate {
-                if (ConflictNotificationRaised != null)
-                    ConflictNotificationRaised ();
-            };
-
-            repo.SyncStatusChanged += delegate (SyncStatus status) {
-/*                if (status == SyncStatus.SyncUp) {
-                    foreach (string path in repo.UnsyncedFilePaths)
-                        Console.WriteLine (path);
-                }
-*/
-                if (status == SyncStatus.Idle     ||
-                    status == SyncStatus.SyncUp   ||
-                    status == SyncStatus.SyncDown ||
-                    status == SyncStatus.Error) {
-
-                    UpdateState ();
-                }
-            };
-
-            repo.ChangesDetected += delegate {
-                UpdateState ();
-            };
-
-            Repositories.Add (repo);
-        }
-
-
-        // Removes a repository from the list of repositories and
-        // updates the statusicon menu
-        private void RemoveRepository (string folder_path)
-        {
-            string folder_name = Path.GetFileName (folder_path);
-
-            for (int i = 0; i < Repositories.Count; i++) {
-                SparkleRepoBase repo = Repositories [i];
-
-                if (repo.Name.Equals (folder_name)) {
-                    repo.Dispose ();
-                    Repositories.Remove (repo);
-                    repo = null;
-                    break;
-                }
+                SparkleHelpers.DebugInfo ("Controller", "Created '" + desktopfile_path + "'");
             }
         }
 
 
-        // Updates the list of repositories with all the
-        // folders in the SparkleShare folder
-        private void PopulateRepositories ()
+        // Adds the SparkleShare folder to the user's
+        // list of bookmarked places
+        public override void AddToBookmarks ()
         {
-            Repositories = new List<SparkleRepoBase> ();
+            string bookmarks_file_path   = Path.Combine (SparkleConfig.DefaultConfig.HomePath, ".gtk-bookmarks");
+            string sparkleshare_bookmark = "file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare";
 
-            foreach (string folder_name in SparkleConfig.DefaultConfig.Folders) {
-                string folder_path = new SparkleFolder (folder_name).FullPath;
+            if (File.Exists (bookmarks_file_path)) {
+                StreamReader reader = new StreamReader (bookmarks_file_path);
+                string bookmarks = reader.ReadToEnd ();
+                reader.Close ();
 
-                if (Directory.Exists (folder_path))
-                    AddRepository (folder_path);
-                else
-                    SparkleConfig.DefaultConfig.RemoveFolder (folder_name);
-            }
-
-            if (FolderListChanged != null)
-                FolderListChanged ();
-            
-            FolderSize = GetFolderSize ();
-
-            if (FolderSizeChanged != null)
-                FolderSizeChanged (FolderSize);
-        }
-
-
-        public bool NotificationsEnabled {
-            get {
-                string notifications_enabled =
-                    SparkleConfig.DefaultConfig.GetConfigOption ("notifications");
-
-                if (String.IsNullOrEmpty (notifications_enabled)) {
-                    SparkleConfig.DefaultConfig.SetConfigOption ("notifications", bool.TrueString);
-                    return true;
-
-                } else {
-                    return notifications_enabled.Equals (bool.TrueString);
+                if (!bookmarks.Contains (sparkleshare_bookmark)) {
+                    TextWriter writer = File.AppendText (bookmarks_file_path);
+                    writer.WriteLine ("file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare");
+                    writer.Close ();
                 }
+            } else {
+                StreamWriter writer = new StreamWriter (bookmarks_file_path);
+                writer.WriteLine ("file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare");
+                writer.Close ();
             }
-        } 
-
-
-        public void ToggleNotifications () {
-            bool notifications_enabled =
-                SparkleConfig.DefaultConfig.GetConfigOption ("notifications")
-                    .Equals (bool.TrueString);
-
-            if (notifications_enabled)
-                SparkleConfig.DefaultConfig.SetConfigOption ("notifications", bool.FalseString);
-            else
-                SparkleConfig.DefaultConfig.SetConfigOption ("notifications", bool.TrueString);
         }
 
 
-        private string GetFolderSize ()
-        {
-            double folder_size = CalculateFolderSize (
-                new DirectoryInfo (SparkleConfig.DefaultConfig.FoldersPath));
-
-            return FormatFolderSize (folder_size);
-        }
-
-
-        private string FormatMessage (SparkleChangeSet change_set)
-        {
-            string file_name = "";
-            string message   = "";
-
-            if (change_set.Added.Count > 0) {
-                file_name = change_set.Added [0];
-                message = String.Format (_("added ‘{0}’"), file_name);
-            }
-
-            if (change_set.MovedFrom.Count > 0) {
-                file_name = change_set.MovedFrom [0];
-                message = String.Format (_("moved ‘{0}’"), file_name);
-            }
-
-            if (change_set.Edited.Count > 0) {
-                file_name = change_set.Edited [0];
-                message = String.Format (_("edited ‘{0}’"), file_name);
-            }
-
-            if (change_set.Deleted.Count > 0) {
-                file_name = change_set.Deleted [0];
-                message = String.Format (_("deleted ‘{0}’"), file_name);
-            }
-
-            int changes_count = (change_set.Added.Count +
-                                 change_set.Edited.Count +
-                                 change_set.Deleted.Count +
-                                 change_set.MovedFrom.Count) - 1;
-
-            if (changes_count > 0) {
-                string msg = Catalog.GetPluralString ("and {0} more", "and {0} more", changes_count);
-                message += " " + String.Format (msg, changes_count);
-
-            } else if (changes_count < 0) {
-                message += _("did something magical");
-            }
-
-            return message;
-        } // TODO: move to bubbles controller
-
-
-        // Recursively gets a folder's size in bytes
-        private double CalculateFolderSize (DirectoryInfo parent)
+        // Creates the SparkleShare folder in the user's home folder
+        public override bool CreateSparkleShareFolder ()
         {
-            if (!Directory.Exists (parent.ToString ()))
-                return 0;
-
-            double size = 0;
-
-            // Ignore the temporary 'rebase-apply' and '.tmp' directories. This prevents potential
-            // crashes when files are being queried whilst the files have already been deleted.
-            if (parent.Name.Equals ("rebase-apply") ||
-                parent.Name.Equals (".tmp"))
-                return 0;
-
-            try {
-                foreach (FileInfo file in parent.GetFiles()) {
-                    if (!file.Exists)
-                        return 0;
-
-                    size += file.Length;
+            if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) {
+        
+                Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath);
+                SparkleHelpers.DebugInfo ("Controller", "Created '" + SparkleConfig.DefaultConfig.FoldersPath + "'");
+
+                string gvfs_command_path =
+                    new string [] {Path.VolumeSeparatorChar.ToString (),
+                        "usr", "bin", "gvfs-set-attribute"}.Combine ();
+
+                // Add a special icon to the SparkleShare folder
+                if (File.Exists (gvfs_command_path)) {
+                    Process process = new Process ();
+
+                    process.StartInfo.RedirectStandardOutput = true;
+                    process.StartInfo.UseShellExecute        = false;
+                    process.StartInfo.FileName               = "gvfs-set-attribute";
+
+                    // Clear the custom (legacy) icon path
+                    process.StartInfo.Arguments = "-t unset " + SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon";
+                    process.Start ();
+                    process.WaitForExit ();
+
+                    // Give the SparkleShare folder an icon name, so that it scales
+                    process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon-name 'folder-sparkleshare'";
+                    process.Start ();
+                    process.WaitForExit ();
                 }
 
-                foreach (DirectoryInfo directory in parent.GetDirectories())
-                    size += CalculateFolderSize (directory);
-
-            } catch (Exception) {
-                return 0;
+                return true;
             }
 
-            return size;
+            return false;
         }
-
-
-        // Format a file size nicely with small caps.
-        // Example: 1048576 becomes "1 ᴍʙ"
-        private string FormatFolderSize (double byte_count)
-        {
-            if (byte_count >= 1099511627776)
-                return String.Format ("{0:##.##} ᴛʙ", Math.Round (byte_count / 1099511627776, 1));
-            else if (byte_count >= 1073741824)
-                return String.Format ("{0:##.##} ɢʙ", Math.Round (byte_count / 1073741824, 1));
-            else if (byte_count >= 1048576)
-                return String.Format ("{0:##.##} ᴍʙ", Math.Round (byte_count / 1048576, 1));
-            else if (byte_count >= 1024)
-                return String.Format ("{0:##.##} ᴋʙ", Math.Round (byte_count / 1024, 1));
-            else
-                return byte_count.ToString () + " bytes";
-        }
-
-
-        public void OpenSparkleShareFolder ()
-        {
-            OpenSparkleShareFolder ("");
-        }
-
         
-        // Adds the user's SparkleShare key to the ssh-agent,
-        // so all activity is done with this key
-        public void AddKey ()
-        {
-            string keys_path = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath);
-            string key_file_name = "sparkleshare." + UserEmail + ".key";
-
-            Process process = new Process ();
-            process.StartInfo.RedirectStandardOutput = true;
-            process.StartInfo.UseShellExecute        = false;
-            process.StartInfo.FileName               = "ssh-add";
-            process.StartInfo.Arguments              = "\"" + Path.Combine (keys_path, key_file_name) + "\"";
-            process.Start ();
-            process.WaitForExit ();
-        }
-
 
-        public bool BackendIsPresent {
+        public override string EventLogHTML {
             get {
-                return SparkleBackend.DefaultBackend.IsPresent;
-            }
-        }
+                string path = new string [] {Defines.PREFIX,
+                    "share", "sparkleshare", "html", "event-log.html"}.Combine ();
 
+                string html = String.Join (Environment.NewLine, File.ReadAllLines (path));
 
-        // Looks up the user's name from the global configuration
-        public string UserName
-        {
-            get {
-                return SparkleConfig.DefaultConfig.User.Name;
-            }
-
-            set {
-                SparkleConfig.DefaultConfig.User = new SparkleUser (value, UserEmail);
+                html = html.Replace ("<!-- $jquery-url -->", "file://" +
+                  new string [] {Defines.PREFIX, "share", "sparkleshare", "html", "jquery.js"}.Combine ());
+            
+                return html;
             }
         }
 
-
-        // Looks up the user's email from the global configuration
-        public string UserEmail
-        {
-            get {
-                return SparkleConfig.DefaultConfig.User.Email;
-            }
-                    
-            set {
-                SparkleConfig.DefaultConfig.User = new SparkleUser (UserName, value);
-            }
-        }
         
-
-        // Generates and installs an RSA keypair to identify this system
-        public void GenerateKeyPair ()
-        {
-            string keys_path     = Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath);
-            string key_file_name = "sparkleshare." + UserEmail + ".key";
-            string key_file_path = Path.Combine (keys_path, key_file_name);
-
-            if (File.Exists (key_file_path)) {
-                SparkleHelpers.DebugInfo ("Config", "Key already exists ('" + key_file_name + "'), " +
-                                          "leaving it untouched");
-                return;
-            }
-
-            if (!Directory.Exists (keys_path))
-                Directory.CreateDirectory (keys_path);
-
-            if (!File.Exists (key_file_name)) {
-                Process process = new Process () {
-                    EnableRaisingEvents = true
-                };
-                
-                process.StartInfo.WorkingDirectory = keys_path;
-                process.StartInfo.UseShellExecute = false;
-                process.StartInfo.RedirectStandardOutput = true;
-                process.StartInfo.FileName = "ssh-keygen";
-
-                // -t is the crypto type
-                // -P is the password (none)
-                // -f is the file name to store the private key in
-                process.StartInfo.Arguments = "-t rsa -P \"\" -f " + key_file_name;
-
-                process.Exited += delegate {
-                    SparkleHelpers.DebugInfo ("Config", "Created private key '" + key_file_name + "'");
-                    SparkleHelpers.DebugInfo ("Config", "Created public key  '" + key_file_name + ".pub'");
-
-                    // Create an easily accessible copy of the public
-                    // key in the user's SparkleShare folder
-                    File.Copy (key_file_path + ".pub",
-                        Path.Combine (SparklePath, UserName + "'s key.txt"));
-                };
-                
-                process.Start ();
-                process.WaitForExit ();
-            }
-        }
-
-
-        // Gets the avatar for a specific email address and size
-        public void FetchAvatars (List<string> emails, int size)
-        {
-            List<string> old_avatars = new List<string> ();
-            bool avatar_fetched      = false;
-            string avatar_path       = Path.Combine (
-                Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath), "icons",
-                size + "x" + size, "status");
-
-            if (!Directory.Exists (avatar_path)) {
-                Directory.CreateDirectory (avatar_path);
-                SparkleHelpers.DebugInfo ("Config", "Created '" + avatar_path + "'");
-            }
-
-            foreach (string email in emails) {
-                string avatar_file_path = Path.Combine (avatar_path, "avatar-" + email);
-
-                if (File.Exists (avatar_file_path)) {
-                    FileInfo avatar_info = new FileInfo (avatar_file_path);
-
-                    // Delete avatars older than a month
-                    if (avatar_info.CreationTime < DateTime.Now.AddMonths (-1)) {
-                        avatar_info.Delete ();
-                        old_avatars.Add (email);
-                    }
-
-                } else {
-                  WebClient client = new WebClient ();
-                  string url       =  "http://gravatar.com/avatar/" + GetMD5 (email) +
-                                      ".jpg?s=" + size + "&d=404";
-
-                  try {
-                    // Fetch the avatar
-                    byte [] buffer = client.DownloadData (url);
-
-                    // Write the avatar data to a
-                    // if not empty
-                    if (buffer.Length > 255) {
-                        avatar_fetched = true;
-                        File.WriteAllBytes (avatar_file_path, buffer);
-                        SparkleHelpers.DebugInfo ("Controller", "Fetched gravatar for " + email);
-                    }
-
-                  } catch (WebException e) {
-                        SparkleHelpers.DebugInfo ("Controller", "Failed fetching gravatar for " + email);
-
-                        // Stop downloading further avatars if we have no internet access
-                        if (e.Status == WebExceptionStatus.Timeout)
-                            break;
-                  }
-               }
+        public override string DayEntryHTML {
+            get {
+                string path = new string [] {Defines.PREFIX,
+                    "share", "sparkleshare", "html", "day-entry.html"}.Combine ();
+            
+                return String.Join (Environment.NewLine, File.ReadAllLines (path));
             }
-
-            // Fetch new versions of the avatars that we
-            // deleted because they were too old
-            if (old_avatars.Count > 0)
-                FetchAvatars (old_avatars, size);
-
-            if (AvatarFetched != null && avatar_fetched)
-                AvatarFetched ();
-        }
-
-
-        public string GetAvatar (string email, int size)
-        {
-            string avatar_file_path = SparkleHelpers.CombineMore (
-                Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath), "icons",
-                size + "x" + size, "status", "avatar-" + email);
-
-            return avatar_file_path;
         }
 
-
-        public void FetchFolder (string server, string remote_folder)
-        {
-            server = server.Trim ();
-            remote_folder = remote_folder.Trim ();
-
-            string tmp_path = SparkleConfig.DefaultConfig.TmpPath;
-            if (!Directory.Exists (tmp_path))
-                Directory.CreateDirectory (tmp_path);
-
-            // Strip the '.git' from the name
-            string canonical_name = Path.GetFileNameWithoutExtension (remote_folder);
-            string tmp_folder     = Path.Combine (tmp_path, canonical_name);
-
-            SparkleFetcherBase fetcher = null;
-            string backend = null;
-
-/*            if (remote_folder.EndsWith (".hg")) {
-                remote_folder = remote_folder.Substring (0, (remote_folder.Length - 3));
-                fetcher       = new SparkleFetcherHg (server, remote_folder, tmp_folder);
-                backend       = "Hg";
-
-            } else if (remote_folder.EndsWith (".scp")) {
-                remote_folder = remote_folder.Substring (0, (remote_folder.Length - 4));
-                fetcher = new SparkleFetcherScp (server, remote_folder, tmp_folder);
-                backend = "Scp";
-
-            } else {*/
-                fetcher = new SparkleFetcherGit (server, remote_folder, tmp_folder);
-                backend = "Git";
-            //}
-
-            bool target_folder_exists = Directory.Exists (
-                Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, canonical_name));
-
-            // Add a numbered suffix to the nameif a folder with the same name
-            // already exists. Example: "Folder (2)"
-            int i = 1;
-            while (target_folder_exists) {
-                i++;
-                target_folder_exists = Directory.Exists (
-                    Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, canonical_name + " (" + i + ")"));
-            }
-
-            string target_folder_name = canonical_name;
-            if (i > 1)
-                target_folder_name += " (" + i + ")";
-
-            fetcher.Finished += delegate {
-
-                // Needed to do the moving
-                SparkleHelpers.ClearAttributes (tmp_folder);
-                string target_folder_path = Path.Combine (
-                    SparkleConfig.DefaultConfig.FoldersPath, target_folder_name);
-
-                try {
-                    Directory.Move (tmp_folder, target_folder_path);
-                } catch (Exception e) {
-                    SparkleHelpers.DebugInfo ("Controller", "Error moving folder: " + e.Message);
-                }
-
-                SparkleConfig.DefaultConfig.AddFolder (target_folder_name, fetcher.RemoteUrl, backend);
-                AddRepository (target_folder_path);
-
-                if (FolderFetched != null)
-                    FolderFetched ();
-
-                FolderSize = GetFolderSize ();
-
-                if (FolderSizeChanged != null)
-                    FolderSizeChanged (FolderSize);
-
-                if (FolderListChanged != null)
-                    FolderListChanged ();
-
-                fetcher.Dispose ();
-
-                if (Directory.Exists (tmp_path))
-                    Directory.Delete (tmp_path, true);
-            };
-
-
-            fetcher.Failed += delegate {
-                if (FolderFetchError != null)
-                    FolderFetchError ();
-
-                fetcher.Dispose ();
-
-                if (Directory.Exists (tmp_path))
-                    Directory.Delete (tmp_path, true);
-            };
-
-
-            fetcher.Start ();
-        }
-
-
-        // Creates an MD5 hash of input
-        private string GetMD5 (string s)
-        {
-            MD5 md5 = new MD5CryptoServiceProvider ();
-            Byte[] bytes = ASCIIEncoding.Default.GetBytes (s);
-            Byte[] encoded_bytes = md5.ComputeHash (bytes);
-            return BitConverter.ToString (encoded_bytes).ToLower ().Replace ("-", "");
-        }
-
-
-        // Checks whether there are any folders syncing and
-        // quits if safe
-        public void TryQuit ()
-        {
-            foreach (SparkleRepoBase repo in Repositories) {
-                if (repo.Status == SyncStatus.SyncUp   ||
-                    repo.Status == SyncStatus.SyncDown ||
-                    repo.IsBuffering) {
-
-                    if (OnQuitWhileSyncing != null)
-                        OnQuitWhileSyncing ();
-                    
-                    return;
-                }
-            }
+        
+        public override string EventEntryHTML {
+            get {
+                string path = new string [] {Defines.PREFIX,
+                    "share", "sparkleshare", "html", "event-entry.html"}.Combine ();
             
-            Quit ();
-        }
-
-
-        public void Quit ()
-        {
-            foreach (SparkleRepoBase repo in Repositories)
-                repo.Dispose ();
-
-            Environment.Exit (0);
-        }
-
-
-        // Checks to see if an email address is valid
-        public bool IsValidEmail (string email)
-        {
-            Regex regex = new Regex (@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", RegexOptions.IgnoreCase);
-            return regex.IsMatch (email);
-        }
-
-
-
-
-        public void AddNoteToFolder (string folder_name, string revision, string note)
-        {
-            folder_name = folder_name.Replace ("%20", " ");
-            note        = note.Replace ("%20", " ");
-
-            foreach (SparkleRepoBase repo in Repositories) {
-                if (repo.Name.Equals (folder_name))
-                    repo.AddNote (revision, note);
+                return String.Join (Environment.NewLine, File.ReadAllLines (path));
             }
         }
 
-
-
-
-        private string [] tango_palette = new string [] {"#eaab00", "#e37222",
-            "#3892ab", "#33c2cb", "#19b271", "#9eab05", "#8599a8", "#9ca696",
-            "#b88454", "#cc0033", "#8f6678", "#8c6cd0", "#796cbf", "#4060af",
-            "#aa9c8f", "#818a8f"};
-
-        private string AssignColor (string s)
+            
+        public override void OpenSparkleShareFolder (string subfolder)
         {
-            string hash    = GetMD5 (s).Substring (0, 8);
-            string numbers = Regex.Replace (hash, "[a-z]", "");
-            int number     = 3 + int.Parse (numbers);
-            return this.tango_palette [number % this.tango_palette.Length];
-        }
-    }
+            string folder = Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, subfolder);
 
-
-    public class ChangeSet : SparkleChangeSet { }
-    
-    
-    // All change sets that happened on a day
-    public class ActivityDay : List <SparkleChangeSet>
-    {
-        public DateTime DateTime;
-
-        public ActivityDay (DateTime date_time)
-        {
-            DateTime = date_time;
-            DateTime = new DateTime (DateTime.Year, DateTime.Month, DateTime.Day);
+            Process process = new Process ();
+            process.StartInfo.FileName  = "xdg-open";
+            process.StartInfo.Arguments = "\"" + folder + "\"";
+            process.Start ();
         }
     }
 }
diff --git a/SparkleShare/SparkleController.cs b/SparkleShare/SparkleControllerBase.cs
old mode 100644
new mode 100755
similarity index 89%
copy from SparkleShare/SparkleController.cs
copy to SparkleShare/SparkleControllerBase.cs
index 7d56512..38ee191
--- a/SparkleShare/SparkleController.cs
+++ b/SparkleShare/SparkleControllerBase.cs
@@ -32,7 +32,7 @@ using SparkleLib;
 
 namespace SparkleShare {
 
-    public abstract class SparkleController {
+    public abstract class SparkleControllerBase {
 
         public List <SparkleRepoBase> Repositories;
         public string FolderSize;
@@ -45,7 +45,10 @@ namespace SparkleShare {
         public delegate void FolderFetchedEventHandler ();
         
         public event FolderFetchErrorEventHandler FolderFetchError;
-        public delegate void FolderFetchErrorEventHandler ();
+        public delegate void FolderFetchErrorEventHandler (string remote_url);
+        
+        public event FolderFetchingEventHandler FolderFetching;
+        public delegate void FolderFetchingEventHandler (double percentage);
         
         public event FolderListChangedEventHandler FolderListChanged;
         public delegate void FolderListChangedEventHandler ();
@@ -75,7 +78,12 @@ namespace SparkleShare {
         public delegate void NotificationRaisedEventHandler (string user_name, string user_email,
                                                              string message, string repository_path);
 
-        
+        public abstract string PluginsPath { get; }
+
+        private SparkleFetcherBase fetcher;
+        private List<string> failed_avatars = new List<string> ();
+
+
         // Short alias for the translations
         public static string _ (string s)
         {
@@ -83,8 +91,11 @@ namespace SparkleShare {
         }
 
 
-        public SparkleController () { }
+        public SparkleControllerBase ()
+        {
+        }
 
+        
         public virtual void Initialize ()
         {
             InstallLauncher ();
@@ -246,7 +257,7 @@ namespace SparkleShare {
             if (name == null)
                 return GetLog ();
 
-            string path = Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, name);
+            string path = new string [] {SparkleConfig.DefaultConfig.FoldersPath, name}.Combine ();
             int log_size = 50;
             
             foreach (SparkleRepoBase repo in Repositories) {
@@ -331,6 +342,7 @@ namespace SparkleShare {
 
             new Thread (new ThreadStart (delegate {
                 FetchAvatars (emails, 48);
+                FetchAvatars (emails, 36);
             })).Start ();
 
             string event_log_html   = EventLogHTML;
@@ -350,8 +362,8 @@ namespace SparkleShare {
                     } else {
                         if (change_set.Edited.Count > 0) {
                             foreach (string file_path in change_set.Edited) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
+                                string absolute_file_path = new string [] {SparkleConfig.DefaultConfig.FoldersPath,
+                                    change_set.Folder, file_path}.Combine ();
                                 
                                 if (File.Exists (absolute_file_path))
                                     event_entry += "<dd class='document edited'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
@@ -362,8 +374,8 @@ namespace SparkleShare {
     
                         if (change_set.Added.Count > 0) {
                             foreach (string file_path in change_set.Added) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
+                                string absolute_file_path = new string [] {SparkleConfig.DefaultConfig.FoldersPath,
+                                    change_set.Folder, file_path}.Combine ();
                                 
                                 if (File.Exists (absolute_file_path))
                                     event_entry += "<dd class='document added'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
@@ -374,8 +386,8 @@ namespace SparkleShare {
     
                         if (change_set.Deleted.Count > 0) {
                             foreach (string file_path in change_set.Deleted) {
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
+                                string absolute_file_path = new string [] {SparkleConfig.DefaultConfig.FoldersPath,
+                                    change_set.Folder, file_path}.Combine ();
                                 
                                 if (File.Exists (absolute_file_path))
                                     event_entry += "<dd class='document deleted'><a href='" + absolute_file_path + "'>" + file_path + "</a></dd>";
@@ -388,10 +400,12 @@ namespace SparkleShare {
                             int i = 0;
                             foreach (string file_path in change_set.MovedFrom) {
                                 string to_file_path = change_set.MovedTo [i];
-                                string absolute_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
-                                string absolute_to_file_path = Path.Combine (
-                                    SparkleConfig.DefaultConfig.FoldersPath, change_set.Folder, file_path);
+
+                                string absolute_file_path = new string [] {SparkleConfig.DefaultConfig.FoldersPath,
+                                    change_set.Folder, file_path}.Combine ();
+
+                                string absolute_to_file_path = new string [] {SparkleConfig.DefaultConfig.FoldersPath,
+                                    change_set.Folder, to_file_path}.Combine ();
 
                                 if (File.Exists (absolute_file_path))
                                     event_entry += "<dd class='document moved'><a href='" + absolute_file_path + "'>" + file_path + "</a><br/>";
@@ -561,16 +575,7 @@ namespace SparkleShare {
             if (backend == null)
                 return;
             
-            SparkleRepoBase repo = null;
-
-/*            if (backend.Equals ("Hg"))
-                repo = new SparkleRepoHg (folder_path, new SparkleBackendHg ());
-
-            else if (backend.Equals ("Scp"))
-                repo = new SparkleRepoScp (folder_path, new SparkleBackendScp ());
-
-            else */
-               repo = new SparkleRepoGit (folder_path, SparkleBackend.DefaultBackend);
+            SparkleRepoBase repo = new SparkleRepoGit (folder_path, SparkleBackend.DefaultBackend);
 
             repo.NewChangeSet += delegate (SparkleChangeSet change_set) {
                 string message = FormatMessage (change_set);
@@ -804,6 +809,7 @@ namespace SparkleShare {
             process.StartInfo.UseShellExecute        = false;
             process.StartInfo.FileName               = "ssh-add";
             process.StartInfo.Arguments              = "\"" + Path.Combine (keys_path, key_file_name) + "\"";
+
             process.Start ();
             process.WaitForExit ();
         }
@@ -873,37 +879,50 @@ namespace SparkleShare {
                 // -f is the file name to store the private key in
                 process.StartInfo.Arguments = "-t rsa -P \"\" -f " + key_file_name;
 
-                process.Exited += delegate {
-                    SparkleHelpers.DebugInfo ("Config", "Created private key '" + key_file_name + "'");
-                    SparkleHelpers.DebugInfo ("Config", "Created public key  '" + key_file_name + ".pub'");
-
-                    // Create an easily accessible copy of the public
-                    // key in the user's SparkleShare folder
-                    File.Copy (key_file_path + ".pub",
-                        Path.Combine (SparklePath, UserName + "'s key.txt"));
-                };
-                
                 process.Start ();
                 process.WaitForExit ();
+
+                SparkleHelpers.DebugInfo ("Config", "Created private key '" + key_file_name + "'");
+                SparkleHelpers.DebugInfo ("Config", "Created public key  '" + key_file_name + ".pub'");
+
+                // Add some restrictions to what the key can
+                // do when uploaded to the server
+                // string public_key = File.ReadAllText (key_file_path + ".pub");
+                // public_key = "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " + public_key;
+                // File.WriteAllText (key_file_path + ".pub", public_key);
+
+                // Create an easily accessible copy of the public
+                // key in the user's SparkleShare folder
+                File.Copy (key_file_path + ".pub",
+                    Path.Combine (SparklePath, UserName + "'s key.txt"),
+                    true); // Overwriting is allowed
             }
         }
 
 
+        public void FetchAvatars (string email, int size)
+        {
+            FetchAvatars (new List<string> (new string [] { email }), size);
+        }
+
         // Gets the avatar for a specific email address and size
         public void FetchAvatars (List<string> emails, int size)
         {
             List<string> old_avatars = new List<string> ();
             bool avatar_fetched      = false;
-            string avatar_path       = Path.Combine (
-                Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath), "icons",
-                size + "x" + size, "status");
+            string avatar_path       = new string [] {
+                Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath),
+                "icons", size + "x" + size, "status"}.Combine ();
 
             if (!Directory.Exists (avatar_path)) {
                 Directory.CreateDirectory (avatar_path);
                 SparkleHelpers.DebugInfo ("Config", "Created '" + avatar_path + "'");
             }
 
-            foreach (string email in emails) {
+            foreach (string raw_email in emails) {
+
+                // Gravatar wants lowercase emails
+                string email            = raw_email.ToLower ();
                 string avatar_file_path = Path.Combine (avatar_path, "avatar-" + email);
 
                 if (File.Exists (avatar_file_path)) {
@@ -911,10 +930,21 @@ namespace SparkleShare {
 
                     // Delete avatars older than a month
                     if (avatar_info.CreationTime < DateTime.Now.AddMonths (-1)) {
-                        avatar_info.Delete ();
-                        old_avatars.Add (email);
+                        try {
+                          avatar_info.Delete ();
+                          old_avatars.Add (email);
+
+                        } catch (FileNotFoundException) {
+                            // FIXME: For some reason the previous File.Exists () check
+                            // doesn't cover all cases sometimes, so we catch any errors
+
+                            if (old_avatars.Contains (email))
+                                old_avatars.Remove (email);
+                        }
                     }
 
+                } else if (this.failed_avatars.Contains (email)) {
+                    break;
                 } else {
                   WebClient client = new WebClient ();
                   string url       =  "http://gravatar.com/avatar/" + GetMD5 (email) +
@@ -936,8 +966,11 @@ namespace SparkleShare {
                         SparkleHelpers.DebugInfo ("Controller", "Failed fetching gravatar for " + email);
 
                         // Stop downloading further avatars if we have no internet access
-                        if (e.Status == WebExceptionStatus.Timeout)
+                        if (e.Status == WebExceptionStatus.Timeout){
                             break;
+                        } else {
+                            this.failed_avatars.Add (email);
+                        }
                   }
                }
             }
@@ -958,7 +991,17 @@ namespace SparkleShare {
                 Path.GetDirectoryName (SparkleConfig.DefaultConfig.FullPath), "icons",
                 size + "x" + size, "status", "avatar-" + email);
 
-            return avatar_file_path;
+            if (File.Exists (avatar_file_path)) {
+                return avatar_file_path;
+
+            } else {
+                FetchAvatars (email, size);
+
+                if (File.Exists (avatar_file_path))
+                    return avatar_file_path;
+                else
+                    return null;
+            }
         }
 
 
@@ -975,7 +1018,6 @@ namespace SparkleShare {
             string canonical_name = Path.GetFileNameWithoutExtension (remote_folder);
             string tmp_folder     = Path.Combine (tmp_path, canonical_name);
 
-            SparkleFetcherBase fetcher = null;
             string backend = null;
 
 /*            if (remote_folder.EndsWith (".hg")) {
@@ -989,7 +1031,7 @@ namespace SparkleShare {
                 backend = "Scp";
 
             } else {*/
-                fetcher = new SparkleFetcherGit (server, remote_folder, tmp_folder);
+                this.fetcher = new SparkleFetcherGit (server, remote_folder, tmp_folder);
                 backend = "Git";
             //}
 
@@ -1009,7 +1051,7 @@ namespace SparkleShare {
             if (i > 1)
                 target_folder_name += " (" + i + ")";
 
-            fetcher.Finished += delegate {
+            this.fetcher.Finished += delegate {
 
                 // Needed to do the moving
                 SparkleHelpers.ClearAttributes (tmp_folder);
@@ -1022,7 +1064,7 @@ namespace SparkleShare {
                     SparkleHelpers.DebugInfo ("Controller", "Error moving folder: " + e.Message);
                 }
 
-                SparkleConfig.DefaultConfig.AddFolder (target_folder_name, fetcher.RemoteUrl, backend);
+                SparkleConfig.DefaultConfig.AddFolder (target_folder_name, this.fetcher.RemoteUrl, backend);
                 AddRepository (target_folder_path);
 
                 if (FolderFetched != null)
@@ -1036,25 +1078,38 @@ namespace SparkleShare {
                 if (FolderListChanged != null)
                     FolderListChanged ();
 
-                fetcher.Dispose ();
+                this.fetcher.Dispose ();
 
                 if (Directory.Exists (tmp_path))
                     Directory.Delete (tmp_path, true);
             };
 
 
-            fetcher.Failed += delegate {
+            this.fetcher.Failed += delegate {
                 if (FolderFetchError != null)
-                    FolderFetchError ();
+                    FolderFetchError (this.fetcher.RemoteUrl);
 
-                fetcher.Dispose ();
+                this.fetcher.Dispose ();
 
                 if (Directory.Exists (tmp_path))
                     Directory.Delete (tmp_path, true);
             };
+            
+            
+            this.fetcher.ProgressChanged += delegate (double percentage) {
+                if (FolderFetching != null)
+                    FolderFetching (percentage);
+            };
+
 
+            this.fetcher.Start ();
+        }
 
-            fetcher.Start ();
+
+        public void StopFetcher ()
+        {
+            if (fetcher != null)
+                fetcher.Stop ();
         }
 
 
diff --git a/SparkleShare/SparkleEntry.cs b/SparkleShare/SparkleEntry.cs
old mode 100644
new mode 100755
index 3d0f846..304fe94
--- a/SparkleShare/SparkleEntry.cs
+++ b/SparkleShare/SparkleEntry.cs
@@ -22,8 +22,9 @@ namespace SparkleShare {
 
     public class SparkleEntry : Entry {
 
-        public bool ExampleTextActive;
-        private string pExampleText;
+
+        private string example_text;
+        private bool example_text_active;
 
 
         public SparkleEntry ()
@@ -32,7 +33,7 @@ namespace SparkleShare {
 
             FocusGrabbed += delegate { OnEntered (); };
             ClipboardPasted += delegate { OnEntered (); };
-            
+
             FocusOutEvent += delegate {
                 if (Text.Equals ("") || Text == null)
                     ExampleTextActive = true;
@@ -47,33 +48,46 @@ namespace SparkleShare {
         {
             if (ExampleTextActive) {
                 ExampleTextActive = false;
-                Text = "";    
+                Text = "";
                 UseNormalTextColor ();
             }
         }
 
 
+        public bool ExampleTextActive {
+            get {
+                return this.example_text_active;
+            }
+
+            set {
+                this.example_text_active = value;
+
+                if (this.example_text_active)
+                    UseSecondaryTextColor ();
+                else
+                    UseNormalTextColor ();
+            }
+        }
+
+
         public string ExampleText
         {
             get {
-                return pExampleText;
+                return this.example_text;
             }
 
             set {
-                pExampleText = value;
-
-                if (ExampleTextActive) {
+                this.example_text = value;
 
+                if (this.example_text_active)
                     UseExampleText ();
-
-                }
             }
         }
 
 
         private void UseExampleText ()
         {
-            Text = pExampleText;
+            Text = this.example_text;
             UseSecondaryTextColor ();
         }
 
diff --git a/SparkleShare/SparkleEventLog.cs b/SparkleShare/SparkleEventLog.cs
old mode 100644
new mode 100755
index 219aa23..5ab9e15
--- a/SparkleShare/SparkleEventLog.cs
+++ b/SparkleShare/SparkleEventLog.cs
@@ -92,7 +92,7 @@ namespace SparkleShare {
                                 string note        = match.Groups [3].Value;
 
                                 Thread thread = new Thread (new ThreadStart (delegate {
-                                    SparkleShare.Controller.AddNoteToFolder (folder_name, revision, note);
+                                    Program.Controller.AddNoteToFolder (folder_name, revision, note);
                                 }));
 
                                 thread.Start ();
@@ -203,6 +203,9 @@ namespace SparkleShare {
                 if (html == null)
                     html = Controller.HTML;
 
+                if (html == null)
+                    return;
+
                 html = html.Replace ("<!-- $body-font-size -->", (double) (Style.FontDescription.Size / 1024 + 3) + "px");
                 html = html.Replace ("<!-- $day-entry-header-font-size -->", (Style.FontDescription.Size / 1024 + 3) + "px");
                 html = html.Replace ("<!-- $a-color -->", "#0085cf");
@@ -214,20 +217,20 @@ namespace SparkleShare {
                 html = html.Replace ("<!-- $secondary-font-color -->", SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive)));
                 html = html.Replace ("<!-- $small-color -->", SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive)));
                 html = html.Replace ("<!-- $no-buddy-icon-background-image -->", "file://" +
-                        System.IO.Path.Combine (SparkleUI.AssetsPath, "icons",
-                            "hicolor", "32x32", "status", "avatar-default.png"));
+                        new string [] {SparkleUI.AssetsPath, "icons",
+                            "hicolor", "32x32", "status", "avatar-default.png"}.Combine ());
                 html = html.Replace ("<!-- $document-added-background-image -->", "file://" +
-                        System.IO.Path.Combine (SparkleUI.AssetsPath, "icons",
-                            "hicolor", "12x12", "status", "document-added.png"));
+                        new string [] {SparkleUI.AssetsPath, "icons",
+                            "hicolor", "12x12", "status", "document-added.png"}.Combine ());
                 html = html.Replace ("<!-- $document-edited-background-image -->", "file://" +
-                        System.IO.Path.Combine (SparkleUI.AssetsPath, "icons",
-                            "hicolor", "12x12", "status", "document-edited.png"));
+                        new string [] {SparkleUI.AssetsPath, "icons",
+                            "hicolor", "12x12", "status", "document-edited.png"}.Combine ());
                 html = html.Replace ("<!-- $document-deleted-background-image -->", "file://" +
-                        System.IO.Path.Combine (SparkleUI.AssetsPath, "icons",
-                            "hicolor", "12x12", "status", "document-deleted.png"));
+                        new string [] {SparkleUI.AssetsPath, "icons",
+                            "hicolor", "12x12", "status", "document-deleted.png"}.Combine ());
                 html = html.Replace ("<!-- $document-moved-background-image -->", "file://" +
-                        System.IO.Path.Combine (SparkleUI.AssetsPath, "icons",
-                            "hicolor", "12x12", "status", "document-moved.png"));
+                        new string [] {SparkleUI.AssetsPath, "icons",
+                            "hicolor", "12x12", "status", "document-moved.png"}.Combine ());
 
                 Application.Invoke (delegate {
                     this.spinner.Stop ();
diff --git a/SparkleShare/SparkleEventLogController.cs b/SparkleShare/SparkleEventLogController.cs
old mode 100644
new mode 100755
index fdc99f3..98d95de
--- a/SparkleShare/SparkleEventLogController.cs
+++ b/SparkleShare/SparkleEventLogController.cs
@@ -69,14 +69,14 @@ namespace SparkleShare {
 
         public string HTML {
             get {
-                List<SparkleChangeSet> change_sets = SparkleShare.Controller.GetLog (this.selected_folder);
-                return SparkleShare.Controller.GetHTMLLog (change_sets);
+                List<SparkleChangeSet> change_sets = Program.Controller.GetLog (this.selected_folder);
+                return Program.Controller.GetHTMLLog (change_sets);
             }
         }
 
         public string [] Folders {
             get {
-                return SparkleShare.Controller.Folders.ToArray ();
+                return Program.Controller.Folders.ToArray ();
             }
         }
 
@@ -86,19 +86,19 @@ namespace SparkleShare {
 
         public SparkleEventLogController ()
         {
-            SparkleShare.Controller.AvatarFetched += delegate {
+            Program.Controller.AvatarFetched += delegate {
                 if (UpdateContentEvent != null)
                     UpdateContentEvent (HTML);
             };
 
-            SparkleShare.Controller.OnIdle += delegate {
+            Program.Controller.OnIdle += delegate {
                 if (UpdateContentEvent != null)
                     UpdateContentEvent (HTML);
             };
 
-            SparkleShare.Controller.FolderListChanged += delegate {
+            Program.Controller.FolderListChanged += delegate {
                 if (this.selected_folder != null &&
-                    !SparkleShare.Controller.Folders.Contains (this.selected_folder)) {
+                    !Program.Controller.Folders.Contains (this.selected_folder)) {
 
                     this.selected_folder = null;
                 }
@@ -110,7 +110,7 @@ namespace SparkleShare {
                     UpdateContentEvent (HTML);
             };
 
-            SparkleShare.Controller.NotificationRaised += delegate {
+            Program.Controller.NotificationRaised += delegate {
                 if (UpdateContentEvent != null)
                     UpdateContentEvent (HTML);
             };
diff --git a/SparkleShare/Mac/AppDelegate.cs b/SparkleShare/SparkleExtensions.cs
old mode 100644
new mode 100755
similarity index 59%
copy from SparkleShare/Mac/AppDelegate.cs
copy to SparkleShare/SparkleExtensions.cs
index 9e246c1..348835b
--- a/SparkleShare/Mac/AppDelegate.cs
+++ b/SparkleShare/SparkleExtensions.cs
@@ -1,5 +1,5 @@
 //   SparkleShare, a collaboration and sharing tool.
-//   Copyright (C) 2010  Hylke Bons <hylkebons at gmail.com>
+//   Copyright (C) 2010  Hylke Bons (hylkebons at gmail.com)
 //
 //   This program is free software: you can redistribute it and/or modify
 //   it under the terms of the GNU General Public License as published by
@@ -12,20 +12,24 @@
 //   GNU General Public License for more details.
 //
 //   You should have received a copy of the GNU General Public License
-//   along with this program. If not, see <http://www.gnu.org/licenses/>.
+//   along with this program. If not, see (http://www.gnu.org/licenses/).
 
 
 using System;
-using System.Drawing;
+using System.IO;
 
-using MonoMac.Foundation;
-using MonoMac.AppKit;
-using MonoMac.ObjCRuntime;
+namespace SparkleShare {
 
-namespace SparkleShare
-{
-	public partial class AppDelegate : NSApplicationDelegate
-	{
+    public static class Extensions {
 
-	}
+        public static string Combine (this String [] parts)
+        {
+            string new_path = "";
+
+            foreach (string part in parts)
+                new_path = Path.Combine (new_path, part);
+
+            return new_path;
+        }
+    }
 }
diff --git a/SparkleShare/SparkleLinController.cs b/SparkleShare/SparkleLinController.cs
deleted file mode 100644
index 4422fcc..0000000
--- a/SparkleShare/SparkleLinController.cs
+++ /dev/null
@@ -1,212 +0,0 @@
-//   SparkleShare, a collaboration and sharing tool.
-//   Copyright (C) 2010  Hylke Bons <hylkebons at gmail.com>
-//
-//   This program is free software: you can redistribute it and/or modify
-//   it under the terms of the GNU General Public License as published by
-//   the Free Software Foundation, either version 3 of the License, or
-//   (at your option) any later version.
-//
-//   This program is distributed in the hope that it will be useful,
-//   but WITHOUT ANY WARRANTY; without even the implied warranty of
-//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-//   GNU General Public License for more details.
-//
-//   You should have received a copy of the GNU General Public License
-//   along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading;
-
-using Mono.Unix;
-using SparkleLib;
-
-namespace SparkleShare {
-
-    public class SparkleLinController : SparkleController {
-
-        public SparkleLinController () : base ()
-        {
-
-        }
-
-
-        // Creates a .desktop entry in autostart folder to
-        // start SparkleShare automatically at login
-        public override void EnableSystemAutostart ()
-        {
-            string autostart_path = Path.Combine (Environment.GetFolderPath (
-                Environment.SpecialFolder.ApplicationData), "autostart");
-
-            string desktopfile_path = Path.Combine (autostart_path, "sparkleshare.desktop");
-
-            if (!Directory.Exists (autostart_path))
-                Directory.CreateDirectory (autostart_path);
-
-            if (!File.Exists (desktopfile_path)) {
-                TextWriter writer = new StreamWriter (desktopfile_path);
-                writer.WriteLine ("[Desktop Entry]\n" +
-                                  "Type=Application\n" +
-                                  "Name=SparkleShare\n" +
-                                  "Exec=sparkleshare start\n" +
-                                  "Icon=folder-sparkleshare\n" +
-                                  "Terminal=false\n" +
-                                  "X-GNOME-Autostart-enabled=true\n" +
-                                  "Categories=Network");
-                writer.Close ();
-
-                // Give the launcher the right permissions so it can be launched by the user
-                UnixFileInfo file_info = new UnixFileInfo (desktopfile_path);
-                file_info.Create (FileAccessPermissions.UserReadWriteExecute);
-
-                SparkleHelpers.DebugInfo ("Controller", "Enabled autostart on login");
-            }
-        }
-        
-
-        // Installs a launcher so the user can launch SparkleShare
-        // from the Internet category if needed
-        public override void InstallLauncher ()
-        {
-            string apps_path = Path.Combine (SparkleConfig.DefaultConfig.HomePath,
-                ".local", "share", "applications");
-
-            string desktopfile_path = SparkleHelpers.CombineMore (apps_path, "sparkleshare.desktop");
-
-            if (!File.Exists (desktopfile_path)) {
-                if (!Directory.Exists (apps_path))
-                    Directory.CreateDirectory (apps_path);
-
-                TextWriter writer = new StreamWriter (desktopfile_path);
-                writer.WriteLine ("[Desktop Entry]\n" +
-                                  "Type=Application\n" +
-                                  "Name=SparkleShare\n" +
-                                  "Comment=Share documents\n" +
-                                  "Exec=sparkleshare start\n" +
-                                  "Icon=folder-sparkleshare\n" +
-                                  "Terminal=false\n" +
-                                  "Categories=Network;");
-                writer.Close ();
-
-                // Give the launcher the right permissions so it can be launched by the user
-                UnixFileInfo file_info = new UnixFileInfo (desktopfile_path);
-                file_info.FileAccessPermissions = FileAccessPermissions.UserReadWriteExecute;
-
-                SparkleHelpers.DebugInfo ("Controller", "Created '" + desktopfile_path + "'");
-            }
-        }
-
-
-        // Adds the SparkleShare folder to the user's
-        // list of bookmarked places
-        public override void AddToBookmarks ()
-        {
-            string bookmarks_file_path   = Path.Combine (SparkleConfig.DefaultConfig.HomePath, ".gtk-bookmarks");
-            string sparkleshare_bookmark = "file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare";
-
-            if (File.Exists (bookmarks_file_path)) {
-                StreamReader reader = new StreamReader (bookmarks_file_path);
-                string bookmarks = reader.ReadToEnd ();
-                reader.Close ();
-
-                if (!bookmarks.Contains (sparkleshare_bookmark)) {
-                    TextWriter writer = File.AppendText (bookmarks_file_path);
-                    writer.WriteLine ("file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare");
-                    writer.Close ();
-                }
-            } else {
-                StreamWriter writer = new StreamWriter (bookmarks_file_path);
-                writer.WriteLine ("file://" + SparkleConfig.DefaultConfig.FoldersPath + " SparkleShare");
-                writer.Close ();
-            }
-        }
-
-
-        // Creates the SparkleShare folder in the user's home folder
-        public override bool CreateSparkleShareFolder ()
-        {
-            if (!Directory.Exists (SparkleConfig.DefaultConfig.FoldersPath)) {
-        
-                Directory.CreateDirectory (SparkleConfig.DefaultConfig.FoldersPath);
-                SparkleHelpers.DebugInfo ("Controller", "Created '" + SparkleConfig.DefaultConfig.FoldersPath + "'");
-
-                string gvfs_command_path = Path.Combine (Path.VolumeSeparatorChar.ToString (),
-                    "usr", "bin", "gvfs-set-attribute");
-
-                // Add a special icon to the SparkleShare folder
-                if (File.Exists (gvfs_command_path)) {
-                    Process process = new Process ();
-
-                    process.StartInfo.RedirectStandardOutput = true;
-                    process.StartInfo.UseShellExecute        = false;
-                    process.StartInfo.FileName               = "gvfs-set-attribute";
-
-                    // Clear the custom (legacy) icon path
-                    process.StartInfo.Arguments = "-t unset " + SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon";
-                    process.Start ();
-                    process.WaitForExit ();
-
-                    // Give the SparkleShare folder an icon name, so that it scales
-                    process.StartInfo.Arguments = SparkleConfig.DefaultConfig.FoldersPath + " metadata::custom-icon-name 'folder-sparkleshare'";
-                    process.Start ();
-                    process.WaitForExit ();
-                }
-
-                return true;
-            }
-
-            return false;
-        }
-        
-
-        public override string EventLogHTML {
-            get {
-                string path = Path.Combine (Defines.PREFIX,
-                    "share", "sparkleshare", "html", "event-log.html");
-
-                string html = String.Join (Environment.NewLine, File.ReadAllLines (path));
-
-                html = html.Replace ("<!-- $jquery-url -->", "file://" +
-                  Path.Combine (Defines.PREFIX, "share", "sparkleshare", "html", "jquery.js"));
-            
-                return html;
-            }
-        }
-
-        
-        public override string DayEntryHTML {
-            get {
-                string path = Path.Combine (Defines.PREFIX,
-                    "share", "sparkleshare", "html", "day-entry.html");
-            
-                return String.Join (Environment.NewLine, File.ReadAllLines (path));
-            }
-        }
-
-        
-        public override string EventEntryHTML {
-            get {
-                string path = Path.Combine (Defines.PREFIX,
-                    "share", "sparkleshare", "html", "event-entry.html");
-            
-                return String.Join (Environment.NewLine, File.ReadAllLines (path));
-            }
-        }
-
-            
-        public override void OpenSparkleShareFolder (string subfolder)
-        {
-            string folder = Path.Combine (SparkleConfig.DefaultConfig.FoldersPath, subfolder);
-
-            Process process = new Process ();
-            process.StartInfo.FileName  = "xdg-open";
-            process.StartInfo.Arguments = "\"" + folder + "\"";
-            process.Start ();
-        }
-    }
-}
diff --git a/SparkleShare/SparklePlugin.cs b/SparkleShare/SparklePlugin.cs
new file mode 100644
index 0000000..e77fc15
--- /dev/null
+++ b/SparkleShare/SparklePlugin.cs
@@ -0,0 +1,71 @@
+//   SparkleShare, a collaboration and sharing tool.
+//   Copyright (C) 2010  Hylke Bons (hylkebons at gmail.com)
+//
+//   This program is free software: you can redistribute it and/or modify
+//   it under the terms of the GNU General Public License as published by
+//   the Free Software Foundation, either version 3 of the License, or
+//   (at your option) any later version.
+//
+//   This program is distributed in the hope that it will be useful,
+//   but WITHOUT ANY WARRANTY; without even the implied warranty of
+//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//   GNU General Public License for more details.
+//
+//   You should have received a copy of the GNU General Public License
+//   along with this program. If not, see (http://www.gnu.org/licenses/).
+
+
+using System;
+using System.IO;
+using System.Xml;
+
+namespace SparkleShare {
+
+    public class SparklePlugin {
+
+        public string Name;
+        public string Description;
+        public string ImagePath;
+        public string Backend;
+
+        public string Address;
+        public string AddressExample;
+        public string Path;
+        public string PathExample;
+
+
+        public SparklePlugin (string plugin_path)
+        {
+            string plugin_directory = System.IO.Path.GetDirectoryName (plugin_path);
+
+            XmlDocument xml = new XmlDocument ();
+            xml.Load (plugin_path);
+
+            XmlNode node;
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/info/name/text()");
+            if (node != null) { Name = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/info/description/text()");
+            if (node != null) { Description = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/info/icon/text()");
+            if (node != null) { ImagePath = System.IO.Path.Combine (plugin_directory, node.Value); }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/info/backend/text()");
+            if (node != null) { Backend = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/address/value/text()");
+            if (node != null) { Address = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/address/example/text()");
+            if (node != null) { AddressExample = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/path/value/text()");
+            if (node != null) { Path = node.Value; }
+
+            node = xml.SelectSingleNode ("/sparkleshare/plugin/path/example/text()");
+            if (node != null) { PathExample = node.Value; }
+        }
+    }
+}
diff --git a/SparkleShare/SparkleSetup.cs b/SparkleShare/SparkleSetup.cs
old mode 100644
new mode 100755
index 3c187b5..84a7ffd
--- a/SparkleShare/SparkleSetup.cs
+++ b/SparkleShare/SparkleSetup.cs
@@ -25,7 +25,6 @@ using System.Collections.Generic;
 using Gtk;
 using Mono.Unix;
 
-
 namespace SparkleShare {
 
     public class SparkleSetup : SparkleSetupWindow {
@@ -33,20 +32,19 @@ namespace SparkleShare {
         public SparkleSetupController Controller = new SparkleSetupController ();
 
         private string SecondaryTextColor;
+        private string SecondaryTextColorSelected;
 
         private Entry NameEntry;
         private Entry EmailEntry;
-        private SparkleEntry ServerEntry;
-        private SparkleEntry FolderEntry;
+        private SparkleEntry AddressEntry;
+        private SparkleEntry PathEntry;
 
         private Button NextButton;
         private Button SyncButton;
 
         private Table Table;
-
-        private ProgressBar progress_bar = new ProgressBar () { PulseStep = 0.01 };
-        private Timer progress_bar_pulse_timer = new Timer () { Interval = 25, Enabled = true };
-
+        private ProgressBar progress_bar = new ProgressBar ();
+        
 
         // Short alias for the translations
         public static string _ (string s)
@@ -57,14 +55,22 @@ namespace SparkleShare {
 
         public SparkleSetup () : base ()
         {
-            SecondaryTextColor = SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive));
+            SecondaryTextColor         = SparkleUIHelpers.GdkColorToHex (Style.Foreground (StateType.Insensitive));
+            SecondaryTextColorSelected =
+                SparkleUIHelpers.GdkColorToHex (
+                    MixColors (
+                        new TreeView ().Style.Foreground (StateType.Selected),
+                        new TreeView ().Style.Background (StateType.Selected),
+                        0.15
+                    )
+                );
 
             Controller.ChangePageEvent += delegate (PageType type) {
                 Application.Invoke (delegate {
                     Reset ();
 
                     switch (type) {
-                    case PageType.Setup:
+                    case PageType.Setup: {
 
                         Header = _("Welcome to SparkleShare!");
                         Description = _("Before we can create a SparkleShare folder on this " +
@@ -79,12 +85,12 @@ namespace SparkleShare {
                                 Xalign    = 0
                             };
 
-                            NameEntry = new Entry (SparkleShare.Controller.UserName);
+                            NameEntry = new Entry (Controller.GuessedUserName);
                             NameEntry.Changed += delegate {
                                 CheckSetupPage ();
                             };
 
-                            EmailEntry = new Entry ();
+                            EmailEntry = new Entry (Controller.GuessedUserEmail);
                             EmailEntry.Changed += delegate {
                                 CheckSetupPage ();
                             };
@@ -116,145 +122,188 @@ namespace SparkleShare {
                         CheckSetupPage ();
 
                         break;
+                    } 
+
+                    case PageType.Add: {
+
+                        Header = _("Where's your project hosted?");
+
+                        VBox layout_vertical = new VBox (false, 12);
+                        HBox layout_fields   = new HBox (true, 12);
+                        VBox layout_address  = new VBox (true, 0);
+                        VBox layout_path     = new VBox (true, 0);
+
+                        ListStore store = new ListStore (typeof (Gdk.Pixbuf),
+                            typeof (string), typeof (SparklePlugin));
+
+                        TreeView tree = new TreeView (store) { HeadersVisible = false };
+                        ScrolledWindow scrolled_window = new ScrolledWindow ();
+                        scrolled_window.AddWithViewport (tree);
+
+                        // Icon column
+                        tree.AppendColumn ("Icon", new Gtk.CellRendererPixbuf (), "pixbuf", 0);
+                        tree.Columns [0].Cells [0].Xpad = 6;
+
+                        // Service column
+                        TreeViewColumn service_column = new TreeViewColumn () { Title = "Service" };
+                        CellRendererText service_cell = new CellRendererText () { Ypad = 4 };
+                        service_column.PackStart (service_cell, true);
+                        service_column.SetCellDataFunc (service_cell, new TreeCellDataFunc (RenderServiceColumn));
+
+                        foreach (SparklePlugin plugin in Controller.Plugins) {
+                            store.AppendValues (
+                                new Gdk.Pixbuf (plugin.ImagePath),
+                                "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
+                                  "<span fgcolor=\"" + SecondaryTextColorSelected + "\">" +
+                                  plugin.Description + "</span>" +
+                                "</span>",
+                                plugin);
+                        }
 
-                    case PageType.Add:
+                        tree.AppendColumn (service_column);
 
-                        Header = _("Where is your remote folder?");
+                        PathEntry = new SparkleEntry ();
+                        AddressEntry = new SparkleEntry ();
 
-                        Table = new Table (6, 2, false) {
-                            RowSpacing = 12
-                        };
 
-                            HBox layout_server = new HBox (true, 0);
+                        // Select the first plugin by default
+                        TreeSelection default_selection = tree.Selection;
+                        TreePath default_path = new TreePath ("0");
+                        default_selection.SelectPath (default_path);
+                        Controller.SelectedPluginChanged (0);
 
-                                // Own server radiobutton
-                                RadioButton radio_button = new RadioButton ("<b>" + _("On my own server:") + "</b>");
-                                (radio_button.Child as Label).UseMarkup = true;
+                        Controller.ChangeAddressFieldEvent += delegate (string text,
+                            string example_text, FieldState state) {
+                            Console.WriteLine ("> " +  text);
+                            Application.Invoke (delegate {
+                                AddressEntry.Text        = text;
+                                AddressEntry.Sensitive   = (state == FieldState.Enabled);
+
+                                if (string.IsNullOrEmpty (example_text))
+                                    AddressEntry.ExampleText = null;
+                                else
+                                    AddressEntry.ExampleText = example_text;
+
+                                if (string.IsNullOrEmpty (text))
+                                    AddressEntry.ExampleTextActive = true;
+                                else
+                                    AddressEntry.ExampleTextActive = false;
+                            });
+                        };
 
-                                radio_button.Toggled += delegate {
-                                    if (radio_button.Active) {
-                                        FolderEntry.ExampleText = _("Folder");
-                                        ServerEntry.Sensitive   = true;
-                                        CheckAddPage ();
-                                    } else {
-                                        ServerEntry.Sensitive = false;
-                                        CheckAddPage ();
-                                    }
+                        Controller.ChangePathFieldEvent += delegate (string text,
+                            string example_text, FieldState state) {
 
-                                    ShowAll ();
-                                };
+                            Application.Invoke (delegate {
+                                PathEntry.Text        = text;
+                                PathEntry.Sensitive   = (state == FieldState.Enabled);
+
+                                if (string.IsNullOrEmpty (example_text))
+                                    PathEntry.ExampleText = null;
+                                else
+                                    PathEntry.ExampleText = example_text;
+
+                                if (string.IsNullOrEmpty (text))
+                                    PathEntry.ExampleTextActive = true;
+                                else
+                                    PathEntry.ExampleTextActive = false;
+                            });
+                        };
 
-                                // Own server entry
-                                ServerEntry = new SparkleEntry () { };
-                                ServerEntry.Completion = new EntryCompletion();
+                        // Update the address field text when the selection changes
+                        tree.CursorChanged += delegate (object sender, EventArgs e) {
+                            TreeIter iter;
+                            TreeModel model;
 
-                                ListStore server_store = new ListStore (typeof (string));
+                            TreeSelection selection = (sender as TreeView).Selection;
+                            selection.GetSelected (out model, out iter);
 
-                                foreach (string host in SparkleShare.Controller.PreviousHosts)
-                                    server_store.AppendValues (host);
+                            // SparklePlugin plugin = (SparklePlugin) model.GetValue (iter, 2);
+                            int selected_path = int.Parse (model.GetPath (iter).ToString ());
 
-                                ServerEntry.Completion.Model = server_store;
-                                ServerEntry.Completion.TextColumn = 0;
+                            Controller.SelectedPluginChanged (selected_path);
 
-                                if (!string.IsNullOrEmpty (Controller.PreviousServer)) {
-                                    ServerEntry.Text = Controller.PreviousServer;
-                                    ServerEntry.ExampleTextActive = false;
-                                } else {
-                                    ServerEntry.ExampleText = _("address-to-server.com");
-                                }
+                            // TODO: Scroll to selected row when using arrow keys
+                        };
 
-                                ServerEntry.Changed += delegate {
-                                    CheckAddPage ();
-                                };
+                        tree.Model.Foreach (new TreeModelForeachFunc (delegate (TreeModel model,
+                            TreePath path, TreeIter iter) {
 
-                            layout_server.Add (radio_button);
-                            layout_server.Add (ServerEntry);
+                            string address;
 
-                        Table.Attach (layout_server,          0, 2, 1, 2);
+                            try {
+                                address = (model.GetValue (iter, 2) as SparklePlugin).Address;
 
-                            // Github radiobutton
-                            string github_text = "<b>" + "Github" + "</b>\n" +
-                                  "<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
-                                _("Free hosting for Free and Open Source Software projects.") + "\n" +
-                                _("Also has paid accounts for extra private space and bandwidth.") +
-                                  "</span>";
+                            } catch (NullReferenceException) {
+                                address = "";
+                            }
 
-                            RadioButton radio_button_github = new RadioButton (radio_button, github_text);
-                            (radio_button_github.Child as Label).UseMarkup = true;
-                            (radio_button_github.Child as Label).Wrap      = true;
+                            if (!string.IsNullOrEmpty (address) &&
+                                address.Equals (Controller.PreviousAddress)) {
 
-                            radio_button_github.Toggled += delegate {
-                                if (radio_button_github.Active)
-                                    FolderEntry.ExampleText = _("Username/Folder");
-                            };
+                                tree.SetCursor (path, service_column, false);
+                                SparklePlugin plugin = (SparklePlugin) model.GetValue (iter, 2);
 
+                                if (plugin.Address != null) {
+                                    AddressEntry.Sensitive = false;}
 
-                            // Gitorious radiobutton
-                            string gitorious_text = "<b>" + _("Gitorious") + "</b>\n" +
-                                  "<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
-                                _("Completely Free as in Freedom infrastructure.") + "\n" +
-                                _("Free accounts for Free and Open Source projects.") +
-                                  "</span>";
+                                if (plugin.Path != null)
+                                    PathEntry.Sensitive = false;
 
-                            RadioButton radio_button_gitorious = new RadioButton (radio_button, gitorious_text);
-                            (radio_button_gitorious.Child as Label).UseMarkup = true;
-                            (radio_button_gitorious.Child as Label).Wrap      = true;
+                                // TODO: Scroll to the selection
 
-                            radio_button_gitorious.Toggled += delegate {
-                                if (radio_button_gitorious.Active)
-                                    FolderEntry.ExampleText = _("Project/Folder");
-                            };
+                                return true;
+                            } else {
+                                return false;
+                            }
+                        }));
 
+                        AddressEntry.Completion = new EntryCompletion();
+                        ListStore server_store = new ListStore (typeof (string));
 
-                            // GNOME radiobutton
-                            string gnome_text = "<b>" + _("The GNOME Project") + "</b>\n"+
-                                 "<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
-                                _("GNOME is an easy to understand interface to your computer.") + "\n" +
-                                _("Select this option if you’re a developer or designer working on GNOME.") +
-                                  "</span>";
+                        foreach (string host in Program.Controller.PreviousHosts)
+                            server_store.AppendValues (host);
 
-                            RadioButton radio_button_gnome = new RadioButton (radio_button, gnome_text);
-                            (radio_button_gnome.Child as Label).UseMarkup = true;
-                            (radio_button_gnome.Child as Label).Wrap      = true;
+                        AddressEntry.Completion.Model      = server_store;
+                        AddressEntry.Completion.TextColumn = 0;
 
-                            radio_button_gnome.Toggled += delegate {
-                                if (radio_button_gnome.Active)
-                                    FolderEntry.ExampleText = _("Project");
-                            };
+                        AddressEntry.Changed += delegate {
+                            CheckAddPage ();
+                        };
 
-                        Table.Attach (radio_button_github,    0, 2, 2, 3);
-                        Table.Attach (radio_button_gitorious, 0, 2, 3, 4);
-                        Table.Attach (radio_button_gnome,     0, 2, 4, 5);
+                                layout_address.PackStart (new Label () {
+                                    Markup = "<b>" + _("Address") + "</b>",
+                                    Xalign = 0
+                                }, true, true, 0);
 
-                            // Folder label and entry
-                            HBox layout_folder = new HBox (true, 0);
+                                layout_address.PackStart (AddressEntry, true, true, 0);
 
-                                Label folder_label = new Label (_("Folder Name:")) {
-                                    UseMarkup = true,
-                                    Xalign    = 1
-                                };
+                                    PathEntry.Completion  = new EntryCompletion();
 
-                                FolderEntry             = new SparkleEntry ();
-                                FolderEntry.ExampleText = _("Folder");
-                                FolderEntry.Completion = new EntryCompletion();
+                                    ListStore folder_store = new ListStore (typeof (string));
 
-                                ListStore folder_store = new ListStore (typeof (string));
+                                    //foreach (string host in Program.Controller.FolderPaths)
+                                    //    folder_store.AppendValues (host);
 
-                                //foreach (string host in SparkleShare.Controller.FolderPaths)
-                                //    folder_store.AppendValues (host);
+                                    PathEntry.Completion.Model      = folder_store;
+                                    PathEntry.Completion.TextColumn = 0;
 
-                                FolderEntry.Completion.Model = folder_store;
-                                FolderEntry.Completion.TextColumn = 0;
+                                    PathEntry.Changed += delegate {
+                                        CheckAddPage ();
+                                    };
 
-                                FolderEntry.Changed += delegate {
-                                    CheckAddPage ();
-                                };
+                                layout_path.PackStart (new Label () { Markup = "<b>" + _("Remote Path") + "</b>", Xalign = 0 },
+                                    true, true, 0);
+                                layout_path.PackStart (PathEntry, true, true, 0);
 
-                            layout_folder.PackStart (folder_label, true, true, 12);
-                            layout_folder.PackStart (FolderEntry, true, true, 0);
+                            layout_fields.PackStart (layout_address);
+                            layout_fields.PackStart (layout_path);
 
-                        Table.Attach (layout_folder, 0, 2, 5, 6);
-                        Add (Table);
+                        layout_vertical.PackStart (new Label (""), false, false, 0);
+                        layout_vertical.PackStart (scrolled_window, true, true, 0);
+                        layout_vertical.PackStart (layout_fields, false, false, 0);
+
+                        Add (layout_vertical);
 
                             // Cancel button
                             Button cancel_button = new Button (_("Cancel"));
@@ -263,22 +312,12 @@ namespace SparkleShare {
                                 Close ();
                             };
 
-
                             // Sync button
-                            SyncButton = new Button (_("Sync"));
+                            SyncButton = new Button (_("Add"));
 
                             SyncButton.Clicked += delegate {
-                                string server         = ServerEntry.Text;
-                                string folder_name    = FolderEntry.Text;
-
-                                if (radio_button_gitorious.Active)
-                                    server = "gitorious.org";
-
-                                if (radio_button_github.Active)
-                                    server = "github.com";
-
-                                if (radio_button_gnome.Active)
-                                    server = "gnome.org";
+                                string server         = AddressEntry.Text;
+                                string folder_name    = PathEntry.Text;
 
                                 Controller.AddPageCompleted (server, folder_name);
                             };
@@ -289,27 +328,33 @@ namespace SparkleShare {
                         CheckAddPage ();
 
                         break;
+                    }
 
-                    case PageType.Syncing:
+                    case PageType.Syncing: {
 
-                        Header      = String.Format (_("Syncing folder ‘{0}’…"), Controller.SyncingFolder);
-                        Description = _("This may take a while." + Environment.NewLine) +
+                        Header      = String.Format (_("Adding project ‘{0}’…"), Controller.SyncingFolder);
+                        Description = _("This may take a while.") + Environment.NewLine +
                                       _("Are you sure it’s not coffee o'clock?");
 
-                        Button button = new Button () {
+                        Button finish_button = new Button () {
                             Sensitive = false,
                             Label = _("Finish")
                         };
 
-                        button.Clicked += delegate {
-                            Close ();
+                        Button cancel_button = new Button () {
+                            Label = _("Cancel")
+                        };
+
+                        cancel_button.Clicked += delegate {
+                            Controller.SyncingCancelled ();
                         };
 
-                        AddButton (button);
+                        AddButton (cancel_button);
+                        AddButton (finish_button);
 
-                        this.progress_bar_pulse_timer.Elapsed += delegate {
+                        Controller.UpdateProgressBarEvent += delegate (double percentage) {
                             Application.Invoke (delegate {
-                                progress_bar.Pulse ();
+                                this.progress_bar.Fraction = percentage / 100;
                             });
                         };
 
@@ -322,32 +367,59 @@ namespace SparkleShare {
                         Add (bar_wrapper);
 
                         break;
+                    }
 
-                    case PageType.Error:
-
-                        string n = Environment.NewLine;
+                    case PageType.Error: {
 
                         Header      = _("Something went wrong") + "…";
-                        Description = "We don't know exactly what the problem is, " +
-                                      "but we can try to help you pinpoint it.";
 
+						VBox points = new VBox (false, 0);
+						Image list_point_one   = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) {  };
+						Image list_point_two   = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) {  };
+						Image list_point_three = new Image (SparkleUIHelpers.GetIcon ("list-point", 16)) {  };
 
-                          Label l = new Label (
-                          "First, have you tried turning it off and on again?" + n +
-                          n +
-                          Controller.SyncingFolder +" is the address we've compiled from the information " +
-                          "you entered. Does this look correct?" + n +
-                          n +
-                          "The host needs to know who you are. Have you uploaded the key that sits in your SparkleShare folder?");
+                        Label label_one = new Label () {
+                            Text   = "First, have you tried turning it off and on again?",
+                            Wrap   = true,
+                            Xalign = 0
+                        };
 
+                        Label label_two = new Label () {
+                            Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we've compiled. " +
+                                     "Does this look alright?",
+                            Wrap   = true,
+                            Xalign = 0
+                        };
 
+                        Label label_three = new Label () {
+                            Text   = "The host needs to know who you are. Did you upload the key that's in " +
+                                     "your SparkleShare folder?",
+                            Wrap   = true,
+                            Xalign = 0
+                        };
+
+						
+                        points.PackStart (new Label ("Please check the following:") { Xalign = 0 }, false, false, 6);
 
-                        l.Xpad = 12;
-                        l.Wrap = true;
+                        HBox point_one = new HBox (false, 0);
+						point_one.PackStart (list_point_one, false, false, 0);
+						point_one.PackStart (label_one, true, true, 12);
+						points.PackStart (point_one, false, false, 12);
+						
+						HBox point_two = new HBox (false, 0);
+						point_two.PackStart (list_point_two, false, false, 0);
+						point_two.PackStart (label_two, true, true, 12);
+						points.PackStart (point_two, false, false, 12);
+                          
+                        HBox point_three = new HBox (false, 0);
+						point_three.PackStart (list_point_three, false, false, 0);
+						point_three.PackStart (label_three, true, true, 12);
+						points.PackStart (point_three, false, false, 12);
 
+                        points.PackStart (new Label (""), true, true, 0);
 
 
-                        Button try_again_button = new Button (_("Try Again")) {
+                        Button try_again_button = new Button (_("Try Again…")) {
                             Sensitive = true
                         };
 
@@ -356,34 +428,36 @@ namespace SparkleShare {
                         };
 
                         AddButton (try_again_button);
-                        Add (l);
+                        Add (points);
 
                         break;
+                    }
 
-                    case PageType.Finished:
+                    case PageType.Finished: {
 
                         UrgencyHint = true;
 
                         if (!HasToplevelFocus) {
                             string title   = String.Format (_("‘{0}’ has been successfully added"), Controller.SyncingFolder);
-                            string subtext = _("");
+                            string subtext = "";
 
                             SparkleUI.Bubbles.Controller.ShowBubble (title, subtext, null);
                         }
 
-                        Header      = _("Folder synced successfully!");
-                        Description = _("Access the synced files from your SparkleShare folder.");
+                        Header      = _("Project successfully added!");
+                        Description = _("Access the files from your SparkleShare folder.");
 
                         // A button that opens the synced folder
                         Button open_folder_button = new Button (_("Open Folder"));
 
                         open_folder_button.Clicked += delegate {
-                          SparkleShare.Controller.OpenSparkleShareFolder (Controller.SyncingFolder);
+                            Program.Controller.OpenSparkleShareFolder (Controller.SyncingFolder);
                         };
 
                         Button finish_button = new Button (_("Finish"));
 
                         finish_button.Clicked += delegate {
+                            Controller.FinishedPageCompleted ();
                             Close ();
                         };
 
@@ -395,10 +469,109 @@ namespace SparkleShare {
                         break;
                     }
 
+
+                    case PageType.Tutorial: {
+
+                        switch (Controller.TutorialPageNumber) {
+                        case 1: {
+                            Header      = _("What's happening next?");
+                            Description = _("SparkleShare creates a special folder in your personal folder " +
+                                "that will keep track of your projects.");
+
+                            Button skip_tutorial_button = new Button (_("Skip Tutorial"));
+                            skip_tutorial_button.Clicked += delegate {
+                                Controller.TutorialSkipped ();
+                            };
+
+                            Button continue_button = new Button (_("Continue"));
+                            continue_button.Clicked += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-1.png");
+
+                            Add (slide);
+
+                            AddButton (skip_tutorial_button);
+                            AddButton (continue_button);
+
+                            break;
+                        }
+
+                        case 2: {
+                            Header      = _("Sharing files with others");
+                            Description = _("All files added to your project folders are synced with the host " +
+                                "automatically, as well as with your collaborators.");
+
+                            Button continue_button = new Button (_("Continue"));
+                            continue_button.Clicked += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-2.png");
+
+                            Add (slide);
+                            AddButton (continue_button);
+
+                            break;
+                        }
+
+                        case 3: {
+                            Header      = _("The status icon is here to help");
+                            Description = _("It shows the syncing process status, " +
+                                "and contains links to your projects and the event log.");
+
+                            Button continue_button = new Button (_("Continue"));
+                            continue_button.Clicked += delegate {
+                                Controller.TutorialPageCompleted ();
+                            };
+
+                            Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-3.png");
+
+                            Add (slide);
+                            AddButton (continue_button);
+
+                            break;
+                        }
+
+                        case 4: {
+                            Header      = _("Adding projects to SparkleShare");
+                            Description = _("Just click this button when you see it on the web, and " +
+                                "the project will be automatically added:");
+
+                            Label label = new Label (_("…or select <b>‘Add Hosted Project…’</b> from the status icon menu " +
+                                "to add one by hand.")) {
+                                Wrap   = true,
+                                Xalign = 0,
+                                UseMarkup = true
+                            };
+
+                            Image slide = SparkleUIHelpers.GetImage ("tutorial-slide-4.png");
+
+                            Button finish_button = new Button (_("Finish"));
+                            finish_button.Clicked += delegate {
+                                Close ();
+                            };
+
+
+                            VBox box = new VBox (false, 0);
+                            box.Add (slide);
+                            box.Add (label);
+
+                            Add (box);
+                            AddButton (finish_button);
+
+                            break;
+                        }
+                        }
+
+                        break;
+                    }
+                    }
+
                     ShowAll ();
                 });
             };
-
         }
 
 
@@ -407,7 +580,7 @@ namespace SparkleShare {
         private void CheckSetupPage ()
         {
             if (NameEntry.Text.Length > 0 &&
-                SparkleShare.Controller.IsValidEmail (EmailEntry.Text)) {
+                Program.Controller.IsValidEmail (EmailEntry.Text)) {
 
                 NextButton.Sensitive = true;
             } else {
@@ -422,14 +595,14 @@ namespace SparkleShare {
         {
             SyncButton.Sensitive = false;
 
-            if (FolderEntry.ExampleTextActive ||
-                (ServerEntry.Sensitive && ServerEntry.ExampleTextActive))
+            if (PathEntry.ExampleTextActive ||
+                (AddressEntry.Sensitive && AddressEntry.ExampleTextActive))
                 return;
 
-            bool IsFolder = !FolderEntry.Text.Trim ().Equals ("");
-            bool IsServer = !ServerEntry.Text.Trim ().Equals ("");
+            bool IsFolder = !PathEntry.Text.Trim ().Equals ("");
+            bool IsServer = !AddressEntry.Text.Trim ().Equals ("");
 
-            if (ServerEntry.Sensitive == true) {
+            if (AddressEntry.Sensitive == true) {
                 if (IsServer && IsFolder)
                     SyncButton.Sensitive = true;
             } else if (IsFolder) {
@@ -437,5 +610,29 @@ namespace SparkleShare {
             }
         }
 
+
+        private void RenderServiceColumn (TreeViewColumn column, CellRenderer cell,
+            TreeModel model, TreeIter iter)
+        {
+            string markup           = (string) model.GetValue (iter, 1);
+            TreeSelection selection = (column.TreeView as TreeView).Selection;
+
+            if (selection.IterIsSelected (iter))
+                markup = markup.Replace (SecondaryTextColor, SecondaryTextColorSelected);
+            else
+                markup = markup.Replace (SecondaryTextColorSelected, SecondaryTextColor);
+
+            (cell as CellRendererText).Markup = markup;
+        }
+
+
+        private Gdk.Color MixColors (Gdk.Color first_color, Gdk.Color second_color, double ratio)
+        {
+            return new Gdk.Color (
+                Convert.ToByte ((255 * (Math.Min (65535, first_color.Red   * (1.0 - ratio) + second_color.Red   * ratio))) / 65535),
+                Convert.ToByte ((255 * (Math.Min (65535, first_color.Green * (1.0 - ratio) + second_color.Green * ratio))) / 65535),
+                Convert.ToByte ((255 * (Math.Min (65535, first_color.Blue  * (1.0 - ratio) + second_color.Blue  * ratio))) / 65535)
+            );
+        }
     }
 }
diff --git a/SparkleShare/SparkleSetupController.cs b/SparkleShare/SparkleSetupController.cs
old mode 100644
new mode 100755
index 8d36bc7..317a7c2
--- a/SparkleShare/SparkleSetupController.cs
+++ b/SparkleShare/SparkleSetupController.cs
@@ -16,8 +16,11 @@
 
 
 using System;
+using System.Collections.Generic;
 using System.IO;
 
+using SparkleLib;
+
 namespace SparkleShare {
 
     public enum PageType {
@@ -25,7 +28,8 @@ namespace SparkleShare {
         Add,
         Syncing,
         Error,
-        Finished
+        Finished,
+        Tutorial
     }
 
 
@@ -33,16 +37,49 @@ namespace SparkleShare {
 
         public event ChangePageEventHandler ChangePageEvent;
         public delegate void ChangePageEventHandler (PageType page);
+        
+        public event UpdateProgressBarEventHandler UpdateProgressBarEvent;
+        public delegate void UpdateProgressBarEventHandler (double percentage);
+
+        public event ChangeAddressFieldEventHandler ChangeAddressFieldEvent;
+        public delegate void ChangeAddressFieldEventHandler (string text,
+            string example_text, FieldState state);
+
+        public event ChangePathFieldEventHandler ChangePathFieldEvent;
+        public delegate void ChangePathFieldEventHandler (string text,
+            string example_text, FieldState state);
+
+        public readonly List<SparklePlugin> Plugins = new List<SparklePlugin> ();
+        public SparklePlugin SelectedPlugin;
+
 
-        public string PreviousServer {
+        public int SelectedPluginIndex {
             get {
-                return this.previous_server;
+                return Plugins.IndexOf (SelectedPlugin);
             }
         }
 
-        public string PreviousFolder {
+        public int TutorialPageNumber {
             get {
-                return this.previous_folder;
+                return this.tutorial_page_number;
+            }
+        }
+
+        public string PreviousUrl {
+            get {
+                return this.previous_url;
+            }
+        }
+
+        public string PreviousAddress {
+            get {
+                return this.previous_address;
+            }
+        }
+
+        public string PreviousPath {
+            get {
+                return this.previous_path;
             }
         }
 
@@ -58,70 +95,138 @@ namespace SparkleShare {
             }
         }
 
-        private string previous_server = "";
-        private string previous_folder = "";
-        private string syncing_folder  = "";
+        public string GuessedUserName {
+            get {
+                return Program.Controller.UserName;
+            }
+        }
+
+        public string GuessedUserEmail {
+            get {
+                if (Program.Controller.UserEmail.Equals ("Unknown"))
+                    return "";
+                else
+                    return Program.Controller.UserEmail;
+            }
+        }
+
+
+        private string previous_address  = "";
+        private string previous_path     = "";
+        private string previous_url      = "";
+        private string syncing_folder    = "";
+        private int tutorial_page_number = 1;
         private PageType previous_page;
 
+
         public SparkleSetupController ()
         {
+            string local_plugins_path = SparkleHelpers.CombineMore (
+                Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData),
+                "sparkleshare", "plugins");
+
+            if (Directory.Exists (local_plugins_path))
+                foreach (string xml_file_path in Directory.GetFiles (local_plugins_path, "*.xml"))
+                    Plugins.Add (new SparklePlugin (xml_file_path));
+
+            if (Directory.Exists (Program.Controller.PluginsPath)) {
+                foreach (string xml_file_path in Directory.GetFiles (Program.Controller.PluginsPath, "*.xml")) {
+                    if (xml_file_path.EndsWith ("own-server.xml"))
+                        Plugins.Insert (0, new SparklePlugin (xml_file_path));
+                    else
+                        Plugins.Add (new SparklePlugin (xml_file_path));
+                }
+            }
+
+            SelectedPlugin = Plugins [0];
+
             ChangePageEvent += delegate (PageType page) {
                 this.previous_page = page;
             };
         }
 
 
-        public void ShowAddPage ()
+        public void ShowSetupPage ()
         {
            if (ChangePageEvent != null)
-               ChangePageEvent (PageType.Add);
+               ChangePageEvent (PageType.Setup);
         }
 
 
-        public void ShowSetupPage ()
+        public void SetupPageCompleted (string full_name, string email)
         {
-           if (ChangePageEvent != null)
-               ChangePageEvent (PageType.Setup);
+            Program.Controller.UserName  = full_name;
+            Program.Controller.UserEmail = email;
+
+            Program.Controller.GenerateKeyPair ();
+            Program.Controller.UpdateState ();
+
+            if (ChangePageEvent != null)
+                ChangePageEvent (PageType.Tutorial);
         }
 
 
-        public void SetupPageCompleted (string full_name, string email)
+        public void TutorialPageCompleted ()
         {
-            SparkleShare.Controller.UserName  = full_name;
-            SparkleShare.Controller.UserEmail = email;
+            this.tutorial_page_number++;
+
+            if (ChangePageEvent != null)
+                ChangePageEvent (PageType.Tutorial);
+        }
+
 
-            SparkleShare.Controller.GenerateKeyPair ();
-            SparkleShare.Controller.UpdateState ();
+        public void TutorialSkipped ()
+        {
+            this.tutorial_page_number = 4;
 
             if (ChangePageEvent != null)
+                ChangePageEvent (PageType.Tutorial);
+        }
+
+
+        public void ShowAddPage ()
+        {
+            if (ChangePageEvent != null)
                 ChangePageEvent (PageType.Add);
+
+            SelectedPluginChanged (SelectedPluginIndex);
         }
 
 
-        public void AddPageCompleted (string server, string folder_name)
+        public void AddPageCompleted (string address, string path)
         {
-            this.syncing_folder = Path.GetFileNameWithoutExtension (folder_name);
-            this.previous_server = server;
-            this.previous_folder = folder_name;
+            this.syncing_folder   = Path.GetFileNameWithoutExtension (path);
+            this.previous_address = address;
+            this.previous_path    = path;
 
             if (ChangePageEvent != null)
                 ChangePageEvent (PageType.Syncing);
 
-            SparkleShare.Controller.FolderFetched += delegate {
+            Program.Controller.FolderFetched += delegate {
                 if (ChangePageEvent != null)
                     ChangePageEvent (PageType.Finished);
 
-                this.syncing_folder = "";
+                this.previous_address = "";
+                this.syncing_folder   = "";
+                this.previous_url     = "";
+                SelectedPlugin        = Plugins [0];
             };
 
-            SparkleShare.Controller.FolderFetchError += delegate {
+            Program.Controller.FolderFetchError += delegate (string remote_url) {
+                this.previous_url = remote_url;
+
                 if (ChangePageEvent != null)
                     ChangePageEvent (PageType.Error);
 
                 this.syncing_folder = "";
             };
+            
+            Program.Controller.FolderFetching += delegate (double percentage) {
+                if (UpdateProgressBarEvent != null)
+                    UpdateProgressBarEvent (percentage);
+            };
 
-            SparkleShare.Controller.FetchFolder (server, folder_name);
+            Program.Controller.FetchFolder (address, path);
         }
 
 
@@ -132,11 +237,57 @@ namespace SparkleShare {
         }
 
 
+        public void SyncingCancelled ()
+        {
+            Program.Controller.StopFetcher ();
+
+            if (ChangePageEvent != null)
+                ChangePageEvent (PageType.Add);
+        }
+
+
         public void FinishedPageCompleted ()
         {
-            this.previous_server = "";
-            this.previous_folder = "";
-            SparkleShare.Controller.UpdateState ();
+            this.previous_address = "";
+            this.previous_path    = "";
+            Program.Controller.UpdateState ();
+        }
+
+
+        public void SelectedPluginChanged (int plugin_index)
+        {
+            SelectedPlugin = Plugins [plugin_index];
+
+            if (SelectedPlugin.Address != null) {
+                if (ChangeAddressFieldEvent != null)
+                    ChangeAddressFieldEvent (SelectedPlugin.Address, "", FieldState.Disabled);
+
+            } else if (SelectedPlugin.AddressExample != null) {
+                if (ChangeAddressFieldEvent != null)
+                    ChangeAddressFieldEvent ("", SelectedPlugin.AddressExample, FieldState.Enabled);
+            } else {
+                if (ChangeAddressFieldEvent != null)
+                    ChangeAddressFieldEvent ("", "", FieldState.Enabled);
+            }
+
+            if (SelectedPlugin.Path != null) {
+                if (ChangePathFieldEvent != null)
+                    ChangePathFieldEvent (SelectedPlugin.Path, "", FieldState.Disabled);
+
+            } else if (SelectedPlugin.PathExample != null) {
+                if (ChangePathFieldEvent != null)
+                    ChangePathFieldEvent ("", SelectedPlugin.PathExample, FieldState.Enabled);
+
+            } else {
+                if (ChangePathFieldEvent != null)
+                    ChangePathFieldEvent ("", "", FieldState.Enabled);
+            }
         }
     }
+
+
+    public enum FieldState {
+        Enabled,
+        Disabled
+    }
 }
diff --git a/SparkleShare/SparkleSetupWindow.cs b/SparkleShare/SparkleSetupWindow.cs
old mode 100644
new mode 100755
index 8ccac09..3ef464c
--- a/SparkleShare/SparkleSetupWindow.cs
+++ b/SparkleShare/SparkleSetupWindow.cs
@@ -24,7 +24,6 @@ using System.Timers;
 
 using Gtk;
 using Mono.Unix;
-using SparkleLib;
 
 namespace SparkleShare {
 
@@ -71,17 +70,13 @@ namespace SparkleShare {
 
                 EventBox box = new EventBox ();
                 Gdk.Color bg_color = new Gdk.Color ();
-                Gdk.Color.Parse ("#2e3336", ref bg_color);
+                Gdk.Color.Parse ("#000", ref bg_color);
                 box.ModifyBg (StateType.Normal, bg_color);
 
-                    string image_path = SparkleHelpers.CombineMore (Defines.DATAROOTDIR, "sparkleshare",
-                        "pixmaps", "side-splash.png");
+                Image side_splash = SparkleUIHelpers.GetImage ("side-splash.png");
+                side_splash.Yalign = 1;
 
-                    Image side_splash = new Image (image_path) {
-                        Yalign = 1
-                    };
-
-                box.Add (side_splash);
+            box.Add (side_splash);
 
             HBox.PackStart (box, false, false, 0);
             HBox.PackStart (VBox, true, true, 0);
@@ -126,7 +121,7 @@ namespace SparkleShare {
                 layout_vertical.PackStart (description, false, false, 21);
 
             if (widget != null)
-                layout_vertical.PackStart (widget, true, true, 21);
+                layout_vertical.PackStart (widget, true, true, 0);
 
             Wrapper.PackStart (layout_vertical, true, true, 0);
             ShowAll ();
@@ -149,9 +144,7 @@ namespace SparkleShare {
         
         new public void ShowAll ()
         {
-
-         Present ();
-
+            Present ();
             base.ShowAll ();
         }
 
diff --git a/SparkleShare/SparkleSpinner.cs b/SparkleShare/SparkleSpinner.cs
old mode 100644
new mode 100755
diff --git a/SparkleShare/SparkleStatusIcon.cs b/SparkleShare/SparkleStatusIcon.cs
old mode 100644
new mode 100755
index 8090feb..7e4ed55
--- a/SparkleShare/SparkleStatusIcon.cs
+++ b/SparkleShare/SparkleStatusIcon.cs
@@ -31,6 +31,8 @@ namespace SparkleShare {
     // user's notification area
     public class SparkleStatusIcon {
 
+        public SparkleStatusIconController Controller = new SparkleStatusIconController ();
+
         private Timer Animation;
         private Gdk.Pixbuf [] AnimationFrames;
         private int FrameNumber;
@@ -53,7 +55,7 @@ namespace SparkleShare {
         public SparkleStatusIcon ()
         {
             AnimationFrames = CreateAnimationFrames ();
-            Animation = CreateAnimation ();
+            Animation       = CreateAnimation ();
 
             #if HAVE_APP_INDICATOR
             this.indicator = new ApplicationIndicator ("sparkleshare",
@@ -66,45 +68,63 @@ namespace SparkleShare {
 
             this.status_icon.Activate += ShowMenu; // Primary mouse button click
             this.status_icon.PopupMenu += ShowMenu; // Secondary mouse button click
+            this.status_icon.Pixbuf = AnimationFrames [0];
             #endif
 
-            SetNormalState ();
+            if (Controller.Folders.Length == 0)
+                StateText = _("Welcome to SparkleShare!");
+            else
+                StateText = _("Up to date") + " — " + Controller.FolderSize;
+
             CreateMenu ();
 
-            SparkleShare.Controller.FolderSizeChanged += delegate {
+            Controller.UpdateMenuEvent += delegate (IconState state) {
                 Application.Invoke (delegate {
-                    if (!Animation.Enabled)
-                        SetNormalState ();
+                        switch (state) {
+                        case IconState.Idle:
 
-                    UpdateMenu ();
-                });
-            };
-            
-            SparkleShare.Controller.FolderListChanged += delegate {
-                Application.Invoke (delegate {
-                    SetNormalState ();
-                    CreateMenu ();
-                });
-            };
+                            Animation.Stop ();
 
-            SparkleShare.Controller.OnIdle += delegate {
-                Application.Invoke (delegate {
-                    SetNormalState ();
-                    UpdateMenu ();
-                });
-            };
+                            if (Controller.Folders.Length == 0)
+                                StateText = _("Welcome to SparkleShare!");
+                            else
+                                StateText = _("Up to date") + " — " + Controller.FolderSize;
 
-            SparkleShare.Controller.OnSyncing += delegate {
-                Application.Invoke (delegate {
-                    SetAnimationState ();
-                    UpdateMenu ();
-                });
-            };
+                            #if HAVE_APP_INDICATOR
+                            this.indicator.IconName = "process-syncing-sparkleshare-i";
+                            #else
+                            this.status_icon.Pixbuf = AnimationFrames [0];
+                            #endif
 
-            SparkleShare.Controller.OnError += delegate {
-                Application.Invoke (delegate {
-                    SetNormalState (true);
-                    UpdateMenu ();
+                            UpdateStateText ();
+                            CreateMenu ();
+
+                            break;
+
+                        case IconState.Syncing:
+
+                            StateText = _("Syncing…");
+                            UpdateStateText (); // TODO
+
+                            if (!Animation.Enabled)
+                                Animation.Start ();
+
+                            break;
+
+                        case IconState.Error:
+
+                            StateText = _("Not everything is synced");
+                            UpdateStateText ();
+                            CreateMenu ();
+    
+                            #if HAVE_APP_INDICATOR
+                            this.indicator.IconName = "sparkleshare-syncing-error";
+                            #else
+                            this.status_icon.Pixbuf = SparkleUIHelpers.GetIcon ("sparkleshare-syncing-error", 24);
+                            #endif
+
+                            break;
+                        }
                 });
             };
         }
@@ -176,18 +196,18 @@ namespace SparkleShare {
                 };
 
                 folder_item.Activated += delegate {
-                    SparkleShare.Controller.OpenSparkleShareFolder ();
+                    Program.Controller.OpenSparkleShareFolder ();
                 };
                 
             Menu.Add (folder_item);
 
-                if (SparkleShare.Controller.Folders.Count > 0) {
+                if (Program.Controller.Folders.Count > 0) {
             
                     // Creates a menu item for each repository with a link to their logs
-                    foreach (string folder_name in SparkleShare.Controller.Folders) {
+                    foreach (string folder_name in Program.Controller.Folders) {
                         Gdk.Pixbuf folder_icon;
 
-                        if (SparkleShare.Controller.UnsyncedFolders.Contains (folder_name)) {
+                        if (Program.Controller.UnsyncedFolders.Contains (folder_name)) {
                             folder_icon = IconTheme.Default.LoadIcon ("dialog-error", 16,
                                 IconLookupFlags.GenericFallback);
 
@@ -205,7 +225,7 @@ namespace SparkleShare {
                     }
 
                 } else {
-                    MenuItem no_folders_item = new MenuItem (_("No Remote Folders Yet")) {
+                    MenuItem no_folders_item = new MenuItem (_("No projects yet")) {
                         Sensitive   = false
                     };
 
@@ -215,9 +235,9 @@ namespace SparkleShare {
                 Menu.Add (new SeparatorMenuItem ());
 
                 // Opens the wizard to add a new remote folder
-                MenuItem sync_item = new MenuItem (_("Add Remote Folder…"));
+                MenuItem sync_item = new MenuItem (_("Add Hosted Project…"));
             
-                if (SparkleShare.Controller.FirstRun)
+                if (Program.Controller.FirstRun)
                     sync_item.Sensitive = false;
 
                 sync_item.Activated += delegate {
@@ -239,9 +259,9 @@ namespace SparkleShare {
             Menu.Add (sync_item);
             Menu.Add (new SeparatorMenuItem ());
 
-            MenuItem recent_events_item = new MenuItem (_("Show Recent Events"));
+            MenuItem recent_events_item = new MenuItem (_("Open Recent Events"));
             
-                if (SparkleShare.Controller.Folders.Count < 1)
+                if (Program.Controller.Folders.Count < 1)
                     recent_events_item.Sensitive = false;
 
                 recent_events_item.Activated += delegate {
@@ -258,13 +278,13 @@ namespace SparkleShare {
 
             MenuItem notify_item;
                                                              
-                if (SparkleShare.Controller.NotificationsEnabled)
+                if (Program.Controller.NotificationsEnabled)
                     notify_item = new MenuItem (_("Turn Notifications Off"));
                 else
                     notify_item = new MenuItem (_("Turn Notifications On"));
 
                 notify_item.Activated += delegate {
-                    SparkleShare.Controller.ToggleNotifications ();
+                    Program.Controller.ToggleNotifications ();
                     CreateMenu ();
                 };
 
@@ -291,7 +311,7 @@ namespace SparkleShare {
                 MenuItem quit_item = new MenuItem (_("Quit"));
 
                 quit_item.Activated += delegate {
-                    SparkleShare.Controller.Quit ();
+                    Program.Controller.Quit ();
                 };
 
             Menu.Add (quit_item);
@@ -308,12 +328,12 @@ namespace SparkleShare {
         private EventHandler OpenFolderDelegate (string name)
         {
             return delegate {
-                SparkleShare.Controller.OpenSparkleShareFolder (name);
+                Program.Controller.OpenSparkleShareFolder (name);
             };
         }
 
 
-        public void UpdateMenu ()
+        public void UpdateStateText ()
         {
             ((Menu.Children [0] as MenuItem).Child as Label).Text = StateText;
             Menu.ShowAll ();
@@ -333,63 +353,6 @@ namespace SparkleShare {
             StatusIcon.PositionMenu (menu, out x, out y, out push_in, this.status_icon.Handle);
         }
         #endif
-
-        // The state when there's nothing going on
-        private void SetNormalState ()
-        {
-            SetNormalState (false);
-        }
-
-
-        // The state when there's nothing going on
-        private void SetNormalState (bool error)
-        {
-            Animation.Stop ();
-
-            if (SparkleShare.Controller.Folders.Count == 0) {
-                StateText = _("Welcome to SparkleShare!");
-
-                Application.Invoke (delegate {
-                    #if HAVE_APP_INDICATOR
-                    this.indicator.IconName = "process-syncing-sparkleshare-i";
-                    #else
-                    this.status_icon.Pixbuf = AnimationFrames [0];
-                    #endif
-                });
-
-            } else {
-                if (error) {
-                    StateText = _("Not everything is synced");
-
-                    Application.Invoke (delegate {
-                        #if HAVE_APP_INDICATOR
-                        this.indicator.IconName = "sparkleshare-syncing-error";
-                        #else
-                        this.status_icon.Pixbuf = SparkleUIHelpers.GetIcon ("sparkleshare-syncing-error", 24);
-                        #endif
-                    });
-                } else {
-                    StateText = _("Up to date") + "  (" + SparkleShare.Controller.FolderSize + ")";
-                    Application.Invoke (delegate {
-                        #if HAVE_APP_INDICATOR
-                        this.indicator.IconName = "process-syncing-sparkleshare-i";
-                        #else
-                        this.status_icon.Pixbuf = AnimationFrames [0];
-                        #endif
-                    });
-                }
-            }
-        }
-
-
-        // The state when animating
-        private void SetAnimationState ()
-        {
-            StateText = _("Syncing…");
-
-            if (!Animation.Enabled)
-                Animation.Start ();
-        }
     }
 
     
diff --git a/SparkleShare/SparkleStatusIconController.cs b/SparkleShare/SparkleStatusIconController.cs
old mode 100644
new mode 100755
index 132d6b4..6fc5478
--- a/SparkleShare/SparkleStatusIconController.cs
+++ b/SparkleShare/SparkleStatusIconController.cs
@@ -38,29 +38,29 @@ namespace SparkleShare {
 
         public string [] Folders {
             get {
-                return SparkleShare.Controller.Folders.ToArray ();
+                return Program.Controller.Folders.ToArray ();
             }
         }
 
         public string FolderSize {
             get {
-                return SparkleShare.Controller.FolderSize;
+                return Program.Controller.FolderSize;
             }
         }
 
         public SparkleStatusIconController ()
         {
-            SparkleShare.Controller.FolderSizeChanged += delegate {
+            Program.Controller.FolderSizeChanged += delegate {
                 if (UpdateMenuEvent != null)
                     UpdateMenuEvent (CurrentState);
             };
 
-            SparkleShare.Controller.FolderListChanged += delegate {
+            Program.Controller.FolderListChanged += delegate {
                 if (UpdateMenuEvent != null)
                     UpdateMenuEvent (CurrentState);
             };
 
-            SparkleShare.Controller.OnIdle += delegate {
+            Program.Controller.OnIdle += delegate {
                 if (CurrentState != IconState.Error)
                     CurrentState = IconState.Idle;
 
@@ -68,7 +68,7 @@ namespace SparkleShare {
                     UpdateMenuEvent (CurrentState);
             };
 
-            SparkleShare.Controller.OnSyncing += delegate {
+            Program.Controller.OnSyncing += delegate {
                 CurrentState = IconState.Syncing;
 
                 // TODO up down both
@@ -77,7 +77,7 @@ namespace SparkleShare {
                     UpdateMenuEvent (IconState.Syncing);
             };
 
-            SparkleShare.Controller.OnError += delegate {
+            Program.Controller.OnError += delegate {
                 CurrentState = IconState.Error;
 
                 if (UpdateMenuEvent != null)
diff --git a/SparkleShare/SparkleUI.cs b/SparkleShare/SparkleUI.cs
old mode 100644
new mode 100755
index 8f4d971..96ec23f
--- a/SparkleShare/SparkleUI.cs
+++ b/SparkleShare/SparkleUI.cs
@@ -37,7 +37,8 @@ namespace SparkleShare {
         public static SparkleBubbles Bubbles;
         public static SparkleSetup Setup;
         public static SparkleAbout About;
-        public static string AssetsPath = Path.Combine (Defines.PREFIX, "share", "sparkleshare");
+        public static string AssetsPath =
+            new string [] {Defines.PREFIX, "share", "sparkleshare"}.Combine ();
 
 
         // Short alias for the translations
@@ -58,12 +59,12 @@ namespace SparkleShare {
             StatusIcon = new SparkleStatusIcon ();
             Bubbles    = new SparkleBubbles ();
             
-            if (SparkleShare.Controller.FirstRun) {
+            if (Program.Controller.FirstRun) {
                 Setup = new SparkleSetup ();
                 Setup.Controller.ShowSetupPage ();
             }
             
-            SparkleShare.Controller.OnQuitWhileSyncing += delegate {
+            Program.Controller.OnQuitWhileSyncing += delegate {
                 // TODO: Pop up a warning when quitting whilst syncing
             };
         }
diff --git a/SparkleShare/SparkleUIHelpers.cs b/SparkleShare/SparkleUIHelpers.cs
old mode 100644
new mode 100755
index dd347b3..2ad40ff
--- a/SparkleShare/SparkleUIHelpers.cs
+++ b/SparkleShare/SparkleUIHelpers.cs
@@ -61,6 +61,15 @@ namespace SparkleShare {
         }
 
 
+        public static Image GetImage (string name)
+        {
+            string image_path = SparkleHelpers.CombineMore (Defines.DATAROOTDIR, "sparkleshare",
+                "pixmaps", name);
+
+            return new Image (image_path);
+        }
+
+
         // Converts a Gdk RGB color to a hex value.
         // Example: from "rgb:0,0,0" to "#000000"
         public static string GdkColorToHex (Gdk.Color color)
diff --git a/SparkleShare/sparkleshare.desktop b/SparkleShare/sparkleshare.desktop
old mode 100644
new mode 100755
diff --git a/SparkleShare/sparkleshare.in b/SparkleShare/sparkleshare.in
old mode 100644
new mode 100755
index 88302a5..3e71f40
--- a/SparkleShare/sparkleshare.in
+++ b/SparkleShare/sparkleshare.in
@@ -1,5 +1,10 @@
 #!/bin/bash
 
+if [[ $UID -eq 0 ]]; then
+  echo "Cannot run as root. Things would go utterly wrong."
+  exit 1
+fi
+
 if [ "$XDG_RUNTIME_DIR" ]; then
   pidfile=${XDG_RUNTIME_DIR}/sparkleshare.pid
 else
diff --git a/aclocal.m4 b/aclocal.m4
index 7b95c45..cd76d68 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -19,6 +19,63 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
+dnl Do not call GNOME_DOC_DEFINES directly.  It is split out from
+dnl GNOME_DOC_INIT to allow gnome-doc-utils to bootstrap off itself.
+AC_DEFUN([GNOME_DOC_DEFINES],
+[
+AC_ARG_WITH([help-dir],
+  AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),,
+  [with_help_dir='${datadir}/gnome/help'])
+HELP_DIR="$with_help_dir"
+AC_SUBST(HELP_DIR)
+
+AC_ARG_WITH([omf-dir],
+  AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),,
+  [with_omf_dir='${datadir}/omf'])
+OMF_DIR="$with_omf_dir"
+AC_SUBST(OMF_DIR)
+
+AC_ARG_WITH([help-formats],
+  AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),,
+  [with_help_formats=''])
+DOC_USER_FORMATS="$with_help_formats"
+AC_SUBST(DOC_USER_FORMATS)
+
+AC_ARG_ENABLE([scrollkeeper],
+	[AC_HELP_STRING([--disable-scrollkeeper],
+			[do not make updates to the scrollkeeper database])],,
+	enable_scrollkeeper=yes)
+AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"])
+
+dnl disable scrollkeeper automatically for distcheck
+DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
+AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
+
+AM_CONDITIONAL([HAVE_GNOME_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"])
+])
+
+# GNOME_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+#
+AC_DEFUN([GNOME_DOC_INIT],
+[AC_REQUIRE([AC_PROG_LN_S])dnl
+
+ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1])
+
+AC_MSG_CHECKING([gnome-doc-utils >= $gdu_cv_version_required])
+PKG_CHECK_EXISTS([gnome-doc-utils >= $gdu_cv_version_required],
+	[gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no])
+
+if test "$gdu_cv_have_gdu" = "yes"; then
+	AC_MSG_RESULT([yes])
+	ifelse([$2],,[:],[$2])
+else
+	AC_MSG_RESULT([no])
+	ifelse([$3],,[AC_MSG_ERROR([gnome-doc-utils >= $gdu_cv_version_required not found])],[$3])
+fi
+
+GNOME_DOC_DEFINES
+])
+
 
 dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
 # serial 40 IT_PROG_INTLTOOL
@@ -274,7 +331,8 @@ AC_DEFUN([AM_NLS],
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -320,7 +378,8 @@ m4_define([_PKG_CONFIG],
     pkg_cv_[]$1="$$1"
  elif test -n "$PKG_CONFIG"; then
     PKG_CHECK_EXISTS([$3],
-                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
 		     [pkg_failed=yes])
  else
     pkg_failed=untried
@@ -368,9 +427,9 @@ if test $pkg_failed = yes; then
    	AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -383,7 +442,7 @@ $$1_PKG_ERRORS
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT])
+_PKG_TEXT])[]dnl
         ])
 elif test $pkg_failed = untried; then
      	AC_MSG_RESULT([no])
@@ -394,7 +453,7 @@ path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
@@ -1391,7 +1450,6 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
-m4_include([build/m4/gnome-doc-utils.m4])
 m4_include([build/m4/shave/shave.m4])
 m4_include([build/m4/shamrock/expansions.m4])
 m4_include([build/m4/shamrock/gnome-doc.m4])
diff --git a/build/Makefile.am b/build/Makefile.am
old mode 100644
new mode 100755
diff --git a/build/Makefile.in b/build/Makefile.in
index cac6989..6a437d8 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -34,8 +34,7 @@ POST_UNINSTALL = :
 subdir = build
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -115,6 +114,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -134,6 +135,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -147,6 +149,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -158,6 +161,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -168,6 +173,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
diff --git a/build/build.environment.mk b/build/build.environment.mk
old mode 100644
new mode 100755
diff --git a/build/build.mk b/build/build.mk
old mode 100644
new mode 100755
diff --git a/build/build.rules.mk b/build/build.rules.mk
old mode 100644
new mode 100755
diff --git a/build/m4/Makefile.am b/build/m4/Makefile.am
old mode 100644
new mode 100755
diff --git a/build/m4/Makefile.in b/build/m4/Makefile.in
index 96a4cf4..01a85f5 100644
--- a/build/m4/Makefile.in
+++ b/build/m4/Makefile.in
@@ -34,8 +34,7 @@ POST_UNINSTALL = :
 subdir = build/m4
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -75,6 +74,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -94,6 +95,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -107,6 +109,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -118,6 +121,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -128,6 +133,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
diff --git a/build/m4/gnome-doc-utils.m4 b/build/m4/gnome-doc-utils.m4
deleted file mode 100644
index 3fc25ec..0000000
--- a/build/m4/gnome-doc-utils.m4
+++ /dev/null
@@ -1 +0,0 @@
-AC_DEFUN([GNOME_DOC_INIT], [AC_MSG_NOTICE([])])
diff --git a/build/m4/shamrock/expansions.m4 b/build/m4/shamrock/expansions.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/gnome-doc.m4 b/build/m4/shamrock/gnome-doc.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/i18n.m4 b/build/m4/shamrock/i18n.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/mono.m4 b/build/m4/shamrock/mono.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/monodoc.m4 b/build/m4/shamrock/monodoc.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/nunit.m4 b/build/m4/shamrock/nunit.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/programs.m4 b/build/m4/shamrock/programs.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shamrock/util.m4 b/build/m4/shamrock/util.m4
old mode 100644
new mode 100755
diff --git a/build/m4/shave/shave-libtool.in b/build/m4/shave/shave-libtool.in
old mode 100644
new mode 100755
diff --git a/build/m4/shave/shave.in b/build/m4/shave/shave.in
old mode 100644
new mode 100755
diff --git a/build/m4/shave/shave.m4 b/build/m4/shave/shave.m4
old mode 100644
new mode 100755
diff --git a/build/m4/sparkleshare/gtk-sharp.m4 b/build/m4/sparkleshare/gtk-sharp.m4
old mode 100644
new mode 100755
diff --git a/build/m4/sparkleshare/nautilus-python.m4 b/build/m4/sparkleshare/nautilus-python.m4
old mode 100644
new mode 100755
index 1256f36..cec0a72
--- a/build/m4/sparkleshare/nautilus-python.m4
+++ b/build/m4/sparkleshare/nautilus-python.m4
@@ -1,14 +1,34 @@
 AC_DEFUN([SPARKLESHARE_NAUTILUS_PYTHON],
 [
-	PKG_CHECK_MODULES(NAUTILUS_PYTHON, nautilus-python, have_nautilus_python=yes, have_nautilus_python=no)
-	if test "x$have_nautilus_python" = "xyes"; then
-		NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
-		AC_SUBST(NAUTILUS_PREFIX)
-		NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
-		AC_SUBST(NAUTILUS_PYTHON_DIR)
-		AM_CONDITIONAL(NAUTILUS_EXTENSION_ENABLED, true)
+        AC_ARG_ENABLE(nautilus-extension,
+           AC_HELP_STRING([--disable-nautilus-extension],[Do not install the Nautilus plugin]), enable_nautilus_extension=$enableval, enable_nautilus_extension=yes )
+        if test x$enable_nautilus_extension = xyes; then
+		PKG_CHECK_MODULES(NAUTILUS_PYTHON, nautilus-python < 1.1, have_nautilus2_python=yes, have_nautilus2_python=no)
+		if test "x$have_nautilus2_python" = "xyes"; then
+			NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
+			AC_SUBST(NAUTILUS_PREFIX)
+			NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
+			AC_SUBST(NAUTILUS_PYTHON_DIR)
+			AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, true)
+		else
+			AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, false)
+		fi
+		PKG_CHECK_MODULES(NAUTILUS3_PYTHON, nautilus-python >= 1.1, have_nautilus3_python=yes, have_nautilus3_python=no)
+		if test "x$have_nautilus3_python" = "xyes"; then
+			NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
+			AC_SUBST(NAUTILUS_PREFIX)
+			NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
+			AC_SUBST(NAUTILUS_PYTHON_DIR)
+			AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, true)
+		else
+			AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, false)
+		fi
 	else
-		AM_CONDITIONAL(NAUTILUS_EXTENSION_ENABLED, false)
+		have_nautilus2_python="disabled"
+		have_nautilus3_python="disabled"
 	fi
+
+	AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes")
+	AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes")
 ])
 
diff --git a/build/m4/sparkleshare/notify-sharp.m4 b/build/m4/sparkleshare/notify-sharp.m4
old mode 100644
new mode 100755
diff --git a/build/m4/sparkleshare/smartirc4net.m4 b/build/m4/sparkleshare/smartirc4net.m4
old mode 100644
new mode 100755
diff --git a/configure b/configure
index 366de1c..b31ace2 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for SparkleShare 0.2.5.
+# Generated by GNU Autoconf 2.68 for SparkleShare 0.4.0.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -556,8 +556,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='SparkleShare'
 PACKAGE_TARNAME='sparkleshare'
-PACKAGE_VERSION='0.2.5'
-PACKAGE_STRING='SparkleShare 0.2.5'
+PACKAGE_VERSION='0.4.0'
+PACKAGE_STRING='SparkleShare 0.4.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -577,8 +577,12 @@ SED
 AM_MAKEFLAGS
 MAKEFLAGS
 shavedir
-NAUTILUS_EXTENSION_ENABLED_FALSE
-NAUTILUS_EXTENSION_ENABLED_TRUE
+NAUTILUS3_EXTENSION_ENABLED_FALSE
+NAUTILUS3_EXTENSION_ENABLED_TRUE
+NAUTILUS3_PYTHON_LIBS
+NAUTILUS3_PYTHON_CFLAGS
+NAUTILUS2_EXTENSION_ENABLED_FALSE
+NAUTILUS2_EXTENSION_ENABLED_TRUE
 NAUTILUS_PYTHON_DIR
 NAUTILUS_PREFIX
 NAUTILUS_PYTHON_LIBS
@@ -630,6 +634,11 @@ MONO_MODULE_LIBS
 MONO_MODULE_CFLAGS
 HAVE_GNOME_DOC_UTILS_FALSE
 HAVE_GNOME_DOC_UTILS_TRUE
+DISTCHECK_CONFIGURE_FLAGS
+DOC_USER_FORMATS
+OMF_DIR
+HELP_DIR
+LN_S
 ENABLE_SK_FALSE
 ENABLE_SK_TRUE
 GNOME_DOC_UTILS_LIBS
@@ -760,11 +769,16 @@ enable_maintainer_mode
 enable_nls
 enable_dependency_tracking
 enable_user_help
+with_help_dir
+with_omf_dir
+with_help_formats
+enable_scrollkeeper
 enable_debug
 enable_release
 enable_gtkui
 enable_appindicator
 enable_tests
+enable_nautilus_extension
 enable_shave
 '
       ac_precious_vars='build_alias
@@ -801,7 +815,9 @@ APP_INDICATOR_LIBS
 NUNIT_CFLAGS
 NUNIT_LIBS
 NAUTILUS_PYTHON_CFLAGS
-NAUTILUS_PYTHON_LIBS'
+NAUTILUS_PYTHON_LIBS
+NAUTILUS3_PYTHON_CFLAGS
+NAUTILUS3_PYTHON_LIBS'
 ac_subdirs_all='SmartIrc4net'
 
 # Initialize some variables set by options.
@@ -1344,7 +1360,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures SparkleShare 0.2.5 to adapt to many kinds of systems.
+\`configure' configures SparkleShare 0.4.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1410,7 +1426,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of SparkleShare 0.2.5:";;
+     short | recursive ) echo "Configuration of SparkleShare 0.4.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1424,14 +1440,25 @@ Optional Features:
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
   --enable-user-help      Enable building the user-help [[default=auto]]
+  --disable-scrollkeeper  do not make updates to the scrollkeeper database
   --enable-debug          Use 'DEBUG' Configuration [default=YES]
   --enable-release        Use 'RELEASE' Configuration [default=NO]
   --disable-gtkui         Do not build the Gtk+ user interface
   --enable-appindicator=[no/auto/yes]
                           Build support for application indicators
   --enable-tests          Enable NUnit tests
+  --disable-nautilus-extension
+                          Do not install the Nautilus plugin
   --enable-shave          use shave to make the build pretty [[default=yes]]
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-help-dir=DIR     path to help docs
+  --with-omf-dir=DIR      path to OMF files
+  --with-help-formats=FORMATS
+                          list of formats
+
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
@@ -1492,6 +1519,10 @@ Some influential environment variables:
               C compiler flags for NAUTILUS_PYTHON, overriding pkg-config
   NAUTILUS_PYTHON_LIBS
               linker flags for NAUTILUS_PYTHON, overriding pkg-config
+  NAUTILUS3_PYTHON_CFLAGS
+              C compiler flags for NAUTILUS3_PYTHON, overriding pkg-config
+  NAUTILUS3_PYTHON_LIBS
+              linker flags for NAUTILUS3_PYTHON, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1559,7 +1590,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-SparkleShare configure 0.2.5
+SparkleShare configure 0.4.0
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1727,7 +1758,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by SparkleShare $as_me 0.2.5, which was
+It was created by SparkleShare $as_me 0.4.0, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2542,7 +2573,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='sparkleshare'
- VERSION='0.2.5'
+ VERSION='0.4.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2687,7 +2718,7 @@ fi
 
 
 
-ASM_VERSION=0.2.5
+ASM_VERSION=0.4.0
 
 
 # Extract the first word of "pkg-config", so it can be a program name with args.
@@ -4335,6 +4366,7 @@ _ACEOF
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -4448,6 +4480,17 @@ $as_echo "no" >&6; }
 		PKG_CONFIG=""
 	fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
 
     # Check whether --enable-user-help was given.
 if test "${enable_user_help+set}" = set; then :
@@ -4473,6 +4516,7 @@ if test -n "$GNOME_DOC_UTILS_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GNOME_DOC_UTILS_CFLAGS=`$PKG_CONFIG --cflags "gnome-doc-utils" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4489,6 +4533,7 @@ if test -n "$GNOME_DOC_UTILS_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GNOME_DOC_UTILS_LIBS=`$PKG_CONFIG --libs "gnome-doc-utils" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4508,9 +4553,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-doc-utils" 2>&1`
+	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnome-doc-utils" 2>&1`
         else
-	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-doc-utils" 2>&1`
+	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnome-doc-utils" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GNOME_DOC_UTILS_PKG_ERRORS" >&5
@@ -4543,6 +4588,7 @@ if test -n "$GNOME_DOC_UTILS_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GNOME_DOC_UTILS_CFLAGS=`$PKG_CONFIG --cflags "gnome-doc-utils" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4559,6 +4605,7 @@ if test -n "$GNOME_DOC_UTILS_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GNOME_DOC_UTILS_LIBS=`$PKG_CONFIG --libs "gnome-doc-utils" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4578,9 +4625,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-doc-utils" 2>&1`
+	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnome-doc-utils" 2>&1`
         else
-	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-doc-utils" 2>&1`
+	        GNOME_DOC_UTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnome-doc-utils" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GNOME_DOC_UTILS_PKG_ERRORS" >&5
@@ -4595,7 +4642,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables GNOME_DOC_UTILS_CFLAGS
 and GNOME_DOC_UTILS_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -4611,7 +4657,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	GNOME_DOC_UTILS_CFLAGS=$pkg_cv_GNOME_DOC_UTILS_CFLAGS
 	GNOME_DOC_UTILS_LIBS=$pkg_cv_GNOME_DOC_UTILS_LIBS
@@ -4632,8 +4677,95 @@ else
 fi
 
     if test "x$enable_user_help" = "xyes"; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
-$as_echo "$as_me: " >&6;}
+
+gdu_cv_version_required=0.17.3
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking gnome-doc-utils >= $gdu_cv_version_required" >&5
+$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; }
+if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  gdu_cv_have_gdu=yes
+else
+  gdu_cv_have_gdu=no
+fi
+
+if test "$gdu_cv_have_gdu" = "yes"; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	enable_user_help=yes
+else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	enable_user_help=no
+fi
+
+
+
+# Check whether --with-help-dir was given.
+if test "${with_help_dir+set}" = set; then :
+  withval=$with_help_dir;
+else
+  with_help_dir='${datadir}/gnome/help'
+fi
+
+HELP_DIR="$with_help_dir"
+
+
+
+# Check whether --with-omf-dir was given.
+if test "${with_omf_dir+set}" = set; then :
+  withval=$with_omf_dir;
+else
+  with_omf_dir='${datadir}/omf'
+fi
+
+OMF_DIR="$with_omf_dir"
+
+
+
+# Check whether --with-help-formats was given.
+if test "${with_help_formats+set}" = set; then :
+  withval=$with_help_formats;
+else
+  with_help_formats=''
+fi
+
+DOC_USER_FORMATS="$with_help_formats"
+
+
+# Check whether --enable-scrollkeeper was given.
+if test "${enable_scrollkeeper+set}" = set; then :
+  enableval=$enable_scrollkeeper;
+else
+  enable_scrollkeeper=yes
+fi
+
+ if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then
+  ENABLE_SK_TRUE=
+  ENABLE_SK_FALSE='#'
+else
+  ENABLE_SK_TRUE='#'
+  ENABLE_SK_FALSE=
+fi
+
+
+DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
+
+
+ if test "$gdu_cv_have_gdu" = "yes"; then
+  HAVE_GNOME_DOC_UTILS_TRUE=
+  HAVE_GNOME_DOC_UTILS_FALSE='#'
+else
+  HAVE_GNOME_DOC_UTILS_TRUE='#'
+  HAVE_GNOME_DOC_UTILS_FALSE=
+fi
+
+
+
     fi
 
      if test "x$enable_user_help" = "xyes"; then
@@ -4665,6 +4797,7 @@ if test -n "$MONO_MODULE_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MONO_MODULE_CFLAGS=`$PKG_CONFIG --cflags "mono >= 2.2" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4681,6 +4814,7 @@ if test -n "$MONO_MODULE_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MONO_MODULE_LIBS=`$PKG_CONFIG --libs "mono >= 2.2" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4700,9 +4834,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono >= 2.2" 2>&1`
+	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono >= 2.2" 2>&1`
         else
-	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono >= 2.2" 2>&1`
+	        MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono >= 2.2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$MONO_MODULE_PKG_ERRORS" >&5
@@ -4717,7 +4851,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables MONO_MODULE_CFLAGS
 and MONO_MODULE_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -4733,7 +4866,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	MONO_MODULE_CFLAGS=$pkg_cv_MONO_MODULE_CFLAGS
 	MONO_MODULE_LIBS=$pkg_cv_MONO_MODULE_LIBS
@@ -4968,6 +5100,7 @@ if test -n "$NOTIFY_SHARP_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NOTIFY_SHARP_CFLAGS=`$PKG_CONFIG --cflags "notify-sharp" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -4984,6 +5117,7 @@ if test -n "$NOTIFY_SHARP_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NOTIFY_SHARP_LIBS=`$PKG_CONFIG --libs "notify-sharp" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5003,9 +5137,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "notify-sharp" 2>&1`
+	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "notify-sharp" 2>&1`
         else
-	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "notify-sharp" 2>&1`
+	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "notify-sharp" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$NOTIFY_SHARP_PKG_ERRORS" >&5
@@ -5119,6 +5253,7 @@ if test -n "$GTKSHARP_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTKSHARP_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5135,6 +5270,7 @@ if test -n "$GTKSHARP_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTKSHARP_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5154,9 +5290,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
+	        GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
         else
-	        GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
+	        GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GTKSHARP_PKG_ERRORS" >&5
@@ -5171,7 +5307,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables GTKSHARP_CFLAGS
 and GTKSHARP_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -5187,7 +5322,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	GTKSHARP_CFLAGS=$pkg_cv_GTKSHARP_CFLAGS
 	GTKSHARP_LIBS=$pkg_cv_GTKSHARP_LIBS
@@ -5212,6 +5346,7 @@ if test -n "$GLIBSHARP_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIBSHARP_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5228,6 +5363,7 @@ if test -n "$GLIBSHARP_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIBSHARP_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5247,9 +5383,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
+	        GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
         else
-	        GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
+	        GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-sharp-2.0 >= $GTKSHARP_REQUIRED" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GLIBSHARP_PKG_ERRORS" >&5
@@ -5264,7 +5400,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables GLIBSHARP_CFLAGS
 and GLIBSHARP_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -5280,7 +5415,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	GLIBSHARP_CFLAGS=$pkg_cv_GLIBSHARP_CFLAGS
 	GLIBSHARP_LIBS=$pkg_cv_GLIBSHARP_LIBS
@@ -5305,6 +5439,7 @@ if test -n "$GLIBSHARP_2_12_7_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIBSHARP_2_12_7_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0 >= 2.12.7" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5321,6 +5456,7 @@ if test -n "$GLIBSHARP_2_12_7_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIBSHARP_2_12_7_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0 >= 2.12.7" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5340,9 +5476,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-sharp-2.0 >= 2.12.7" 2>&1`
+	        GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-sharp-2.0 >= 2.12.7" 2>&1`
         else
-	        GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-sharp-2.0 >= 2.12.7" 2>&1`
+	        GLIBSHARP_2_12_7_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-sharp-2.0 >= 2.12.7" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GLIBSHARP_2_12_7_PKG_ERRORS" >&5
@@ -5383,6 +5519,7 @@ if test -n "$GTKSHARP_A11Y_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTKSHARP_A11Y_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0 >= 2.12.10" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5399,6 +5536,7 @@ if test -n "$GTKSHARP_A11Y_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GTKSHARP_A11Y_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0 >= 2.12.10" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5418,9 +5556,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0 >= 2.12.10" 2>&1`
+	        GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk-sharp-2.0 >= 2.12.10" 2>&1`
         else
-	        GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0 >= 2.12.10" 2>&1`
+	        GTKSHARP_A11Y_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk-sharp-2.0 >= 2.12.10" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GTKSHARP_A11Y_PKG_ERRORS" >&5
@@ -5474,12 +5612,13 @@ if test -n "$SMARTIRC4NET_CFLAGS"; then
     pkg_cv_SMARTIRC4NET_CFLAGS="$SMARTIRC4NET_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"smartirc4net\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "smartirc4net") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"smartirc4net >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "smartirc4net >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_SMARTIRC4NET_CFLAGS=`$PKG_CONFIG --cflags "smartirc4net" 2>/dev/null`
+  pkg_cv_SMARTIRC4NET_CFLAGS=`$PKG_CONFIG --cflags "smartirc4net >= 0.5" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5490,12 +5629,13 @@ if test -n "$SMARTIRC4NET_LIBS"; then
     pkg_cv_SMARTIRC4NET_LIBS="$SMARTIRC4NET_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"smartirc4net\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "smartirc4net") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"smartirc4net >= 0.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "smartirc4net >= 0.5") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_SMARTIRC4NET_LIBS=`$PKG_CONFIG --libs "smartirc4net" 2>/dev/null`
+  pkg_cv_SMARTIRC4NET_LIBS=`$PKG_CONFIG --libs "smartirc4net >= 0.5" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5515,9 +5655,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        SMARTIRC4NET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "smartirc4net" 2>&1`
+	        SMARTIRC4NET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "smartirc4net >= 0.5" 2>&1`
         else
-	        SMARTIRC4NET_PKG_ERRORS=`$PKG_CONFIG --print-errors "smartirc4net" 2>&1`
+	        SMARTIRC4NET_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "smartirc4net >= 0.5" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$SMARTIRC4NET_PKG_ERRORS" >&5
@@ -5593,6 +5733,7 @@ if test -n "$WEBKIT_SHARP_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_WEBKIT_SHARP_CFLAGS=`$PKG_CONFIG --cflags "webkit-sharp-1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5609,6 +5750,7 @@ if test -n "$WEBKIT_SHARP_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_WEBKIT_SHARP_LIBS=`$PKG_CONFIG --libs "webkit-sharp-1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5628,9 +5770,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "webkit-sharp-1.0" 2>&1`
+	        WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1`
         else
-	        WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "webkit-sharp-1.0" 2>&1`
+	        WEBKIT_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "webkit-sharp-1.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$WEBKIT_SHARP_PKG_ERRORS" >&5
@@ -5667,6 +5809,7 @@ if test -n "$NOTIFY_SHARP_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NOTIFY_SHARP_CFLAGS=`$PKG_CONFIG --cflags "notify-sharp" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5683,6 +5826,7 @@ if test -n "$NOTIFY_SHARP_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NOTIFY_SHARP_LIBS=`$PKG_CONFIG --libs "notify-sharp" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5702,9 +5846,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "notify-sharp" 2>&1`
+	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "notify-sharp" 2>&1`
         else
-	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "notify-sharp" 2>&1`
+	        NOTIFY_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "notify-sharp" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$NOTIFY_SHARP_PKG_ERRORS" >&5
@@ -5767,6 +5911,7 @@ if test -n "$APP_INDICATOR_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_APP_INDICATOR_CFLAGS=`$PKG_CONFIG --cflags "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5783,6 +5928,7 @@ if test -n "$APP_INDICATOR_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_APP_INDICATOR_LIBS=`$PKG_CONFIG --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5802,9 +5948,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1`
+	        APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1`
         else
-	        APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1`
+	        APP_INDICATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "appindicator-sharp-0.1 >= $APPINDICATOR_REQUIRED" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$APP_INDICATOR_PKG_ERRORS" >&5
@@ -5819,7 +5965,6 @@ installed software in a non-standard prefix.
 Alternatively, you may set the environment variables APP_INDICATOR_CFLAGS
 and APP_INDICATOR_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
-
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -5835,7 +5980,6 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
-
 else
 	APP_INDICATOR_CFLAGS=$pkg_cv_APP_INDICATOR_CFLAGS
 	APP_INDICATOR_LIBS=$pkg_cv_APP_INDICATOR_LIBS
@@ -5902,6 +6046,7 @@ if test -n "$NUNIT_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "nunit >= $NUNIT_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5918,6 +6063,7 @@ if test -n "$NUNIT_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "nunit >= $NUNIT_REQUIRED" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5937,9 +6083,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nunit >= $NUNIT_REQUIRED" 2>&1`
+	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "nunit >= $NUNIT_REQUIRED" 2>&1`
         else
-	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "nunit >= $NUNIT_REQUIRED" 2>&1`
+	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "nunit >= $NUNIT_REQUIRED" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$NUNIT_PKG_ERRORS" >&5
@@ -5983,6 +6129,7 @@ if test -n "$NUNIT_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "mono-nunit >= 2.4" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5999,6 +6146,7 @@ if test -n "$NUNIT_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "mono-nunit >= 2.4" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -6018,9 +6166,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono-nunit >= 2.4" 2>&1`
+	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono-nunit >= 2.4" 2>&1`
         else
-	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono-nunit >= 2.4" 2>&1`
+	        NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono-nunit >= 2.4" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$NUNIT_PKG_ERRORS" >&5
@@ -6056,6 +6204,14 @@ $as_echo "$as_me: WARNING: Could not find nunit: tests will not be available" >&
 
 
 
+        # Check whether --enable-nautilus-extension was given.
+if test "${enable_nautilus_extension+set}" = set; then :
+  enableval=$enable_nautilus_extension; enable_nautilus_extension=$enableval
+else
+  enable_nautilus_extension=yes
+fi
+
+        if test x$enable_nautilus_extension = xyes; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NAUTILUS_PYTHON" >&5
@@ -6065,12 +6221,13 @@ if test -n "$NAUTILUS_PYTHON_CFLAGS"; then
     pkg_cv_NAUTILUS_PYTHON_CFLAGS="$NAUTILUS_PYTHON_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "nautilus-python") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python < 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "nautilus-python < 1.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NAUTILUS_PYTHON_CFLAGS=`$PKG_CONFIG --cflags "nautilus-python" 2>/dev/null`
+  pkg_cv_NAUTILUS_PYTHON_CFLAGS=`$PKG_CONFIG --cflags "nautilus-python < 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -6081,12 +6238,13 @@ if test -n "$NAUTILUS_PYTHON_LIBS"; then
     pkg_cv_NAUTILUS_PYTHON_LIBS="$NAUTILUS_PYTHON_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "nautilus-python") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python < 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "nautilus-python < 1.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NAUTILUS_PYTHON_LIBS=`$PKG_CONFIG --libs "nautilus-python" 2>/dev/null`
+  pkg_cv_NAUTILUS_PYTHON_LIBS=`$PKG_CONFIG --libs "nautilus-python < 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -6106,49 +6264,164 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NAUTILUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nautilus-python" 2>&1`
+	        NAUTILUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "nautilus-python < 1.1" 2>&1`
         else
-	        NAUTILUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors "nautilus-python" 2>&1`
+	        NAUTILUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "nautilus-python < 1.1" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$NAUTILUS_PYTHON_PKG_ERRORS" >&5
 
-	have_nautilus_python=no
+	have_nautilus2_python=no
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-	have_nautilus_python=no
+	have_nautilus2_python=no
 else
 	NAUTILUS_PYTHON_CFLAGS=$pkg_cv_NAUTILUS_PYTHON_CFLAGS
 	NAUTILUS_PYTHON_LIBS=$pkg_cv_NAUTILUS_PYTHON_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-	have_nautilus_python=yes
+	have_nautilus2_python=yes
 fi
-	if test "x$have_nautilus_python" = "xyes"; then
-		NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
+		if test "x$have_nautilus2_python" = "xyes"; then
+			NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
 
-		NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
+			NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
 
-		 if true; then
-  NAUTILUS_EXTENSION_ENABLED_TRUE=
-  NAUTILUS_EXTENSION_ENABLED_FALSE='#'
+			 if true; then
+  NAUTILUS2_EXTENSION_ENABLED_TRUE=
+  NAUTILUS2_EXTENSION_ENABLED_FALSE='#'
 else
-  NAUTILUS_EXTENSION_ENABLED_TRUE='#'
-  NAUTILUS_EXTENSION_ENABLED_FALSE=
+  NAUTILUS2_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS2_EXTENSION_ENABLED_FALSE=
 fi
 
-	else
-		 if false; then
-  NAUTILUS_EXTENSION_ENABLED_TRUE=
-  NAUTILUS_EXTENSION_ENABLED_FALSE='#'
+		else
+			 if false; then
+  NAUTILUS2_EXTENSION_ENABLED_TRUE=
+  NAUTILUS2_EXTENSION_ENABLED_FALSE='#'
+else
+  NAUTILUS2_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS2_EXTENSION_ENABLED_FALSE=
+fi
+
+		fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NAUTILUS3_PYTHON" >&5
+$as_echo_n "checking for NAUTILUS3_PYTHON... " >&6; }
+
+if test -n "$NAUTILUS3_PYTHON_CFLAGS"; then
+    pkg_cv_NAUTILUS3_PYTHON_CFLAGS="$NAUTILUS3_PYTHON_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python >= 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "nautilus-python >= 1.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_NAUTILUS3_PYTHON_CFLAGS=`$PKG_CONFIG --cflags "nautilus-python >= 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$NAUTILUS3_PYTHON_LIBS"; then
+    pkg_cv_NAUTILUS3_PYTHON_LIBS="$NAUTILUS3_PYTHON_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nautilus-python >= 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "nautilus-python >= 1.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_NAUTILUS3_PYTHON_LIBS=`$PKG_CONFIG --libs "nautilus-python >= 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
-  NAUTILUS_EXTENSION_ENABLED_TRUE='#'
-  NAUTILUS_EXTENSION_ENABLED_FALSE=
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
 fi
 
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        NAUTILUS3_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "nautilus-python >= 1.1" 2>&1`
+        else
+	        NAUTILUS3_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "nautilus-python >= 1.1" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$NAUTILUS3_PYTHON_PKG_ERRORS" >&5
+
+	have_nautilus3_python=no
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	have_nautilus3_python=no
+else
+	NAUTILUS3_PYTHON_CFLAGS=$pkg_cv_NAUTILUS3_PYTHON_CFLAGS
+	NAUTILUS3_PYTHON_LIBS=$pkg_cv_NAUTILUS3_PYTHON_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	have_nautilus3_python=yes
+fi
+		if test "x$have_nautilus3_python" = "xyes"; then
+			NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
+
+			NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
+
+			 if true; then
+  NAUTILUS3_EXTENSION_ENABLED_TRUE=
+  NAUTILUS3_EXTENSION_ENABLED_FALSE='#'
+else
+  NAUTILUS3_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS3_EXTENSION_ENABLED_FALSE=
+fi
+
+		else
+			 if false; then
+  NAUTILUS3_EXTENSION_ENABLED_TRUE=
+  NAUTILUS3_EXTENSION_ENABLED_FALSE='#'
+else
+  NAUTILUS3_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS3_EXTENSION_ENABLED_FALSE=
+fi
+
+		fi
+	else
+		have_nautilus2_python="disabled"
+		have_nautilus3_python="disabled"
 	fi
 
+	 if test "x$enable_nautilus_extension" = "xyes"; then
+  NAUTILUS2_EXTENSION_ENABLED_TRUE=
+  NAUTILUS2_EXTENSION_ENABLED_FALSE='#'
+else
+  NAUTILUS2_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS2_EXTENSION_ENABLED_FALSE=
+fi
+
+	 if test "x$enable_nautilus_extension" = "xyes"; then
+  NAUTILUS3_EXTENSION_ENABLED_TRUE=
+  NAUTILUS3_EXTENSION_ENABLED_FALSE='#'
+else
+  NAUTILUS3_EXTENSION_ENABLED_TRUE='#'
+  NAUTILUS3_EXTENSION_ENABLED_FALSE=
+fi
+
+
 
 
 
@@ -6242,7 +6515,7 @@ fi
 
 
 
-ac_config_files="$ac_config_files build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool data/Makefile data/icons/Makefile data/html/Makefile help/Makefile SparkleLib/AssemblyInfo.cs SparkleLib/Defines.cs SparkleLib/Makefile SparkleShare/sparkleshare SparkleShare/Makefile SparkleShare/Mac/Makefile SparkleShare/Nautilus/Makefile SparkleShare/Nautilus/sparkleshare-nautilus-extension.py po/Makefile.in Makefile"
+ac_config_files="$ac_config_files build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool data/Makefile data/icons/Makefile data/html/Makefile data/plugins/Makefile help/Makefile SparkleLib/AssemblyInfo.cs SparkleLib/Defines.cs SparkleLib/Makefile SparkleShare/sparkleshare SparkleShare/Makefile SparkleShare/Mac/Makefile SparkleShare/Nautilus/Makefile SparkleShare/Nautilus/sparkleshare-nautilus-extension.py SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py po/Makefile.in Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -6417,6 +6690,14 @@ if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_SK\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_SK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GNOME_DOC_UTILS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_GNOME_DOC_UTILS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -6473,12 +6754,28 @@ if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${NAUTILUS_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS_EXTENSION_ENABLED_FALSE}"; then
-  as_fn_error $? "conditional \"NAUTILUS_EXTENSION_ENABLED\" was never defined.
+if test -z "${NAUTILUS2_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS2_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS2_EXTENSION_ENABLED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${NAUTILUS2_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS2_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS2_EXTENSION_ENABLED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${NAUTILUS3_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS3_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS3_EXTENSION_ENABLED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${NAUTILUS3_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS3_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS3_EXTENSION_ENABLED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${NAUTILUS2_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS2_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS2_EXTENSION_ENABLED\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${NAUTILUS_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS_EXTENSION_ENABLED_FALSE}"; then
-  as_fn_error $? "conditional \"NAUTILUS_EXTENSION_ENABLED\" was never defined.
+if test -z "${NAUTILUS3_EXTENSION_ENABLED_TRUE}" && test -z "${NAUTILUS3_EXTENSION_ENABLED_FALSE}"; then
+  as_fn_error $? "conditional \"NAUTILUS3_EXTENSION_ENABLED\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
@@ -6890,7 +7187,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by SparkleShare $as_me 0.2.5, which was
+This file was extended by SparkleShare $as_me 0.4.0, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6947,7 +7244,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-SparkleShare config.status 0.2.5
+SparkleShare config.status 0.4.0
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
@@ -7073,6 +7370,7 @@ do
     "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
     "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;;
     "data/html/Makefile") CONFIG_FILES="$CONFIG_FILES data/html/Makefile" ;;
+    "data/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES data/plugins/Makefile" ;;
     "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;;
     "SparkleLib/AssemblyInfo.cs") CONFIG_FILES="$CONFIG_FILES SparkleLib/AssemblyInfo.cs" ;;
     "SparkleLib/Defines.cs") CONFIG_FILES="$CONFIG_FILES SparkleLib/Defines.cs" ;;
@@ -7082,6 +7380,7 @@ do
     "SparkleShare/Mac/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Mac/Makefile" ;;
     "SparkleShare/Nautilus/Makefile") CONFIG_FILES="$CONFIG_FILES SparkleShare/Nautilus/Makefile" ;;
     "SparkleShare/Nautilus/sparkleshare-nautilus-extension.py") CONFIG_FILES="$CONFIG_FILES SparkleShare/Nautilus/sparkleshare-nautilus-extension.py" ;;
+    "SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py") CONFIG_FILES="$CONFIG_FILES SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py" ;;
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
@@ -7819,7 +8118,8 @@ SparkleShare ${VERSION}
 Configuration:
        Prefix              : ${prefix}
        Build Gtk+ UI       : ${enable_gtkui}
-       Nautilus plugin     : ${have_nautilus_python}
+       Nautilus 2.x plugin : ${have_nautilus2_python}
+       Nautilus 3.x plugin : ${have_nautilus3_python}
        User Help           : ${enable_user_help} (requires gnome-doc-utils >= 0.17.3)
 
 "
diff --git a/configure.ac b/configure.ac
old mode 100644
new mode 100755
index cb054fc..2116eb1
--- a/configure.ac
+++ b/configure.ac
@@ -1,9 +1,9 @@
 dnl Process this file with autoconf to produce a configure script.
 m4_define([sparkleshare_version],
-	[0.2.5])
+	[0.4.0])
 
 m4_define([sparkleshare_asm_version],
-	[0.2.5])
+	[0.4.0])
 
 AC_PREREQ([2.54])
 AC_INIT([SparkleShare], sparkleshare_version)
@@ -88,7 +88,7 @@ dnl package checks, common for all configs
 SPARKLESHARE_CHECK_GTK_SHARP
 
 SPARKLESHARE_SMARTIRC4NET
-PKG_CHECK_MODULES([SMARTIRC4NET], [smartirc4net],
+PKG_CHECK_MODULES([SMARTIRC4NET], [smartirc4net >= 0.5],
 	SMARTIRC4NET_ASSEMBLY=""
 	AC_SUBST(SMARTIRC4NET_ASSEMBLY)
 	,
@@ -165,6 +165,7 @@ build/m4/shave/shave-libtool
 data/Makefile
 data/icons/Makefile
 data/html/Makefile
+data/plugins/Makefile
 help/Makefile
 SparkleLib/AssemblyInfo.cs
 SparkleLib/Defines.cs
@@ -174,6 +175,7 @@ SparkleShare/Makefile
 SparkleShare/Mac/Makefile
 SparkleShare/Nautilus/Makefile
 SparkleShare/Nautilus/sparkleshare-nautilus-extension.py
+SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py
 po/Makefile.in
 Makefile
 ])
@@ -184,7 +186,8 @@ SparkleShare ${VERSION}
 Configuration:
        Prefix              : ${prefix}
        Build Gtk+ UI       : ${enable_gtkui}
-       Nautilus plugin     : ${have_nautilus_python}
+       Nautilus 2.x plugin : ${have_nautilus2_python}
+       Nautilus 3.x plugin : ${have_nautilus3_python}
        User Help           : ${enable_user_help} (requires gnome-doc-utils >= 0.17.3)
 
 "
diff --git a/data/Makefile.am b/data/Makefile.am
old mode 100644
new mode 100755
index 6f45220..cea4d45
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,9 +1,14 @@
 SUBDIRS = \
 	icons \
-	html
+	html \
+	plugins
 
 dist_pixmaps_DATA = \
 	side-splash.png \
+	tutorial-slide-1.png \
+	tutorial-slide-2.png \
+	tutorial-slide-3.png \
+	tutorial-slide-4.png \
 	about.png
 
 pixmapsdir = $(pkgdatadir)/pixmaps/
diff --git a/data/Makefile.in b/data/Makefile.in
index dee3971..cb36ad6 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -36,8 +36,7 @@ subdir = data
 DIST_COMMON = $(dist_pixmaps_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -140,6 +139,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -159,6 +160,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -172,6 +174,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -183,6 +186,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -193,6 +198,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -269,10 +275,15 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = \
 	icons \
-	html
+	html \
+	plugins
 
 dist_pixmaps_DATA = \
 	side-splash.png \
+	tutorial-slide-1.png \
+	tutorial-slide-2.png \
+	tutorial-slide-3.png \
+	tutorial-slide-4.png \
 	about.png
 
 pixmapsdir = $(pkgdatadir)/pixmaps/
diff --git a/data/about.png b/data/about.png
old mode 100644
new mode 100755
index 89f7d71..9f01b2e
Binary files a/data/about.png and b/data/about.png differ
diff --git a/data/html/Makefile.am b/data/html/Makefile.am
old mode 100644
new mode 100755
diff --git a/data/html/Makefile.in b/data/html/Makefile.in
index 63f142b..94f31a3 100644
--- a/data/html/Makefile.in
+++ b/data/html/Makefile.in
@@ -36,8 +36,7 @@ subdir = data/html
 DIST_COMMON = $(dist_html_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -100,6 +99,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -119,6 +120,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -132,6 +134,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -143,6 +146,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -153,6 +158,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
diff --git a/data/html/day-entry.html b/data/html/day-entry.html
old mode 100644
new mode 100755
diff --git a/data/html/event-entry.html b/data/html/event-entry.html
old mode 100644
new mode 100755
diff --git a/data/html/event-log.html b/data/html/event-log.html
old mode 100644
new mode 100755
diff --git a/data/html/jquery.js b/data/html/jquery.js
old mode 100644
new mode 100755
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
old mode 100644
new mode 100755
index 79026af..d09cc80
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -35,6 +35,7 @@ app_theme_icons =					\
 	status,document-deleted-12.png			\
 	status,document-moved-12.png			\
 	status,dialog-error-16.png			\
+	status,list-point-16.png			\
 	status,dialog-error-24.png
 
 install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in
index 9b6415e..ac648e0 100644
--- a/data/icons/Makefile.in
+++ b/data/icons/Makefile.in
@@ -34,8 +34,7 @@ POST_UNINSTALL = :
 subdir = data/icons
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -75,6 +74,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -94,6 +95,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -107,6 +109,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -118,6 +121,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -128,6 +133,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -238,6 +244,7 @@ app_theme_icons = \
 	status,document-deleted-12.png			\
 	status,document-moved-12.png			\
 	status,dialog-error-16.png			\
+	status,list-point-16.png			\
 	status,dialog-error-24.png
 
 install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
diff --git a/data/icons/avatar-default-16.png b/data/icons/avatar-default-16.png
old mode 100644
new mode 100755
diff --git a/data/icons/avatar-default-22.png b/data/icons/avatar-default-22.png
old mode 100644
new mode 100755
diff --git a/data/icons/avatar-default-24.png b/data/icons/avatar-default-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/avatar-default-32.png b/data/icons/avatar-default-32.png
old mode 100644
new mode 100755
diff --git a/data/icons/avatar-default-48.png b/data/icons/avatar-default-48.png
old mode 100644
new mode 100755
diff --git a/data/icons/avatar-default.png b/data/icons/avatar-default.png
new file mode 100755
index 0000000..b4f31d4
Binary files /dev/null and b/data/icons/avatar-default.png differ
diff --git a/data/icons/dialog-error-16.png b/data/icons/dialog-error-16.png
old mode 100644
new mode 100755
diff --git a/data/icons/dialog-error-24.png b/data/icons/dialog-error-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/document-added-12.png b/data/icons/document-added-12.png
old mode 100644
new mode 100755
diff --git a/data/icons/document-deleted-12.png b/data/icons/document-deleted-12.png
old mode 100644
new mode 100755
diff --git a/data/icons/document-edited-12.png b/data/icons/document-edited-12.png
old mode 100644
new mode 100755
diff --git a/data/icons/document-moved-12.png b/data/icons/document-moved-12.png
old mode 100644
new mode 100755
diff --git a/data/icons/error-active.png b/data/icons/error-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/error.png b/data/icons/error.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-16.png b/data/icons/folder-sparkleshare-16.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-22.png b/data/icons/folder-sparkleshare-22.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-24.png b/data/icons/folder-sparkleshare-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-256.png b/data/icons/folder-sparkleshare-256.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-32.png b/data/icons/folder-sparkleshare-32.png
old mode 100644
new mode 100755
diff --git a/data/icons/folder-sparkleshare-48.png b/data/icons/folder-sparkleshare-48.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle0-active.png b/data/icons/idle0-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle0.png b/data/icons/idle0.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle1-active.png b/data/icons/idle1-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle1.png b/data/icons/idle1.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle2-active.png b/data/icons/idle2-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle2.png b/data/icons/idle2.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle3-active.png b/data/icons/idle3-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle3.png b/data/icons/idle3.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle4-active.png b/data/icons/idle4-active.png
old mode 100644
new mode 100755
diff --git a/data/icons/idle4.png b/data/icons/idle4.png
old mode 100644
new mode 100755
diff --git a/data/icons/list-point-16.png b/data/icons/list-point-16.png
new file mode 100755
index 0000000..6ef8de7
Binary files /dev/null and b/data/icons/list-point-16.png differ
diff --git a/data/icons/process-syncing-sparkleshare-24.png b/data/icons/process-syncing-sparkleshare-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-syncing-sparkleshare-i-24.png b/data/icons/process-syncing-sparkleshare-i-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-syncing-sparkleshare-ii-24.png b/data/icons/process-syncing-sparkleshare-ii-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-syncing-sparkleshare-iii-24.png b/data/icons/process-syncing-sparkleshare-iii-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-syncing-sparkleshare-iiii-24.png b/data/icons/process-syncing-sparkleshare-iiii-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-syncing-sparkleshare-iiiii-24.png b/data/icons/process-syncing-sparkleshare-iiiii-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/process-working-22.png b/data/icons/process-working-22.png
old mode 100644
new mode 100755
diff --git a/data/icons/sparkleshare-android-36.png b/data/icons/sparkleshare-android-36.png
new file mode 100644
index 0000000..84bf2bb
Binary files /dev/null and b/data/icons/sparkleshare-android-36.png differ
diff --git a/data/icons/sparkleshare-android-48.png b/data/icons/sparkleshare-android-48.png
new file mode 100644
index 0000000..e858d59
Binary files /dev/null and b/data/icons/sparkleshare-android-48.png differ
diff --git a/data/icons/sparkleshare-android-72.png b/data/icons/sparkleshare-android-72.png
new file mode 100644
index 0000000..49d147e
Binary files /dev/null and b/data/icons/sparkleshare-android-72.png differ
diff --git a/data/icons/sparkleshare-syncing-error-24.png b/data/icons/sparkleshare-syncing-error-24.png
old mode 100644
new mode 100755
diff --git a/data/icons/sparkleshare-windows-status.png b/data/icons/sparkleshare-windows-status.png
old mode 100644
new mode 100755
diff --git a/data/plugins/Makefile.am b/data/plugins/Makefile.am
new file mode 100644
index 0000000..8bf7b4a
--- /dev/null
+++ b/data/plugins/Makefile.am
@@ -0,0 +1,23 @@
+dist_plugins_in_files = \
+    bitbucket.xml.in \
+    github.xml.in \
+    gitorious.xml.in \
+    gnome.xml.in \
+    own-server.xml.in
+
+dist_plugins_DATA = \
+    $(dist_plugins_in_files:.xml.in=.xml) \
+    github.png \
+	gitorious.png \
+	bitbucket.png \
+	gnome.png \
+	own-server.png
+
+ at INTLTOOL_XML_RULE@
+
+pluginsdir = $(pkgdatadir)/plugins/
+
+EXTRA_DIST=$(xml_in_files) $(xml_DATA)
+
+MAINTAINERCLEANFILES = \
+	Makefile.in
diff --git a/data/html/Makefile.in b/data/plugins/Makefile.in
similarity index 85%
copy from data/html/Makefile.in
copy to data/plugins/Makefile.in
index 63f142b..7d4388b 100644
--- a/data/html/Makefile.in
+++ b/data/plugins/Makefile.in
@@ -32,12 +32,11 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-subdir = data/html
-DIST_COMMON = $(dist_html_DATA) $(srcdir)/Makefile.am \
+subdir = data/plugins
+DIST_COMMON = $(dist_plugins_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -76,8 +75,8 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(htmldir)"
-DATA = $(dist_html_DATA)
+am__installdirs = "$(DESTDIR)$(pluginsdir)"
+DATA = $(dist_plugins_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -100,6 +99,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -119,6 +120,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -132,6 +134,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -143,6 +146,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -153,6 +158,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -202,7 +208,7 @@ expanded_bindir = @expanded_bindir@
 expanded_datadir = @expanded_datadir@
 expanded_libdir = @expanded_libdir@
 host_alias = @host_alias@
-htmldir = $(pkgdatadir)/html/
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -227,12 +233,23 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-dist_html_DATA = \
-	day-entry.html \
-	event-entry.html \
-	event-log.html \
-	jquery.js
-
+dist_plugins_in_files = \
+    bitbucket.xml.in \
+    github.xml.in \
+    gitorious.xml.in \
+    gnome.xml.in \
+    own-server.xml.in
+
+dist_plugins_DATA = \
+    $(dist_plugins_in_files:.xml.in=.xml) \
+    github.png \
+	gitorious.png \
+	bitbucket.png \
+	gnome.png \
+	own-server.png
+
+pluginsdir = $(pkgdatadir)/plugins/
+EXTRA_DIST = $(xml_in_files) $(xml_DATA)
 MAINTAINERCLEANFILES = \
 	Makefile.in
 
@@ -248,9 +265,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/html/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/plugins/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign data/html/Makefile
+	  $(AUTOMAKE) --foreign data/plugins/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -275,26 +292,26 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-install-dist_htmlDATA: $(dist_html_DATA)
+install-dist_pluginsDATA: $(dist_plugins_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
-	@list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \
+	test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+	@list='$(dist_plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginsdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginsdir)" || exit $$?; \
 	done
 
-uninstall-dist_htmlDATA:
+uninstall-dist_pluginsDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \
+	@list='$(dist_plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(htmldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(htmldir)" && rm -f $$files
+	echo " ( cd '$(DESTDIR)$(pluginsdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(pluginsdir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -336,7 +353,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(htmldir)"; do \
+	for dir in "$(DESTDIR)$(pluginsdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -385,7 +402,7 @@ info: info-am
 
 info-am:
 
-install-data-am: install-dist_htmlDATA
+install-data-am: install-dist_pluginsDATA
 
 install-dvi: install-dvi-am
 
@@ -429,22 +446,24 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-dist_htmlDATA
+uninstall-am: uninstall-dist_pluginsDATA
 
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
 	distclean distclean-generic distclean-libtool distdir dvi \
 	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dist_htmlDATA install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-dist_htmlDATA
+	install-data install-data-am install-dist_pluginsDATA \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am uninstall uninstall-am uninstall-dist_pluginsDATA
+
 
+ at INTLTOOL_XML_RULE@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/data/plugins/bitbucket.png b/data/plugins/bitbucket.png
new file mode 100644
index 0000000..223d3fa
Binary files /dev/null and b/data/plugins/bitbucket.png differ
diff --git a/data/plugins/bitbucket.xml b/data/plugins/bitbucket.xml
new file mode 100644
index 0000000..85d65f1
--- /dev/null
+++ b/data/plugins/bitbucket.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+  <plugin>
+    <info>
+        <name>Bitbucket</name>
+        <name xml:lang="de">Bitbucket</name>
+        <name xml:lang="es">Bitbucket</name>
+        <name xml:lang="fr">Bitbucket</name>
+        <name xml:lang="nl">Bitbucket</name>
+        <name xml:lang="pl">Bitbucket</name>
+        <name xml:lang="ru">Bitbucket</name>
+        <name xml:lang="sv">Bitbucket</name>
+        <description>Free code hosting for Git and Mercurial</description>
+        <description xml:lang="es">Alojamiento gratuito de código fuente para Git y Mercurial</description>
+        <description xml:lang="fr">Hébergement gratuit de code pour Git et Mercurial</description>
+        <description xml:lang="nl">Gratis hosting voor Git en Mercurial</description>
+        <description xml:lang="pl">Darmowe utrzymywanie kodu dla projektów zarządzanych przez git oraz Mercurial</description>
+        <description xml:lang="ru">Бесплатный хостинг проектов и их совместной разработки, основанный на системе контроля версий Mercurial и Git</description>
+        <description xml:lang="sv">Gratis källkodslagring för Git och Mercurial</description>
+        <icon>bitbucket.png</icon>
+        <backend>Git</backend>
+    </info>
+    <address>
+      <value>ssh://git@bitbucket.org/</value>
+      <example/>
+    </address>
+    <path>
+      <value/>
+      <example>/username/project</example>
+      <example xml:lang="de">/username/project</example>
+      <example xml:lang="es">/usuario/proyecto</example>
+      <example xml:lang="fr">/nom-d-utilisateur/projet</example>
+      <example xml:lang="nl">/gebruikersnaam/project</example>
+      <example xml:lang="pl">/nazwa uzytkownika/projekt</example>
+      <example xml:lang="pt_BR">/usuário/projeto</example>
+      <example xml:lang="ru">/username/project</example>
+      <example xml:lang="sv">/användare/projekt</example>
+    </path>
+  </plugin>
+</sparkleshare>
\ No newline at end of file
diff --git a/data/plugins/github.png b/data/plugins/github.png
new file mode 100644
index 0000000..ca5dda8
Binary files /dev/null and b/data/plugins/github.png differ
diff --git a/data/plugins/github.xml b/data/plugins/github.xml
new file mode 100644
index 0000000..904c757
--- /dev/null
+++ b/data/plugins/github.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+  <plugin>
+    <info>
+        <name>Github</name>
+        <name xml:lang="de">Github</name>
+        <name xml:lang="es">Github</name>
+        <name xml:lang="fr">Github</name>
+        <name xml:lang="ja">Github</name>
+        <name xml:lang="nl">Github</name>
+        <name xml:lang="pl">Github</name>
+        <name xml:lang="pt_BR">Github</name>
+        <name xml:lang="ru">Github</name>
+        <name xml:lang="sv">Github</name>
+        <description>Free public Git repositories with collaborator management</description>
+        <description xml:lang="es">Repositorios públicos y gratuitos de Git con gestión de colaboradores</description>
+        <description xml:lang="fr">Dépôts Git gratuits avec gestion des collaborateurs</description>
+        <description xml:lang="nl">Gratis publieke repositories met teambeheer.</description>
+        <description xml:lang="pl">Darmowe publiczne repozytoria git z obsługą współpracowników</description>
+        <description xml:lang="ru">Бесплатные публичные Git репозитории с совместной разработкой</description>
+        <description xml:lang="sv">Gratis offentliga Git-arkiv med medarbetarehantering</description>
+        <icon>github.png</icon>
+        <backend>Git</backend>
+    </info>
+    <address>
+      <value>ssh://git@github.com/</value>
+      <example/>
+    </address>
+    <path>
+      <value/>
+      <example>/username/project</example>
+      <example xml:lang="de">/username/project</example>
+      <example xml:lang="es">/usuario/proyecto</example>
+      <example xml:lang="fr">/nom-d-utilisateur/projet</example>
+      <example xml:lang="nl">/gebruikersnaam/project</example>
+      <example xml:lang="pl">/nazwa uzytkownika/projekt</example>
+      <example xml:lang="pt_BR">/usuário/projeto</example>
+      <example xml:lang="ru">/username/project</example>
+      <example xml:lang="sv">/användare/projekt</example>
+    </path>
+  </plugin>
+</sparkleshare>
\ No newline at end of file
diff --git a/data/plugins/gitorious.png b/data/plugins/gitorious.png
new file mode 100644
index 0000000..0a9ddb5
Binary files /dev/null and b/data/plugins/gitorious.png differ
diff --git a/data/plugins/gitorious.xml b/data/plugins/gitorious.xml
new file mode 100644
index 0000000..ee5c24c
--- /dev/null
+++ b/data/plugins/gitorious.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+  <plugin>
+    <info>
+        <name>Gitorious</name>
+        <name xml:lang="ar">Gitorious</name>
+        <name xml:lang="bg">Gitorious</name>
+        <name xml:lang="ca">Gitorious</name>
+        <name xml:lang="cs_CZ">Gitorious</name>
+        <name xml:lang="da">Gitorious</name>
+        <name xml:lang="de">Gitorious</name>
+        <name xml:lang="eo">Gitorious</name>
+        <name xml:lang="es">Gitorious</name>
+        <name xml:lang="fi">Gitorious</name>
+        <name xml:lang="fr">Gitorious</name>
+        <name xml:lang="he">גיטוריוס</name>
+        <name xml:lang="hu">Gitorious</name>
+        <name xml:lang="it">Gitorius</name>
+        <name xml:lang="ja">Gitorious</name>
+        <name xml:lang="nl">Gitorious</name>
+        <name xml:lang="nn_NO">Gitorious</name>
+        <name xml:lang="no_NO">Gitorious</name>
+        <name xml:lang="pl">Gitorious</name>
+        <name xml:lang="pt_BR">Gitorious</name>
+        <name xml:lang="ru">Gitorious</name>
+        <name xml:lang="sk">Gitorious</name>
+        <name xml:lang="sl">Gitorious</name>
+        <name xml:lang="sr_RS">Гиториус</name>
+        <name xml:lang="sv">Gitorious</name>
+        <name xml:lang="uk">Gitorious</name>
+        <name xml:lang="zh_CN">Gitorious</name>
+        <name xml:lang="zh_TW">Gitorious</name>
+        <description>Open source infrastructure for hosting open source projects</description>
+        <description xml:lang="es">Infraestructura de código libre para almacenar proyectos de código libre</description>
+        <description xml:lang="fr">Infrastructure open source d'hébergement de projets open source</description>
+        <description xml:lang="nl">Opensource infrastructuur voor het hosten van opensource projecten.</description>
+        <description xml:lang="pl">Infrastruktura o otwartym kodzie źródłowym dla projektów o otwartym kodzie źródłowym</description>
+        <description xml:lang="ru">Open source инфраструктура для размещения ваших open source проектов</description>
+        <description xml:lang="sv">Infrastruktur för delning av öppen källkod-projekt</description>
+        <icon>gitorious.png</icon>
+        <backend>Git</backend>
+    </info>
+    <address>
+      <value>ssh://git@gitorious.org/</value>
+      <example/>
+    </address>
+    <path>
+      <value/>
+      <example>/project/repository</example>
+      <example xml:lang="es">/proyecto/repositorio</example>
+      <example xml:lang="fr">/projet/depot</example>
+      <example xml:lang="nl">/project/repository</example>
+      <example xml:lang="pl">/projekt/repozytorium</example>
+      <example xml:lang="pt_BR">/projeto/repositório</example>
+      <example xml:lang="ru">/project/repository</example>
+      <example xml:lang="sv">/projekt/arkiv</example>
+    </path>
+  </plugin>
+</sparkleshare>
\ No newline at end of file
diff --git a/data/plugins/gnome.png b/data/plugins/gnome.png
new file mode 100644
index 0000000..d596c2b
Binary files /dev/null and b/data/plugins/gnome.png differ
diff --git a/data/plugins/gnome.xml b/data/plugins/gnome.xml
new file mode 100644
index 0000000..47bfc58
--- /dev/null
+++ b/data/plugins/gnome.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+  <plugin>
+    <info>
+        <name>The GNOME Project</name>
+        <name xml:lang="ar">مشروع جنوم.</name>
+        <name xml:lang="bg">Проектът GNOME</name>
+        <name xml:lang="ca">El projecte GNOME</name>
+        <name xml:lang="cs_CZ">Projekt GNOME</name>
+        <name xml:lang="da">GNOME-projektet</name>
+        <name xml:lang="de">Das GNOME Projekt</name>
+        <name xml:lang="eo">La GNOME-projekto</name>
+        <name xml:lang="es">El Proyecto GNOME</name>
+        <name xml:lang="fi">GNOME-projekti</name>
+        <name xml:lang="fr">Le projet GNOME</name>
+        <name xml:lang="he">פרוייקט גנום</name>
+        <name xml:lang="hu">A GNOME Project</name>
+        <name xml:lang="it">The GNOME Project</name>
+        <name xml:lang="ja">GNOMEプロジェクト</name>
+        <name xml:lang="nl">Het GNOME Project</name>
+        <name xml:lang="nn_NO">GNOME-prosjektet</name>
+        <name xml:lang="no_NO">GNOME Prosjektet</name>
+        <name xml:lang="pl">Projekt GNOME</name>
+        <name xml:lang="pt_BR">O projeto GNOME</name>
+        <name xml:lang="ru">The GNOME Project</name>
+        <name xml:lang="sl">Projekt GNOME</name>
+        <name xml:lang="sr_RS">Пројекат ГНОМ</name>
+        <name xml:lang="sv">GNOME-projektet</name>
+        <name xml:lang="uk">Проект GNOME</name>
+        <name xml:lang="zh_CN">GMOME项目</name>
+        <name xml:lang="zh_TW">GNOME 專案</name>
+        <description>A free and easy interface for your computer</description>
+        <description xml:lang="es">Una interfaz libre y sencilla para tu ordenador</description>
+        <description xml:lang="fr">Une interface facile et gratuite pour votre ordinateur</description>
+        <description xml:lang="nl">Een gratis en gemakkelijke interface voor uw computer</description>
+        <description xml:lang="pl">Wolny i prosty interfejs dla komputerów</description>
+        <description xml:lang="ru">Бесплатный и простой интерфейс для вашего компьютера</description>
+        <description xml:lang="sv">Ett gratis och enkelt gränssnitt för din dator</description>
+        <icon>gnome.png</icon>
+        <backend>Git</backend>
+    </info>
+    <address>
+      <value>ssh://git@gnome.org/</value>
+      <example/>
+    </address>
+    <path>
+      <value/>
+      <example>/project</example>
+      <example xml:lang="es">/proyecto</example>
+      <example xml:lang="fr">/projet</example>
+      <example xml:lang="nl">/project</example>
+      <example xml:lang="pl">/project</example>
+      <example xml:lang="pt_BR">/projeto</example>
+      <example xml:lang="ru">/project</example>
+      <example xml:lang="sv">/projekt</example>
+    </path>
+  </plugin>
+</sparkleshare>
\ No newline at end of file
diff --git a/data/plugins/own-server.png b/data/plugins/own-server.png
new file mode 100644
index 0000000..59044df
Binary files /dev/null and b/data/plugins/own-server.png differ
diff --git a/data/plugins/own-server.xml b/data/plugins/own-server.xml
new file mode 100644
index 0000000..5f18396
--- /dev/null
+++ b/data/plugins/own-server.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sparkleshare>
+  <plugin>
+    <info>
+        <name>On my own server</name>
+        <name xml:lang="de">Auf meinem eigenen Server</name>
+        <name xml:lang="es">En mi propio servidor</name>
+        <name xml:lang="fr">Mon propre serveur</name>
+        <name xml:lang="he">שרת משלי</name>
+        <name xml:lang="nl">Op mijn eigen server</name>
+        <name xml:lang="pl">Na własnym serwerze</name>
+        <name xml:lang="pt_BR">Em meu próprio servidor</name>
+        <name xml:lang="ru">Мой личный сервер</name>
+        <name xml:lang="sv">På min egen server</name>
+        <description>Everything under my control</description>
+        <description xml:lang="de">Alles unter meiner Kontrolle</description>
+        <description xml:lang="es">Todo bajo mi control</description>
+        <description xml:lang="fr">Tout est sous mon contrôle</description>
+        <description xml:lang="he">הכל תחת שליטתי</description>
+        <description xml:lang="nl">Alles onder mijn controle</description>
+        <description xml:lang="pl">Wszystko pod własną kontrolą</description>
+        <description xml:lang="pt_BR">Tudo sob meu controle</description>
+        <description xml:lang="ru">Всё под моим контролем</description>
+        <description xml:lang="sv">Allting under min kontroll</description>
+        <icon>own-server.png</icon>
+        <backend>Git</backend>
+    </info>
+    <address>
+      <value/>
+      <example>domain name or IP address</example>
+    </address>
+    <path>
+      <value/>
+      <example>/path/to/project</example>
+      <example xml:lang="es">/ruta/al/proyecto</example>
+      <example xml:lang="fr">/chemin/du/projet</example>
+      <example xml:lang="nl">/pad/naar/project</example>
+      <example xml:lang="pl">/ścieżka/do/projektu</example>
+      <example xml:lang="pt_BR">/caminho/para/projeto</example>
+      <example xml:lang="ru">/path/to/project</example>
+      <example xml:lang="sv">/sökväg/till/projekt</example>
+    </path>
+  </plugin>
+</sparkleshare>
\ No newline at end of file
diff --git a/data/side-splash.png b/data/side-splash.png
old mode 100644
new mode 100755
index 32b3b83..4f3cbc4
Binary files a/data/side-splash.png and b/data/side-splash.png differ
diff --git a/data/tutorial-slide-1.png b/data/tutorial-slide-1.png
new file mode 100755
index 0000000..7defc57
Binary files /dev/null and b/data/tutorial-slide-1.png differ
diff --git a/data/tutorial-slide-2.png b/data/tutorial-slide-2.png
new file mode 100755
index 0000000..565b6ec
Binary files /dev/null and b/data/tutorial-slide-2.png differ
diff --git a/data/tutorial-slide-3.png b/data/tutorial-slide-3.png
new file mode 100755
index 0000000..05078b5
Binary files /dev/null and b/data/tutorial-slide-3.png differ
diff --git a/data/tutorial-slide-4.png b/data/tutorial-slide-4.png
new file mode 100755
index 0000000..fe95f23
Binary files /dev/null and b/data/tutorial-slide-4.png differ
diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
index e69de29..0da2cf9 100644
--- a/gnome-doc-utils.make
+++ b/gnome-doc-utils.make
@@ -0,0 +1,655 @@
+# gnome-doc-utils.make - make magic for building documentation
+# Copyright (C) 2004-2005 Shaun McCance <shaunm at gnome.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+################################################################################
+## @@ Generating Header Files
+
+## @ DOC_H_FILE
+## The name of the header file to generate
+DOC_H_FILE ?=
+
+## @ DOC_H_DOCS
+## The input DocBook files for generating the header file
+DOC_H_DOCS ?=
+
+$(DOC_H_FILE): $(DOC_H_DOCS);
+	@rm -f $@.tmp; touch $@.tmp;
+	echo 'const gchar* documentation_credits[] = {' >> $@.tmp
+	list='$(DOC_H_DOCS)'; for doc in $$list; do \
+	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+	  xsltproc --path "$$xmlpath" $(_credits) $$doc; \
+	done | sort | uniq \
+	  | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
+	  | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
+	echo '	NULL' >> $@.tmp
+	echo '};' >> $@.tmp
+	echo >> $@.tmp
+	list='$(DOC_H_DOCS)'; for doc in $$list; do \
+	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+	  docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
+	    | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
+	  echo $$xmlpath; \
+	  ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
+	  for id in $$ids; do \
+	    echo '#define HELP_'`echo $$docid`'_'`echo $$id \
+	      | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
+	  done; \
+	  echo >> $@.tmp; \
+	done;
+	cp $@.tmp $@ && rm -f $@.tmp
+
+dist-check-gdu:
+if !HAVE_GNOME_DOC_UTILS
+	@echo "*** GNOME Doc Utils must be installed in order to make dist"
+	@false
+endif
+
+.PHONY: dist-doc-header
+dist-doc-header: $(DOC_H_FILE)
+	@if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
+	echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
+	$(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
+
+doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
+
+.PHONY: clean-doc-header
+_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
+clean-local: $(_clean_doc_header)
+distclean-local: $(_clean_doc_header)
+mostlyclean-local: $(_clean_doc_header)
+maintainer-clean-local: $(_clean_doc_header)
+clean-doc-header:
+	rm -f $(DOC_H_FILE)
+
+all: $(DOC_H_FILE)
+
+
+################################################################################
+## @@ Generating Documentation Files
+
+## @ DOC_MODULE
+## The name of the document being built
+DOC_MODULE ?=
+
+## @ DOC_ID
+## The unique identifier for a Mallard document
+DOC_ID ?=
+
+## @ DOC_PAGES
+## Page files in a Mallard document
+DOC_PAGES ?=
+
+## @ DOC_ENTITIES
+## Files included with a SYSTEM entity
+DOC_ENTITIES ?=
+
+## @ DOC_INCLUDES
+## Files included with XInclude
+DOC_INCLUDES ?=
+
+## @ DOC_FIGURES
+## Figures and other external data
+DOC_FIGURES ?=
+
+## @ DOC_FORMATS
+## The default formats to be built and installed
+DOC_FORMATS ?= docbook
+_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
+
+## @ DOC_LINGUAS
+## The languages this document is translated into
+DOC_LINGUAS ?=
+_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),		\
+	$(filter $(LINGUAS),$(DOC_LINGUAS)),					\
+	$(DOC_LINGUAS))
+
+_DOC_ABS_SRCDIR = @abs_srcdir@
+
+
+################################################################################
+## Variables for Bootstrapping
+
+_xml2po ?= `which xml2po`
+_xml2po_mode = $(if $(DOC_ID),mallard,docbook)
+
+_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
+_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
+_malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
+_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
+_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
+_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
+
+if ENABLE_SK
+_ENABLE_SK = true
+_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
+_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
+_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
+endif
+
+
+################################################################################
+## @@ Rules for OMF Files
+
+db2omf_args =									\
+	--stringparam db2omf.basename $(DOC_MODULE)				\
+	--stringparam db2omf.format $(3)					\
+	--stringparam db2omf.dtd						\
+	$(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 		\
+		| sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/')			\
+	--stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2)))	\
+	--stringparam db2omf.omf_dir "$(OMF_DIR)"				\
+	--stringparam db2omf.help_dir "$(HELP_DIR)"				\
+	--stringparam db2omf.omf_in "$(_DOC_OMF_IN)"				\
+	$(if $(_ENABLE_SK),							\
+	  --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)")		\
+	$(_db2omf) $(2)
+
+## @ _DOC_OMF_IN
+## The OMF input file
+_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
+
+## @ _DOC_OMF_DB
+## The OMF files for DocBook output
+_DOC_OMF_DB = $(if $(_DOC_OMF_IN),						\
+	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
+
+$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
+$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
+	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
+	  echo "The file '$(_skcontentslist)' does not exist." >&2;		\
+	  echo "Please check your ScrollKeeper installation." >&2;		\
+	  exit 1; }
+	xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
+
+## @ _DOC_OMF_HTML
+## The OMF files for HTML output
+_DOC_OMF_HTML = $(if $(_DOC_OMF_IN),						\
+	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
+
+$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
+$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
+if ENABLE_SK
+	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
+	  echo "The file '$(_skcontentslist)' does not exist" >&2;		\
+	  echo "Please check your ScrollKeeper installation." >&2;		\
+	  exit 1; }
+endif
+	xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
+
+## @ _DOC_OMF_ALL
+## All OMF output files to be built
+# FIXME
+_DOC_OMF_ALL =									\
+	$(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB))		\
+	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
+
+.PHONY: omf
+omf: $(_DOC_OMF_ALL)
+
+
+################################################################################
+## @@ C Locale Documents
+
+## @ _DOC_C_MODULE
+## The top-level documentation file in the C locale
+_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
+
+## @ _DOC_C_PAGES
+## Page files in a Mallard document in the C locale
+_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
+
+## @ _DOC_C_ENTITIES
+## Files included with a SYSTEM entity in the C locale
+_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
+
+## @ _DOC_C_XINCLUDES
+## Files included with XInclude in the C locale
+_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
+
+## @ _DOC_C_DOCS
+## All documentation files in the C locale
+_DOC_C_DOCS =								\
+	$(_DOC_C_ENTITIES)	$(_DOC_C_INCLUDES)			\
+	$(_DOC_C_PAGES)		$(_DOC_C_MODULE)
+
+## @ _DOC_C_DOCS_NOENT
+## All documentation files in the C locale,
+## except files included with a SYSTEM entity
+_DOC_C_DOCS_NOENT =							\
+	$(_DOC_C_MODULE)	$(_DOC_C_INCLUDES)			\
+	$(_DOC_C_PAGES)
+
+## @ _DOC_C_FIGURES
+## All figures and other external data in the C locale
+_DOC_C_FIGURES = $(if $(DOC_FIGURES),					\
+	$(foreach fig,$(DOC_FIGURES),C/$(fig)),				\
+	$(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
+
+## @ _DOC_C_HTML
+## All HTML documentation in the C locale
+# FIXME: probably have to shell escape to determine the file names
+_DOC_C_HTML = $(foreach f,						\
+	$(shell xsltproc --xinclude 					\
+	  --stringparam db.chunk.basename "$(DOC_MODULE)"		\
+	  $(_chunks) "C/$(DOC_MODULE).xml"),				\
+	C/$(f).xhtml)
+
+###############################################################################
+## @@ Other Locale Documentation
+
+## @ _DOC_POFILES
+## The .po files used for translating the document
+_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),					\
+	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
+
+.PHONY: po
+po: $(_DOC_POFILES)
+
+## @ _DOC_MOFILES
+## The .mo files used for translating the document
+_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
+
+.PHONY: mo
+mo: $(_DOC_MOFILES)
+
+## @ _DOC_LC_MODULES
+## The top-level documentation files in all other locales
+_DOC_LC_MODULES = $(if $(DOC_MODULE),						\
+	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
+
+## @ _DOC_LC_PAGES
+## Page files in a Mallard document in all other locales
+_DOC_LC_PAGES =									\
+	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES),	\
+		$(lc)/$(notdir $(page)) ))
+
+## @ _DOC_LC_XINCLUDES
+## Files included with XInclude in all other locales
+_DOC_LC_INCLUDES =								\
+	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES),	\
+		$(lc)/$(notdir $(inc)) ))
+
+## @ _DOC_LC_HTML
+## All HTML documentation in all other locales
+# FIXME: probably have to shell escape to determine the file names
+_DOC_LC_HTML =									\
+	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML),		\
+		$(lc)/$(notdir $(doc)) ))
+
+## @ _DOC_LC_DOCS
+## All documentation files in all other locales
+_DOC_LC_DOCS =									\
+	$(_DOC_LC_MODULES)	$(_DOC_LC_INCLUDES)	$(_DOC_LC_PAGES)	\
+	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
+
+## @ _DOC_LC_FIGURES
+## All figures and other external data in all other locales
+_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS),				\
+	$(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
+
+_DOC_SRC_FIGURES =								\
+	$(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),	\
+		$(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
+
+$(_DOC_POFILES):
+	@if ! test -d $(dir $@); then \
+	  echo "mkdir $(dir $@)"; \
+	  mkdir "$(dir $@)"; \
+	fi
+	@if test ! -f $@ -a -f $(srcdir)/$@; then \
+	  echo "cp $(srcdir)/$@ $@"; \
+	  cp "$(srcdir)/$@" "$@"; \
+	fi;
+	@docs=; \
+	list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
+	  docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
+	done; \
+	if ! test -f $@; then \
+	  echo "(cd $(dir $@) && \
+	    $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
+	  (cd $(dir $@) && \
+	    $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
+	else \
+	  echo "(cd $(dir $@) && \
+	    $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
+	  (cd $(dir $@) && \
+	    $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
+	fi
+
+$(_DOC_MOFILES): %.mo: %.po
+	@if ! test -d $(dir $@); then \
+	  echo "mkdir $(dir $@)"; \
+	  mkdir "$(dir $@)"; \
+	fi
+	msgfmt -o $@ $<
+
+# FIXME: fix the dependancy
+# FIXME: hook xml2po up
+$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
+$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
+	if ! test -d $(dir $@); then mkdir $(dir $@); fi
+	if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
+	mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+	if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
+	(cd $(dir $@) && \
+	  $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
+	    "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
+	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
+
+## @ _DOC_POT
+## A pot file
+_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
+.PHONY: pot
+pot: $(_DOC_POT)
+$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
+	$(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
+
+
+################################################################################
+## @@ All Documentation
+
+## @ _DOC_HTML_ALL
+## All HTML documentation, only if it's built
+_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
+	$(_DOC_C_HTML) $(_DOC_LC_HTML))
+
+_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
+
+$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+	xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
+
+
+################################################################################
+## All
+
+all:							\
+	$(_DOC_C_DOCS)		$(_DOC_LC_DOCS)		\
+	$(_DOC_OMF_ALL)		$(_DOC_DSK_ALL)		\
+	$(_DOC_HTML_ALL)	$(_DOC_POFILES)
+
+
+################################################################################
+## Clean
+
+.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
+
+clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
+clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
+clean-doc-lc:
+	rm -f $(_DOC_LC_DOCS)
+	rm -f $(_DOC_MOFILES)
+	@list='$(_DOC_POFILES)'; for po in $$list; do \
+	  if ! test "$$po" -ef "$(srcdir)/$$po"; then \
+	    echo "rm -f $$po"; \
+	    rm -f "$$po"; \
+	  fi; \
+	done
+#	.xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
+	@for lc in C $(_DOC_REAL_LINGUAS); do \
+	  if test -f "$$lc/.xml2po.mo"; then \
+	    echo "rm -f $$lc/.xml2po.mo"; \
+	    rm -f "$$lc/.xml2po.mo"; \
+	  fi; \
+	done
+clean-doc-dir: clean-doc-lc
+	@for lc in C $(_DOC_REAL_LINGUAS); do \
+	  for dir in `find $$lc -depth -type d`; do \
+	    if ! test $$dir -ef $(srcdir)/$$dir; then \
+	      echo "rmdir $$dir"; \
+	      rmdir "$$dir"; \
+	   fi; \
+	  done; \
+	done
+
+_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
+_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
+_clean_lc  = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
+_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
+
+clean-local:						\
+	$(_clean_omf)		$(_clean_dsk)		\
+	$(_clean_lc)		$(_clean_dir)
+distclean-local:					\
+	$(_clean_omf)		$(_clean_dsk)		\
+	$(_clean_lc)		$(_clean_dir)
+mostlyclean-local:					\
+	$(_clean_omf)		$(_clean_dsk)		\
+	$(_clean_lc)		$(_clean_dir)
+maintainer-clean-local:					\
+	$(_clean_omf)		$(_clean_dsk)		\
+	$(_clean_lc)		$(_clean_dir)
+
+
+
+################################################################################
+## Dist
+
+.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
+doc-dist-hook: 						\
+	$(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs)	\
+	$(if $(_DOC_C_FIGURES),dist-doc-figs)		\
+	$(if $(_DOC_OMF_IN),dist-doc-omf)
+#	$(if $(_DOC_DSK_IN),dist-doc-dsk)
+
+dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
+	@for lc in C $(_DOC_REAL_LINGUAS); do \
+	  echo " $(mkinstalldirs) $(distdir)/$$lc"; \
+	  $(mkinstalldirs) "$(distdir)/$$lc"; \
+	done
+	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
+	for doc in $$list; do \
+	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+	    docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+	    if ! test -d "$(distdir)/$$docdir"; then \
+	      echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
+	      $(mkinstalldirs) "$(distdir)/$$docdir"; \
+	    fi; \
+	  echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
+	  $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
+	done
+
+dist-doc-figs: $(_DOC_SRC_FIGURES)
+	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
+	for fig in $$list; do \
+	  if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
+	  if test -f "$$d$$fig"; then \
+	    figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+	    if ! test -d "$(distdir)/$$figdir"; then \
+	      echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
+	      $(mkinstalldirs) "$(distdir)/$$figdir"; \
+	    fi; \
+	    echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
+	    $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
+	  fi; \
+	done;
+
+dist-doc-omf:
+	@if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
+	echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
+	$(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
+
+dist-doc-dsk:
+	@if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
+	echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
+	$(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
+
+
+
+################################################################################
+## Check
+
+.PHONY: check-doc-docs check-doc-omf
+check:							\
+	$(if $(DOC_MODULE),check-doc-docs)		\
+	$(if $(DOC_ID),check-doc-pages)			\
+	$(if $(_DOC_OMF_IN),check-doc-omf)
+
+check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+	@for lc in C $(_DOC_REAL_LINGUAS); do \
+	  if test -f "$$lc"; \
+	    then d=; \
+	    xmlpath="$$lc"; \
+	  else \
+	    d="$(srcdir)/"; \
+	    xmlpath="$$lc:$(srcdir)/$$lc"; \
+	  fi; \
+	  echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
+	  xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
+	done
+
+check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
+	for lc in C $(_DOC_REAL_LINGUAS); do \
+	  if test -f "$$lc"; \
+	    then d=; \
+	    xmlpath="$$lc"; \
+	  else \
+	    d="$(srcdir)/"; \
+	    xmlpath="$$lc:$(srcdir)/$$lc"; \
+	  fi; \
+	  for page in $(DOC_PAGES); do \
+	    echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \
+	    xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \
+	  done; \
+	done
+
+check-doc-omf: $(_DOC_OMF_ALL)
+	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+	  echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
+	  xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
+	done
+
+
+
+################################################################################
+## Install
+
+.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
+
+_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
+
+install-data-local:					\
+	$(if $(DOC_MODULE)$(DOC_ID),install-doc-docs)	\
+	$(if $(_DOC_HTML_ALL),install-doc-html)		\
+	$(if $(_DOC_C_FIGURES),install-doc-figs)	\
+	$(if $(_DOC_OMF_IN),install-doc-omf)
+#	$(if $(_DOC_DSK_IN),install-doc-dsk)
+
+install-doc-docs:
+	@for lc in C $(_DOC_REAL_LINGUAS); do \
+	  echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
+	  $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
+	done
+	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+	  docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+	  docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
+	  if ! test -d "$$docdir"; then \
+	    echo "$(mkinstalldirs) $$docdir"; \
+	    $(mkinstalldirs) "$$docdir"; \
+	  fi; \
+	  echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+	  $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
+	done
+
+install-doc-figs:
+	@list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
+	  for lc in C $(_DOC_REAL_LINGUAS); do \
+	    figsymlink=false; \
+	    if test -f "$$lc/$$fig"; then \
+	      figfile="$$lc/$$fig"; \
+	    elif test -f "$(srcdir)/$$lc/$$fig"; then \
+	      figfile="$(srcdir)/$$lc/$$fig"; \
+	    else \
+	      figsymlink=true; \
+	    fi; \
+	    figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+	    figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
+	    if ! test -d "$$figdir"; then \
+	      echo "$(mkinstalldirs) $$figdir"; \
+	      $(mkinstalldirs) "$$figdir"; \
+	    fi; \
+	    figbase=`echo $$fig | sed -e 's/^.*\///'`; \
+	    if $$figsymlink; then \
+	      echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
+	      ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
+	    else \
+	      echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
+	      $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
+	    fi; \
+	  done; \
+	done
+
+install-doc-html:
+	echo install-html
+
+install-doc-omf:
+	$(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
+	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+	  echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+	  $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
+	done
+	@if test "x$(_ENABLE_SK)" = "xtrue"; then \
+	  echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+	  scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+	fi;
+
+install-doc-dsk:
+	echo install-dsk
+
+
+
+################################################################################
+## Uninstall
+
+.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
+uninstall-local:					\
+	$(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs)	\
+	$(if $(_DOC_HTML_ALL),uninstall-doc-html)	\
+	$(if $(_DOC_C_FIGURES),uninstall-doc-figs)	\
+	$(if $(_DOC_OMF_IN),uninstall-doc-omf)
+#	$(if $(_DOC_DSK_IN),uninstall-doc-dsk)
+
+uninstall-doc-docs:
+	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+	  echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+	  rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+	done
+
+uninstall-doc-figs:
+	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
+	  echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+	  rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+	done;
+
+uninstall-doc-omf:
+	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+	  if test "x$(_ENABLE_SK)" = "xtrue"; then \
+	    echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+	    scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+	  fi; \
+	  echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+	  rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+	done
diff --git a/help/C/account-creation.page b/help/C/account-creation.page
new file mode 100644
index 0000000..4c976af
--- /dev/null
+++ b/help/C/account-creation.page
@@ -0,0 +1,32 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="topic" style="task"
+      id="accounts">
+
+  <info>
+    <link type="guide" xref="index#account"/>
+    <link type="seealso" xref=""/>
+    <desc>Add the location of your remote folders.</desc>
+    <revision pkgversion="0.1" version="0.1" date="2010-08-9" status="stub"/>
+    <credit type="author">
+      <name>Paul Cutler</name>
+      <email>pcutler at gnome.org</email>
+    </credit>    
+<!--
+    <copyright>
+      <year>2010</year>
+      <name>GNOME Documentation Project</name>
+    </copyright>
+-->
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Account Setup</title>    
+  
+  <p>Insert how to setup your accounts here)
+  </p>
+  
+  <p>Insert more help here, if needed.
+  </p>
+	
+</page>
diff --git a/help/C/advanced.page b/help/C/advanced.page
new file mode 100644
index 0000000..a75e3a3
--- /dev/null
+++ b/help/C/advanced.page
@@ -0,0 +1,32 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide" style="2column"
+      id="advanced">
+
+  <info>
+    <link type="guide" xref="index#advanced"/>
+    <desc>Get help for advanced actions.</desc>
+    <revision pkgversion="0.1" version="0.1" date="2010-08-29" status="draft"/>
+    <credit type="author">
+      <name>Paul Cutler</name>
+      <email>pcutler at gnome.org</email>
+    </credit>    
+<!--
+    <copyright>
+      <year>2010</year>
+      <name>GNOME Documentation Project</name>
+    </copyright>
+-->
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+  
+  <title>Advanced Options and Help</title>
+
+  <section id="tbd" style="2column">
+    <info>
+      <title type="link">TBD</title>
+    </info>
+    <title>TBD</title>
+  </section>
+	
+</page>
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644
index 0000000..21761b5
--- /dev/null
+++ b/help/C/index.page
@@ -0,0 +1,40 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="guide"
+      id="index">
+
+  <info>
+    <revision pkgversion="0.1" version="0.1" date="2010-08-29"
+     status="incomplete"/>
+    <credit type="author">
+      <name>Paul Cutler</name>
+      <email>pcutler at gnome.org</email>
+    </credit>
+<!--    
+    <copyright>
+      <year>2010</year>
+      <name>GNOME Documentation Project</name>
+    </copyright>
+-->    
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude" />
+  </info>
+
+  <title>SparkleShare</title>
+
+  <section id="account" style="2column">
+    <title>Account Setup</title>
+  </section>
+
+  <section id="share" style="2column">
+    <title>Sync and Share Files</title>
+  </section>
+    
+  <section id="advanced" style="2column">
+	<title>Advanced options and help</title>
+  </section>
+
+  <section id="problems">
+    <title>Common Problems</title>
+  </section>
+
+</page>
diff --git a/help/C/introduction.page b/help/C/introduction.page
new file mode 100644
index 0000000..2515ce2
--- /dev/null
+++ b/help/C/introduction.page
@@ -0,0 +1,42 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      type="topic"
+      id="introduction">
+
+  <info>
+    <link type="guide" xref="index"/>
+    <revision pkgversion="0.1" version="0.1" date="2010-08-29" status="draft"/>
+    <desc>
+      Introduction to <app>SparkleShare</app>.
+    </desc>
+    <credit type="author">
+      <name>Paul Cutler</name>
+      <email>pcutler at gnome.org</email>
+    </credit>
+<!--
+    <copyright>
+      <year>2010</year>
+      <name>GNOME Documentation Project</name>
+    </copyright>
+-->
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude" />
+  </info>
+
+  <title>Introduction</title>
+
+  <p>
+    <app>SparkleShare</app> is an application that allows you to easily
+    sync and share your files and folders.  SparkeShare uses the 
+    distributed version control system <app>Git</app> to keep a record
+    of all the changes in your files, making it easy to easily go back
+    to an earlier version of the file if you make a mistake.
+  </p>
+
+  <figure>
+    <title><gui>SparkleShare</gui> screenshot</title>
+    <desc><app>SparkleShare</app></desc>
+    <media type="image" src="figures/sparkleshare.png" mime="image/png" style="right">
+      <p><app>Sparkleshare</app></p>
+    </media>
+  </figure>
+
+</page>
diff --git a/help/C/legal.xml b/help/C/legal.xml
new file mode 100644
index 0000000..86d6173
--- /dev/null
+++ b/help/C/legal.xml
@@ -0,0 +1,9 @@
+<license xmlns="http://projectmallard.org/1.0/"
+         href="http://creativecommons.org/licenses/by-sa/3.0/">
+<p>This work is licensed under a
+<link href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons
+Attribution-Share Alike 3.0 Unported License</link>.</p>
+<p>As a special exception, the copyright holders give you permission to copy,
+modify, and distribute the example code contained in this document under the
+terms of your choosing, without restriction.</p>
+</license>
diff --git a/help/C/share.page b/help/C/share.page
new file mode 100644
index 0000000..95e95c5
--- /dev/null
+++ b/help/C/share.page
@@ -0,0 +1,32 @@
+<page xmlns="http://projectmallard.org/1.0/"
+      xmlns:e="http://projectmallard.org/experimental/"
+      type="topic" style="task"
+      id="share">
+
+  <info>
+    <link type="guide" xref="index#share"/>
+    <link type="seealso" xref=""/>
+    <desc>Sync and share your folders and files.</desc>
+    <revision pkgversion="1.6" version="0.1" date="2010-07-11" status="draft"/>
+    <credit type="author">
+      <name>Paul Cutler</name>
+      <email>pcutler at gnome.org</email>
+    </credit>    
+<!--
+    <copyright>
+      <year>2010</year>
+      <name>GNOME Documentation Project</name>
+    </copyright>
+-->
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Sync and share your files and folders</title>    
+  
+  <p>Insert help here.
+  </p>
+  
+  <p>
+  </p>
+	
+</page>
diff --git a/help/Makefile.am b/help/Makefile.am
old mode 100644
new mode 100755
diff --git a/help/Makefile.in b/help/Makefile.in
index 790c705..0fbb378 100644
--- a/help/Makefile.in
+++ b/help/Makefile.in
@@ -14,6 +14,30 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
+
+# gnome-doc-utils.make - make magic for building documentation
+# Copyright (C) 2004-2005 Shaun McCance <shaunm at gnome.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+################################################################################
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -35,8 +59,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/gnome-doc-utils.make
 subdir = help
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/m4/gnome-doc-utils.m4 \
-	$(top_srcdir)/build/m4/shave/shave.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shave/shave.m4 \
 	$(top_srcdir)/build/m4/shamrock/expansions.m4 \
 	$(top_srcdir)/build/m4/shamrock/gnome-doc.m4 \
 	$(top_srcdir)/build/m4/shamrock/mono.m4 \
@@ -76,6 +99,8 @@ CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -95,6 +120,7 @@ GTKSHARP_A11Y_LIBS = @GTKSHARP_A11Y_LIBS@
 GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@
 GTKSHARP_LIBS = @GTKSHARP_LIBS@
 GUISUBDIRS = @GUISUBDIRS@
+HELP_DIR = @HELP_DIR@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -108,6 +134,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEFLAGS = @MAKEFLAGS@
@@ -119,6 +146,8 @@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
 MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
 MSGFMT = @MSGFMT@
 MSGMERGE = @MSGMERGE@
+NAUTILUS3_PYTHON_CFLAGS = @NAUTILUS3_PYTHON_CFLAGS@
+NAUTILUS3_PYTHON_LIBS = @NAUTILUS3_PYTHON_LIBS@
 NAUTILUS_PREFIX = @NAUTILUS_PREFIX@
 NAUTILUS_PYTHON_CFLAGS = @NAUTILUS_PYTHON_CFLAGS@
 NAUTILUS_PYTHON_DIR = @NAUTILUS_PYTHON_DIR@
@@ -129,6 +158,7 @@ NUNIT_CFLAGS = @NUNIT_CFLAGS@
 NUNIT_LIBS = @NUNIT_LIBS@
 OBJC = @OBJC@
 OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -203,6 +233,116 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
+ at HAVE_GNOME_DOC_UTILS_TRUE@_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(filter $(LINGUAS),$(DOC_LINGUAS)),					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(DOC_LINGUAS))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_ABS_SRCDIR = @abs_srcdir@
+ at HAVE_GNOME_DOC_UTILS_TRUE@_xml2po_mode = $(if $(DOC_ID),mallard,docbook)
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE at _ENABLE_SK = true
+
+################################################################################
+ at HAVE_GNOME_DOC_UTILS_TRUE@db2omf_args = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.basename $(DOC_MODULE)				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.format $(3)					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.dtd						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@		| sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/')			\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2)))	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.omf_dir "$(OMF_DIR)"				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.help_dir "$(HELP_DIR)"				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	--stringparam db2omf.omf_in "$(_DOC_OMF_IN)"				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_ENABLE_SK),							\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)")		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_db2omf) $(2)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_OMF_DB = $(if $(_DOC_OMF_IN),						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_OMF_HTML = $(if $(_DOC_OMF_IN),						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
+
+
+# FIXME
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_OMF_ALL = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB))		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
+
+
+################################################################################
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_DOCS = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_ENTITIES)	$(_DOC_C_INCLUDES)			\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_PAGES)		$(_DOC_C_MODULE)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_DOCS_NOENT = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_MODULE)	$(_DOC_C_INCLUDES)			\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_PAGES)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_FIGURES = $(if $(DOC_FIGURES),					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach fig,$(DOC_FIGURES),C/$(fig)),				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
+
+
+# FIXME: probably have to shell escape to determine the file names
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_C_HTML = $(foreach f,						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(shell xsltproc --xinclude 					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  --stringparam db.chunk.basename "$(DOC_MODULE)"		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(_chunks) "C/$(DOC_MODULE).xml"),				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	C/$(f).xhtml)
+
+
+###############################################################################
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_MODULES = $(if $(DOC_MODULE),						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_PAGES = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES),	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@		$(lc)/$(notdir $(page)) ))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_INCLUDES = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES),	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@		$(lc)/$(notdir $(inc)) ))
+
+
+# FIXME: probably have to shell escape to determine the file names
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_HTML = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML),		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@		$(lc)/$(notdir $(doc)) ))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_DOCS = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_LC_MODULES)	$(_DOC_LC_INCLUDES)	$(_DOC_LC_PAGES)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS),				\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_SRC_FIGURES = \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@		$(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot,$(if $(DOC_ID),$(DOC_ID).pot))
+
+################################################################################
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_HTML) $(_DOC_LC_HTML))
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
+ at HAVE_GNOME_DOC_UTILS_TRUE@_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
 @HAVE_GNOME_DOC_UTILS_TRUE at DOC_ID = sparkleshare
 @HAVE_GNOME_DOC_UTILS_TRUE at DOC_INCLUDES = legal.xml
 @HAVE_GNOME_DOC_UTILS_TRUE at DOC_PAGES = account-creation.page	\
@@ -321,13 +461,19 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+ at HAVE_GNOME_DOC_UTILS_FALSE@uninstall-local:
+ at HAVE_GNOME_DOC_UTILS_FALSE@distclean-local:
+ at HAVE_GNOME_DOC_UTILS_FALSE@install-data-local:
+ at HAVE_GNOME_DOC_UTILS_FALSE@maintainer-clean-local:
+ at HAVE_GNOME_DOC_UTILS_FALSE@mostlyclean-local:
+ at HAVE_GNOME_DOC_UTILS_FALSE@clean-local:
 clean: clean-am
 
-clean-am: clean-generic clean-libtool mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-local
 
 dvi: dvi-am
 
@@ -341,7 +487,7 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-data-local
 
 install-dvi: install-dvi-am
 
@@ -371,11 +517,13 @@ installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+	maintainer-clean-local
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-local
 
 pdf: pdf-am
 
@@ -385,22 +533,438 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am:
+uninstall-am: uninstall-local
 
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	dist-hook distclean distclean-generic distclean-libtool \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am
-
+	clean-local dist-hook distclean distclean-generic \
+	distclean-libtool distclean-local distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-data-local install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic maintainer-clean-local mostlyclean \
+	mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
+	pdf-am ps ps-am uninstall uninstall-am uninstall-local
+
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_H_FILE ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_H_DOCS ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(DOC_H_FILE): $(DOC_H_DOCS);
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@rm -f $@.tmp; touch $@.tmp;
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo 'const gchar* documentation_credits[] = {' >> $@.tmp
+ at HAVE_GNOME_DOC_UTILS_TRUE@	list='$(DOC_H_DOCS)'; for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  xsltproc --path "$$xmlpath" $(_credits) $$doc; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done | sort | uniq \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo '	NULL' >> $@.tmp
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo '};' >> $@.tmp
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo >> $@.tmp
+ at HAVE_GNOME_DOC_UTILS_TRUE@	list='$(DOC_H_DOCS)'; for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo $$xmlpath; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  for id in $$ids; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo '#define HELP_'`echo $$docid`'_'`echo $$id \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  done; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo >> $@.tmp; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done;
+ at HAVE_GNOME_DOC_UTILS_TRUE@	cp $@.tmp $@ && rm -f $@.tmp
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-check-gdu:
+#	@echo "*** GNOME Doc Utils must be installed in order to make dist"
+#	@false
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: dist-doc-header
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-doc-header: $(DOC_H_FILE)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: clean-doc-header
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-local: $(_clean_doc_header)
+ at HAVE_GNOME_DOC_UTILS_TRUE@distclean-local: $(_clean_doc_header)
+ at HAVE_GNOME_DOC_UTILS_TRUE@mostlyclean-local: $(_clean_doc_header)
+ at HAVE_GNOME_DOC_UTILS_TRUE@maintainer-clean-local: $(_clean_doc_header)
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-doc-header:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	rm -f $(DOC_H_FILE)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@all: $(DOC_H_FILE)
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_MODULE ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_ID ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_PAGES ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_ENTITIES ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_INCLUDES ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_FIGURES ?=
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_FORMATS ?= docbook
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@DOC_LINGUAS ?=
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_xml2po ?= `which xml2po`
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
+ at HAVE_GNOME_DOC_UTILS_TRUE@_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
+ at HAVE_GNOME_DOC_UTILS_TRUE@_malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
+ at HAVE_GNOME_DOC_UTILS_TRUE@_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
+ at HAVE_GNOME_DOC_UTILS_TRUE@_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
+ at HAVE_GNOME_DOC_UTILS_TRUE@_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE at _skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE at _sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE at _skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "The file '$(_skcontentslist)' does not exist." >&2;		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "Please check your ScrollKeeper installation." >&2;		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  exit 1; }
+ at HAVE_GNOME_DOC_UTILS_TRUE@	xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE@	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE@	  echo "The file '$(_skcontentslist)' does not exist" >&2;		\
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE@	  echo "Please check your ScrollKeeper installation." >&2;		\
+ at ENABLE_SK_TRUE@@HAVE_GNOME_DOC_UTILS_TRUE@	  exit 1; }
+ at HAVE_GNOME_DOC_UTILS_TRUE@	xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: omf
+ at HAVE_GNOME_DOC_UTILS_TRUE@omf: $(_DOC_OMF_ALL)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: po
+ at HAVE_GNOME_DOC_UTILS_TRUE@po: $(_DOC_POFILES)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: mo
+ at HAVE_GNOME_DOC_UTILS_TRUE@mo: $(_DOC_MOFILES)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_POFILES):
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if ! test -d $(dir $@); then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "mkdir $(dir $@)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  mkdir "$(dir $@)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	fi
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if test ! -f $@ -a -f $(srcdir)/$@; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "cp $(srcdir)/$@ $@"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  cp "$(srcdir)/$@" "$@"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	fi;
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@docs=; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	if ! test -f $@; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "(cd $(dir $@) && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  (cd $(dir $@) && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	else \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "(cd $(dir $@) && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  (cd $(dir $@) && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	fi
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_MOFILES): %.mo: %.po
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if ! test -d $(dir $@); then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "mkdir $(dir $@)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  mkdir "$(dir $@)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	fi
+ at HAVE_GNOME_DOC_UTILS_TRUE@	msgfmt -o $@ $<
+
+# FIXME: fix the dependancy
+# FIXME: hook xml2po up
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_LC_DOCS) : $(_DOC_MOFILES)
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	if ! test -d $(dir $@); then mkdir $(dir $@); fi
+ at HAVE_GNOME_DOC_UTILS_TRUE@	if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	(cd $(dir $@) && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: pot
+ at HAVE_GNOME_DOC_UTILS_TRUE@pot: $(_DOC_POT)
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@all:							\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_C_DOCS)		$(_DOC_LC_DOCS)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_OMF_ALL)		$(_DOC_DSK_ALL)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_DOC_HTML_ALL)	$(_DOC_POFILES)
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-doc-lc:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	rm -f $(_DOC_LC_DOCS)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	rm -f $(_DOC_MOFILES)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_POFILES)'; for po in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if ! test "$$po" -ef "$(srcdir)/$$po"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "rm -f $$po"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    rm -f "$$po"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+#	.xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$lc/.xml2po.mo"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "rm -f $$lc/.xml2po.mo"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    rm -f "$$lc/.xml2po.mo"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-doc-dir: clean-doc-lc
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  for dir in `find $$lc -depth -type d`; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if ! test $$dir -ef $(srcdir)/$$dir; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "rmdir $$dir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      rmdir "$$dir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	   fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  done; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@clean-local:						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_omf)		$(_clean_dsk)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_lc)		$(_clean_dir)
+ at HAVE_GNOME_DOC_UTILS_TRUE@distclean-local:					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_omf)		$(_clean_dsk)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_lc)		$(_clean_dir)
+ at HAVE_GNOME_DOC_UTILS_TRUE@mostlyclean-local:					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_omf)		$(_clean_dsk)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_lc)		$(_clean_dir)
+ at HAVE_GNOME_DOC_UTILS_TRUE@maintainer-clean-local:					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_omf)		$(_clean_dsk)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(_clean_lc)		$(_clean_dir)
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
+ at HAVE_GNOME_DOC_UTILS_TRUE@doc-dist-hook: 						\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_C_FIGURES),dist-doc-figs)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_OMF_IN),dist-doc-omf)
+#	$(if $(_DOC_DSK_IN),dist-doc-dsk)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo " $(mkinstalldirs) $(distdir)/$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(mkinstalldirs) "$(distdir)/$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if ! test -d "$(distdir)/$$docdir"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      $(mkinstalldirs) "$(distdir)/$$docdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-doc-figs: $(_DOC_SRC_FIGURES)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	for fig in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$d$$fig"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if ! test -d "$(distdir)/$$figdir"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      $(mkinstalldirs) "$(distdir)/$$figdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done;
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-doc-omf:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@dist-doc-dsk:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: check-doc-docs check-doc-omf
+ at HAVE_GNOME_DOC_UTILS_TRUE@check:							\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(DOC_MODULE),check-doc-docs)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(DOC_ID),check-doc-pages)			\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_OMF_IN),check-doc-omf)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    then d=; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    xmlpath="$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  else \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    d="$(srcdir)/"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    xmlpath="$$lc:$(srcdir)/$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    then d=; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    xmlpath="$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  else \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    d="$(srcdir)/"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    xmlpath="$$lc:$(srcdir)/$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  for page in $(DOC_PAGES); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  done; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@check-doc-omf: $(_DOC_OMF_ALL)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-data-local:					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(DOC_MODULE)$(DOC_ID),install-doc-docs)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_HTML_ALL),install-doc-html)		\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_C_FIGURES),install-doc-figs)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_OMF_IN),install-doc-omf)
+#	$(if $(_DOC_DSK_IN),install-doc-dsk)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-doc-docs:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if ! test -d "$$docdir"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "$(mkinstalldirs) $$docdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    $(mkinstalldirs) "$$docdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-doc-figs:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  for lc in C $(_DOC_REAL_LINGUAS); do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    figsymlink=false; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if test -f "$$lc/$$fig"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      figfile="$$lc/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    elif test -f "$(srcdir)/$$lc/$$fig"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      figfile="$(srcdir)/$$lc/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    else \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      figsymlink=true; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if ! test -d "$$figdir"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "$(mkinstalldirs) $$figdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      $(mkinstalldirs) "$$figdir"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    figbase=`echo $$fig | sed -e 's/^.*\///'`; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    if $$figsymlink; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    else \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	      $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  done; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-doc-html:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo install-html
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-doc-omf:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@if test "x$(_ENABLE_SK)" = "xtrue"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	fi;
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@install-doc-dsk:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	echo install-dsk
+
+################################################################################
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
+ at HAVE_GNOME_DOC_UTILS_TRUE@uninstall-local:					\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_HTML_ALL),uninstall-doc-html)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_C_FIGURES),uninstall-doc-figs)	\
+ at HAVE_GNOME_DOC_UTILS_TRUE@	$(if $(_DOC_OMF_IN),uninstall-doc-omf)
+#	$(if $(_DOC_DSK_IN),uninstall-doc-dsk)
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@uninstall-doc-docs:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@uninstall-doc-figs:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done;
+
+ at HAVE_GNOME_DOC_UTILS_TRUE@uninstall-doc-omf:
+ at HAVE_GNOME_DOC_UTILS_TRUE@	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  if test "x$(_ENABLE_SK)" = "xtrue"; then \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	    scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  fi; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	  rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
+ at HAVE_GNOME_DOC_UTILS_TRUE@	done
 
 @HAVE_GNOME_DOC_UTILS_TRUE at dist-hook: doc-dist-hook
 
diff --git a/ltmain.sh b/ltmain.sh
index aa5624c..3061e3c 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -136,15 +136,15 @@ progpath="$0"
 
 : ${CP="cp -f"}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
+: ${EGREP="grep -E"}
+: ${FGREP="grep -F"}
+: ${GREP="grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
+: ${SED="sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
diff --git a/man/sparkleshare.1 b/man/sparkleshare.1
old mode 100644
new mode 100755
diff --git a/po/LINGUAS b/po/LINGUAS
old mode 100644
new mode 100755
index 57ba3cb..008172a
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -15,9 +15,13 @@ it
 ja
 nl
 no_NO
+nn_NO
 pl
 pt_BR
 ru
+sk
+sl
+sr_RS
 sv
 te
 uk
diff --git a/po/POTFILES.in b/po/POTFILES.in
old mode 100644
new mode 100755
index e812dd2..fbf8c10
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,15 +2,22 @@
 # Please keep this file in alphabetical order; run ./sort-potfiles
 # after adding files here.
 [encoding: UTF-8]
+data/plugins/bitbucket.xml.in
+data/plugins/github.xml.in
+data/plugins/gitorious.xml.in
+data/plugins/gnome.xml.in
+data/plugins/own-server.xml.in
 SparkleShare/Mac/SparkleStatusIcon.cs
 SparkleShare/Mac/SparkleUI.cs
 SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
+SparkleShare/Nautilus/sparkleshare-nautilus3-extension.py.in
+SparkleShare/Program.cs
 SparkleShare/SparkleAbout.cs
 SparkleShare/SparkleController.cs
+SparkleShare/SparkleControllerBase.cs
 SparkleShare/SparkleEventLog.cs
 SparkleShare/SparkleSetup.cs
 SparkleShare/SparkleSetupWindow.cs
-SparkleShare/SparkleShare.cs
 SparkleShare/SparkleSpinner.cs
 SparkleShare/SparkleStatusIcon.cs
 SparkleShare/SparkleUI.cs
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
old mode 100644
new mode 100755
diff --git a/po/ar.po b/po/ar.po
old mode 100644
new mode 100755
index 395bc65..b4d3c9a
--- a/po/ar.po
+++ b/po/ar.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Majid Al-Dharrab <majid at aldharrab.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ar\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "مشروع جنوم."
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "مرحبًا بك في سباركل‌شير!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "ليس كل شيء مزامَنًا"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "محدَّث"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "يزامن..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "ليس كل شيء مزامَنًا"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "انسخ رابط الملف"
@@ -59,75 +115,131 @@ msgstr "اصنع نسخة من إصدارة سابقة من هذا المجلد"
 msgid "Select to get a copy of this version"
 msgstr "اختر لتحصل على نسخة من هذه الإصدارة"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "اطبع معلومات الإصدارة"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "أظهر نص المساعدة هذا"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "سباركل‌شير، أداة تعاون ومشاركة."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "لا يشمل هذا البرنامج أي ضمان"
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "هذا برنامج حر، ونحن نرحب بتوزيعه "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"ضمن شروط معينة. يرجى قراءة رخصة جنو العمومية - الإصدارة الثالثة للاطلاع على "
+"التفاصيل."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "يزامن سباركل‌شير مستودعات جِت الموجودة في "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "مجلد ~/SparkleShare مع أصولها البعيدة آليًا."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "طريقة الاستخدام: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "زامن مجلد سباركل‌شير مع مستودعات بعيدة."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "المعطيات:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "سباركل‌شير "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "حوْل سباركل‌شير"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "توجد إصدارة أحدث"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "أنت تستخدم الإصدارة الأحدث."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "يبحث عن تحديثات..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "أظهر الإ_شادات"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_زر الموقع الإلكتروني"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "أضيفَ ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "نُقل ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "حرِّر ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "حُذف ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "ولا شيء غيره"
-msgstr[1] "وملف واحد آخر"
-msgstr[2] "وملفان آخران"
-msgstr[3] "و{0} ملفات أخرى"
-msgstr[4] "و{ملف آخر"
-msgstr[5] "و{0} ملف آخر"
-
-#: ../SparkleShare/SparkleController.cs:689
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "فعلتُ شيئًا سحريًا"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "الأحداث الأخيرة"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "كل المجلدات"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -135,295 +247,168 @@ msgstr ""
 "نحتاج بعض المعلومات منك قبل أن نتمكن من إنشاء مجلد سباركل‌شير في هذا "
 "الحاسوب."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "الاسم كاملًا:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "البريد الإلكتروني:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "التالي"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "يضبط"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "أين مجلدك البعيد؟"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "عنوان-الخادوم.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "على خادومي الخاص:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "استضافة مجانية للمشاريع الحرة مفتوحة المصدر."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "يوجد أيضًا حسابات مدفوعة بمساحة خاصة أكبر وتبادل أكثر للبيانات."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "مشروع جنوم."
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "جنوم واجهة حاسوب سهلة الاستخدام."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "اختر هذا الخيار إن كنت مطورًا أو مصممًا تعمل على مشروع جنوم."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "بنية تحتية حرة تمامًا."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "حسابات مجانية للمشاريع الحرة مفتوحة المصدر."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "اسم المستخدم/المجلد"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "المشروع/المجلد"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "المشروع"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "المجلد"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "اسم المجلد:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "زامِن"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "ألغِ"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "تخطَّ"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "وصلتك دعوة!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"لقد استلمتَ دعوة لتنضم إلى مجلد مشترك.\n"
-"نحن مستعدون لتوصيلك مباشرة إذا شئت."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "هل تقبل هذه الدعوة؟"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "عنوان الخادوم:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "ارفض"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "أمتأكد أنه ليس وقت احتساء القهوة؟"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "اقبل وزامن"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "أنهِ"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "حدث خطأ ما..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "حاول مجددًا"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "نجحت إضافة ‘{0}’"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "نجحت مزامنة المجلد!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "بإمكانك الآن الوصول إلى الملفات المزامنة من ‘{0}’ في مجلد سباركل‌شير."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "افتح المجلد"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "أنهِ"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "يزامن المجلد ‘{0}’…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "قد يستغرق هذا بعض الوقت.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "أمتأكد أنه ليس وقت احتساء القهوة؟"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "سباركل‌شير جاهز للاستخدام!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"يمكنك الآن البدء في استقبال الدعوات من الآخرين.\n"
-"كل ما عليك هو النقر على الدعوات التي تصلك بالبريد الإلكتروني وسنتكفل نحن بالبقية."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "تعلم كيف تستضيف خادوم سباركل‌شير بنفسك"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "الأحداث الأخيرة"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "كل المجلدات"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "المعذرة، لا يمكنك تشغيل سباركل‌شير بهذه الأذون."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "وإلا فستسير الأمور على غير ما يرام."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "اطبع معلومات الإصدارة"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "أظهر نص المساعدة هذا"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "سباركل‌شير، أداة تعاون ومشاركة."
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "لا يشمل هذا البرنامج أي ضمان"
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "هذا برنامج حر، ونحن نرحب بتوزيعه "
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
-"ضمن شروط معينة. يرجى قراءة رخصة جنو العمومية - الإصدارة الثالثة للاطلاع على "
-"التفاصيل."
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "يزامن سباركل‌شير مستودعات جِت الموجودة في "
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "مجلد ~/SparkleShare مع أصولها البعيدة آليًا."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "طريقة الاستخدام: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "زامن مجلد سباركل‌شير مع مستودعات بعيدة."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "المعطيات:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "سباركل‌شير "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "لا توجد مجلدات بعيدة بعد"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "أضف مجلدًا بعيدًا..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "أظهر الأحداث الأخيرة"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "إعداد سباركل‌شير"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "عطِّل التنبيهات"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "فعِّل التنبيهات"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "اخرج"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "آخ! اصطدام هوائي!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "لا تقلق، صنع سباركل‌شير نسخة من كل ملف متعارض."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "إعداد سباركل‌شير"
-
 
diff --git a/po/bg.po b/po/bg.po
old mode 100644
new mode 100755
index a4ec0bf..0f46559
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: bg\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Проектът GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Здравейте в SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Синхронизирането не е приключило"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Обновено"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Синхронизиране…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Синхронизирането не е приключило"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Копиране на адреса"
@@ -59,71 +115,128 @@ msgstr "Копие в тази папка на по-ранна версия"
 msgid "Select to get a copy of this version"
 msgstr "Изберете за копие на версията"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Извеждане на информация за версията"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Показване на този помощен текст"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Авторски права: © 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Тази програма идва БЕЗ НИКАКВИ ГАРАНЦИИ."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+"Това е свободен софтуер, можете да го разпространявате при определени "
+"условия."
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "За повече информация вижте Общия публичен лиценз на GNU, версия 3."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare автоматично синхронизира хранилища на Git"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "в папката ~/SparkleShare с отдалечените им източници."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Употреба: sparkleshare [start|stop|restart] [ОПЦИЯ]…"
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+"Синхронизиране на папката ви за SparkleShare с отдалечените източници."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Аргументи:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Относно SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Заслуги"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Към уеб сайта"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "добавен е „{0}“"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "редактиран е „{0}“"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "изтрит е „{0}“"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -131,298 +244,168 @@ msgstr ""
 "Трябва да попълните някои данни за себе си, преди да се създаде папка на "
 "компютъра, ползваща SparkleShare."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Лично име:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Е-поща:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Нататък"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Настройване…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Къде е отдалечената папка?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "адрес.на.сървъра.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "На основния сървър:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Безплатен хостинг за свободни проекти и такива с отворен код."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "За непублично пространство и допълнителни ресурси се плаща."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Проектът GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME е разбираем интерфейс за компютъра ви."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "Ако работите по GNOME, изберете тази версия."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Свободен като инфраструктурата на свободата."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Безплатно за свободни проекти и такива с отворен код."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Потребител/Папка"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Проект/Папка"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Проект"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Папка"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Име на папка:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Синхронизиране"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Отказване"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Прескачане"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Поканата е приета!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Получихте покана за споделена папка. Ако искате,\n"
-"можете да я приемете, за да започне синхронизирането."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Приемате ли поканата?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Адрес на сървър:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Отхвърляне"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Не е ли време за кафенце?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Приемане и синхронизиране"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Завършване"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Получи се грешка…"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Опитайте отново"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Папката е успешно синхронизирана!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Можете да достъпите синхронизираните файлове от „{0}“ в папката ви за "
-"SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Отваряне на папката"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Завършване"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Синхронизиране на папка „{0}“…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Това може да отнеме малко време.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Не е ли време за кафенце?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare е готов!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Можете да приемате покани от други хора. \n"
-"Когато ги получите по е-пощата, просто натиснете върху връзката. SparkleShare се грижи за останалото."
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Научете как да създадете свой сървър за SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "С настоящите права не може да стартирате SparkleShare."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Нещата могат изцяло да се объркат."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Извеждане на информация за версията"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Показване на този помощен текст"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Авторски права: © 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Тази програма идва БЕЗ НИКАКВИ ГАРАНЦИИ."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"Това е свободен софтуер, можете да го разпространявате при определени "
-"условия."
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "За повече информация вижте Общия публичен лиценз на GNU, версия 3."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare автоматично синхронизира хранилища на Git"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "в папката ~/SparkleShare с отдалечените им източници."
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Употреба: sparkleshare [start|stop|restart] [ОПЦИЯ]…"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
-"Синхронизиране на папката ви за SparkleShare с отдалечените източници."
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Аргументи:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Все още няма отдалечени папки"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Добавяне на отдалечена папка…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Изключване на уведомяванията"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Включване на уведомленията"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Спиране на програмата"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Опс, конфликт на версии!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "Без паника! SparkleShare е създал копие на всеки файл в конфликт."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/ca.po b/po/ca.po
old mode 100644
new mode 100755
index a8a6f8d..92690c5
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,47 +1,103 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <bielet at bielet.com>, 2011.
-# Carles Mateu <carlesm at carlesm.com>, 2011.
+# Translators:
 #   <a at alexandresaiz.com>, 2011.
 # alexandresaiz <a at alexandresaiz.com>, 2011.
+#   <bielet at bielet.com>, 2011.
+# Carles Mateu <carlesm at carlesm.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-02 21:33+0000\n"
-"Last-Translator: alexandresaiz <a at alexandresaiz.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ca\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "El projecte GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Benvinguts a SparkleShare"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "No està tot sincronitzat"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Al dia"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Sincronitzant ..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "No està tot sincronitzat"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Copiar adreça web"
@@ -62,71 +118,127 @@ msgstr "Fer una còpia d'una versió anterior d'aquesta carpeta"
 msgid "Select to get a copy of this version"
 msgstr "Selecciona per obtenir una còpia d'aquesta versió"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Imprimir la informació de versió"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Mostra aquest text d'ajuda"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "una eina d'intercanvi i col·laboració"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010  Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Aquest programa ve sense, absolutament, cap garantia."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Aquest és programari lliure, i estas convidat a redistribuir-lo"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"sota certes condicions. Si us plau, llegeix la GNU GPLv3 per obtenir més "
+"detalls."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare sincronitza automàticament repositoris Git a"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "carpeta ~ / SparkleShare amb els seus orígens remots."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Ús: sparkleshare [start|stop|restart] [OPCIÓ] ..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Sincronitza carpeta SparkleShare amb repositoris remots."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Arguments:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Sobre SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Hi ha una versió nova"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Hi ha una nova versió ({0}) disponible!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Estas utilitzant la darrera versió"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Comprovant actualitzacions..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "Mostra els Credits"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Visitar lloc web"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "afegit '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "mogut ’{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "editat '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "eliminat '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "i ‘{0}’ més"
-msgstr[1] "i ‘{0}’ més"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "va fer una cosa màgica"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Accions recents"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Totes les carpetes"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -134,303 +246,168 @@ msgstr ""
 "Abans de crear una carpeta de SparkleShare en aquest ordinador, necessitem "
 "algunes informacions sobre tu"
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nom sencer:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Correu electrònic:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Següent"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configurant..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "On és la teva carpeta remota?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "adreça-del-servidor.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "En el meu propi servidor:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Allotjament gratuït per a projectes de programari lliure."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "També te comptes de pagament per espai i ample de banda addicional."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "El projecte GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME és una interfície fàcil d'usar i aprendre pel teu ordinador."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Escull aquesta opció si ets un desenvolupador o dissenyador treballant a "
-"GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Infrastructura totalment lliure, com en llibertat."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Comptes gratuïts per a projectes lliures i de codi obert."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Usuari/Carpeta"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projecte/Carpeta"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projecte"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Carpeta"
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nom de Carpeta:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Sincronitza"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Cancel·la"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Salta"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Invitació rebuda!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Has rebut una invitació per compartir una carpeta. Estem preparats per "
-"connectar-t'hi immediatament si així ho vols."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Acceptes aquesta invitació?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Adreça del servidor:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Això pot trigar una estona."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Rebutjar"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Segur que no és l'hora del cafè?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Acceptar i sincronitzar"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Finalitzar"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Alguna cosa ha fallat..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Quelcom ha fallat."
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Torna-ho a provar"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "‘{0}’ ha estat afegit satisfactoriament"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Carpeta sincronitzada amb èxit!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Ja pots accedir els fitxers sincronitzas de  ‘{0}’ a la teva carpeta de "
-"SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Obrir Carpeta"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Finalitzar"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Sincronitzant  carpeta '{0}' ..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
-"Això pot trigar una estona.\n"
-"\n"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Segur que no és l'hora del cafè?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare està llest!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Ara pots començar a acceptar invitacions d'altres usuaris. Només cal que "
-"facis clic a les invitacions que rebràs per correu electrònic i nosaltres "
-"ens encarreguem de la resta."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Apren com gestionar el teu propi servidor SparkleShare"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Accions recents"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Totes les carpetes"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Ho sentim, no pots executar SparkleShare amb aquests permisos."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Les coses anirien molt malament."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Imprimir la informació de versió"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Mostra aquest text d'ajuda"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "una eina d'intercanvi i col·laboració"
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010  Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Aquest programa ve sense, absolutament, cap garantia."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Aquest és programari lliure, i estas convidat a redistribuir-lo"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
-"sota certes condicions. Si us plau, llegeix la GNU GPLv3 per obtenir més "
-"detalls."
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare sincronitza automàticament repositoris Git a"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "carpeta ~ / SparkleShare amb els seus orígens remots."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Ús: sparkleshare [start|stop|restart] [OPCIÓ] ..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Sincronitza carpeta SparkleShare amb repositoris remots."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Arguments:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "No hi ha carpetes remotes encara"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Afegeix una carpeta remota"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Mostra les accions més recents"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Instal·lació SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Desactiva les Notificacions"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Activa les Notificacions"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Sortir"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ai! Col·lisió en ple vol!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"No et preocupis, SparkleShare ha fet una còpia de cada fitxer en conflicte."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Instal·lació SparkleShare"
-
 
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
old mode 100644
new mode 100755
index c45973f..2aeb7d3
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -1,48 +1,105 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Jiri Slezka <jiri.slezka at slu.cz>, 2011.
+#   <zzanzare at gmail.com>, 2011.
 # zzanzare <zzanzare at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-09 22:10+0000\n"
-"Last-Translator: dron23 <jiri.slezka at slu.cz>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs_CZ\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Projekt GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Vítejte ve SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Něco není synchronizováno"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Aktuální"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synchronizuji…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Něco není synchronizováno"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
-msgstr "Zkopírovat odkaz"
+msgstr "Copy Web Link"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
@@ -60,72 +117,127 @@ msgstr "Vytvořit kopii dřívější verze souboru v tomto adresáři"
 msgid "Select to get a copy of this version"
 msgstr "Vyberte pro získání kopie této verze"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Vypíše informace o verzi"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Zobrazit tuto nápovědu"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, nástroj pro sdílení a spolupráci."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Všechna práva vyhrazena (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Tento program je ABSOLUTNĚ BEZ ZÁRUKY."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Toto je svobodný software a můžete jej dále šířit."
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"za jistých podmínek. Prosím, přečtěte si GNU GPLv3 pro více informací."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare automaticky synchronizuje repozitáře Git v "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "složce ~/SparkleShare s jejich vzdálenými protistranami."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Použití: sparkleshare [start|stop|restart] [VOLBY]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synchronizovat složku SparkleShare se vzdálenými repozitáři."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumenty:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "O SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Je k dispozici novější verze"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Provozujete aktuální verzi."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Kontroluji aktualizace..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Zásluhy"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Navštívit domovskou stránku"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd d. MMM, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd d. MMM"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "přidal(a) ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "přesunuto \"{0}\""
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "upravil(a) ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "smazal(a) ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "a {0} více"
-msgstr[1] "a {0} více"
-msgstr[2] "a {0} více"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "stalo se něco magického"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Nedávné události"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Všechny složky"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -133,300 +245,168 @@ msgstr ""
 "Než vytvoříme SparkeShare složku v tomto počítači, potřebujeme od Vás pár "
 "drobných informací."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Celé jméno:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Další"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Nastavuji…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Kde je vaše vzdálená složka?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "adresa-k-serveru.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Na mém vlastním serveru:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Hosting zdarma pro Free a Open Source softwarové projekty."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Nabízí také placené účty pro extra soukromý prostor a rychlost připojení."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Projekt GNOME"
 
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME je jednoduše pochopitelné rozhraní pro váš počítač."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
-"Vyberte tuto možnost, pokud jste vývojář nebo designer pracujíci na GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Zcela svobodný, jako ve výrazu svobodná infrastruktura."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Účty zdarma pro Free a Open Source projekty."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Uživatel/Složka"
 
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt/Složka"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Složka"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Název složky:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synchronizovat"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Přeskočit"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Obdržená pozvánka!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Přišla vám pozvánka ke sdílené složce.\n"
-"Můžeme vás rovnou zapojit, jestli chcete."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Přijímáte tuto pozvánku?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Adresa serveru?"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Odmítnout"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Jste si jistí, že není čas na kafe?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Přijmout a synchronizovat"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Dokončit"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Něco se pokazilo..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Zkusit znova"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' byl úspěšně přidán"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Složka úspěšně synchronizována!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Nyní můžete přistoupit k synchronizovaným souborům z ‘{0}’ ve své složce "
-"SparkeShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Otevřít složku"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Dokončit"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synchronizuji složku ‘{0}’…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Toto může chvíli trvat.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Jste si jistí, že není čas na kafe?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare je připraven vyrazit!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nyní můžete začít přijímat pozvánky od ostatních. \n"
-"Stačí kliknout na pozvánky, které získáte emailem, a o zbytek se už postaráme."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Zjistěte jak připravit svůj vlastní SparkleServer"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Nedávné události"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Všechny složky"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
-"Je nám líto, ale nemůžete spouštět SparkleShare s těmito přístupovými právy."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Věci by se mohly příšerně pokazit."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Vypíše informace o verzi"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Zobrazit tuto nápovědu"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, nástroj pro sdílení a spolupráci."
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Všechna práva vyhrazena (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Tento program je ABSOLUTNĚ BEZ ZÁRUKY."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Toto je svobodný software a můžete jej dále šířit."
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
-"za jistých podmínek. Prosím, přečtěte si GNU GPLv3 pro více informací."
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare automaticky synchronizuje repozitáře Git v "
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "složce ~/SparkleShare s jejich vzdálenými protistranami."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Použití: sparkleshare [start|stop|restart] [VOLBY]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synchronizovat složku SparkleShare se vzdálenými repozitáři."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argumenty:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Žádné vzdálené složky"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Přidat vzdálenou složku…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Zobrazit nedávné události"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Nastavení SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Vypnout upozornění"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Zapnout upozornění"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Ukončit"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Au! Nehoda na cestě!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Nemějte strach, SparkleShare udělal kopie každého konfliktního souboru."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Nastavení SparkleShare"
-
 
diff --git a/po/da.po b/po/da.po
old mode 100644
new mode 100755
index cb2ba9e..a85995e
--- a/po/da.po
+++ b/po/da.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Aputsiaq Janussen <aputtu at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME-projektet"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Velkommen til SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Ikke alt er synkroniseret"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Opdateret"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synkroniseret"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Ikke alt er synkroniseret"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Kopiér web-henvisning"
@@ -59,71 +115,125 @@ msgstr "Lav en kopi af en tidligere version i denne mappe"
 msgid "Select to get a copy of this version"
 msgstr "Vælg for at hente en kopi af denne version"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Vis versioninformation"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Vis denne hjælpetekst"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright(C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Dette program modtages UDEN NOGEN GARANTIER OVERHOVEDET."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Dette er fri software, og du er velkommen til at distribuere den "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "under visse betingelser. Læs venligst GNU GPL v3 for detaljer."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synkroniserer automatisk Git-depoter i "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "mappen ~/SparkleShare med deres fjerne kilder."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Anvendelse: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synkroniser SparkleShare-mappe med fjerndepot"
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumenter:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Besøg hjemmeside"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "tilføjede '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "redigerede '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "slettede '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -131,298 +241,168 @@ msgstr ""
 "Før vi kan oprette en SparkleShare-mappe på denne maskine, så har vi brug "
 "for nogle få informationer fra dig."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Fuldt navn:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "E-post:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Næste"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Konfigurerer..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Hvor er din fjernmappe?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "server-adresse.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "På min egen server:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Fri hosting for Fri og Open Source Software-projekter."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "Har også betalingskonti for ekstra privat plads og båndbredde."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOME-projektet"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME er en letforståelig grænseflade til din computer."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Vælg denne option hvis du er en udvikler eller designer som laver arbejde "
-"for GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Fuldstændig »fri som i frihed«-infrastruktur"
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Frie konti for Fri og Open Source Software"
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Brugernavn/Mappe"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt/Mappe"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Mappe"
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Mappenavn:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synkronisering"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Afbryd"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Spring over"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Invitation modtaget!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Du er inviteret til at få adgang til en delt mappe.\n"
-"Vi er klar til straks at koble dig op, hvis du ønsker."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Accepterer du denne invitation?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Server-adresse:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Afslå"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Acceptér og synkroniser"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Afslut"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Der opstod en fejl..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Forsøg igen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Mappe succesfuldt synkroniseret!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Nu kan du tilgå de synkroniserede filer fra '{0}' i din SparkleShare-mappe."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Åbn mappe"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Afslut"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synkroniserer mappe '{0}'..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Dette kan tage et stykke tid.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare er klar til start!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nu har du mulighed for at acceptere invitationer fra andre.\n"
-"Klik blot på invitationer du modtager per e-post, og vi sørger for resten."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Lær hvordan du beværte din egen SparkleServer"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Beklager, du kan ikke køre SparkleShare med disse rettigheder."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Det ville gå helt galt."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Vis versioninformation"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Vis denne hjælpetekst"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright(C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Dette program modtages UDEN NOGEN GARANTIER OVERHOVEDET."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Dette er fri software, og du er velkommen til at distribuere den "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "under visse betingelser. Læs venligst GNU GPL v3 for detaljer."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synkroniserer automatisk Git-depoter i "
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "mappen ~/SparkleShare med deres fjerne kilder."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Anvendelse: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synkroniser SparkleShare-mappe med fjerndepot"
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argumenter:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Endnu ingen fjernemapper"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Afslut"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Av! Luftkollision!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Bare rolig, SparkleShare kopierede alle filer der gav anledning til "
-"konflikt."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/de.po b/po/de.po
old mode 100644
new mode 100755
index 3757fcd..f899ff4
--- a/po/de.po
+++ b/po/de.po
@@ -1,53 +1,113 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 #   <ch3f at gmx.de>, 2011.
-#   <yujiang.wang at ymail.com>, 2011.
-# kabum <uu.kabum at gmail.com>, 2011.
-# kxnop <m_leinmueller at hotmail.com>, 2011.
 #   <chrysn at fsfe.org>, 2011.
 # Heffer <felix at fetzig.org>, 2011.
+# Jan-Christoph Borchardt <JanCBorchardt at fsfe.org>, 2011.
+# kabum <uu.kabum at gmail.com>, 2011.
+#   <killerjoe at gmx.de>, 2011.
+# kxnop <m_leinmueller at hotmail.com>, 2011.
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
+#   <mm at imsoftware.de>, 2011.
+#   <urs.obernolte at googlemail.com>, 2011.
+#   <yujiang.wang at ymail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
-"Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-10 15:27+0000\n"
+"Last-Translator: MarkusLitz <killerjoe at gmx.de>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/username/project"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Das GNOME Projekt"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Alles unter meiner Kontrolle"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Auf meinem eigenen Server"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Willkommen bei SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Nicht alles ist synchronisiert"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
-msgstr "Schon auf dem aktuellsten Stand."
+msgstr "Aktualisiert"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
-msgstr "Abgleichen …"
+msgstr "Synchronisiere..."
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Es ist nicht alles synchronisiert"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
-msgstr "Kopiere Internetverknüpfung"
+msgstr "Web Link kopieren"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
@@ -65,71 +125,127 @@ msgstr "Erstelle eine Kopie einer früheren Version in diesem Verzeichnis"
 msgid "Select to get a copy of this version"
 msgstr "Selektieren, um eine Kopie dieser Version abzurufen"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Versionsinformationen anzeigen"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Diesen Hilfetext anzeigen"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, ein Werkzeug für verteilte Zusammenarbeit."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Diese Anwendung kommt OHNE IRGENDEINE GARANTIE."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Dies ist freie Software, die Sie gerne weitergeben dürfen"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"unter bestimmten Bedingungen. Bitte lesen Sie die GNU GPLv3 für weitere "
+"Details."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synchronisiert sich automatisch mit Git Repositories"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "den SparkleShare-Ordner mit den entfernten Quellen."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Verwendung: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "SparkleShare Ordner mit dem Remote-Repository synchronisieren."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Parameter:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Über SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Eine neuere Version ist verfügbar"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Eine neuere Version ({0}) ist verfügbar!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Sie verwenden die aktuelle Version."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Suche Aktualisierungen..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Zeige Mitwirkende"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Website besuchen"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "‘{0}’ hinzugefügt"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "‘{0}’ verschoben"
+msgstr "'{0}' verschoben"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "‘{0}’ bearbeitet"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "‘{0}’ gelöscht"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "und {0} weitere Änderung"
-msgstr[1] "und {0} weitere Änderungen"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "etwas magisches wurde getan"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Letzte Ereignisse"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Alle Ordner"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -137,305 +253,172 @@ msgstr ""
 "Bevor wir einen SparkleShare-Ordner auf diesem Computer einrichten können, "
 "benötigen wir einige Informationen von Ihnen."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Vollständiger Name:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "E-Mail:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Weiter"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Konfiguriere..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "In welchem Pfad liegt ihr Remote-Verzeichnis?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "server-adresse.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Auf meinem eigenen Server"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Kostenloses Hosting für Freie und Open Source Software Projekte."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-"Weiter gibt es kostenpflichtige Accounts für zusätzlichen privaten "
-"Speicherplatz und Bandbreite."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Das GNOME Project"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME ist ein einfach verständliches Interface für Ihrem Computer"
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Wählen Sie diese Option, wenn sie Entwickler oder Designer sind, der mit "
-"GNOME arbeitet."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Vollkommen frei wie in »Infrastruktur der Freiheit«."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Gratis Accounts für Freie und Open Source Projekte."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Benutzername/Ordner"
 
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt/Ordner"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Adresse"
 
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Entfernter Pfad"
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Ordner"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Verzeichnisname:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synchronisation"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Überspringen"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Einladung erhalten!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Sie haben eine Einladung zu einem freigegebenen Verzeichnis erhalten. \n"
-"Wir sind bereit die Verbindung direkt herzustellen, wenn Sie das wünschen."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Hinzufügen"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Nehmen Sie die Einladung an?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Füge Projekt '{0}' hinzu..."
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Serveradresse:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Das dauert vielleicht einen Moment."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Ablehnen"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Meinst Du nicht, dass es Kaffeezeit ist?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Akzeptieren und Synchronisieren"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Fertigstellen"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Ein Fehler ist aufgetreten..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Etwas ist schiefgelaufen"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Erneut versuchen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Nochmal versuchen..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "»{0}« wurde erfolgreich hinzugefügt"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Verzeichnis erfolgreich synchronisiert."
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projekt erfolgreich hinzugefügt!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Jetzt können Sie auf die von '{0}' synchronisierten Dateien in Ihrem "
-"SparkleShare Ordner zugreifen."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Zugriff auf die Dateien von Ihrem SparkleShare Ordner."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Ordner öffnen"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Fertigstellen"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Ordner »{0}« wird synchronisiert"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Dies kann eine Weile dauern.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Meinst Du nicht, dass es Kaffeezeit ist?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare ist bereit zum Loslegen!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Was passiert als nächstes?"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Sie können nun Einladungen annehmen. Klicken Sie einfach auf Einladungen, "
-"die Sie per E-Mail erhalten und wir kümmern uns um den Rest."
+"SparkleShare erzeugt einen eigenen Ordner in Ihrem persönlichen Ordner, der "
+"den Überblick über Ihre Projekte behalten."
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Lernen Sie, wie Sie Ihren eigenen SparkleServer betreiben können"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Tutorial überspringen"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Letzte Ereignisse"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Weiter"
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Alle Ordner"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Dateien mit anderen teilen"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"Entschuldigung, SparkleShare kann mit diesen Rechten nicht ausgeführt "
-"werden."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Alles würde völlig schief gehen."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Versionsinformationen anzeigen"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Diesen Hilfetext anzeigen"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, ein Werkzeug für verteilte Zusammenarbeit."
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Diese Anwendung kommt OHNE IRGENDEINE GARANTIE."
+"Alle zu Ihrem Projekt hinzugefügten Dateien sind automatisch mit dem Server "
+"und Ihren Mitarbeitern synchronisiert."
 
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Dies ist freie Software, die Sie gerne weitergeben dürfen"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Das Status Icon ist da um dir zu helfen"
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
-"unter bestimmten Bedingungen. Bitte lesen Sie die GNU GPLv3 für weitere "
-"Details."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synchronisiert sich automatisch mit Git Repositories"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "den SparkleShare-Ordner mit den entfernten Quellen."
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Verwendung: sparkleshare [start|stop|restart] [OPTION]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "SparkleShare Ordner mit dem Remote-Repository synchronisieren."
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Parameter:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Füge Projekte zu SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Es gibt noch keine Remote-Ordner"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Remote-Ordner hinzufügen..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare Konfiguration"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Zeige letzte Ereignisse"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Bislang keine Projekte "
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Benachrichtigungen deaktivieren"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Benachrichtigungen aktivieren"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Beenden"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Autsch! Kollision in der Luft!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Keine Sorge, SparkleShare hat eine Kopie jeder im Konflikt stehenden Datei "
-"angelegt."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShare Konfiguration"
-
 
diff --git a/po/el.po b/po/el.po
old mode 100644
new mode 100755
index 668e08a..aebf8c5
--- a/po/el.po
+++ b/po/el.po
@@ -1,417 +1,406 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 #   <manolis at kapcom.gr>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-13 19:17+0000\n"
-"Last-Translator: kapcom01 <manolis at kapcom.gr>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: el\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
-msgid "Up to date"
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
-msgid "Syncing…"
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
-msgid "Copy Web Link"
-msgstr "Αντιγραφή Συνδέσμου Ιστού"
-
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
-msgid "Copy the web address of this file to the clipboard"
-msgstr "Αντιγραφή της διεύθυνσης ιστού αυτού του αρχείου στο πρόχειρο"
-
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
-msgid "Get Earlier Version"
-msgstr "Λήψη Προηγούμενης Έκδοσης"
-
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
-msgid "Make a copy of an earlier version in this folder"
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
-msgid "Select to get a copy of this version"
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
 msgstr ""
 
-#. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
-msgid "About SparkleShare"
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
-msgid "You are running the latest version."
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
-msgid "Checking for updates..."
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
-#, csharp-format
-msgid "added ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
-#, csharp-format
-msgid "moved ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
-#, csharp-format
-msgid "edited ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
-#, csharp-format
-msgid "deleted ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
-#, csharp-format
-msgid "and {0} more"
-msgid_plural "and {0} more"
-msgstr[0] ""
-msgstr[1] ""
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
+msgstr "Αντιγραφή Συνδέσμου Ιστού"
 
-#: ../SparkleShare/SparkleController.cs:689
-msgid "did something magical"
-msgstr ""
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
+msgstr "Αντιγραφή της διεύθυνσης ιστού αυτού του αρχείου στο πρόχειρο"
 
-#: ../SparkleShare/SparkleIntro.cs:73
-msgid ""
-"Before we can create a SparkleShare folder on this computer, we need a few "
-"bits of information from you."
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
+msgstr "Λήψη Προηγούμενης Έκδοσης"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:83
-msgid "Full Name:"
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:98
-msgid "Email:"
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:109
-msgid "Next"
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
-msgid "Cancel"
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
-#, csharp-format
-msgid "‘{0}’ has been successfully added"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
 
-#. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
-msgid "Open Folder"
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:528
+#: ../SparkleShare/SparkleSetup.cs:335
 #, csharp-format
-msgid "Syncing folder ‘{0}’…"
+msgid "Adding project ‘{0}’…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:536
+#: ../SparkleShare/SparkleSetup.cs:337
 msgid "Are you sure it’s not coffee o'clock?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
-msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Τα πράγματα θα πάνε πολύ άσχημα."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
 msgstr ""
 
-#. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:262
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr ""
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr ""
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/eo.po b/po/eo.po
old mode 100644
new mode 100755
index a928434..f0d5799
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,45 +1,101 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <sven.koehler at student.hpi.uni-potsdam.de>, 2011.
+# Translators:
 # eliovir <eliovir at gmail.com>, 2011.
+#   <sven.koehler at student.hpi.uni-potsdam.de>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-12 21:24+0000\n"
-"Last-Translator: tzwenn <sven.koehler at student.hpi.uni-potsdam.de>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: eo\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
-msgstr "Bonvenon ĉe SparkleShare!"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "La GNOME-projekto"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Bonvenon ĉe SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr ""
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr ""
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Kopii retejan ligilon"
@@ -60,359 +116,292 @@ msgstr ""
 msgid "Select to get a copy of this version"
 msgstr "Elekti por akiri kopion de tiu versio"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Kopirajto (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr ""
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr ""
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Viziti retejon"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Ĉiuj dosierujoj"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nomo:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Retadreso:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Sekva"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Agordado..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr ""
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr "Rezigni"
 
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "La GNOME-projekto"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Senpagaj kontoj por malfermitkoda projektoj."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Uzantnomo/Dosierujo"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekto/Dosierujo"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekto"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Dosierujo"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nomo de la dosierujo"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Sinkronigi"
-
-#: ../SparkleShare/SparkleIntro.cs:312
-msgid "Cancel"
-msgstr "Rezigni"
-
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Preterpasi"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Ĉu vi akceptis la inviton?"
-
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Serva adreso:"
-
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Malakcepti"
-
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Akcepti kaj sinkronigi"
-
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Provi denove"
-
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Malfermi dosierujon"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Sinkronigi dosierujon '{0}'..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare pretas por eki!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr ""
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr ""
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Ĉiuj dosierujoj"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Kopirajto (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
 msgstr ""
 
-#. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:262
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr ""
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr ""
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/es.po b/po/es.po
old mode 100644
new mode 100755
index d0b4011..553a662
--- a/po/es.po
+++ b/po/es.po
@@ -1,18 +1,17 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <luiso.perez at gmail.com>, 2011.
+# Translators:
+# Claudio Rodrigo Pereyra Diaz <elsupergomez at gmail.com>, 2011.
 #   <jamelrom at gmail.com>, 2011.
+# jamelrom <jamelrom at gmail.com>, 2011.
+#   <luiso.perez at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-01 09:30+0000\n"
-"Last-Translator: jamelrom <jamelrom at gmail.com>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-02 12:13+0000\n"
+"Last-Translator: elsupergomez <elsupergomez at gmail.com>\n"
 "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/sparkleshare/team/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,26 +19,87 @@ msgstr ""
 "Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/usuario/proyecto"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr "Alojamiento gratuito de código fuente para Git y Mercurial"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Repositorios públicos y gratuitos de Git con gestión de colaboradores"
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/proyecto/repositorio"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+"Infraestructura de código libre para almacenar proyectos de código libre"
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/proyecto"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Una interfaz libre y sencilla para tu ordenador"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "El Proyecto GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/ruta/al/proyecto"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Todo bajo mi control"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "En mi propio servidor"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "¡Bienvenido a SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Pendiente de sincronizar"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Actualizado"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Sincronizando..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Pendiente de sincronizar"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Copiar Enlace"
@@ -60,71 +120,126 @@ msgstr "Hacer una copia de una versión anterior en esta carpeta"
 msgid "Select to get a copy of this version"
 msgstr "Seleccionar para obtener una copia de esta versión"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Muestra la información de la versión"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Mostrar este texto de ayuda"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, una herramienta de compartición y colaboración"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Este programa viene SIN NINGUNA GARANTÍA."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Esto es software libre, y esta invitado a redistribuirlo"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"bajo determinadas condiciones. Por favor lea la GNU GPLv3 para más detalles."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare sincroniza automaticamente repositorios Git en "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "La carpeta ~/SparkleShare con su origen remoto."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Uso: sparkleshare [start|stop|restart] [OPCION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Sincronizar carpeta SparkleShare con el repositorio remoto."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Parámetros:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Acerca de SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Una nueva versión esta disponible"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Esta disponible una nueva version  ({0})"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Estas ejecutando la última versión"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Comprobando actualizaciones..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Autores"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Visitar Página Web"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "d. ddd MMMM yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "d. ddd MMM"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
 msgstr "añadido '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr "movido '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
 msgstr "editado '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
 msgstr "eliminado '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] "y {0} más"
 msgstr[1] "y {0} más"
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "algo mágico ocurrió"
+msgstr "hizo algo mágico"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Eventos recientes"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Todas las carpetas"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,302 +247,178 @@ msgstr ""
 "Antes de que podamos crear una carpeta de SparkleShare en este equipo, "
 "necesitamos un poco de información de usted."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nombre completo:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Correo electrónico:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Siguiente"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configurando…"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "¿Donde esta almacenado su proyecto?"
 
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "¿Dónde está su carpeta remota?"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Dirección"
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "dirección-del-servidor.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "En mi propio servidor:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr ""
-"Alojamiento gratuito para proyectos de Software Libre y Código Abierto."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-"También tiene cuentas de pago para tener más espacio y ancho de banda "
-"privado."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "El Proyecto GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME es una interfaz para su equipo fácil de entender."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-"Seleccione esta opción si usted es un desarrollador o diseñador trabajando "
-"en GNOME."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Ruta remota"
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Completamente Libre como en la infraestructura de la Libertad."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Cuentas gratis para proyectos Libres y de Código Abierto."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Usuario/Carpeta"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Proyecto/carpeta"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Proyecto"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Carpeta"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nombre de la carpeta:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Sincronizar"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Saltar"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "¡Invitación recibida!"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Añadir"
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Usted ha recibido una invitación a unirse a una carpeta compartida.\n"
-"Estamos listos para unirte en cuanto lo desees."
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "¿Acepta esta invitación?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Añadiendo proyecto '{0}'..."
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Dirección del servidor:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Esto tardara un poco."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Rechazar"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "¿Seguro que no es la hora del café?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Aceptar y Sincronizar"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Finalizar"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Algo salió mal..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Algo falló"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Intentar de nuevo"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Intenta de nuevo..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' Ha sido añadido correctamente"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "¡Carpeta sincronizada con exito!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Proyecto añadido con exito!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Ahora puedes acceder a los archivos sincronizados desde '{0}' en tu carpeta "
-"de SparkleShare."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Acceso a los archivos desde tu carpeta de SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Abrir carpeta"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Finalizar"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Sincronizando carpeta ‘{0}’…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Esto puede tardar un rato.\n"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "¿Qué está pasando ahora?"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "¿Seguro que no es la hora del café?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "¡SparkleShare esta listo para usar!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Ahora puede empezar a aceptar invitaciones de otros.\n"
-"Solo haga click en las invitaciones que reciba por correo electrónico y nosotros encargaremos del resto."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Aprenda como hospedar su propio SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Eventos recientes"
+"SparkleShare crea una carpeta especial en tu carpeta personal que mantendra "
+"un historial de tus proyectos."
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Todas las carpetas"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Saltar Tutorial"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Perdón, no puede ejecutar SparkleShare con estos permisos."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Continuar"
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Las cosas irían absolutamente mal."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Compartiendo archivos con otros"
 
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Muestra la información de la versión"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Mostrar este texto de ayuda"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, una herramienta de compartición y colaboración"
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Este programa viene SIN NINGUNA GARANTÍA."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Esto es software libre, y esta invitado a redistribuirlo"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"bajo determinadas condiciones. Por favor lea la GNU GPLv3 para más detalles."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare sincroniza automaticamente repositorios Git en "
+"Todos los ficheros añadidos a tus carpetas de proyectos son sincronizadas "
+"automaticamente con el equipo, asi como con tus colaboradores."
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "La carpeta ~/SparkleShare con su origen remoto."
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Uso: sparkleshare [start|stop|restart] [OPCION]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "El icono de estado esta aquí para ayudarte"
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Sincronizar carpeta SparkleShare con el repositorio remoto."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+"Muestra el proceso de sincronización, y contiene enlaces a tus  proyectos y "
+"al registro de eventos."
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Parámetros:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Añadiendo proyectos a SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+"Basta con hacer clic en este botón cuando lo veas en la web, y el proyecto "
+"se agregará automáticamente:"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Todavía no hay carpetas compartidas"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+"... o seleccione <b>\"Agregar proyecto alojado ... \"</b> en el menú del "
+"icono de estado para agregar uno manualmente."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Añadir carpeta remota..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Añadir proyecto almacenado..."
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Configuración de SparkleShare"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Mostrar eventos recientes"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "No hay proyectos aún"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Abrir eventos recientes"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Desactivar las notificaciones"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Activar las notificaciones"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Salir"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "¡Ohh! ¡Hay una colisión!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"No se preocupe, SparkleShare hace una copia de cada archivo en conflicto."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Configuración de SparkleShare"
-
 
diff --git a/po/fi.po b/po/fi.po
old mode 100644
new mode 100755
index 37e56ea..3fadc18
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,46 +1,102 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 #   <joppu1 at gmail.com>, 2011.
-# Olli Jarva <olli at jarva.fi>, 2011.
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
+# Olli Jarva <olli at jarva.fi>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME-projekti"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Tervetuloa SparkleShareen!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Kaikkea ei ole synkronoitu"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Ajantasalla"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synkronoidaan..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Kaikkea ei ole synkronoitu"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Kopioi web-linkki"
@@ -61,71 +117,125 @@ msgstr "Tee kopio tämän hakemiston aikaisemmasta versiosta"
 msgid "Select to get a copy of this version"
 msgstr "Tee kopio tästä versiosta"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Tulosta versiotiedot"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Näytä tämä ohjeteksti"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, yhteistyö- ja jakotyökalu."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Tällä ohjelmalla EI OLE TAKUUTA."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Tämä on vapaa ohjelma, ja saat vapaasti levittää sitä"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "tietyin ehdoin. Saat lisätietoja GNU GPLv3:sta."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synkronoi automaattisesti Git-tietokannat"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "~/SparkleShare-kansiosta etäpalvelinten kanssa."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Käyttö: sparkleshare [start|stop|restart] [asetukset]"
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synkronoi SparkleShare-kansio etätietokantoihin."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Parametrit:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Tietoja SparkleSharesta"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Uudempi versio on saatavissa"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Sinulla on uusin versio käytössäsi"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Tarkistetaan päivityksiä..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Näytä osallistujat"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Käy nettisivulla"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ppp kkk d, vvvv"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ppp kkk d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "lisätty '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "siirrettiin '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "muokattu '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "poistettu '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "teki jotain maagista"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -133,296 +243,168 @@ msgstr ""
 "Ennen kuin voit luoda SparkleShare-kansio tälle tietokoneelle, tarvitsemme "
 "joitain tietoja sinusta."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Koko nimi:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Sähköposti:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Seuraava"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Säädetään..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Missä etähakemisto on?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "palvelimen-osoite.fi"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Omalle palvelimelleni:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Ilmainen palvelintila vapaan lähdekoodin projekteille."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Myös maksullisia tilejä ylimääräisellä tilalla ja nopeammalla yhteydellä."
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOME-projekti"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME on helppokäyttöinen käyttöliittymä tietokoneellesi."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "Valitse tämä, jos olet kehittäjä tai suunnittelija GNOME-projektissa."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Täysin vapaa infrastruktuuri."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Ilmainen tili vapaan lähdekoodin projekteille."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Käyttäjätunnus/hakemisto"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekti/hakemisto"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Hakemisto"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Hakemiston nimi:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synkronoi"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Peruuta"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Ohita"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Kutsu vastaanotettu!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Olet saanut kutsun liittyä jaettuun kansioon.\n"
-"Olemme valmiita liittämään sinut välittömästi, jos haluat."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Hyväksytkö tämän kutsun?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Palvelimen osoite:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Hylkää"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Oletko varma, että ei ole kahvitauon paikka?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Hyväksy ja synkronoi"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Valmis"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Jotain meni pieleen..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Yritä uudelleen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' lisättiin onnistuneesti"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Hakemistojen synkronointi onnistui!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "Voit käyttää '{0}' synkronoituja tiedostoja SparkleShare-kansiossasi."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Avaa hakemisto"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Valmis"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synkronoidaan hakemistoa '{0}'..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Tämä voi kestää hetken.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Oletko varma, että ei ole kahvitauon paikka?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare on valmis toimimaan!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nyt voit ottaa vastaan kutsuja muilta.\n"
-"Paina kutsua jonka sait sähköpostilla, ja hoidamme loput."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Selvitä, kuinka voit pitää omaa SparkleServer-palvelinta"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Et voi ajaa SparkleSharea näillä oikeuksilla."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Asiat menevät paljon pieleen."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Tulosta versiotiedot"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Näytä tämä ohjeteksti"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, yhteistyö- ja jakotyökalu."
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Tällä ohjelmalla EI OLE TAKUUTA."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Tämä on vapaa ohjelma, ja saat vapaasti levittää sitä"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "tietyin ehdoin. Saat lisätietoja GNU GPLv3:sta."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synkronoi automaattisesti Git-tietokannat"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "~/SparkleShare-kansiosta etäpalvelinten kanssa."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Käyttö: sparkleshare [start|stop|restart] [asetukset]"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synkronoi SparkleShare-kansio etätietokantoihin."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Parametrit:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Ei etäkansioita"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Lisää etähakemisto..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleSharen asennus"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Poista ilmoitukset käytöstä"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Ota ilmoitukset käyttöön"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Lopeta"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Auts! Törmäys!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Ei huolta, SparkleShare teki kopion kaikista tiedostoista, joissa on "
-"konflikti."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleSharen asennus"
-
 
diff --git a/po/fr.po b/po/fr.po
old mode 100644
new mode 100755
index e017cce..c4479fe
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,54 +1,112 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
+# angelini paa <angelini at univ-rennes1.fr>, 2011.
 #   <baje001 at gmail.com>, 2011.
 # Bruno ARLIGUY <from-transifex at arliguy.net>, 2011.
 # Crash <quentin.valmori at gmail.com>, 2011.
+# Thomas Menga <lekiss at gmail.com>, 2011.
 # Yann Yann <chezyann at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
-"Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-04 22:18+0000\n"
+"Last-Translator: chezyann <chezyann at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/nom-d-utilisateur/projet"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr "Hébergement gratuit de code pour Git et Mercurial"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Dépôts Git gratuits avec gestion des collaborateurs"
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/projet/depot"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr "Infrastructure open source d'hébergement de projets open source"
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/projet"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Une interface facile et gratuite pour votre ordinateur"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Le projet GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/chemin/du/projet"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Tout est sous mon contrôle"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Mon propre serveur"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Bienvenue sur SparkleShare !"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Tout n'est pas synchronisé"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "À jour"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synchronisation en cours…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Tout n'est pas synchronisé"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Copier le lien web"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
-msgstr "Copie l'adresse internet de ce fichier dans le presse‑papier"
+msgstr "Copier l'adresse internet de ce fichier dans le presse‑papier"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
 msgid "Get Earlier Version"
@@ -62,71 +120,127 @@ msgstr "Créer une copie d'une version antérieure de ce dossier"
 msgid "Select to get a copy of this version"
 msgstr "Sélectionner pour obtenir une copie de cette version"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Affiche les informations de la version"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Afficher ce texte d’aide"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, outils de collaboration et de partage"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Ce logiciel est diffusé sans AUCUNE GARANTIE."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Ce logiciel est libre et vous êtes invité à le re‑distribuer  "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"sous certaines conditions. Merci de lire la licence GNU GPLv3 pour de plus "
+"amples informations."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synchronise automatiquement les dépôts Git dans "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "le dossier ~/SparkleShare avec leurs racines distantes."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Utilisation : sparkleshare [start|stop|restart] [OPTION]…"
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synchroniser le dossier SparkleShare avec les dépôts distants."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Paramètres :"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "À propos de SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Une nouvelle version est disponible"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Une nouvelle version ({0}) est disponible!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Vous disposez de la dernière version."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Vérification des mises à jour…"
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Afficher les crédits"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Visiter le site web"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd d MMM yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr "dddd d MMMM yyyy"
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd d MMM"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr "dddd d MMMM"
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "Ajouté : « {0} »"
+msgstr "Ajouté: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "Déplacé : « {0} »"
+msgstr "Déplacé: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "Edité : « {0} »"
+msgstr "Modifié: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "Supprimé : « {0} »"
+msgstr "Supprimé: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "et {0} de plus"
-msgstr[1] "et {0} de plus"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "quelque chose de magique s'est passé"
+msgstr "Attendez un miracle"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Évènements récents"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Tous les dossiers"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -134,309 +248,174 @@ msgstr ""
 "Afin de pouvoir créer un dossier SparkleShare sur cet ordinateur, nous avons"
 " besoin de quelques informations."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nom et prénom :"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email :"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Suivant"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configuration en cours…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Où se trouve votre dossier distant ?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "adresse-du-serveur.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Sur mon serveur :"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr ""
-"Hébergement gratuit pour les projets de logiciels Open Source et gratuits."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-"Dispose aussi de comptes payants pour plus d'espace privé et de bande "
-"passante."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Le projet GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr ""
-"GNOME est une interface graphique simple à utiliser pour votre ordinateur."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-"Choisissez cette option si vous êtes un développeur ou concepteur "
-"travaillant sous GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Infrastructure entièrement libre."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Comptes gratuits pour les projets Open Source et gratuits."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Nom d'utilisateur/Dossier"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projet/Dossier"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projet"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Dossier"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Où est hebergé votre projet ?"
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nom du dossier :"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Adresse"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synchroniser"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Chemin à distance"
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Annuler"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Passer"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Ajouter"
 
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Invitation reçue !"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Vous avez reçu une invitation pour rejoindre un dossier partagé.\n"
-"Nous sommes prêt à vous connecter si vous le souhaitez."
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Acceptez vous cette invitation ?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Ajout du projet '{0}'"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Adresse du serveur :"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Cela peut prendre un peu de temps."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Rejeter"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Ne pensez-vous pas qu'il est temps de prendre un café ?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Accepter et synchronisez"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Terminer"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Quelque chose s'est mal passé…"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Il y a eu un problème"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Réessayer"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Réessayez..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "« {0} » a été ajouté avec succès"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Le dossier a été synchronisé avec succès !"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projet ajouté !"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Vous pouvez à présent accéder aux fichiers synchronisés sur  « {0} » depuis "
-"votre dossier SparkleShare."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Accéder vos fichiers depuis le répertoire Sparkleshare"
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Ouvrir le dossier"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Terminer"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Et ensuite ?"
 
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synchronise le dossier  « {0} » …"
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr "Sparkleshare crée un répertoire spécial pour vos projets"
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr ""
-"Cette opération peut durer un moment.\n"
-"\n"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Passer ce tutoriel"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Ne pensez-vous pas qu'il est l'heure de prendre un café ?"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Continuer"
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare est opérationnel !"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Partager des fichers avec d'autres utilisateurs"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:503
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"Vous pouvez désormais accepter des invitations. \n"
-"Pour cela, il vous suffira de cliquer sur les invitations que vous aurez reçues par mail et nous nous occuperons du reste."
+"Tous les fichiers ajoutés à votre projet sont synchronisés automatiquement, "
+"avec les vôtres ou ceux qui collaborent avec vous"
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Apprendre à héberger son propre serveur SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Évènements récents"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Tous les dossiers"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "L'îcone d'état est là pour vous aider"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
-"Désolé, vous ne disposez pas des autorisations nécessaires pour lancer "
-"SparkleShare."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Les choses pourraient très mal tourner."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Affiche les informations de la version"
+"Elle montre l'état du processus de synchronisation et contient les liens "
+"vers vos projets, ainsi que l'historique des évènements "
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Afficher ce texte d’aide"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, outils de collaboration et de partage"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Ajout de projets dans SpakleShare"
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Ce logiciel est diffusé sans AUCUNE GARANTIE."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Ce logiciel est libre et vous êtes invité à le re‑distribuer  "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
-"sous certaines conditions. Merci de lire la licence GNU GPLv3 pour de plus "
-"amples informations."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synchronise automatiquement les dépôts Git dans "
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "le dossier ~/SparkleShare avec leurs racines distantes."
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Utilisation : sparkleshare [start|stop|restart] [OPTION]…"
+"Cliquez sur ce bouton dans une page Web, et le projet sera automatiquement "
+"ajouté"
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synchroniser le dossier SparkleShare avec les dépôts distants."
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Paramètres :"
-
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
-
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Aucun dossier distant pour l'instant."
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Ajouter un dossier distant…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Ajouter un projet hébergé..."
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Afficher les évènements récents"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Configuration de SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Pas de projets déclarés"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Ouvrir les évènements récents"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Désactiver les notifications"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Activer les notifications"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Quitter"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Outch ! Collision en plein ciel !"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Ne vous inquiétez pas, SparkleShare a effectué une copie de chacun des "
-"fichiers en conflit."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Configuration de SparkleShare"
-
 
diff --git a/po/he.po b/po/he.po
old mode 100644
new mode 100755
index 73e49af..8752c0f
--- a/po/he.po
+++ b/po/he.po
@@ -1,43 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
+#   <ophir.setter+transifex at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
-"Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-01 20:06+0000\n"
+"Last-Translator: ophir <ophir.setter+transifex at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: he\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "גיטוריוס"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "פרוייקט גנום"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "הכל תחת שליטתי"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "שרת משלי"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "ברוכים הבאים לספארקלשר!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "לא הכל מסונכרן"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "מעודכן"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "מסנכרן..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "לא הכל מסונכרן"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "העתק לינק"
@@ -58,362 +115,293 @@ msgstr "צור העתק של גרסה קודמת בתקייה זו"
 msgid "Select to get a copy of this version"
 msgstr "בחר כדי לקבל העתק של גרסה זו"
 
-#. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
-msgid "About SparkleShare"
-msgstr ""
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "מידע גרסת ההדפסה"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr ""
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "הראה את מלל העזרה"
 
-#: ../SparkleShare/SparkleAbout.cs:60
-msgid "You are running the latest version."
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
-msgid "Checking for updates..."
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "זכויות שמורות (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "תוכנה זו באה ללא כל אחריות."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "תוכנה זו הינה חופשית ואתם מוזמנים להפיצה"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "תחת תנאים מסויימים. אנא קראו את רשיון GNU GPLv3 לקבלת פרטים."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_בקר באתר"
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "שימוש: sparkleshare [start|stop|restart] [אפשרויות]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "סנכרן תקיית ספארקלשר עם מאגרים מרוחקים."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "ארגומנטים:"
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "ספארקלשר"
+
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
+msgstr "אודות ספארקלשר"
+
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "גירסה חדשה יותר ({0}) זמינה!"
+
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
+msgstr "אתה מריץ את הגרסה המעודכנת ביותר"
+
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
+msgstr "בודק עדכונים..."
+
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "הוסף ‘{0}’"
+msgstr "‘{0}’ הוסף"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr ""
+msgstr "‘{0}’ הוזז"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "נערך ‘{0}’"
+msgstr "‘{0}’ שונה"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "נמחק ‘{0}’"
+msgstr "‘{0}’ נמחק"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "אירועים אחרונים"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "כל התיקיות"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
 msgstr ""
 "לפני שנוכל ליצור תקיית ספארקלשר על מחשב זה, אנו צריכים כמה פיסות מידע ממך."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "שם מלא:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
-msgstr "דוא\"ל"
+msgstr "דוא\"ל:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "הבא"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "קובע הגדרות..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "היכן נמצאת תקייתך המרוחקת?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "כתובת-שרת.קום"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "על השרת שלי:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "שירותי אחסון חינמיים לפרוייקטי קוד פתוח חופשיים."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "מציעים גם חשבונות בתשלום עם מקום אחסון אישי ותעבורה גדולים."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "פרוייקט גנום"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "פרוייקט גנום הינו ממשק קל ונוח למחשבך"
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "בחר באפשרות זו אם אתה מתכנת או מעצב העובד על פרוייקט גנום."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "גיטוריוס"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "חופשי לגמרי כבתשתית חופשית."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "חשבונות חינמיים לפרוייקטי קוד חופשי ופתוח."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "שם משתמש\\תקייה"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "פרוייקט\\תקייה"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "פרוייקט"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "תקייה"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "שם תקייה:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "סנכרן"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "בטל"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "דלג"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "ההזמנה התקבלה!"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "הוסף"
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"קיבלת הזמנה להצטרף תקייה משותפת.\n"
-"אנו מוכנים לחבר אותך ברגע זה אם תרצה."
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "האם אתה מקבל את ההזמנה הזו?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "מוסיף פרויקט ‘{0}’…"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "כתובת שרת:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "זה עלול לקחת זמן מה"
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "דחה"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "מה אתה אומר על קפה?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "אשר וסנכרן"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "סיים"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "משהו לא הלך כשורה..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "משהו השתבש"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "נסה שוב"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "נסה שוב..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
-msgstr ""
+msgstr "‘{0}’ הוסף בהצלחה"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "התקייה סונכרנה בהצלחה!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "פרויקט הוסף בהצלחה!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "אפשר כעת לגשת לקבצים שסונכרנו מ-‘{0}’ בתיקיית ספארקלשר שלך."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "גש לקבצים מתיקיית ספארקלשר"
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "פתח תקייה"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "סיים"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "מסנכרן תיקייה ‘{0}’..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "דבר זה יכול לקחת זמן.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "ספארקלשר מוכן!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "מה עכשיו?"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
-msgstr "הנך יכול עתה לקבל הזמנות מאחרים.פשוט לחץ על הזמנות שאתה מקבל."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "למד איך להקים שרת אכסון, ספארקלסרבר (SparkleServer), של ספארקלשר משלך"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "מצטערים, אך אינך יכול להריץ ספארקלשר עם ההרשאות האלה."
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "דלג על הדרכה"
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "דברים בלתי תקינים עשויים לקרות."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "המשך"
 
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "מידע גרסת ההדפסה"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "שיתוף קבצים עם אחרים"
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "הראה את מלל העזרה"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "זכויות שמורות (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "תוכנה זו באה ללא כל אחריות."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "תוכנה זו הינה חופשית ואתם מוזמנים להפיצה"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "תחת תנאים מסויימים. אנא קראו את רשיון GNU GPLv3 לקבלת פרטים."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "שימוש: sparkleshare [start|stop|restart] [אפשרויות]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "סנכרן תקיית ספארקלשר עם מאגרים מרוחקים."
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "ארגומנטים:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "הוספת פרויקטים לספארקלשר"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "ספארקלשר"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr "לחץ כאן כשאתה רואה אותו ברשת, והפרויקט יתווסף אוטומטית:"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "עדיין אין תיקיות מרוחקות"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr ""
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "התקנת ספארקלשר"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "עדיין אין פרויקטים"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "פתח אירועים אחרונים"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
-msgstr ""
+msgstr "כבה הודעות"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
-msgstr ""
+msgstr "הפעל הודעות"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "צא"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "איה! התנגשות באמצע ההעברה!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "אל דאגה, ספארקלשר יצר העתק של כל אחד מהקבצים הסותרים (השונים)"
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/hu.po b/po/hu.po
old mode 100644
new mode 100755
index c098780..d73ac4c
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Zoltan Hoppár <hopparz at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: hu\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "A GNOME Project"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Üdvözli a SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Nincs minden szinkronizálva"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Naprakész"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Szinkronizálás..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Nincs minden szinkronizálva"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Weblink kimásolása"
@@ -59,71 +115,126 @@ msgstr "Korábbi verzió másolása ebbe a mappába"
 msgid "Select to get a copy of this version"
 msgstr "Válasszon hogy egy korábbi változatot megkapjon"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Verzió információk nyomtatása"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Ezt a súgó segítséget jeleníti meg"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, az együttműködés és megosztás eszköze."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Erre a programra nincs SEMMIFÉLE GARANCIA."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Ez egy szabad szoftver, és mindig örülünk, ha terjesztik "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"bizonyos feltételek mellett. Kérjük, olvassa el a GNU GPLv3 a részletekért."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare automatikusan szinkronizálja Git adattárakat a"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "a ~/SparkleShare mappával a távoli eredetükkel."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Használat: sparkleshare [start | stop | újraindítás] [OPCIÓK] ..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "A SparkleShare mappa szinkronizálása a távoli tárolókkal."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Paraméterek:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "A SparkleShare-ről"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Egy újabb verzió elérhető"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Az elérhető legújabb verziót használja."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Frissítések keresése..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "Szerzői névsor megjelenítése"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "Weboldal meglátogatása"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "hozzáadva '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "elmozgatva '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "szerkesztve '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "törölve '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "és {0} további"
-msgstr[1] "és {0} továbbiak"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "valami varázslatosat tett"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Utóbbi események"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "MInden mappa"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -131,303 +242,168 @@ msgstr ""
 "Mielőtt még egy SparkleShare mappát készítenénk ezen a gépen, még néhány "
 "apró információra lenne szükség."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Teljes név:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Következő"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Beállítás alatt..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Hol van a távoli elérésű mappája?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "cím-a-szerverhez.hu"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "A saját szerveremen:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Ingyenes tárhely szolgáltatás ingyenes és nyílt forrású szoftver projektek "
-"számára."
 
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
-"De rendelkezünk fizetős regisztrációkkal még több személyes tárhelyhez és "
-"sávszélességhez."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "A GNOME Project"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME egy könnyen érthető kezelőfelület a gépéhez."
 
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
-"Válassza ezt az opciót ha fejlesztő vagy tervezőként dolgozik GNOME-ban"
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Teljesen szabad mint Szabad infrastruktúra."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Ingyenes regisztrációk a szabad és nyílt forrású projektek számára."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Felhasználónév / Mappa"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt / Mappa"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Mappa"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Mappa neve:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Szinkronizál"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Mégsem"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Kihagyás"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Meghívás érkezett!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Meghívást kapott, hogy csatlakozzon egy megosztott mappához. Készen állunk "
-"hogy bekapcsoljuk azonnal, ha kívánja."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Elfogadja ezt a meghívást?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Szerver címe:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Elutasítás"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Biztos benne, hogy nincs kávészünet?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Elfogadás és szinkronizálás"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Befejezés"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Valami nem sikerült..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Próbálja újra"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' sikeresen hozzáadva"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Mappa sikeresen szinkronizálva!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Most már el tudja érni a szinkronizált fájlokat '{0}' a SparkleShare "
-"mappában."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Mappa megnyitása"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Befejezés"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Szinkronizálása mappa '{0}'..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Ez eltarthat egy ideig.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Biztos benne, hogy nincs kávészünet?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare készen áll!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Most már meg lehet kezdeni elfogadni a meghívásokat másoktól.\n"
-"Csak kattintson a meghívásokra amit e-mailben kap, és mi gondoskodunk a többiről."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Ismerje meg, hogyan tarthat saját SparkleServer-t"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Utóbbi események"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "MInden mappa"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Elnézést, nem tudja futtatni SparkleShare ezekkel a jogosultságokkal."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "A dolgok teljesen rossz irányt vehetnek."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Verzió információk nyomtatása"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Ezt a súgó segítséget jeleníti meg"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, az együttműködés és megosztás eszköze."
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Erre a programra nincs SEMMIFÉLE GARANCIA."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Ez egy szabad szoftver, és mindig örülünk, ha terjesztik "
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
-"bizonyos feltételek mellett. Kérjük, olvassa el a GNU GPLv3 a részletekért."
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare automatikusan szinkronizálja Git adattárakat a"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "a ~/SparkleShare mappával a távoli eredetükkel."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Használat: sparkleshare [start | stop | újraindítás] [OPCIÓK] ..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "A SparkleShare mappa szinkronizálása a távoli tárolókkal."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Paraméterek:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Még nincsenek távoli mappák"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Távoli mappa hozzáadása..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Utolsó események megjelenítése"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare beállítása"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Értesítések kikapcsolása"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Értesítések bekapcsolása"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Kilépés"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Jaj! Ütközés a forgalomban!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Nincs ok az aggodalomra, SparkleShare minden ütköző fájlról készít "
-"másolatot."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShare beállítása"
-
 
diff --git a/po/it.po b/po/it.po
old mode 100644
new mode 100755
index 43ecf2c..26e9b60
--- a/po/it.po
+++ b/po/it.po
@@ -1,52 +1,109 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Ilias Bartolini <ilias.bartolini at gmail.com>, 2011.
+# Luca Delucchi <lucadeluge at gmail.com>, 2011.
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorius"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "The GNOME Project"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Benvenuto in SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Non tutto è sincronizzato"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Aggiornato"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Sincronizzazione in corso..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Non tutto è sincronizzato"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
-msgstr "Copia Indirizzo Web"
+msgstr "Copia link web"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
-msgstr "Copia l'indirizzo web di questo file negli appunti"
+msgstr "Copia l'indirizzo web di questo file"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
 msgid "Get Earlier Version"
@@ -60,71 +117,126 @@ msgstr "Esegui una copia di una precedente versione di questa cartella"
 msgid "Select to get a copy of this version"
 msgstr "Seleziona per ottenere una copia di questa versione"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Stampa informazioni sulla versione"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Mostra questo messaggio di aiuto"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, uno strumento collaborativo e di condivisione"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Questo programma viene fornito ASSOLUTAMENTE SENZA NESSUNA GARANZIA."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Questo è software libero e sei invitato a redistribuirlo"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"rispettando alcune restrizioni. Leggi la licenza GNU GPLv3 per i dettagli"
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare sincronizza automaticamente i repository Git nella"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "cartella ~/.SparkleShare con le loro origini."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Utilizzo: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Sincronizza cartella SparkleShare con repository remoti."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argomenti"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Informazioni su SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr ""
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "È disponibile una nuova versione ({0})"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
-msgstr ""
+msgstr "Stai lanciando l'ultima versione"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Mostra Crediti"
+msgstr "Controllando per aggiornamenti..."
 
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Visita il sito web"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "aggiunti '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "modificati '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "eliminati '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Eventi recenti"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Tutte le cartelle"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,302 +244,168 @@ msgstr ""
 "Prima di poter creare una cartella SparkleShare in questo computer, abbiamo "
 "bisogno di qualche informazione da voi."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nome e Cognome:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Successivo"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configurazione in corso..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Dove si trova la tua cartella remota?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "indirizzo-del-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "In un mio server personale:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Hosting gratuito per progetti di Software Libero ed Open Source:"
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Ha anche account a pagamento per una maggiore larghezza di banda e spazio "
-"privato."
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "The GNOME Project"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME è una facile interfaccia al tuo computer."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
-"Selezionare questa opzione se sei uno sviluppatore o progettista che sta "
-"lavorando su GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorius"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Completamente Libero, come nelle infrastrutture Libere"
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Account gratuiti per Software libero e progetti Open Source."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Username/Cartella"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Progetto/Cartella"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Progetto"
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Cartella"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nome Cartella:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Sincronizza"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Cancella"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Salta"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Invito ricevuto!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Hai ricevuto un invito a partecipare a una cartella condivisa. \n"
-" Siamo pronti ad agganciarti subito, se lo desideri"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Vuoi accettare questo invito?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Indirizzo Server:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Questa operazione potrebbe richiedere un po' di tempo."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Respingi"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Sei sicuro che non sia l'ora di un caffè?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Accetta e Sincronizza"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Finito"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Si è verificato un errore..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Qualcosa è andato storto"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Prova Ancora"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "‘{0}’ è stato aggiunto con successo"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Cartella sincronizzata con successo!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Ora puoi accedere ai file sincronizzati da ‘{0}’ nella tua cartella "
-"SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Apri cartella"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Finito"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Sincronizzo cartella '{0}' ..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Potrebbe impiegare un po' di tempo\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Sei sicuro che non sia l'ora di un caffè?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare è pronto!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Ora si può iniziare ad accettare inviti da altri. \n"
-"Basta cliccare sugli inviti ottenuti via  email e noi ci occuperemo del resto."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Impara come installare il tuo SparkleServer personale"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Spiacente, non è possibile eseguire SparkleShare con questi permessi."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Le cose potrebbero andare estremamente male."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Stampa informazioni sulla versione"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Mostra questo messaggio di aiuto"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Questo programma viene fornito ASSOLUTAMENTE SENZA NESSUNA GARANZIA."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Questo è software libero e sei invitato a redistribuirlo"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"rispettando alcune restrizioni. Leggi la licenza GNU GPLv3 per i dettagli"
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare sincronizza automaticamente i repository Git nella"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "cartella ~/.SparkleShare con le loro origini."
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Utilizzo: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Sincronizza cartella SparkleShare con repository remoti."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argomenti"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Nessuna Cartella Remota"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Aggiungi Cartella Remota..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Impostazioni "
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Spegni le notifiche"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Accendi le notifiche"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Esci"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ahi! Una collisione in volo!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Non ti preoccupare, SparkleShare ha eseguito una copia di ogni file in "
-"conflitto."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/ja.po b/po/ja.po
old mode 100644
new mode 100755
index 2768e0f..0971fd3
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,45 +1,102 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 #   <masa at takatsuka.org>, 2011.
 #   <matsuu at gmail.com>, 2011.
+#   <syunji at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ja\n"
 "Plural-Forms: nplurals=1; plural=0\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOMEプロジェクト"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "SparkleShareへようこそ!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "すべてが同期されていません"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "最新の状態です。"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "同期中..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "すべてが同期されていません"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "ウェブリンクのコピー"
@@ -60,362 +117,291 @@ msgstr "このフォルダに古いヴァージョンのコピーを作成"
 msgid "Select to get a copy of this version"
 msgstr "このヴァージョンを選択し、コピー"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "バージョン情報の表示"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "このヘルプテキストを表示"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare、コラボレーションと共有のためのツールです。"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C)2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "このプログラムは完全無保証です。"
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "これはフリーソフトウェアであり、再配布を歓迎します。"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "一定の条件の下で。詳細については、GNUのGPLv3をお読みください。"
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShareは自動的に..のGitリポジトリと同期します"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "リモートの元フォルダを含んだ~/SparkleShareフォルダ"
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "使用法: sparkleshare [start|stop|restart] [オプション]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "SparkleShareフォルダをリモートのリポジトリと同期。"
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "引数:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "SparkleShareについて"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "新しいバージョンがあります"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "新しいバージョン ({0}) が利用できます!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "最新のバージョンです。"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "更新の確認中..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "クレジットを表示する(_S)"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "Webサイトにアクセスする(_V)"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "'{0}'を追加しました"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "'{0}'を移動しました"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "'{0}'を編集しました"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "'{0}'を削除しました"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "、{0}詳細"
+msgstr[0] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "何か摩訶不思議なことをしました"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "最近のイベント"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "全てのフォルダ"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
 msgstr "SparkleShareのフォルダをこのコンピュータ上に作成する前に、少しですがお知らせがあります。"
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "氏名:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "電子メール:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "次"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "設定中..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "リモート・フォルダの場所はどこですか?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "サーバのアドレス.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "個人のサーバ:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "フリーでオープンソースのソフトウェアプロジェクトのための無料ホスティング。"
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "また、プライベートなストレージ領域の増量や高速通信のための有用アカウントもあります。"
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOMEプロジェクト"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOMEはあなたのコンピュータ使いやすくする環境です。"
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "もしあなたが、GNOMEの開発/デザインに関わっているなら、このオプションを選択。"
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "自由なインフラストラクチャとして完全無料。"
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "無料でオープンソースなプロジェクトのための無料アカウント"
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "ユーザー名/フォルダ"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "プロジェクト/フォルダ"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "プロジェクト"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "フォルダ"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "フォルダ名:"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "アドレス"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "同期"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "リモートパス"
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "キャンセル"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "スキップ"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "招待状が届きました!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"共有フォルダへのアクセスの招待状が届きました。\n"
-"すぐにアクセスする設置をする準備が整っています。"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "この招待状を受諾しますか?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "サーバアドレス:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "拒否"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "コーヒー時ではありませんか?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "受諾して同期する"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "完了"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "何らかの不具合の発生..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "再トライ"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}'は正常に追加されました"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "フォルダが正常に同期されました!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "これで、SparkleShareフォルダ'{0}'から同期されたファイルが使用可能です。"
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "フォルダを開く"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "完了"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "フォルダ'{0}'の同期中..."
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "しばらくお待ちください。\n"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "チュートリアルをスキップする"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "コーヒー時ではありませんか?"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "続ける"
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShareは準備完了です!"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:503
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"他の人から招待を受ける準備が整いました。\n"
-"あなたは、電子メールで受け取った招待状をクリックするだけです。後は私たちにお任せください。"
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "個人でSparkleServerを立ち上げる方法"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "申し訳ありませんが、SparkleShareを実行する権限がありません。パーミッションの設定を見直してください。"
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "全く予期しないことになるかもしれません。"
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "バージョン情報の表示"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "このヘルプテキストを表示"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare、コラボレーションと共有のためのツールです。"
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C)2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "このプログラムは完全無保証です。"
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "これはフリーソフトウェアであり、再配布を歓迎します。"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "一定の条件の下で。詳細については、GNUのGPLv3をお読みください。"
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShareは自動的に..のGitリポジトリと同期します"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "リモートの元フォルダを含んだ~/SparkleShareフォルダ"
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "使用法: sparkleshare [start|stop|restart] [オプション]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "SparkleShareフォルダをリモートのリポジトリと同期。"
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "引数:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "リモートフォルダまだ作成されていません。"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "リモートフォルダの追加..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShareセ​​ットアップ"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "最近のイベントを開く"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "通知をオフ"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "通知をオン"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "終了"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "イテテ!空中衝突だ!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "心配しないでください。SparkleShareは、各競合しているファイルのコピーを作成しました。"
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShareセ​​ットアップ"
-
 
diff --git a/po/nl.po b/po/nl.po
old mode 100644
new mode 100755
index 317b22b..6aa7dd2
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,47 +1,107 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <sven.koehler at student.hpi.uni-potsdam.de>, 2011.
+# Translators:
 #   <benjamincottyn at gmail.com>, 2011.
-# smeagiel <michielaiso at hotmail.com>, 2011.
+#   <hylkebons at gmail.com>, 2011.
+#   <inxidious at gmail.com>, 2011.
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
+#   <m.manshanden at gmail.com>, 2011.
+#   <mr.mmans at gmail.com>, 2011.
+# smeagiel <michielaiso at hotmail.com>, 2011.
+#   <sven.koehler at student.hpi.uni-potsdam.de>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-12 21:12+0000\n"
-"Last-Translator: tzwenn <sven.koehler at student.hpi.uni-potsdam.de>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-06 22:01+0000\n"
+"Last-Translator: mmans <mr.mmans at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/gebruikersnaam/project"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr "Gratis hosting voor Git en Mercurial"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Gratis publieke repositories met teambeheer."
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/project/repository"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr "Opensource infrastructuur voor het hosten van opensource projecten."
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/project"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Een gratis en gemakkelijke interface voor uw computer"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Het GNOME Project"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/pad/naar/project"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Alles onder mijn controle"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Op mijn eigen server"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Welkom bij SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Niet alles is gesynchroniseerd"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Up-to-date"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synchroniseren…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Niet alles is gesynchroniseerd"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Kopiëer weblink"
@@ -56,77 +116,133 @@ msgstr "Verkrijg eerdere versie"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
 msgid "Make a copy of an earlier version in this folder"
-msgstr "Maak een kopie van een oudere versie in deze map"
+msgstr "Maak een kopie van een oudere versie naar deze map"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
 msgid "Select to get a copy of this version"
 msgstr "Selecteer voor een kopie van deze versie"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Druk versie-informatie af"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Toon deze helptekst"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, een programma om samen te werken en te delen."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Er zit ABSOLUUT GEEN GARANTIE op dit programma."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+"Dit is vrije software en je bent van harte uitgenodigd om het te "
+"herdistribueren "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr " onder bepaalde voorwaarden. Zie de GNU GPLv3 voor meer informatie."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synchroniseert automatisch Git repositories in "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "de ~/SparkleShare map met de externe bron."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Gebruik: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synchroniseer de SparkleShare map met externe repositories"
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumenten:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Over SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Een nieuwere versie is beschikbaar"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Een nieuwe versie ({0}) is beschikbaar!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "U werkt met de nieuwste versie."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Controleren op updates ..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Bezoek website"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr "dddd, MMMM d, yyyy"
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr ""
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr "dddd, MMMM d"
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr ""
-
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "voegde ‘{0}’ toe"
+msgstr "toegevoegd: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr ""
+msgstr "verplaatst: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "bewerkte ‘{0}’"
+msgstr "bewerkt: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "verwijderde ‘{0}’"
+msgstr "verwijderd: ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "en nog {0}"
+msgstr[1] "en nog {0}"
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr ""
+msgstr "deed iets magisch"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Recente gebeurtenissen"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Alle mappen"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -134,300 +250,178 @@ msgstr ""
 "Voordat we een SparkleShare map op deze computer kunnen aanmaken, hebben we "
 "eerst wat informatie van je nodig."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Volledige naam:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "E-mailadres"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Volgende"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configureren…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Waar is je externe map?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "adres-naar-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Op mijn eigen server:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Gratis hosting voor Vrije en Open Source Software projecten."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-"Heeft ook accounts tegen betaling voor extra privéruimte en bandbreedte."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Het GNOME Project"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME is een makkelijk te begrijpen interface voor je computer."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "Selecteer deze optie als je een GNOME vrijwilliger bent."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Volledig Free as in Freedom infrastructuur."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Gratis accounts voor Vrije en Open Source Software projecten."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Gebruikersnaam/Map"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Project/Map"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Project"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Waar word het project gehost?"
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Map"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Adres"
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Mapnaam:"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Extern pad"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synchroniseer"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Annuleren"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Overslaan"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Uitnodiging ontvangen!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Je hebt een uitnodiging ontvangen om je bij een gedeelde map aan te sluiten.\n"
-"Als je wilt zorgen we ervoor dat dit meteen in orde komt."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Toevoegen"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Accepteer je deze uitnodiging?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Project '{0}' toevoegen..."
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Serveradres:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Dit kan even duren."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Weigeren"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Tijd voor een Cup-a-Soup?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Accepteren en Synchroniseren"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Voltooien"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Er is iets fout gegaan…"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Er ging iets mis"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Opnieuw proberen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Opnieuw proberen..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' is met succes toegevoegd"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Map succesvol gesynchroniseerd!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Project succesvol toegevoegd!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Nu heb je toegang tot de gesynchoniseerde bestanden van ‘{0}’ in je "
-"SparkleShare map."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Benader de gesynchroniseerde bestanden in je SparkleShare-map."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Map openen"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Voltooien"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Map ‘{0}’ aan het synchroniseren…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Dit kan even duren.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Tijd voor een Cup-a-Soup?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare is er klaar voor!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "What gebeurt er nu?"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nu kan je uitnodigingen accepteren van anderen. \n"
-"Klik gewoon op uitnodigingen die je per e-mail ontvangt en wij zorgen voor de rest."
+"SparkleShare maakt een speciale map in je persoonlijke map die je projecten "
+"in de gaten houdt."
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Leer hoe je je eigen SparkleServer kan opzetten"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Tutorial overslaan"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Recente gebeurtenissen"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Alle mappen"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Sorry, SparkleShare kan niet gedraaid worden met deze rechten."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Doorgaan"
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Dingen zouden vresenlijk mis gaan"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Bestanden delen met anderen"
 
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Druk versie-informatie af"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Toon deze helptekst"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
+"Alle bestanden die je aan je projectmappen toevoegt worden automatisch "
+"gesynchroniseerd met de host en je team."
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Het statusicoon bied hulp"
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Er zit ABSOLUUT GEEN GARANTIE op dit programma."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
-"Dit is vrije software en je bent van harte uitgenodigd om het te "
-"herdistribueren "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr " onder bepaalde voorwaarden. Zie de GNU GPLv3 voor meer informatie."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare automatisch synchroniseerd Git repositories in "
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "de ~/SparkleShare map met de externe bron."
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Gebruik: sparkleshare [start|stop|restart] [OPTION]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synchroniseer de SparkleShare map met externe repositories"
+"Het toont de voortgang van het synchroniseerproces en bevat links naar je "
+"projecten en het logboek."
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argumenten:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Projecten toevoegen aan SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+"Klik op deze knop wanneer je deze tegenkomt op het web, en het project wordt"
+" automatisch toegevoegd."
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Nog geen externe mappen"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+"…of selecteer <b>‘Gehost project toevoegen…’</b> in het menu van het "
+"statusicoon om een project met de hand toe te voegen."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Externe map toevoegen…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Gehost project toevoegen…"
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare Setup"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Toon recente gebeurtenissen"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Nog geen projecten"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Logboek openen"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Zet mededelingen uit"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Zet mededelingen aan"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Afsluiten"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ouw! Botsing!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Geen zorgen, SparkleShare heeft een kopie van elk conflicterend bestand "
-"gemaakt."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShare Setup"
-
 
diff --git a/po/nn_NO.po b/po/nn_NO.po
new file mode 100755
index 0000000..5d37aec
--- /dev/null
+++ b/po/nn_NO.po
@@ -0,0 +1,408 @@
+# This file is distributed under the same license as the SparkleShare package.
+# 
+# Translators:
+#   <ajarmund at gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: SparkleShare\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nn_NO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME-prosjektet"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Velkommen åt SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
+msgstr "Synkroniserer..."
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Ikkje alt er synkronisert"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
+msgstr "Kopier web-lenke"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
+msgstr ""
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
+msgstr "Skaff ein tidlegare versjon"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
+msgstr "Lag ein kopi av ein tidlegare versjon i denne mappa"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
+msgstr "Vel for å få ein kopi av tidlegare versjon"
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Skriv ut versjonsinformasjon"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Vis denne hjølpsomme teksten"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Dette programmet kjem heilt uten garantiar."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Dette er fri programvare, og du står fritt til å spre det"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "under nokre få vilkår. Les GNU GPLv3 for fleire detaljar"
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synkroniserer automatisk Git-strukturar i"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "~/SparkleShare-mappa med fjernfilane"
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
+msgstr "Om SparkleShare"
+
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr ""
+
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
+msgstr "Du køyrer den nyaste versjonen."
+
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
+msgstr "Ser etter oppdateringar..."
+
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Siste hendingar"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Alle mapper"
+
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
+msgstr ""
+"Før me kan lage ei SparkleShare-mappe på denne datamaskina, må me ha litt "
+"meir informasjon frå deg."
+
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
+msgstr "Fullt namn:"
+
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
+msgstr "E-post:"
+
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
+msgstr "Neste"
+
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
+
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr "Avbryt"
+
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Dette kan ta ei tid"
+
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Ta deg ei kaffitår"
+
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Ferdig"
+
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Noko gjekk gale"
+
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
+
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
+msgstr "Opne mappe"
+
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
+msgid "Turn Notifications Off"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:284
+msgid "Turn Notifications On"
+msgstr ""
+
+#. A menu item that quits the application
+#: ../SparkleShare/SparkleStatusIcon.cs:311
+msgid "Quit"
+msgstr "Avslutt"
+
+
diff --git a/po/no_NO.po b/po/no_NO.po
old mode 100644
new mode 100755
index 17720c6..9b825f2
--- a/po/no_NO.po
+++ b/po/no_NO.po
@@ -1,52 +1,109 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <vegard.aarseth at gmail.com>, 2011.
+# Translators:
+#   <ajarmund at gmail.com>, 2011.
 # habakke <habakke at matrise.net>, 2011.
+#   <vegard.aarseth at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-05 10:29+0000\n"
-"Last-Translator: VegardAa <vegard.aarseth at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: no_NO\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME Prosjektet"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Velkommen til SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Ikke alt er synkronisert"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Oppdatert"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synkroniserer..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Ikke alt er synkronisert"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
-msgstr "Kopier web link"
+msgstr "Kopier web-link"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
-msgstr "Kopier denne filens web addresse til utklippstavlen"
+msgstr "Kopier denne filens web-addresse til utklippstavlen"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
 msgid "Get Earlier Version"
@@ -58,73 +115,128 @@ msgstr "Lag en kopi av en tidligere versjon i denne mappen"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
 msgid "Select to get a copy of this version"
-msgstr "Vel for å få en kopi av denne versjonen."
+msgstr "Velg for å få en kopi av denne versjonen."
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Print versjons informasjon"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Vis denne hjelpeteksten"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, et samarbeids- og fildelingsverktøy"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Dette programmet kommer med ABSOLUTT INGEN GARANTI."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+"Dette er fri programvare, og du er velkommen til å videredistribuere det"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "under visse vilkår. Vennligst les GNU GPLv3 for detaljer."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synkroniserer automatisk Git repositories i"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "på ~ / SparkleShare mappe med deres eksterne opprinnelse."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Bruk: sparkleshare [start | stop | restart] [VALG] ..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synkroniser SparkleShare mappe med eksterne repositories."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumenter:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
 
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Om SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "En nyere versjon er tilgjengelig"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "En nyere versjon ({0}) er tilgjengelig!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Du kjører siste versjon"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Ser etter oppdateringer..."
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Vis ...."
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Besøk webside"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "la til '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "Flyttet ‘{0}’"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "redigerte '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "slettet '{0}'"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "Gjorde noe magisk"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Nylige hendelser"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Alle mapper"
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,300 +244,175 @@ msgstr ""
 "Før vi kan lage en SparkleShare mappe på denne datamaskinen, trenger vi litt"
 " informasjon fra deg."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
-msgstr "Fullt Navn:"
+msgstr "Fullt navn:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
-msgstr "Epost:"
+msgstr "E-post:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Neste"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Konfigurerer..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Hvor er din eksterne mappe?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "addresse-til-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "På min egen server:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Gratis hosting for gratis og Åpen Kildekode prosjekter"
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Har også betalte kontoer som gir ekstra privat lagringsplass og båndbredde."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOME Prosjektet"
 
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME er et lettfattelig grensesnitt for din datamaskin."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
-"Velg dette valget dersom du er en utvikler eller designer som arbeider med "
-"GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Helt fri som i frihet infrastruktur."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Gratis kontoer for gratis og åpen kildekode prosjekter."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Brukernavn/Mappe"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Prosjekt/Mappe"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Prosjekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Mappe"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Mappe Navn:"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synkroniser"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Hopp over"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Invitasjon mottatt!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Du har mottatt en invitasjon til å delta i en delt mappe. Vi er klar til å "
-"koble deg opp umiddelbart hvis du ønsker dette."
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Aksepterer du denne invitasjonen?"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Tjener Adresse:"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Avvis"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Dette kan ta en stund."
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Godta og Synkroniser"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr ""
+"Ta deg en kopp te:\n"
+"Kok opp vann\n"
+"Ha litt varmt vann i koppen\n"
+"Tøm koppen, og ha i teposen\n"
+"Tilsett varmt vann, ev. sukker og melk eller sitronsaft\n"
+"Nyt teen\n"
+"Kom tilbake, og nyt SparkleShare!"
+
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Fullfør"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Noe gikk galt..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Noe gikk galt"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Forsøk igjen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "‘{0}’ har blitt lagt til"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Mappe synkronisering vellykket!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Nå kan du få tilgang til de synkroniserte filene fra '{0}' i SparkleShare "
-"mappen."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Åpne Mappe"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Fullfør"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synkronisere mappe '{0}' ..."
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Dette kan ta litt tid.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare er klar til start!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nå kan du begynne å akseptere invitasjoner fra andre. Bare klikk på "
-"invitasjoner du får via e-post og vi vil ta vare på resten."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Lær hvordan du kan være vert for din egen SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Nylige hendelser"
-
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Alle mapper"
-
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Beklager, du kan ikke kjøre SparkleShare med disse tillatelsene."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Ting ville gå helt galt."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Print versjons informasjon"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Vis denne hjelpeteksten"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Dette programmet kommer med ABSOLUTT INGEN GARANTI."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
-"Dette er fri programvare, og du er velkommen til å videredistribuere det"
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "under visse vilkår. Vennligst les GNU GPLv3 for detaljer."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synkroniserer automatisk Git repositories i"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "på ~ / SparkleShare mappe med deres eksterne opprinnelse."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Bruk: sparkleshare [start | stop | restart] [VALG] ..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synkroniser SparkleShare mappe med eksterne repositories."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argumenter:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Ingen Eksterne Mapper Ennå"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Legg til esktern mappe..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Sett opp SparkleShare"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Vis nylige hendelser"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Slå av varslinger"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Slå på varslinger"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Avslutt"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Au! Kollisjon midt i luften!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Ikke bekymre deg, SparkleShare laget en kopi av hver motstridende fil."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/pl.po b/po/pl.po
old mode 100644
new mode 100755
index 9339a68..1dcdd54
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,44 +1,104 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Łukasz Jernaś <deejay1 at srem.org>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-02 16:58+0000\n"
+"POT-Creation-Date: 2011-11-12 13:18+0100\n"
+"PO-Revision-Date: 2011-11-12 12:34+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/nazwa uzytkownika/projekt"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+"Darmowe utrzymywanie kodu dla projektów zarządzanych przez git oraz "
+"Mercurial"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Darmowe publiczne repozytoria git z obsługą współpracowników"
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/projekt/repozytorium"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+"Infrastruktura o otwartym kodzie źródłowym dla projektów o otwartym kodzie "
+"źródłowym"
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/project"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Wolny i prosty interfejs dla komputerów"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Projekt GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/ścieżka/do/projektu"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Wszystko pod własną kontrolą"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Na własnym serwerze"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:84
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:102
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Witamy w programie SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Nie wszystko zostało zsynchronizowane"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:86
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:104
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Wszystko jest aktualne"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:113
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synchronizowanie…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:123
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Nie wszystko zostało zsynchronizowane"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Skopiuj odnośnik"
@@ -59,60 +119,112 @@ msgstr "Tworzy kopię wcześniejszej wersji w tym katalogu"
 msgid "Select to get a copy of this version"
 msgstr "Zaznacz, aby pobrać kopię tej wersji"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Wyświetla informacje o wersji"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Wyświetla opcje pomocy"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare ‒ narzędzie wspomagające współpracę."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Niniejszy program dostarczany jest BEZ JAKIEJKOLWIEK GWARANCJI."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+"Niniejszy program jest wolnym oprogramowaniem, można go rozprowadzać dalej "
+"pod pewnymi warunkami."
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"Aby uzyskać więcej informacji, proszę zapoznać się z tekstem licencji GNU "
+"GPLv3."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr ""
+"Program SparkleShare automatycznie synchronizuje repozytoria Git znajdujące "
+"się"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "w katalogu ~/SparkleShare z ich zdalnymi gałęziami."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Użycie: sparkleshare [start|stop|restart] [OPCJA]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+"Synchronizuj zawartość katalogu SparkleShare ze zdalnymi repozytoriami."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Parametry:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Informacje o"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Dostępna jest nowsza wersja"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Dostępna jest nowa wersja: {0}"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Korzystasz z najnowszej wersji."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Wyszukiwanie aktualizacji"
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "Za_sługi"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Odwiedź stronę domową"
+#: ../SparkleShare/SparkleControllerBase.cs:494
+msgid "dddd, MMMM d, yyyy"
+msgstr "dddd, d MMMM yyyy"
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd, d MMM yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:500
+msgid "dddd, MMMM d"
+msgstr "dddd, d MMMM"
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd, d MMM"
-
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:708
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "dodano „{0}”"
+msgstr "dodano \"{0}\""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:713
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr "przesunięto \"{0}\""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:718
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "edytowano „{0}”"
+msgstr "edytowano \"{0}\""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:723
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "usunięto „{0}”"
+msgstr "usunięto \"{0}\""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:732
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
@@ -120,11 +232,20 @@ msgstr[0] "oraz {0} więcej"
 msgstr[1] "oraz {0} więcej"
 msgstr[2] "oraz {0} więcej"
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:736
 msgid "did something magical"
-msgstr "wydarzyło się coś magicznego"
+msgstr "stało się coś magicznego"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Ostatnie zdarzenia"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Wszystkie katalogi"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,305 +253,178 @@ msgstr ""
 "Program SparkleShare wymaga podania kilku informacji, nim możliwe będzie "
 "utworzenie katalogu na tym komputerze."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Imię i nazwisko:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Następny"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Trwa konfigurowanie…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Gdzie znajduje się zdalny folder?"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Gdzie jest utrzymywany projekt?"
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "serwer.pl"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Adres"
 
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "Na własnym serwerze:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Darmowy hosting Wolnych i Otwartych projektów."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-"Posiada również płatne konta zwiększające dostępną przestrzeń oraz pasmo."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Projekt GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr ""
-"Środowisko GNOME jest łatwym w użyciu interfejsem dla twojego komputera."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Zdalna ścieżka"
 
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-"Zaznacz tą opcję, jeśli programujesz lub projektujesz dla projektu GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "W pełni wolny, jak w wyrażeniu wolna infrastruktura."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Wolne konta dla projektów Wolnych i Otwartych projektów."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Nazwa użytkownika/katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt/Katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nazwa folderu:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synchronizuj"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Pomiń"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Otrzymano zaproszenie."
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Otrzymano zaproszenie do współpracy. \n"
-" Program SparkleShare jest gotowy, by rozpocząć współpracę, jeśli tylko sobie tego życzysz."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Dodaj"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Przyjąć zaproszenie?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Dodawanie projektu \"{0}\"…"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Adres serwera:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Może to chwilę zająć."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Odrzuć"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Czy to nie jest czasem przerwa na kawę?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Przyjmij i zsynchronizuj"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Zakończ"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Coś poszło nie tak..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Coś się nie udało"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Spróbuj ponownie"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Proszę spróbować ponownie"
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "„{0}” został poprawnie dodany"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Poprawnie zsynchronizowano folder"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projekt został dodany pomyślnie."
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "Pliki synchronizowane z „{0}” znajdują się z katalogu SparkleShare."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Dostęp do plików możliwy jest z katalogu SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Otwórz katalog"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Zakończ"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synchronizowanie katalogu „{0}”"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Proces może chwilę potrwać.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Czy to nie jest czasem przerwa na kawę?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "Program SparkleShare jest gotowy do pracy."
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Co wydarzy się za chwilę?"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Można teraz  przyjmować zaproszenia od innych osób. \n"
-" Wystarczy kliknąć na zaproszenie otrzymane w emailu, a program SparkleShare zajmie się resztą."
+"Program SparkleShare utworzy specjalny katalog w katalogu domowym, który "
+"będzie zajmował się projektami."
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Dowiedz się, jak postawić własny SparkleServer"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Pomiń samouczek"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Ostatnie zdarzenia"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Dalej"
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Wszystkie katalogi"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Współdzielenie plików z innymi"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"Przepraszamy, nie można uruchomić programu SparkleShare z bieżącymi "
-"uprawnieniami."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Może to spowodować nieprzewidziane skutki."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Wyświetla informacje o wersji"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Wyświetla opcje pomocy"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare ‒ narzędzie wspomagające współpracę."
+"Wszystkie pliki dodane do katalogów projektów są automatycznie "
+"synchronizowane zarówno serwerem jak i ze współpracownikami."
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Ikona powiadamiania jest po to, by pomagać"
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Niniejszy program dostarczany jest BEZ JAKIEJKOLWIEK GWARANCJI."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
-"Niniejszy program jest wolnym oprogramowanie, można go rozprowadzać dalej "
-"pod pewnymi warunkami."
+"Wyświetla stan synchronizacji, jak i zawiera odnośniki do projektów oraz "
+"dziennika zdarzeń."
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr ""
-"Aby uzyskać więcej informacji, proszę zapoznać się z tekstem licencji GNU "
-"GPLv3."
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Dodawanie projektu do programu SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
-"Program SparkleShare automatycznie synchronizuje reozytoria Git znajdujące "
-"się"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "w katalogu ~/SparkleShare z ich zdalnymi gałęziami."
+"Kliknięcie tego przycisku na stronie internetowej spowoduje automatyczne "
+"dodanie projektu:"
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Użycie: sparkleshare [start|stop|restart] [OPCJA]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
-"Synchronizuj zawartość katalogu SparkleShare ze zdalnymi repozytoriami."
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Parametry:"
-
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
-
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Nie ustawiono jeszcze zdalnych katalogów"
+"…lub można wybrać opcję <b>\"Dodaj utrzymywany projekt…\"</b> z menu "
+"powiadamiania, aby dodać projekt ręcznie."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Dodaj zdalny katalog"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Dodaj utrzymywany projekt…"
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Ustawienia programu SparkleShare"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Wyświetl ostatnie zdarzenia"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Nie dodano projektów"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Otwórz ostatnie zdarzenia"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Wyłącz powiadomienia"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Włącz powiadomienia"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Zakończ"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ups! Nastąpiło czołowe zderzenie! "
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "Bez obaw, program SparkleShare wykonał kopię skonfliktowanych plików."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Ustawienia programu SparkleShare"
-
 
diff --git a/po/pt_BR.po b/po/pt_BR.po
old mode 100644
new mode 100755
index 0e7c792..c461ed7
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,45 +1,102 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-# Paulo Paulo <paulo.s.lima at gmail.com>, 2011.
+# Translators:
 # DigitalDead <zero.ext at gmail.com>, 2011.
+#   <eduardo at eduardosilva.eti.br>, 2011.
+# Paulo Paulo <paulo.s.lima at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
-"Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-08 12:53+0000\n"
+"Last-Translator: eduardosilva <eduardo at eduardosilva.eti.br>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/usuário/projeto"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/projeto/repositório"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/projeto"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "O projeto GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/caminho/para/projeto"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Tudo sob meu controle"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Em meu próprio servidor"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Bem-vindo ao SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Nem tudo foi sincronizado"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Atualizado"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Sincronizando…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Nem tudo foi sincronizado"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Copiar Endereço Web"
@@ -60,71 +117,126 @@ msgstr "Fazer uma cópia de uma anterior nesta pasta"
 msgid "Select to get a copy of this version"
 msgstr "Selecione para obter uma cópia dessa versão"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Imprimir informações da versão"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Exibir esse texto de ajuda"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, uma ferramenta de colaboração e compartilhamento"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons - Todos os direitos reservados"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Este programa vem com ABSOLUTAMENTE NENHUMA GARANTIA."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Este é um software livre, e você está convidado a distribuí-lo"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"sob certas condições. Por favor leia a licença GNU GPLv3 para mais detalhes."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "O SparkleShare sincroniza os repositórios do Git automaticamente"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "a pasta ~/SparkleShare com suas origens remotas"
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Utilização: sparkleshare [start|stop|restart] [OPÇÕES]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Sincroniza a pasta SparkleShare com repositórios remotos."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumentos:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Sobre o SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "Uma nova versão está disponível"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Uma nova versão ({0}) está disponível!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Você está executando a última versão"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr "Verificando atualizações"
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Exibir os Créditos"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "Visite o site"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd d MMM yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd d MMM"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "incluído '{0}'"
+msgstr "adicionado \"{0} '"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "'{0}' movida"
+msgstr "movido '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
 msgstr "editado '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "excluído '{0}'"
+msgstr "removido '{0}'"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "e {0} mais"
-msgstr[1] "e {0} mais"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "Algo mágico aconteceu"
+msgstr "fez algo mágico"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Eventos Recentes"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Todas as pastas"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,299 +244,178 @@ msgstr ""
 "Antes de criarmos uma pasta SparkleShare neste computador, precisamos de "
 "algumas informações sobre você."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Nome Completo:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Email:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Próximo"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Configurando..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Onde está sua pasta remota?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "endereço-do-servidor.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "No meu próprio servidor:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Hospedagem gratuita para projetos de Software Livre e Código Aberto"
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "Também oferece contas pagas para mais espaço privado e transferência."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "O projeto GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME é uma interface de fácil compreensão para o seu computador."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-"Selecione esta opção se você é um desenvolvedor ou designer trabalhando com "
-"o GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Infraestrutura completamente Livre como em Liberdade"
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Contas gratuitas para projetos de Software Livre e de Código Aberto"
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Nome do usuário/Pasta"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projeto/Pasta"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projeto"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Pasta"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Onde está o seu projeto está hospedado?"
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Nome da Pasta"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Endereço"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Sincronizar"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Caminho remoto"
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Pular"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Adicionar"
 
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Convite recebido!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Você recebeu um convite para compartilhar uma pasta.\n"
-"Estamos prontos para compartilhar imediatamente, se desejar"
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Você deseja aceitar esse convite?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Adicionando projeto '{0}' ..."
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Endereço do Servidor:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Isto pode demorar um pouco."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Rejeitar"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Você tem certeza de que não é hora do café?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Aceitar e Sincronizar"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Finalizar"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Algo está errado..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Algum problema ocorreu"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Tente de Novo"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Tente novamente..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' foi incluída com sucesso"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Pasta sincronizada com sucesso!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projeto adicionado com sucesso!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Agora, você pode acessar os arquivos sincronizados de '{0}' na sua pasta do "
-"SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Acessar os arquivos da pasta SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Abrir Pasta"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Finalizar"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "O que está acontecendo em seguida?"
 
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Sincronizando pasta '{0}'"
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
+"SparkleShare cria uma pasta especial em sua pasta pessoal que vai manter o "
+"controle de seus projetos."
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Isso pode demorar um pouco.\n"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Pular Tutorial"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Você tem certeza de que não é hora do café?"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Continuar"
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "O SparkleShare está pronto!"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Compartilhar arquivos com outras pessoas"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:503
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
-"Agora você pode aceitar convites de outros usuários.\n"
-"Apenas clique nos convites que você receber por e-mail e nós cuidaremos do resto."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Aprenda a hospedar o seu próprio SparkleServer"
+"Todos os arquivos adicionados a pasta do seu projeto são sincronizados "
+"automaticamente com o servidor, bem como com seus colaboradores."
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "O ícone de status está aqui para ajudar"
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
+"Mostra o status do processo de sincronização, e contém links para seus "
+"projetos e log de eventos."
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Descuple, você não pode rodar o SparkleShare sem essas permissões."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Algo vai dar muito errado."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Imprimir informações da versão"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Adicionando projetos ao SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Exibir esse texto de ajuda"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, uma ferramenta de colaboração e compartilhamento"
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons - Todos os direitos reservados"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Este programa vem com ABSOLUTAMENTE NENHUMA GARANTIA."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Este é um software livre, e você está convidado a distribuí-lo"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
-"sob certas condições. Por favor leia a licença GNU GPLv3 para mais detalhes."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "O SparkleShare sincroniza os repositórios do Git automaticamente"
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "a pasta ~/SparkleShare com suas origens remotas"
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Utilização: sparkleshare [start|stop|restart] [OPÇÕES]..."
+"Basta clicar neste botão quando você vê-la na web, e o projeto será "
+"automaticamente adicionado automaticamente:"
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Sincroniza a pasta SparkleShare com repositórios remotos."
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argumentos:"
-
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
-
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Ainda Não existem Pastas Remotas"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+"... Ou selecione <b>'Adicionar Projeto Hosted ...'</b> no menu do ícone de "
+"status para adicionar manualmente."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Incluir pasta remota"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Adicionar Projeto Hospedado..."
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr ""
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Configurações do SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Nenhum projeto ainda"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Abrir Eventos Recentes"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Desligar as notificações"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Ligar as notificações"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Sair"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ops! Colisão em pleno vôo!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Não se preocupe, SparkleShare fez uma cópia de cada arquivo conflitante."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "Configurações do SparkleShare"
-
 
diff --git a/po/ru.po b/po/ru.po
old mode 100644
new mode 100755
index 82201bb..d4aeada
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,44 +1,106 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Dmitry Golubkov <master at hsdesign.ru>, 2011.
+#   <faland at gmail.com>, 2011.
+# Just a baka  <justabaka at gmail.com>, 2011.
+# Misha Shnurapet <shnurapet at fedoraproject.org>, 2011.
+# Oleg Shmelyov <shmelyov.o at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-30 10:25+0000\n"
-"Last-Translator: herclogon <master at hsdesign.ru>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-02 11:31+0000\n"
+"Last-Translator: shnurapet <shnurapet at fedoraproject.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
-msgstr "Добро пожаловать в SparkleShare!"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/username/project"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
 msgstr ""
+"Бесплатный хостинг проектов и их совместной разработки, основанный на "
+"системе контроля версий Mercurial и Git"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Бесплатные публичные Git репозитории с совместной разработкой"
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/project/repository"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr "Open source инфраструктура для размещения ваших open source проектов"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/project"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Бесплатный и простой интерфейс для вашего компьютера"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "The GNOME Project"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/path/to/project"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Всё под моим контролем"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "Мой личный сервер"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Добро пожаловать в SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
-msgstr ""
+msgstr "Обновлено"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Синхронизация…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Синхронизация не завершена"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Копировать ссылку"
@@ -57,74 +119,128 @@ msgstr "Сделать копию более ранней версии в это
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
 msgid "Select to get a copy of this version"
-msgstr ""
+msgstr "Выберите, чтобы скопировать эту версию"
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Вывести информацию о версии программы."
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Показать это справочное сообщение"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, утилита совместной разработки и обмена."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Эта программа поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Эта программа является свободной, ее распространение разрешено "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "при соблюдении требований лицензии GNU GPLv3."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare автоматически синхронизирует Git-репозитории,"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "находящиеся в папке ~/SparkleShare, с их удалёнными ветвями."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Синтаксис: sparkleshare [start|stop|restart] [КЛЮЧ]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Синхронизировать папку SparkleShare с удаленными источниками."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Параметры:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
 
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
-msgstr ""
+msgstr "О программе"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr ""
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Доступна более новая версия ({0})!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
-msgstr ""
+msgstr "У вас уже установлена самая последняя версия."
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "Посетить сайт"
+msgstr "Проверка обновлений…"
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr ""
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr "дддд, ММММ д, гггг"
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr ""
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr "дддд, ММММ д"
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr ""
+msgstr "«{0}» добавлено"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr ""
+msgstr "«{0}» перемещено"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr ""
+msgstr "«{0}» изменено"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr ""
+msgstr "«{0}» удалено"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "и ещё над {0}"
+msgstr[1] "и ещё над {0}"
+msgstr[2] "и ещё над {0}"
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "сделал что-то магическое"
+msgstr "совершено какое-то колдовство"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Недавние события"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Все папки"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,290 +248,178 @@ msgstr ""
 "Прежде чем мы сможем создать папку SparkleShare  на этом компьютере, нам "
 "нужно от вас немного информации."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Полное имя:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Эл. почта:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Следующий"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Настройка ..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "address-to-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "На моем собственном сервере:"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Где находится Ваш проект?"
 
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Адрес"
 
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "The GNOME Project"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Удалённый путь"
 
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Пользователь/Папка"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Проект"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Папка"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Имя папки:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Синхронизировать"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Отменить"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Пропустить"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Добавить"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Вы принимаете это приглашение?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Добавить проект ‘{0}’…"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Адрес сервера:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Это может занять некоторое время."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Отказать"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Не пора ли выпить кофе?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Завершить"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Что-то пошло не так ..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Что-то пошло не так"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Попробуйте еще раз"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Попробуйте снова..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
-msgstr ""
+msgstr "{0}’ был успешно добавлен"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Папка синхронизирована успешно!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Проект успешно добавлен!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Получить доступ к файлам из своей папки SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Открыть папку"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Завершить"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare готов к работе!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Что произойдёт дальше?"
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
+"SparkleShare создаёт специальную папку в вашей личной папке, которая будет "
+"отслеживать ваши проекты."
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Пропустить обучение"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Продолжить"
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Все папки"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Обмен файлами с другими"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr ""
-"К сожалению, запускать SparkleShare с такими системными правами нельзя."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
+"Все файлы, добавленные в директорию Вашего проекта, автоматически "
+"синхронизируются с сервером, также как и с Вашими коллегами по проекту."
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Эта программа поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Значок статуса здесь для помощи"
 
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Эта программа является свободной, ее распространение разрешено "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "при соблюдении требований лицензии GNU GPLv3."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr ""
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
+"Он показывает статус процесса синхронизации и содержит ссылки на Ваши "
+"проекты, а также лог событий."
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Синтаксис: sparkleshare [start|stop|restart] [КЛЮЧ]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Синхронизировать папку SparkleShare с удаленными источниками."
-
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Параметры:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Добавление проектов в SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
+"Просто нажмите эту кнопку, когда увидите её в сети, и проект будет добавлен "
+"автоматически:"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
+"...или выберите <b>«Добавить ведомый проект...»</b> через меню в области "
+"уведомлений, чтобы добавить проект вручную."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Добавить ведомый проект..."
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr ""
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Установка SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Ещё нет проектов"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Открыть Недавние события"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
-msgstr ""
+msgstr "Выключить уведомления"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
-msgstr "Уведомления включены"
+msgstr "Включить уведомления"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Выход"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr ""
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..6913e9f
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,407 @@
+# This file is distributed under the same license as the SparkleShare package.
+# 
+# Translators:
+# Matej Moško <matej.mosko at gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: SparkleShare\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Vitajte v Sparkleshare"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
+msgstr "Aktualizované"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
+msgstr "Synchronizujem..."
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Nie všetko je synchronizované"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
+msgstr "Skopíruj webový odkaz"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
+msgstr "Skopíruj webový odkaz na tento súbor do schránky"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
+msgstr "Vyber staršiu verziu"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
+msgstr "Vytvor kópiu staršej verzie v tomto priečinku"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
+msgstr "Vyber si verziu na skopírovanie"
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Vytlačiť informácie o verzii"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Zobraziť tohto pomocníka"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, nástroj na spoluprácu a zdieľanie"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr ""
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr ""
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Prepínače:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
+msgstr "O SparkleShare"
+
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Novšia verzia ({0}) je k dispozícii!"
+
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
+msgstr "Používate najnovšiu verziu."
+
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
+msgstr "Kontrolujem aktualizácie"
+
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Nedávne udalosti"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Všetky priečinky"
+
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
+msgstr "Celé meno:"
+
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
+msgstr "Email:"
+
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
+msgstr "Ďalej"
+
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
+
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr "Zrušiť"
+
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Pridať"
+
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Pridávam projekt '{0}' ..."
+
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Toto môže chvíľu trvať."
+
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Ste si istý, že nie je čas na kávu?"
+
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Dokončiť"
+
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Niečo sa nepodarilo"
+
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Skúste znovu..."
+
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
+msgstr "\"{0}\" bol úspešne pridaný"
+
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projekt bol úspešne pridaný!"
+
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Pristupovať k súborom zo SparkleShare priečinka."
+
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
+msgstr "Otvoriť priečinok"
+
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Čo sa deje ďalej?"
+
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Preskočiť výučbu"
+
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Pokračovať"
+
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Zdieľanie súborov s ostatnými"
+
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Ikona stavu je tu pre Vás"
+
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Pridanie projektov do SparkleShare"
+
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "Nastavenia SparkleShare"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Zatiaľ žiadne projekty"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
+msgid "Turn Notifications Off"
+msgstr "Vypni upozornenia"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:284
+msgid "Turn Notifications On"
+msgstr "Zapni upozornenia"
+
+#. A menu item that quits the application
+#: ../SparkleShare/SparkleStatusIcon.cs:311
+msgid "Quit"
+msgstr "Vypnúť"
+
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..4c38401
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,411 @@
+# This file is distributed under the same license as the SparkleShare package.
+# 
+# Translators:
+#   <nejc.saje at gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: SparkleShare\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n"
+
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Projekt GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Dobrodošli v SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
+msgstr "Posodobljeno"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
+msgstr "Sinhroniziram..."
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Sinhronizacija še ni dokončana"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
+msgstr "Kopiraj spletno povezavo"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
+msgstr "Kopiraj spletno povezavo do te datoteke v odložišče"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
+msgstr "Pridobi starejšo različico"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
+msgstr "Ustvari kopijo prejšnje različice v tej mapi"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
+msgstr "Izberite za pridobitev kopije te različice"
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Izpiši informacije o različici"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Prikaži to besedilo za pomoč"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, orodje za deljenje in sodelovanje."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Ta programska oprema je na voljo BREZ GARANCIJE."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "To je prosta programska oprema in jo lahko redistribuirate "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr ""
+"pod določenimi pogoji. Prosimo preberite licenco GNU GPLv3 za podrobnosti."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare avtomatsko sinhronizira Git repozitorije"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "~/SparkleShare mapi z njihovimi oddaljenimi izvori."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Uporaba: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Sinhroniziraj SparkleShare mapo z oddaljenimi repozitoriji."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argumenti:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
+msgstr "O SparkleShare"
+
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Novejša različica ({0}) je na voljo!"
+
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
+msgstr "Uporabljate najnovejšo različico."
+
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
+msgstr "Preverjam za posodobitve..."
+
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Nedavni dogodki"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Vse mape"
+
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
+msgstr ""
+"Preden lahko ustvarimo SparkleShare mape na tem računalniku potrebujemo od "
+"vas nekaj informacij."
+
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
+msgstr "Polno ime:"
+
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
+msgstr "Email:"
+
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
+msgstr "Naprej"
+
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
+
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr "Prekliči"
+
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "To lahko nekaj časa traja."
+
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "A ste prepričani da ni čas za kavo?"
+
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Dokončaj"
+
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Nekaj je šlo narobe"
+
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
+msgstr "'{0}' uspešno dodano"
+
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
+
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
+msgstr "Odpri mapo"
+
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare Nastavitev"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
+msgid "Turn Notifications Off"
+msgstr "Izključi obvestila"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:284
+msgid "Turn Notifications On"
+msgstr "Vključi obvestila"
+
+#. A menu item that quits the application
+#: ../SparkleShare/SparkleStatusIcon.cs:311
+msgid "Quit"
+msgstr "Izhod"
+
+
diff --git a/po/sr_RS.po b/po/sr_RS.po
new file mode 100755
index 0000000..1799816
--- /dev/null
+++ b/po/sr_RS.po
@@ -0,0 +1,411 @@
+# This file is distributed under the same license as the SparkleShare package.
+# 
+# Translators:
+#   <nebjak at gmail.com>, 2011.
+# Небојша Јаковљевић <nebjak at gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: SparkleShare\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
+"Last-Translator: deejay1 <deejay1 at srem.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sr_RS\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Гиториус"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Пројекат ГНОМ"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "Добродошли у СпарклШер!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
+msgstr "Све је синхронизовано"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
+msgstr "Синхронизација..."
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Није све синхронизовано"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
+msgstr "Копирај веб линк"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
+msgstr "Копирај веб адресу ове датотеке"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
+msgstr "Добави ранију верзију"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
+msgstr "Направи копију раније верзије у овом директоријуму"
+
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
+msgstr "Изабери да добавиш копију ове верзије"
+
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Исписује информацију о верзији"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Приказује овај текст помоћи"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "СпарклШер, алатка за сарадњу и дељење."
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Овај програм долази БЕЗ ИКАКВЕ ГАРАНЦИЈЕ."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Ово је слободан софтвер, и можете га редистрибуирати"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "под одређеним условима. Молимо прочитајте ГНУ ОЈЛв3 за више детаља."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "СпарклШер аутоматски синхронизује Гит ризнице у"
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "директоријуму ~/SparkleShare са њиховим удаљеним изворима."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Употреба: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Синхронизуј СпарклШер директоријум са удаљеним ризницама."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Аргументи:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "СпарклШер"
+
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
+msgstr "О СпарклШеру"
+
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "Новија верзија ({0}) је доступна!"
+
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
+msgstr "Кориситите последњу верзију."
+
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
+msgstr "Проверавам освежења..."
+
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
+msgstr ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Скорашњи догађаји"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Сви директоријуми"
+
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
+msgstr ""
+"Пре него што направимо СпарклШер директоријум на овом рачунару, потребно нам"
+" је неколико информација од Вас."
+
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
+msgstr "Пуно име:"
+
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
+msgstr "Е-пошта:"
+
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
+msgstr "Даље"
+
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
+
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr "Одустани"
+
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Ово може да потраје."
+
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Да ли сте сигурни да није време за кафу?"
+
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Заврши"
+
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Нешто је пошло наопако"
+
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
+msgstr "‘{0}’ успешно додато"
+
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
+
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
+msgstr "Отвори директоријум"
+
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "СпарклШер подешавања"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
+msgid "Turn Notifications Off"
+msgstr "Угаси обавештења"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:284
+msgid "Turn Notifications On"
+msgstr "Укључи обавештења"
+
+#. A menu item that quits the application
+#: ../SparkleShare/SparkleStatusIcon.cs:311
+msgid "Quit"
+msgstr "Крај рада"
+
+
diff --git a/po/sv.po b/po/sv.po
old mode 100644
new mode 100755
index 8367981..178d5c2
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,50 +1,109 @@
-# This file is distributed under the same license as the Sparkleshare package.
+# This file is distributed under the same license as the SparkleShare package.
 # 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
-# 
-#   <smygrokarn at tekniktoppen.com>, 2011.
+# Translators:
+# Håkan Sahlström <shlstrm at sdf.org>, 2011.
+# Jan Lindblom <lindblom.jan at gmail.com>, 2011.
 #   <lindblom.jan at gmail.com>, 2011.
-#   <tx at elehu.com>, 2011.
+# Robin Jakobsson <jakobsson.robin at gmail.com>, 2011.
 # smygrokarn <smygrokarn at tekniktoppen.com>, 2011.
+#   <smygrokarn at tekniktoppen.com>, 2011.
+#   <tx at elehu.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-07-07 18:57+0000\n"
-"Last-Translator: janerictobias <lindblom.jan at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-11-05 22:22+0000\n"
+"Last-Translator: shlstrm <shlstrm at sdf.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr "/användare/projekt"
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr "Bitbucket"
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr "Gratis källkodslagring för Git och Mercurial"
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr "Gratis offentliga Git-arkiv med medarbetarehantering"
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr "Github"
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr "/projekt/arkiv"
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr "Infrastruktur för delning av öppen källkod-projekt"
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr "/projekt"
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr "Ett gratis och enkelt gränssnitt för din dator"
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME-projektet"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr "/sökväg/till/projekt"
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr "Allting under min kontroll"
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr "På min egen server"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Välkommen till SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Inte allt har synkroniserats"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Aktuell"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Synkroniserar…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Allt har inte synkroniserats"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
-msgstr "Kopiera Webblänk"
+msgstr "Kopiera webblänk"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
 msgid "Copy the web address of this file to the clipboard"
@@ -52,7 +111,7 @@ msgstr "Kopiera URL för denna fil till klippbordet"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
 msgid "Get Earlier Version"
-msgstr "Hämta Tidigare Version"
+msgstr "Hämta tidigare version"
 
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
 msgid "Make a copy of an earlier version in this folder"
@@ -62,71 +121,125 @@ msgstr "Gör en kopia av en tidigare version i denna katalog"
 msgid "Select to get a copy of this version"
 msgstr "Välj för att få en kopia av den här versionen"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Skriv ut versionsinformation"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Visa denna hjälp-text"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr "SparkleShare, ett verktyg för samarbete och delning"
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Copyright (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Detta program kommer utan några som helst garantier."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Detta är fri programvara och du är välkommen att distribuera det "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "under vissa förhållanden. Vänligen läs GNU GPL v3 för detaljer."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare synkroniserar automatiskt Git-källor i "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "katalogen ~/SparkleShare med deras fjärrkällor."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Användning: sparkleshare [start|stop|restart] [VÄXEL]"
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Synkronisera SparkleShare-mappen med fjärrkällor."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Argument:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Om SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
-msgstr "En ny version finns tillgänglig"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
+msgstr "En nyare version ({0}) är tillgänglig!"
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr "Du kör den senaste versionen"
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
-msgstr "Söker uppdateringar..."
-
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Visa erkännande"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Besök Webbsida"
+msgstr "Söker efter uppdateringar..."
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd MMM d, åååå"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd MMM d"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "la till '{0}'"
+msgstr "lade till ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
-msgstr "flyttat '{0}'"
+msgstr "flyttade ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "redigerade '{0}'"
+msgstr "ändrade ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "tog bort '{0}'"
+msgstr "raderade ‘{0}’"
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
-msgstr[0] "och {0} fler"
+msgstr[0] "och {0} till"
 msgstr[1] "och {0} fler"
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
-msgstr "gjorde något magiskt"
+msgstr "gjorde någonting magiskt"
+
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr "Senaste händelser"
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr "Alla kataloger"
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -134,296 +247,178 @@ msgstr ""
 "Innan vi kan skapa en SparkleShare-katalog på den här datorn så behöver vi "
 "lite information från dig."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "För- och efternamn:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
-msgstr "Email:"
+msgstr "E-postadress:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Nästa"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Konfigurerar..."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
+msgstr "Var är ditt projekt lagrat?"
 
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Var är din fjärrkatalog?"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
+msgstr "Adress"
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "adress-till-servern.com"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr "Fjärrsökväg"
 
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "På min egen server"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Gratis tjänst för Fria- och Öppen Källkodprojekt."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "Har också betaltjänster för extra privat utrymme och bandbredd."
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOME-projektet"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME är ett enkelt gränssnitt till din dator."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr ""
-"Välj detta om du är en utvecklare eller designer som arbetar med GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Fullständigt Fritt "
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "Gratis konton för Fria och Öppen källkodsprojekt"
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Användarnamn/Katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Projekt/Katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Projekt"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Katalog"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Katalognamn:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Synkronisera"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Hoppa över"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Inbjudning mottagen!"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
+msgstr "Lägg till"
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
-msgstr ""
-"Du har mottagit en inbjudan till en delad katalog.\n"
-"Om du önskar så kan du ta del av katalogen direkt."
-
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Accepterar du inbjudan?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr "Lägger till projektet ‘{0}’…"
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Serveradress:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr "Det här kan ta en stund."
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Avvisa"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "Är du säker på att det inte är fikadags?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Acceptera och synkronisera"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Slutför"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Något blev fel..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr "Något blev fel"
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Försök igen"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr "Försök igen..."
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "'{0}' har lagts till korrekt"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Katalogen synkroniserades framgångsrikt!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr "Projektet har lagts till!"
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr ""
-"Nu kan du nå de synkroniserade filerna från '{0}' i din SparkleShare-"
-"katalog."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr "Kom åt filer i din SparkleShare-mapp."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Öppna katalog"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Slutför"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Synkroniserar katalog ‘{0}’…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Det här kan ta en stund.\n"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr "Vad händer nu?"
 
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "Är du säker på att det inte är fikadags?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare är redo!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Nu kan du börja acceptera inbjudningar från andra.\n"
-"Klicka bara på inbjudningar som du får med epost så tar vi hand om resten."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Lär dig hur du sätter upp en egen SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
-msgstr "Senaste händelser"
+"SparkleShare skapar en särskild katalog i din hemmapp som håller reda på "
+"dina projekt."
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
-msgstr "Alla kataloger"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
+msgstr "Hoppa över handledning"
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "Ledsen, men du kan inte köra SparkleShare med dessa rättigheter."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
+msgstr "Fortsätt"
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Detta kan gå helt fel."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
+msgstr "Delar filer med andra"
 
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Skriv ut versionsinformation"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Visa denna hjälp-text"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
-msgstr "SparkleShare, ett verktyg för samarbete och delning"
-
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Copyright (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Detta program kommer utan några som helst garantier."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Detta är fri programvara och du är välkommen att distribuera det "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "under vissa förhållanden. Vänligen läs GNU GPL v3 för detaljer."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare synkroniserar automatiskt Git-källor i "
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
+"Alla filer som läggs till i dina projektmappar synkas automatiskt med "
+"servern och med dina medarbetare."
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "katalogen ~/SparkleShare med deras fjärrkällor."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr "Statusikonen är här för att hjälpa till"
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Användning: sparkleshare [start|stop|restart] [VÄXEL]"
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Synkronisera SparkleShare mappen med fjärrkällor."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
+"Den visar status för synkronisering och länkar till dina projekt och "
+"händelseloggen."
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Argument:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr "Lägga till projekt till SparkleShare"
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
+"Klicka på den här knappen när du ser den på webben och projektet läggs till "
+"automatiskt:"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Inga fjärrkataloger ännu"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
+"...eller välj <b>‘Lägg till Projekt…’</b> i statusmenyn för att lägga till "
+"ett projekt manuellt."
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Lägg till fjärrkatalog"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr "Lägg till delat projekt..."
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
-msgstr "Visa senaste händelser"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare-inställningar"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
+msgstr "Inga projekt ännu"
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr "Öppna senaste händelser"
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Stäng av notifieringar"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Sätt på notifieringar"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Avsluta"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Ouch! Kollision mitt i luften!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "Oroa dig inte, SparkleShare gjorde en kopia av konflikt-filen."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShare-inställningar"
-
 
diff --git a/po/te.po b/po/te.po
old mode 100644
new mode 100755
index 8b1e005..d3c04c8
--- a/po/te.po
+++ b/po/te.po
@@ -1,416 +1,405 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: te\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
-msgstr "స్పార్కిల్‌షేర్‌కి స్వాగతం!"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
-msgid "Up to date"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
-msgid "Syncing…"
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
-msgid "Copy Web Link"
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
-msgid "Copy the web address of this file to the clipboard"
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
-msgid "Get Earlier Version"
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
-msgid "Make a copy of an earlier version in this folder"
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
 msgstr ""
 
-#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
-msgid "Select to get a copy of this version"
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
 msgstr ""
 
-#. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
-msgid "About SparkleShare"
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
-msgid "You are running the latest version."
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
-msgid "Checking for updates..."
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr ""
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "స్పార్కిల్‌షేర్‌కి స్వాగతం!"
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
+msgid "Up to date"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
-#, csharp-format
-msgid "added ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
+msgid "Syncing…"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
-#, csharp-format
-msgid "moved ‘{0}’"
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
-#, csharp-format
-msgid "edited ‘{0}’"
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
+msgid "Copy Web Link"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
-#, csharp-format
-msgid "deleted ‘{0}’"
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:114
+msgid "Copy the web address of this file to the clipboard"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
-#, csharp-format
-msgid "and {0} more"
-msgid_plural "and {0} more"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../SparkleShare/SparkleController.cs:689
-msgid "did something magical"
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:147
+msgid "Get Earlier Version"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
-msgid ""
-"Before we can create a SparkleShare folder on this computer, we need a few "
-"bits of information from you."
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:148
+msgid "Make a copy of an earlier version in this folder"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:83
-msgid "Full Name:"
+#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:161
+msgid "Select to get a copy of this version"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:98
-msgid "Email:"
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:109
-msgid "Next"
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
+#. A menu item that takes the user to http://www.sparkleshare.org/
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
+msgid "About SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
+#: ../SparkleShare/SparkleAbout.cs:79
+msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
+msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
+#: ../SparkleShare/SparkleControllerBase.cs:707
+#, csharp-format
+msgid "added ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
-msgid "Cancel"
+#: ../SparkleShare/SparkleControllerBase.cs:712
+#, csharp-format
+msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
+#: ../SparkleShare/SparkleControllerBase.cs:717
+#, csharp-format
+msgid "edited ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
+#: ../SparkleShare/SparkleControllerBase.cs:722
+#, csharp-format
+msgid "deleted ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#: ../SparkleShare/SparkleControllerBase.cs:731
+#, csharp-format
+msgid "and {0} more"
+msgid_plural "and {0} more"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../SparkleShare/SparkleControllerBase.cs:735
+msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
+#: ../SparkleShare/SparkleSetup.cs:76
+msgid ""
+"Before we can create a SparkleShare folder on this computer, we need a few "
+"bits of information from you."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
+#: ../SparkleShare/SparkleSetup.cs:83
+msgid "Full Name:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
+#: ../SparkleShare/SparkleSetup.cs:98
+msgid "Email:"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
+#: ../SparkleShare/SparkleSetup.cs:108
+msgid "Next"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
-#, csharp-format
-msgid "‘{0}’ has been successfully added"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
 
-#. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
-msgid "Open Folder"
-msgstr "సంచయాన్ని తెరువు"
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
+msgid "Cancel"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:528
+#: ../SparkleShare/SparkleSetup.cs:335
 #, csharp-format
-msgid "Syncing folder ‘{0}’…"
+msgid "Adding project ‘{0}’…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:536
+#: ../SparkleShare/SparkleSetup.cs:337
 msgid "Are you sure it’s not coffee o'clock?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:585
-msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:441
+#, csharp-format
+msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr ""
+#. A button that opens the synced folder
+#: ../SparkleShare/SparkleSetup.cs:451
+msgid "Open Folder"
+msgstr "సంచయాన్ని తెరువు"
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:478
+msgid ""
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
+#. Opens the wizard to add a new remote folder
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
 msgstr ""
 
-#. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:262
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "చాలించు"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr ""
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/uk.po b/po/uk.po
old mode 100644
new mode 100755
index 86b5f54..93afa18
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 # Сергій Гаврилов <sergiovana at bigmir.net>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: uk\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "Проект GNOME"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
 msgid "Welcome to SparkleShare!"
 msgstr "Ласкаво просимо до SparkleShare!"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
-msgstr "Ще не все синхронізовано"
-
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "Оновлено"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "Синхронізація..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr "Ще не все синхронізовано"
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "Копіювати веб-посилання"
@@ -59,60 +115,105 @@ msgstr "Створити копію старішої версії в цій те
 msgid "Select to get a copy of this version"
 msgstr "Вибрати та отримати копію цієї версії"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "Вивести дані про версію"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "Показати текст цієї довідки"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "Авторське право (C) 2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "Ця програма розповсюджується БЕЗ ВСЯКОЇ ГАРАНТІЇ."
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Це вільна програма і ви можете поширювати її "
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "за певних умов. Детальніше читайте ліцензію GNU GPLv3."
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare автоматично синхронізує сховища Git в "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "теці ~/SparkleShare з її віддаленими походженнями."
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "Використання: sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "Синхронізація теки SparkleShare з віддаленими сховищами."
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "Аргументи:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "Про SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr "_Показати авторів"
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
-msgstr "_Відвідати веб-сайт"
-
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr "ddd d MMM yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr "ddd d MMM"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
-msgstr "додано «{0}»"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
-msgstr "змінено «{0}»"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
-msgstr "вилучено «{0}»"
+msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
@@ -120,11 +221,20 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
@@ -132,300 +242,168 @@ msgstr ""
 "Щоб створити теку SparkleShare на цьому комп'ютері, потрібна деяка "
 "інформація про вас."
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "Повне ім'я:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "Ел. адреса:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "Далі"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "Налаштування..."
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "Де ваша віддалена тека?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "адреса-на-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "На моєму власному сервері:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "Безкоштовний хостинг для вільних програм та Open Source проектів."
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
-"Також має платні облікові записи з високою пропускною здатністю та з "
-"отриманням додаткового місця."
 
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "Проект GNOME"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "Легкий для розуміння інтерфейс GNOME для вашого комп'ютера."
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "Виберіть цей варіант, якщо ви розробник або дизайнер GNOME."
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "Цілком вільний як і в інфраструктурі Freedom."
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
-"Безкоштовні облікові записи для вільних програм та Open Source проектів."
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr "Користувач/Тека"
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr "Проект/Тека"
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr "Проект"
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr "Тека"
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "Назва теки:"
 
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "Синхронізувати"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "Скасувати"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "Пропустити"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "Запрошення отримане!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"Ви отримали запрошення для приєднання до спільної теки.\n"
-"Якщо хочете, можете приєднатись до неї негайно."
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "Ви приймаєте це запрошення?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "Адреса сервера:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "Відхилити"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr "А чи не здається вам, що настав час для кави?"
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "Прийняти та синхронізувати"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "Завершити"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "Виникла помилка..."
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "Спробувати знову"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr "‘{0}’ успішно додано"
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "Тека синхронізована успішно!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
-"Зараз можете отримати синхронізовані файли з ‘{0}’ у своїй теці "
-"SparkleShare."
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "Відкрити теку"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "Завершити"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "Синхронізація теки ‘{0}’…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "Це може тривати деякий час.\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr "А чи не здається вам, що настав час для кави?"
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare готова до роботи!"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"Зараз ви можете схвалювати запрошення від інших. \n"
-"Просто клацніть на запрошенні, яке ви отримали поштою, а ми зробимо все інше."
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "Дізнайтеся, як створити свій власний сервер SparkleServer"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
-"На жаль, ви не можете запустити SparkleShare з такими правами доступу."
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "Все могло піти дуже неправильно."
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "Вивести дані про версію"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "Показати текст цієї довідки"
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "Авторське право (C) 2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "Ця програма розповсюджується БЕЗ ВСЯКОЇ ГАРАНТІЇ."
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Це вільна програма і ви можете поширювати її "
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "за певних умов. Детальніше читайте ліцензію GNU GPLv3."
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare автоматично синхронізує сховища Git в "
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "теці ~/SparkleShare з її віддаленими походженнями."
-
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "Використання: sparkleshare [start|stop|restart] [OPTION]..."
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "Синхронізація теки SparkleShare з віддаленими сховищами."
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "Аргументи:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "Віддаленої теки ще немає"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
-msgstr "Додати віддалену теку..."
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr "Вимкнути сповіщення"
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr "Увімкнути сповіщення"
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "Вийти"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "Отакої! Зіткнення в повітрі!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-"Не хвилюйтесь, SparkleShare створює копію кожного суперечливого файла."
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
old mode 100644
new mode 100755
index cae1149..f147ae4
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,44 +1,100 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 #   <yujiang.wang at ymail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_CN\n"
 "Plural-Forms: nplurals=1; plural=0\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
-msgstr "欢迎使用 SparkleShare!"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GMOME项目"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "欢迎使用 SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "同步中..."
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr ""
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "复制Web链接"
@@ -59,358 +115,291 @@ msgstr "在本目录中制作一个较早的版本"
 msgid "Select to get a copy of this version"
 msgstr "获取该版本的复制"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr ""
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "本程序不提供任何质量保证"
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "这是自由软件,欢迎您再次分发。"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "在某种条件下。详情请参见 GNU GPLv3。"
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr ""
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "用法:sparkleshare [start|stop|restart] [OPTION]..."
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "参数:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare"
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr "关于 SparkleShare"
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
-msgstr ""
-
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr ""
-
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "全名:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "电子邮件"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "下一步"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "正在配置"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "远程文件夹在什么地方?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "address-to-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "在我自己的服务器上:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GMOME项目"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME是一个简单易懂的计算机使用界面"
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "文件夹名称:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "同步"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "取消"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "跳过"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "收到邀请"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr ""
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "完成"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "文件夹同步成功"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
 msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "打开文件夹"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "完成"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "请稍等。\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare准备完毕!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "学习如何设置自己的SparkleServer"
-
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "对不起,您不能在这些许可下运行 SparkleShare。"
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "出现严重错误"
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "本程序不提供任何质量保证"
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "这是自由软件,欢迎您再次分发。"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "在某种条件下。详情请参见 GNU GPLv3。"
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "用法:sparkleshare [start|stop|restart] [OPTION]..."
-
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "参数:"
-
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare"
-
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
 msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
+msgstr "SparkleShare "
+
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "退出"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr ""
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr ""
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr "SparkleShare "
-
 
diff --git a/po/zh_TW.po b/po/zh_TW.po
old mode 100644
new mode 100755
index 4d5d83c..87944c2
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,43 +1,99 @@
-# This file is distributed under the same license as the Sparkleshare package.
-# 
-# WARNING: Due to the nature of Transifex all translation file headers were lost
-# we apologise for any incovenience this may have caused and we hope to bring them
-# back in the future.
+# This file is distributed under the same license as the SparkleShare package.
 # 
+# Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: SparkleShare\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-29 11:38+0200\n"
-"PO-Revision-Date: 2011-06-26 09:22+0000\n"
+"POT-Creation-Date: 2011-10-30 15:50+0100\n"
+"PO-Revision-Date: 2011-10-30 14:50+0000\n"
 "Last-Translator: deejay1 <deejay1 at srem.org>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_TW\n"
 "Plural-Forms: nplurals=1; plural=0\n"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:337
-#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:345
-msgid "Welcome to SparkleShare!"
-msgstr "歡迎使用 SparkleShare!"
+#: ../data/plugins/bitbucket.xml.in.h:1 ../data/plugins/github.xml.in.h:1
+msgid "/username/project"
+msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:348
-#: ../SparkleShare/SparkleStatusIcon.cs:357
-msgid "Not everything is synced"
+#: ../data/plugins/bitbucket.xml.in.h:2
+msgid "Bitbucket"
+msgstr ""
+
+#: ../data/plugins/bitbucket.xml.in.h:3
+msgid "Free code hosting for Git and Mercurial"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:2
+msgid "Free public Git repositories with collaborator management"
+msgstr ""
+
+#: ../data/plugins/github.xml.in.h:3
+msgid "Github"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:1
+msgid "/project/repository"
+msgstr ""
+
+#: ../data/plugins/gitorious.xml.in.h:2
+msgid "Gitorious"
+msgstr "Gitorious"
+
+#: ../data/plugins/gitorious.xml.in.h:3
+msgid "Open source infrastructure for hosting open source projects"
 msgstr ""
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:358
-#: ../SparkleShare/SparkleStatusIcon.cs:367
+#: ../data/plugins/gnome.xml.in.h:1
+msgid "/project"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:2
+msgid "A free and easy interface for your computer"
+msgstr ""
+
+#: ../data/plugins/gnome.xml.in.h:3
+msgid "The GNOME Project"
+msgstr "GNOME 專案"
+
+#: ../data/plugins/own-server.xml.in.h:1
+msgid "/path/to/project"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:2
+msgid "Everything under my control"
+msgstr ""
+
+#: ../data/plugins/own-server.xml.in.h:3
+msgid "On my own server"
+msgstr ""
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:70
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:88
+#: ../SparkleShare/SparkleSetup.cs:75 ../SparkleShare/SparkleStatusIcon.cs:75
+#: ../SparkleShare/SparkleStatusIcon.cs:89
+msgid "Welcome to SparkleShare!"
+msgstr "歡迎使用 SparkleShare!"
+
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:72
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:90
+#: ../SparkleShare/SparkleStatusIcon.cs:77
+#: ../SparkleShare/SparkleStatusIcon.cs:91
 msgid "Up to date"
 msgstr "更新"
 
-#: ../SparkleShare/Mac/SparkleStatusIcon.cs:374
-#: ../SparkleShare/SparkleStatusIcon.cs:383
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:99
+#: ../SparkleShare/SparkleStatusIcon.cs:106
 msgid "Syncing…"
 msgstr "同步中…"
 
+#: ../SparkleShare/Mac/SparkleStatusIcon.cs:109
+#: ../SparkleShare/SparkleStatusIcon.cs:116
+msgid "Not everything is synced"
+msgstr ""
+
 #: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:113
 msgid "Copy Web Link"
 msgstr "複製網頁鏈結"
@@ -58,362 +114,291 @@ msgstr "在本資料夾中製作一個較早的版本"
 msgid "Select to get a copy of this version"
 msgstr "選擇以取得該版本的複本"
 
+#: ../SparkleShare/Program.cs:51
+msgid "Print version information"
+msgstr "列印版本資訊"
+
+#: ../SparkleShare/Program.cs:52
+msgid "Show this help text"
+msgstr "顯示這份說明文字"
+
+#: ../SparkleShare/Program.cs:84
+msgid "SparkleShare, a collaboration and sharing tool."
+msgstr ""
+
+#: ../SparkleShare/Program.cs:85
+msgid "Copyright (C) 2010 Hylke Bons"
+msgstr "著作權©2010 Hylke Bons"
+
+#: ../SparkleShare/Program.cs:87
+msgid "This program comes with ABSOLUTELY NO WARRANTY."
+msgstr "本程式不提供任何擔保"
+
+#: ../SparkleShare/Program.cs:89
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "這是自由軟體,歡迎您在某些條件之下"
+
+#: ../SparkleShare/Program.cs:90
+msgid "under certain conditions. Please read the GNU GPLv3 for details."
+msgstr "繼續散布它。詳情請參見 GNU GPLv3。"
+
+#: ../SparkleShare/Program.cs:92
+msgid "SparkleShare automatically syncs Git repositories in "
+msgstr "SparkleShare 自動同步 Git 儲存庫於 "
+
+#: ../SparkleShare/Program.cs:93
+msgid "the ~/SparkleShare folder with their remote origins."
+msgstr "~/SparkleShare 資料夾與它們的遠端來源。"
+
+#: ../SparkleShare/Program.cs:95
+msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
+msgstr "用法:sparkleshare [start|stop|restart] [選項]…"
+
+#: ../SparkleShare/Program.cs:96
+msgid "Sync SparkleShare folder with remote repositories."
+msgstr "同步 SparkleShare 資料夾與遠端儲存庫。"
+
+#: ../SparkleShare/Program.cs:98
+msgid "Arguments:"
+msgstr "引數:"
+
+#: ../SparkleShare/Program.cs:108
+msgid "SparkleShare "
+msgstr "SparkleShare "
+
 #. A menu item that takes the user to http://www.sparkleshare.org/
-#: ../SparkleShare/SparkleAbout.cs:46 ../SparkleShare/SparkleStatusIcon.cs:275
+#: ../SparkleShare/SparkleAbout.cs:53 ../SparkleShare/SparkleStatusIcon.cs:295
 msgid "About SparkleShare"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:53
-msgid "A newer version is available"
+#: ../SparkleShare/SparkleAbout.cs:70
+#, csharp-format
+msgid "A newer version ({0}) is available!"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:60
+#: ../SparkleShare/SparkleAbout.cs:79
 msgid "You are running the latest version."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:87
+#: ../SparkleShare/SparkleAbout.cs:88 ../SparkleShare/SparkleAbout.cs:113
 msgid "Checking for updates..."
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:116
-msgid "_Show Credits"
+#: ../SparkleShare/SparkleControllerBase.cs:493
+msgid "dddd, MMMM d, yyyy"
 msgstr ""
 
-#: ../SparkleShare/SparkleAbout.cs:129
-msgid "_Visit Website"
+#: ../SparkleShare/SparkleControllerBase.cs:499
+msgid "dddd, MMMM d"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:455
-msgid "ddd MMM d, yyyy"
-msgstr ""
-
-#: ../SparkleShare/SparkleController.cs:460
-msgid "ddd MMM d"
-msgstr ""
-
-#: ../SparkleShare/SparkleController.cs:661
+#: ../SparkleShare/SparkleControllerBase.cs:707
 #, csharp-format
 msgid "added ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:666
+#: ../SparkleShare/SparkleControllerBase.cs:712
 #, csharp-format
 msgid "moved ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:671
+#: ../SparkleShare/SparkleControllerBase.cs:717
 #, csharp-format
 msgid "edited ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:676
+#: ../SparkleShare/SparkleControllerBase.cs:722
 #, csharp-format
 msgid "deleted ‘{0}’"
 msgstr ""
 
-#: ../SparkleShare/SparkleController.cs:685
+#: ../SparkleShare/SparkleControllerBase.cs:731
 #, csharp-format
 msgid "and {0} more"
 msgid_plural "and {0} more"
 msgstr[0] ""
 
-#: ../SparkleShare/SparkleController.cs:689
+#: ../SparkleShare/SparkleControllerBase.cs:735
 msgid "did something magical"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:73
+#: ../SparkleShare/SparkleEventLog.cs:58
+msgid "Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleEventLog.cs:169
+#: ../SparkleShare/SparkleEventLog.cs:188
+msgid "All Folders"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetup.cs:76
 msgid ""
 "Before we can create a SparkleShare folder on this computer, we need a few "
 "bits of information from you."
 msgstr "我們在這臺電腦中可以建立 SparkleShare 資料夾之前,我們需要您的幾點資訊。"
 
-#: ../SparkleShare/SparkleIntro.cs:83
+#: ../SparkleShare/SparkleSetup.cs:83
 msgid "Full Name:"
 msgstr "全名:"
 
-#: ../SparkleShare/SparkleIntro.cs:98
+#: ../SparkleShare/SparkleSetup.cs:98
 msgid "Email:"
 msgstr "電子郵件:"
 
-#: ../SparkleShare/SparkleIntro.cs:109
+#: ../SparkleShare/SparkleSetup.cs:108
 msgid "Next"
 msgstr "下一步"
 
-#: ../SparkleShare/SparkleIntro.cs:115
-msgid "Configuring…"
-msgstr "設定中…"
-
-#: ../SparkleShare/SparkleIntro.cs:161
-msgid "Where is your remote folder?"
-msgstr "遠端資料夾在什麼地方?"
-
-#: ../SparkleShare/SparkleIntro.cs:174
-msgid "address-to-server.com"
-msgstr "address-to-server.com"
-
-#: ../SparkleShare/SparkleIntro.cs:179
-msgid "On my own server:"
-msgstr "在我自己的伺服器上:"
-
-#: ../SparkleShare/SparkleIntro.cs:186
-msgid "Free hosting for Free and Open Source Software projects."
-msgstr "提供給自由和開放原始碼軟體專案的免費主機。"
-
-#: ../SparkleShare/SparkleIntro.cs:187
-msgid "Also has paid accounts for extra private space and bandwidth."
-msgstr "也有付款帳號可提供額外私人空間和頻寬。"
-
-#: ../SparkleShare/SparkleIntro.cs:195
-msgid "The GNOME Project"
-msgstr "GNOME 專案"
-
-#: ../SparkleShare/SparkleIntro.cs:197
-msgid "GNOME is an easy to understand interface to your computer."
-msgstr "GNOME 是一個簡單易懂的電腦使用介面"
-
-#: ../SparkleShare/SparkleIntro.cs:198
-msgid "Select this option if you’re a developer or designer working on GNOME."
-msgstr "如果您是 GNOME 開發人員或設計者就選取這個選項。"
-
-#: ../SparkleShare/SparkleIntro.cs:206
-msgid "Gitorious"
-msgstr "Gitorious"
-
-#: ../SparkleShare/SparkleIntro.cs:208
-msgid "Completely Free as in Freedom infrastructure."
-msgstr "如同在自由基礎架構中的完全自由。"
-
-#: ../SparkleShare/SparkleIntro.cs:209
-msgid "Free accounts for Free and Open Source projects."
-msgstr "提供給自由和開放原始碼專案的免費帳號。"
-
-#: ../SparkleShare/SparkleIntro.cs:220
-msgid "Username/Folder"
+#: ../SparkleShare/SparkleSetup.cs:129
+msgid "Where's your project hosted?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:225
-msgid "Project/Folder"
+#: ../SparkleShare/SparkleSetup.cs:275
+msgid "Address"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:230
-msgid "Project"
+#: ../SparkleShare/SparkleSetup.cs:295
+msgid "Remote Path"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:235 ../SparkleShare/SparkleIntro.cs:254
-msgid "Folder"
-msgstr ""
-
-#: ../SparkleShare/SparkleIntro.cs:259 ../SparkleShare/SparkleIntro.cs:377
-msgid "Folder Name:"
-msgstr "資料夾名稱:"
-
-#: ../SparkleShare/SparkleIntro.cs:269
-msgid "Sync"
-msgstr "同步"
-
-#: ../SparkleShare/SparkleIntro.cs:312
+#. Cancel button
+#: ../SparkleShare/SparkleSetup.cs:309 ../SparkleShare/SparkleSetup.cs:345
 msgid "Cancel"
 msgstr "取消"
 
-#: ../SparkleShare/SparkleIntro.cs:320
-msgid "Skip"
-msgstr "跳過"
-
-#: ../SparkleShare/SparkleIntro.cs:347
-msgid "Invitation received!"
-msgstr "收到邀請!"
-
-#: ../SparkleShare/SparkleIntro.cs:353
-msgid ""
-"You've received an invitation to join a shared folder.\n"
-"We're ready to hook you up immediately if you wish."
+#. Sync button
+#: ../SparkleShare/SparkleSetup.cs:316
+msgid "Add"
 msgstr ""
-"您已收到加入共享資料夾的邀請。\n"
-"如果您願意的話,我們可以立刻將您聯結。"
 
-#: ../SparkleShare/SparkleIntro.cs:359
-msgid "Do you accept this invitation?"
-msgstr "您接受這個邀請嗎?"
+#: ../SparkleShare/SparkleSetup.cs:335
+#, csharp-format
+msgid "Adding project ‘{0}’…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:368
-msgid "Server Address:"
-msgstr "伺服器位址:"
+#: ../SparkleShare/SparkleSetup.cs:336
+msgid "This may take a while."
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:391
-msgid "Reject"
-msgstr "拒絕"
+#: ../SparkleShare/SparkleSetup.cs:337
+msgid "Are you sure it’s not coffee o'clock?"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:392
-msgid "Accept and Sync"
-msgstr "接受並同步"
+#: ../SparkleShare/SparkleSetup.cs:341 ../SparkleShare/SparkleSetup.cs:457
+#: ../SparkleShare/SparkleSetup.cs:556
+msgid "Finish"
+msgstr "完成"
 
-#: ../SparkleShare/SparkleIntro.cs:442
-msgid "Something went wrong…"
-msgstr "有些地方發生了錯誤…"
+#: ../SparkleShare/SparkleSetup.cs:374
+msgid "Something went wrong"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:448
-msgid "Try Again"
-msgstr "再試一次"
+#: ../SparkleShare/SparkleSetup.cs:422
+msgid "Try Again…"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:473
+#: ../SparkleShare/SparkleSetup.cs:441
 #, csharp-format
 msgid "‘{0}’ has been successfully added"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:482
-msgid "Folder synced successfully!"
-msgstr "資料夾同步成功!"
+#: ../SparkleShare/SparkleSetup.cs:447
+msgid "Project successfully added!"
+msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:489
-#, csharp-format
-msgid ""
-"Now you can access the synced files from ‘{0}’ in your SparkleShare folder."
-msgstr "現在您可以在 SparkleShare 資料夾中「{0}」存取同步的檔案。"
+#: ../SparkleShare/SparkleSetup.cs:448
+msgid "Access the files from your SparkleShare folder."
+msgstr ""
 
 #. A button that opens the synced folder
-#: ../SparkleShare/SparkleIntro.cs:497
+#: ../SparkleShare/SparkleSetup.cs:451
 msgid "Open Folder"
 msgstr "開啟資料夾"
 
-#: ../SparkleShare/SparkleIntro.cs:503 ../SparkleShare/SparkleIntro.cs:543
-#: ../SparkleShare/SparkleIntro.cs:604
-msgid "Finish"
-msgstr "完成"
-
-#: ../SparkleShare/SparkleIntro.cs:528
-#, csharp-format
-msgid "Syncing folder ‘{0}’…"
-msgstr "正在同步資料夾「{0}」…"
-
-#: ../SparkleShare/SparkleIntro.cs:535
-msgid "This may take a while.\n"
-msgstr "這也許會花費一點時間。\n"
-
-#: ../SparkleShare/SparkleIntro.cs:536
-msgid "Are you sure it’s not coffee o'clock?"
+#: ../SparkleShare/SparkleSetup.cs:477
+msgid "What's happening next?"
 msgstr ""
 
-#: ../SparkleShare/SparkleIntro.cs:579
-msgid "SparkleShare is ready to go!"
-msgstr "SparkleShare 準備啟用!"
-
-#: ../SparkleShare/SparkleIntro.cs:585
+#: ../SparkleShare/SparkleSetup.cs:478
 msgid ""
-"Now you can start accepting invitations from others. \n"
-"Just click on invitations you get by email and we will take care of the rest."
+"SparkleShare creates a special folder in your personal folder that will keep"
+" track of your projects."
 msgstr ""
-"現在您可以開始接受其他人的邀請。\n"
-"只要在您的電子郵件邀請上按一下,我們就會做好其餘的工作。"
-
-#: ../SparkleShare/SparkleIntro.cs:596
-msgid "Learn how to host your own SparkleServer"
-msgstr "學習如何照料自己的 SparkleServer"
 
-#: ../SparkleShare/SparkleEventLog.cs:61
-msgid "Recent Events"
+#: ../SparkleShare/SparkleSetup.cs:481
+msgid "Skip Tutorial"
 msgstr ""
 
-#: ../SparkleShare/SparkleEventLog.cs:148
-#: ../SparkleShare/SparkleEventLog.cs:173
-msgid "All Folders"
+#: ../SparkleShare/SparkleSetup.cs:486 ../SparkleShare/SparkleSetup.cs:506
+#: ../SparkleShare/SparkleSetup.cs:524
+msgid "Continue"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:53
-msgid "Sorry, you can't run SparkleShare with these permissions."
-msgstr "抱歉,您不能以此權限執行 SparkleShare。"
-
-#: ../SparkleShare/SparkleShare.cs:54
-msgid "Things would go utterly wrong."
-msgstr "會出現嚴重錯誤"
-
-#: ../SparkleShare/SparkleShare.cs:61
-msgid "Print version information"
-msgstr "列印版本資訊"
-
-#: ../SparkleShare/SparkleShare.cs:62
-msgid "Show this help text"
-msgstr "顯示這份說明文字"
-
-#: ../SparkleShare/SparkleShare.cs:109
-msgid "SparkleShare, a collaboration and sharing tool."
+#: ../SparkleShare/SparkleSetup.cs:502
+msgid "Sharing files with others"
 msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:110
-msgid "Copyright (C) 2010 Hylke Bons"
-msgstr "著作權©2010 Hylke Bons"
-
-#: ../SparkleShare/SparkleShare.cs:112
-msgid "This program comes with ABSOLUTELY NO WARRANTY."
-msgstr "本程式不提供任何擔保"
-
-#: ../SparkleShare/SparkleShare.cs:114
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "這是自由軟體,歡迎您在某些條件之下"
-
-#: ../SparkleShare/SparkleShare.cs:115
-msgid "under certain conditions. Please read the GNU GPLv3 for details."
-msgstr "繼續散布它。詳情請參見 GNU GPLv3。"
-
-#: ../SparkleShare/SparkleShare.cs:117
-msgid "SparkleShare automatically syncs Git repositories in "
-msgstr "SparkleShare 自動同步 Git 儲存庫於 "
-
-#: ../SparkleShare/SparkleShare.cs:118
-msgid "the ~/SparkleShare folder with their remote origins."
-msgstr "~/SparkleShare 資料夾與它們的遠端來源。"
+#: ../SparkleShare/SparkleSetup.cs:503
+msgid ""
+"All files added to your project folders are synced with the host "
+"automatically, as well as with your collaborators."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:120
-msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
-msgstr "用法:sparkleshare [start|stop|restart] [選項]…"
+#: ../SparkleShare/SparkleSetup.cs:520
+msgid "The status icon is here to help"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:121
-msgid "Sync SparkleShare folder with remote repositories."
-msgstr "同步 SparkleShare 資料夾與遠端儲存庫。"
+#: ../SparkleShare/SparkleSetup.cs:521
+msgid ""
+"It shows the syncing process status, and contains links to your projects and"
+" the event log."
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:123
-msgid "Arguments:"
-msgstr "引數:"
+#: ../SparkleShare/SparkleSetup.cs:538
+msgid "Adding projects to SparkleShare"
+msgstr ""
 
-#: ../SparkleShare/SparkleShare.cs:133
-msgid "SparkleShare "
-msgstr "SparkleShare "
+#: ../SparkleShare/SparkleSetup.cs:539
+msgid ""
+"Just click this button when you see it on the web, and the project will be "
+"automatically added:"
+msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:208
-msgid "No Remote Folders Yet"
-msgstr "尚無遠端資料夾"
+#: ../SparkleShare/SparkleSetup.cs:542
+msgid ""
+"…or select <b>‘Add Hosted Project…’</b> from the status icon menu to add one"
+" by hand."
+msgstr ""
 
 #. Opens the wizard to add a new remote folder
-#: ../SparkleShare/SparkleStatusIcon.cs:218
-msgid "Add Remote Folder…"
+#: ../SparkleShare/SparkleSetup.cs:551
+#: ../SparkleShare/SparkleStatusIcon.cs:238
+msgid "Add Hosted Project…"
+msgstr ""
+
+#: ../SparkleShare/SparkleSetupWindow.cs:44
+msgid "SparkleShare Setup"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:242
-msgid "Show Recent Events"
+#: ../SparkleShare/SparkleStatusIcon.cs:228
+msgid "No projects yet"
 msgstr ""
 
 #: ../SparkleShare/SparkleStatusIcon.cs:262
+msgid "Open Recent Events"
+msgstr ""
+
+#: ../SparkleShare/SparkleStatusIcon.cs:282
 msgid "Turn Notifications Off"
 msgstr ""
 
-#: ../SparkleShare/SparkleStatusIcon.cs:264
+#: ../SparkleShare/SparkleStatusIcon.cs:284
 msgid "Turn Notifications On"
 msgstr ""
 
 #. A menu item that quits the application
-#: ../SparkleShare/SparkleStatusIcon.cs:286
+#: ../SparkleShare/SparkleStatusIcon.cs:311
 msgid "Quit"
 msgstr "離開"
 
-#: ../SparkleShare/SparkleUI.cs:99
-msgid "Ouch! Mid-air collision!"
-msgstr "噢!半空中相撞!"
-
-#: ../SparkleShare/SparkleUI.cs:100
-msgid "Don't worry, SparkleShare made a copy of each conflicting file."
-msgstr "別擔心,SparkleShare 對每個衝突檔案都會製作複本。"
-
-#: ../SparkleShare/SparkleWindow.cs:41
-msgid "SparkleShare Setup"
-msgstr ""
-
 

-- 
sparkleshare



More information about the Pkg-cli-apps-commits mailing list