Merge branch 'master' of git://gitorious.org/sparkleshare/sparkleshare
2
AUTHORS
|
@ -4,7 +4,9 @@ Maintainer:
|
|||
|
||||
Contributors:
|
||||
|
||||
Alex Hudson <home@alexhudson.com>
|
||||
Andreas Nilsson <andreasn@gnome.org>
|
||||
Benjamin Podszun <benjamin.podszun@gmail.com>
|
||||
Bertrand Lorentz <bertrand.lorentz@gmail.com>
|
||||
Garrett LeSage <garrett@novell.com>
|
||||
Jakub Steiner <jimmac@novell.com>
|
||||
|
|
|
@ -1 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>FriendFace</RootNamespace>
<AssemblyName>FriendFace</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
</ItemGroup>
<ItemGroup>
<Compile Include="FriendFace.cs" />
<Compile Include="Gravatar.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<MonoDevelop>
<Properties InternalTargetFrameworkVersion="3.5" xmlns="" />
</MonoDevelop>
</ProjectExtensions>
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>FriendFace</RootNamespace>
|
||||
<AssemblyName>FriendFace</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="Mono.Posix" />
|
||||
<Reference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FriendFace.cs" />
|
||||
<Compile Include="GravatarIconProvider.cs" />
|
||||
<Compile Include="IconProvider.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ProjectExtensions>
|
||||
<MonoDevelop>
|
||||
<Properties InternalTargetFrameworkVersion="3.5" />
|
||||
</MonoDevelop>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
|
@ -15,7 +15,6 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.using Gtk;
|
||||
|
||||
using Gtk;
|
||||
using Mono.Unix;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.using Gtk;
|
||||
|
||||
using Gtk;
|
||||
using Mono.Unix;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
|
@ -31,11 +31,36 @@
|
|||
<Compile Include="Notification.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="NDesk.DBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099" />
|
||||
<Reference Include="NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099" />
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="NDesk.DBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099">
|
||||
<Package>ndesk-dbus-1.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099">
|
||||
<Package>ndesk-dbus-glib-1.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>glib-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ProjectExtensions>
|
||||
<MonoDevelop>
|
||||
<Properties>
|
||||
<MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile.am">
|
||||
<BuildFilesVar Sync="true" Name="SOURCES" />
|
||||
<DeployFilesVar />
|
||||
<ResourcesVar Sync="true" Name="RESOURCES" />
|
||||
<OthersVar />
|
||||
<GacRefVar />
|
||||
<AsmRefVar />
|
||||
<ProjectRefVar />
|
||||
</MonoDevelop.Autotools.MakefileInfo>
|
||||
</Properties>
|
||||
</MonoDevelop>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
|
@ -1,36 +0,0 @@
|
|||
// SparkleShare, an instant update workflow to Git.
|
||||
// Copyright (C) 2010 Hylke Bons <hylkebons@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 Gtk;
|
||||
|
||||
namespace SparkleShare {
|
||||
|
||||
public class LeftRevisionView : RevisionView {
|
||||
|
||||
public LeftRevisionView (string [] revisions) : base (revisions) {
|
||||
|
||||
ComboBox.Active = 1;
|
||||
|
||||
if (Direction == Gtk.TextDirection.Ltr)
|
||||
ScrolledWindow.Placement = CornerType.TopRight;
|
||||
else
|
||||
ScrolledWindow.Placement = CornerType.TopLeft;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -117,10 +117,12 @@ namespace SparkleShare {
|
|||
// Example: from "rgb:0,0,0" to "#000000"
|
||||
public string GdkColorToHex (Gdk.Color color)
|
||||
{
|
||||
|
||||
return String.Format("#{0:X2}{1:X2}{2:X2}",
|
||||
(int) Math.Truncate(color.Red / 256.00),
|
||||
(int) Math.Truncate(color.Green / 256.00),
|
||||
(int) Math.Truncate(color.Blue / 256.00));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShare", "SparkleShar
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotifySharp", "NotifySharp\NotifySharp.csproj", "{005CCA8E-DFBF-464A-B6DA-452C62D4589C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpSSH", "SharpSSH\SharpSSH.csproj", "{BB50B7E2-4622-4D8B-B7FF-5E5D8F02D91F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FriendFace", "FriendFace\FriendFace.csproj", "{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}"
|
||||
EndProject
|
||||
Global
|
||||
|
@ -27,13 +25,10 @@ Global
|
|||
{728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BB50B7E2-4622-4D8B-B7FF-5E5D8F02D91F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BB50B7E2-4622-4D8B-B7FF-5E5D8F02D91F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BB50B7E2-4622-4D8B-B7FF-5E5D8F02D91F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BB50B7E2-4622-4D8B-B7FF-5E5D8F02D91F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = SparkleShare\SparkleShare.csproj
|
||||
outputpath = bin
|
||||
name = SparkleShare
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -10,7 +10,7 @@ LINK = $(REF_SPARKLESHARE)
|
|||
SOURCES = \
|
||||
Defines.cs \
|
||||
SparkleBubble.cs \
|
||||
SparkleDialog.cs \
|
||||
SparkleFetcher.cs \
|
||||
SparkleHelpers.cs \
|
||||
SparkleIntro.cs \
|
||||
SparklePaths.cs \
|
||||
|
|
|
@ -1,247 +0,0 @@
|
|||
// SparkleShare, an instant update workflow to Git.
|
||||
// Copyright (C) 2010 Hylke Bons <hylkebons@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 Gtk;
|
||||
using Mono.Unix;
|
||||
using SparkleShare;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace SparkleShare {
|
||||
|
||||
// A dialog where the user can enter a folder
|
||||
// name and url to sync changes with
|
||||
public class SparkleDialog : Window {
|
||||
|
||||
// Short alias for the translations
|
||||
public static string _ (string s)
|
||||
{
|
||||
return Catalog.GetString (s);
|
||||
}
|
||||
|
||||
private Button AddButton;
|
||||
private ComboBoxEntry RemoteUrlCombo;
|
||||
|
||||
public SparkleDialog (string Url) : base ("")
|
||||
{
|
||||
BorderWidth = 12;
|
||||
IconName = "folder-sparkleshare";
|
||||
WidthRequest = 320;
|
||||
Title = "SparkleShare";
|
||||
|
||||
SetPosition (WindowPosition.Center);
|
||||
|
||||
VBox VBox = new VBox (false, 0);
|
||||
|
||||
Label RemoteUrlLabel = new Label (_("Address of remote SparkleShare folder:"));
|
||||
RemoteUrlLabel.Xalign = 0;
|
||||
|
||||
ListStore Defaults = new ListStore (typeof (string));
|
||||
|
||||
RemoteUrlCombo = new ComboBoxEntry (Defaults, 0);
|
||||
|
||||
if (Url.Equals (""))
|
||||
RemoteUrlCombo.Entry.Text = "ssh://";
|
||||
else
|
||||
RemoteUrlCombo.Entry.Text = Url;
|
||||
|
||||
RemoteUrlCombo.Entry.Completion = new EntryCompletion ();
|
||||
RemoteUrlCombo.Entry.Completion.Model = Defaults;
|
||||
|
||||
RemoteUrlCombo.Entry.Completion.InlineCompletion = true;
|
||||
RemoteUrlCombo.Entry.Completion.PopupCompletion = true;
|
||||
RemoteUrlCombo.Entry.Completion.TextColumn = 0;
|
||||
RemoteUrlCombo.Entry.Changed += CheckFields;
|
||||
|
||||
// Add some preset addresses
|
||||
Defaults.AppendValues ("ssh://git@github.com/");
|
||||
Defaults.AppendValues ("ssh://git@git.gnome.org/");
|
||||
Defaults.AppendValues ("ssh://git@fedorahosted.org/");
|
||||
Defaults.AppendValues ("ssh://git@gitorious.org/");
|
||||
|
||||
HButtonBox ButtonBox = new HButtonBox ();
|
||||
ButtonBox.Layout = ButtonBoxStyle.End;
|
||||
ButtonBox.Spacing = 6;
|
||||
ButtonBox.BorderWidth = 0;
|
||||
|
||||
AddButton = new Button (_("Add Folder"));
|
||||
AddButton.Clicked += CloneRepo;
|
||||
AddButton.Sensitive = false;
|
||||
|
||||
Button CancelButton = new Button (Stock.Cancel);
|
||||
|
||||
CancelButton.Clicked += delegate {
|
||||
Destroy ();
|
||||
};
|
||||
|
||||
ButtonBox.Add (CancelButton);
|
||||
ButtonBox.Add (AddButton);
|
||||
|
||||
VBox.PackStart (RemoteUrlLabel, false, false, 0);
|
||||
VBox.PackStart (RemoteUrlCombo, false, false, 12);
|
||||
VBox.PackStart (ButtonBox, false, false, 0);
|
||||
|
||||
Add (VBox);
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
// Clones a remote repo
|
||||
public void CloneRepo (object o, EventArgs args) {
|
||||
|
||||
// SparkleUI.NotificationIcon.SetSyncingState ();
|
||||
|
||||
HideAll ();
|
||||
|
||||
string RepoRemoteUrl = RemoteUrlCombo.Entry.Text;
|
||||
RepoRemoteUrl = SparkleToGitUrl (RepoRemoteUrl);
|
||||
|
||||
int SlashPos = RepoRemoteUrl.LastIndexOf ("/");
|
||||
int ColumnPos = RepoRemoteUrl.LastIndexOf (":");
|
||||
|
||||
// Check whether a "/" or ":" is used to separate the
|
||||
// repo name from the domain.
|
||||
string RepoName;
|
||||
if (SlashPos > ColumnPos)
|
||||
RepoName = RepoRemoteUrl.Substring (SlashPos + 1);
|
||||
else
|
||||
RepoName = RepoRemoteUrl.Substring (ColumnPos + 1);
|
||||
|
||||
SparkleBubble SyncingBubble;
|
||||
SyncingBubble = new SparkleBubble (String.Format(_("Syncing folder ‘{0}’"), RepoName),
|
||||
_("SparkleShare will notify you when this is done."));
|
||||
|
||||
SyncingBubble.AddAction ("", _("Dismiss"),
|
||||
delegate {
|
||||
SyncingBubble.Close ();
|
||||
});
|
||||
|
||||
SyncingBubble.Show ();
|
||||
|
||||
Process Process = new Process ();
|
||||
Process.EnableRaisingEvents = true;
|
||||
Process.StartInfo.RedirectStandardOutput = true;
|
||||
Process.StartInfo.UseShellExecute = false;
|
||||
|
||||
SparkleHelpers.DebugInfo ("Config", "[" + RepoName + "] Cloning repository...");
|
||||
|
||||
// TODO: don't freeze the UI while cloning a repo
|
||||
// Clone into the system's temporary folder
|
||||
Process.StartInfo.FileName = "git";
|
||||
Process.StartInfo.WorkingDirectory = SparklePaths.SparkleTmpPath;
|
||||
Process.StartInfo.Arguments = String.Format ("clone {0} {1}",
|
||||
RepoRemoteUrl,
|
||||
RepoName);
|
||||
|
||||
Process.Start ();
|
||||
Process.WaitForExit ();
|
||||
|
||||
if (Process.ExitCode != 0) {
|
||||
|
||||
SparkleBubble ErrorBubble;
|
||||
ErrorBubble = new SparkleBubble (String.Format(_("Something went wrong while syncing ‘{0}’"), RepoName),
|
||||
"Please double check the address and\n" +
|
||||
"network connection.");
|
||||
|
||||
try {
|
||||
Directory.Delete (SparkleHelpers.CombineMore (SparklePaths.SparkleTmpPath, RepoName));
|
||||
} catch (System.IO.DirectoryNotFoundException) {
|
||||
SparkleHelpers.DebugInfo ("Config", "[" + RepoName + "] Temporary directory did not exist...");
|
||||
}
|
||||
|
||||
ErrorBubble.AddAction ("", _("Try Again…"),
|
||||
delegate {
|
||||
SparkleDialog SparkleDialog = new SparkleDialog (RepoRemoteUrl);
|
||||
SparkleDialog.ShowAll ();
|
||||
});
|
||||
ErrorBubble.Show ();
|
||||
|
||||
} else {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "[" + RepoName + "] Repository cloned");
|
||||
|
||||
Directory.Move (SparkleHelpers.CombineMore (SparklePaths.SparkleTmpPath, RepoName),
|
||||
SparkleHelpers.CombineMore (SparklePaths.SparklePath, RepoName));
|
||||
|
||||
|
||||
// Add a .gitignore file to the repo
|
||||
TextWriter Writer = new StreamWriter (SparkleHelpers.CombineMore (SparklePaths.SparklePath, RepoName,
|
||||
".gitignore"));
|
||||
Writer.WriteLine ("*~"); // Ignore gedit swap files
|
||||
Writer.WriteLine (".*.sw?"); // Ignore vi swap files
|
||||
Writer.WriteLine (".DS_store"); // Ignore OSX's invisible directories
|
||||
Writer.Close ();
|
||||
|
||||
File.Create (SparkleHelpers.CombineMore (SparklePaths.SparklePath, RepoName,
|
||||
".emblems"));
|
||||
|
||||
SparkleShare.SparkleUI.UpdateRepositories ();
|
||||
|
||||
// Show a confirmation notification
|
||||
SparkleBubble FinishedBubble;
|
||||
FinishedBubble = new SparkleBubble (String.Format(_("Successfully synced folder ‘{0}’"), RepoName),
|
||||
_("Now make great stuff happen!"));
|
||||
|
||||
FinishedBubble.AddAction ("", _("Open Folder"),
|
||||
delegate {
|
||||
Process.StartInfo.FileName = "xdg-open";
|
||||
Process.StartInfo.Arguments = SparkleHelpers.CombineMore (SparklePaths.SparklePath, RepoName);
|
||||
Process.Start ();
|
||||
} );
|
||||
FinishedBubble.Show ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Enables the Add button when the fields are
|
||||
// filled in correctly
|
||||
public void CheckFields (object o, EventArgs args) {
|
||||
if (IsGitUrl (RemoteUrlCombo.Entry.Text))
|
||||
AddButton.Sensitive = true;
|
||||
else
|
||||
AddButton.Sensitive = false;
|
||||
}
|
||||
|
||||
|
||||
// Convert the more human readable sparkle:// url to something Git can use.
|
||||
// Example: sparkle://gitorious.org/sparkleshare ssh://git@gitorious.org/sparkleshare
|
||||
public static string SparkleToGitUrl (string Url)
|
||||
{
|
||||
if (Url.StartsWith ("sparkle://"))
|
||||
Url = Url.Replace ("sparkle://", "ssh://git@");
|
||||
|
||||
// Usually don't need the ".git" at the end.
|
||||
// It looks ugly as a folder too.
|
||||
if (Url.EndsWith (".git"))
|
||||
Url = Url.Substring (0, Url.Length - 4);
|
||||
|
||||
return Url;
|
||||
}
|
||||
|
||||
|
||||
// Checks if a url is a valid git url
|
||||
public static bool IsGitUrl (string Url)
|
||||
{
|
||||
return Regex.Match (Url, @"(.)+(/|:)(.)+").Success;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
139
SparkleShare/SparkleFetcher.cs
Normal file
|
@ -0,0 +1,139 @@
|
|||
// SparkleShare, an instant update workflow to Git.
|
||||
// Copyright (C) 2010 Hylke Bons <hylkebons@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 Gtk;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace SparkleShare {
|
||||
|
||||
public class SparkleFetcher {
|
||||
|
||||
public delegate void CloningStartedEventHandler (object o, SparkleEventArgs args);
|
||||
public delegate void CloningFinishedEventHandler (object o, SparkleEventArgs args);
|
||||
public delegate void CloningFailedEventHandler (object o, SparkleEventArgs args);
|
||||
|
||||
public event CloningStartedEventHandler CloningStarted;
|
||||
public event CloningFinishedEventHandler CloningFinished;
|
||||
public event CloningFailedEventHandler CloningFailed;
|
||||
|
||||
private string TargetFolder;
|
||||
private string RemoteOriginUrl;
|
||||
|
||||
|
||||
public SparkleFetcher (string url, string folder)
|
||||
{
|
||||
|
||||
TargetFolder = folder;
|
||||
RemoteOriginUrl = url;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void Clone ()
|
||||
{
|
||||
|
||||
if (Directory.Exists (TargetFolder))
|
||||
Directory.Delete (TargetFolder, true);
|
||||
|
||||
SparkleEventArgs args = new SparkleEventArgs ("CloningStarted");
|
||||
|
||||
if (CloningStarted != null)
|
||||
CloningStarted (this, args);
|
||||
|
||||
Process process = new Process () {
|
||||
EnableRaisingEvents = true
|
||||
};
|
||||
|
||||
process.StartInfo.RedirectStandardOutput = true;
|
||||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.FileName = "git";
|
||||
process.StartInfo.Arguments = "clone " + RemoteOriginUrl + " " + TargetFolder;
|
||||
|
||||
process.Exited += delegate {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "Exit code " + process.ExitCode.ToString ());
|
||||
|
||||
if (process.ExitCode != 0) {
|
||||
|
||||
args = new SparkleEventArgs ("CloningFailed");
|
||||
|
||||
if (CloningFailed != null)
|
||||
CloningFailed (this, args);
|
||||
|
||||
} else {
|
||||
|
||||
InstallUserInfo ();
|
||||
InstallExcludeRules ();
|
||||
|
||||
args = new SparkleEventArgs ("CloningFinished");
|
||||
|
||||
if (CloningFinished != null)
|
||||
CloningFinished (this, args);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
process.Start ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Install the user's name and email into
|
||||
// the newly cloned repository
|
||||
private void InstallUserInfo ()
|
||||
{
|
||||
|
||||
string global_config_file_path = SparkleHelpers.CombineMore (SparklePaths.SparkleConfigPath, "config");
|
||||
|
||||
if (File.Exists (global_config_file_path)) {
|
||||
|
||||
StreamReader reader = new StreamReader (global_config_file_path);
|
||||
string user_info = reader.ReadToEnd ();
|
||||
reader.Close ();
|
||||
|
||||
string repo_config_file_path = SparkleHelpers.CombineMore (TargetFolder, ".git", "config");
|
||||
|
||||
TextWriter writer = File.AppendText (repo_config_file_path);
|
||||
writer.WriteLine (user_info);
|
||||
writer.Close ();
|
||||
|
||||
SparkleHelpers.DebugInfo ("Config", "Added user info to '" + repo_config_file_path + "'");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Add a .gitignore file to the repo
|
||||
private void InstallExcludeRules ()
|
||||
{
|
||||
|
||||
TextWriter writer = new StreamWriter (SparkleHelpers.CombineMore (TargetFolder, ".git/info/exclude"));
|
||||
|
||||
writer.WriteLine ("*~"); // Ignore gedit swap files
|
||||
writer.WriteLine (".*.sw?"); // Ignore vi swap files
|
||||
writer.WriteLine (".DS_store"); // Ignore OSX's invisible directories
|
||||
|
||||
writer.Close ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -96,12 +96,31 @@ namespace SparkleShare {
|
|||
|
||||
|
||||
// Looks up an icon from the system's theme
|
||||
public static Gdk.Pixbuf GetIcon (string Name, int Size)
|
||||
public static Gdk.Pixbuf GetIcon (string name, int size)
|
||||
{
|
||||
|
||||
IconTheme IconTheme = new IconTheme ();
|
||||
IconTheme.AppendSearchPath (SparklePaths.SparkleIconPath);
|
||||
IconTheme.AppendSearchPath (SparklePaths.SparkleLocalIconPath);
|
||||
return IconTheme.LoadIcon (Name, Size, IconLookupFlags.GenericFallback);
|
||||
|
||||
try {
|
||||
|
||||
return IconTheme.LoadIcon (name, size, IconLookupFlags.GenericFallback);
|
||||
|
||||
} catch {
|
||||
|
||||
try {
|
||||
|
||||
return IconTheme.LoadIcon ("gtk-missing-image", size, IconLookupFlags.GenericFallback);
|
||||
|
||||
} catch {
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -29,7 +29,11 @@ namespace SparkleShare {
|
|||
private Entry NameEntry;
|
||||
private Entry EmailEntry;
|
||||
private Entry ServerEntry;
|
||||
private Entry FolderEntry;
|
||||
private Button NextButton;
|
||||
private Button AddButton;
|
||||
private bool StepTwoOnly;
|
||||
private string SecondaryTextColor;
|
||||
|
||||
// Short alias for the translations
|
||||
public static string _ (string s)
|
||||
|
@ -46,7 +50,12 @@ namespace SparkleShare {
|
|||
Resizable = false;
|
||||
WindowPosition = WindowPosition.Center;
|
||||
|
||||
SetSizeRequest (640, 400);
|
||||
StepTwoOnly = false;
|
||||
|
||||
SetSizeRequest (640, 440);
|
||||
|
||||
Window window = new Window ("");
|
||||
SecondaryTextColor = GdkColorToHex (window.Style.Foreground (StateType.Insensitive));
|
||||
|
||||
ShowStepOne ();
|
||||
|
||||
|
@ -56,9 +65,10 @@ namespace SparkleShare {
|
|||
private void ShowStepOne ()
|
||||
{
|
||||
|
||||
Title = _("Welcome!");
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
||||
// TODO: Fix the path
|
||||
Image side_splash = new Image (SparkleHelpers.CombineMore (Defines.PREFIX, "share", "pixmaps",
|
||||
"side-splash.png"));
|
||||
|
||||
|
@ -68,7 +78,7 @@ namespace SparkleShare {
|
|||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label introduction = new Label ("<span size='x-large'><b>" +
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
_("Welcome to SparkleShare!") +
|
||||
"</b></span>") {
|
||||
UseMarkup = true,
|
||||
|
@ -81,7 +91,7 @@ namespace SparkleShare {
|
|||
Wrap = true
|
||||
};
|
||||
|
||||
Table table = new Table (6, 2, true) {
|
||||
Table table = new Table (4, 2, true) {
|
||||
RowSpacing = 6
|
||||
};
|
||||
|
||||
|
@ -94,13 +104,13 @@ namespace SparkleShare {
|
|||
|
||||
NameEntry = new Entry (unix_user_info.RealName);
|
||||
NameEntry.Changed += delegate {
|
||||
CheckFields ();
|
||||
CheckStepOneFields ();
|
||||
};
|
||||
|
||||
|
||||
EmailEntry = new Entry (GetUserEmail ());
|
||||
EmailEntry.Changed += delegate {
|
||||
CheckFields ();
|
||||
CheckStepOneFields ();
|
||||
};
|
||||
|
||||
Label email_label = new Label ("<b>" + _("Email:") + "</b>") {
|
||||
|
@ -108,46 +118,11 @@ namespace SparkleShare {
|
|||
Xalign = 0
|
||||
};
|
||||
|
||||
ServerEntry = new Entry ("ssh://gitorious.org/sparkleshare") {
|
||||
Sensitive = false
|
||||
};
|
||||
|
||||
Label server_label = new Label ("<b>" + _("Folder Address:") + "</b>") {
|
||||
UseMarkup = true,
|
||||
Xalign = 0,
|
||||
Sensitive = false
|
||||
};
|
||||
|
||||
CheckButton check_button;
|
||||
check_button = new CheckButton (_("I'm already subscribed to a " +
|
||||
"folder on a SparkleServer"));
|
||||
|
||||
check_button.Clicked += delegate {
|
||||
|
||||
if (check_button.Active) {
|
||||
|
||||
server_label.Sensitive = true;
|
||||
ServerEntry.Sensitive = true;
|
||||
ServerEntry.HasFocus = true;
|
||||
|
||||
} else {
|
||||
|
||||
server_label.Sensitive = false;
|
||||
ServerEntry.Sensitive = false;
|
||||
|
||||
}
|
||||
|
||||
ShowAll ();
|
||||
|
||||
};
|
||||
|
||||
table.Attach (name_label, 0, 1, 0, 1);
|
||||
table.Attach (NameEntry, 1, 2, 0, 1);
|
||||
table.Attach (email_label, 0, 1, 1, 2);
|
||||
table.Attach (EmailEntry, 1, 2, 1, 2);
|
||||
table.Attach (check_button, 0, 2, 3, 4);
|
||||
table.Attach (server_label, 0, 1, 4, 5);
|
||||
table.Attach (ServerEntry, 1, 2, 4, 5);
|
||||
|
||||
HButtonBox controls = new HButtonBox () {
|
||||
BorderWidth = 12,
|
||||
|
@ -161,13 +136,7 @@ namespace SparkleShare {
|
|||
NextButton.Clicked += delegate (object o, EventArgs args) {
|
||||
|
||||
NextButton.Remove (NextButton.Child);
|
||||
|
||||
HBox hbox = new HBox ();
|
||||
|
||||
hbox.Add (new SparkleSpinner ());
|
||||
hbox.Add (new Label (_("Configuring…")));
|
||||
|
||||
NextButton.Add (hbox);
|
||||
NextButton.Add (new Label (_("Configuring…")));
|
||||
|
||||
NextButton.Sensitive = false;
|
||||
table.Sensitive = false;
|
||||
|
@ -175,15 +144,18 @@ namespace SparkleShare {
|
|||
NextButton.ShowAll ();
|
||||
|
||||
Configure ();
|
||||
ShowStepTwo ();
|
||||
|
||||
};
|
||||
|
||||
controls.Add (NextButton);
|
||||
|
||||
layout_vertical.PackStart (introduction, false, false, 0);
|
||||
layout_vertical.PackStart (header, false, false, 0);
|
||||
layout_vertical.PackStart (information, false, false, 21);
|
||||
layout_vertical.PackStart (new Label (""), false, false, 0);
|
||||
layout_vertical.PackStart (table, false, false, 0);
|
||||
// layout_vertical.PackStart (check_button, false, false, 0);
|
||||
|
||||
|
||||
wrapper.PackStart (layout_vertical, true, true, 0);
|
||||
wrapper.PackStart (controls, false, true, 0);
|
||||
|
@ -193,16 +165,27 @@ namespace SparkleShare {
|
|||
|
||||
Add (layout_horizontal);
|
||||
|
||||
CheckFields ();
|
||||
CheckStepOneFields ();
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ShowStepTwo ()
|
||||
public void ShowStepTwo (bool step_two_only)
|
||||
{
|
||||
|
||||
StepTwoOnly = step_two_only;
|
||||
ShowStepTwo ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void ShowStepTwo ()
|
||||
{
|
||||
|
||||
Title = _("Add Remote Folder");
|
||||
|
||||
Remove (Child);
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
@ -216,7 +199,499 @@ namespace SparkleShare {
|
|||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label introduction = new Label ("<span size='x-large'><b>" +
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
_("Where does your remote folder reside?") +
|
||||
"</b></span>") {
|
||||
UseMarkup = true,
|
||||
Xalign = 0
|
||||
};
|
||||
|
||||
Table table = new Table (7, 2, false) {
|
||||
RowSpacing = 12
|
||||
};
|
||||
|
||||
HBox layout_server = new HBox (true, 0);
|
||||
|
||||
ServerEntry = new Entry (_("ssh://address-to-my-server/"));
|
||||
|
||||
ServerEntry.Changed += CheckStepTwoFields;
|
||||
|
||||
RadioButton radio_button = new RadioButton ("<b>" + _("On my own server:") + "</b>");
|
||||
|
||||
layout_server.Add (radio_button);
|
||||
layout_server.Add (ServerEntry);
|
||||
|
||||
string github_text = "<b>" + "Github" + "</b>\n" +
|
||||
"<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
|
||||
_("Github provides free hosting for Open Source projects, ") +
|
||||
_("but also has paid accounts for extra space and bandwidth.") +
|
||||
"</span>";
|
||||
|
||||
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;
|
||||
|
||||
string gnome_text = "<b>" + _("The GNOME Project") + "</b>\n" +
|
||||
"<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
|
||||
_("GNOME is an easy to understand interface to your computer.") + " " +
|
||||
_("Select this option if you’re a developer or designer working on GNOME.") +
|
||||
"</span>";
|
||||
|
||||
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;
|
||||
|
||||
string gitorious_text = "<b>" + _("Gitorious") + "</b>\n" +
|
||||
"<span fgcolor='" + SecondaryTextColor + "' size='small'>" +
|
||||
_("Gitorious provides a completely Free and Open Source infrastructure ") +
|
||||
_("for hosting Open Source projects.") +
|
||||
"</span>";
|
||||
|
||||
RadioButton radio_button_gitorious = new RadioButton (radio_button, gitorious_text) {
|
||||
Xalign = 0
|
||||
};
|
||||
|
||||
(radio_button_gitorious.Child as Label).UseMarkup = true;
|
||||
(radio_button_gitorious.Child as Label).Wrap = true;
|
||||
|
||||
radio_button.Toggled += delegate {
|
||||
|
||||
if (radio_button.Active) {
|
||||
|
||||
ServerEntry.Sensitive = true;
|
||||
|
||||
CheckStepTwoFields ();
|
||||
|
||||
} else {
|
||||
|
||||
ServerEntry.Sensitive = false;
|
||||
|
||||
CheckStepTwoFields ();
|
||||
|
||||
}
|
||||
|
||||
ShowAll ();
|
||||
|
||||
};
|
||||
|
||||
table.Attach (layout_server, 0, 2, 1, 2);
|
||||
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);
|
||||
|
||||
HBox layout_folder = new HBox (true, 0);
|
||||
|
||||
FolderEntry = new Entry ();
|
||||
|
||||
FolderEntry.Changed += CheckStepTwoFields;
|
||||
|
||||
Label folder_label = new Label ("<b>" + _("Folder Name:") + "</b>") {
|
||||
UseMarkup = true,
|
||||
Xalign = 1
|
||||
};
|
||||
|
||||
(radio_button.Child as Label).UseMarkup = true;
|
||||
|
||||
layout_folder.PackStart (folder_label, true, true, 12);
|
||||
layout_folder.PackStart (FolderEntry, true, true, 0);
|
||||
|
||||
|
||||
HButtonBox controls = new HButtonBox () {
|
||||
BorderWidth = 12,
|
||||
Layout = ButtonBoxStyle.End,
|
||||
Spacing = 6
|
||||
};
|
||||
|
||||
AddButton = new Button (_("Add"));
|
||||
|
||||
AddButton.Clicked += delegate {
|
||||
|
||||
string server = "";
|
||||
|
||||
if (radio_button.Active) {
|
||||
|
||||
server = SparkleToGitUrl (ServerEntry.Text);
|
||||
|
||||
// Remove the trailing slash if there is one
|
||||
if (server.EndsWith ("/"))
|
||||
server = server.Trim ("/".ToCharArray ());
|
||||
|
||||
}
|
||||
|
||||
if (radio_button_gitorious.Active)
|
||||
server = "ssh://git@gitorious.org";
|
||||
|
||||
if (radio_button_github.Active)
|
||||
server = "ssh://git@github.com";
|
||||
|
||||
if (radio_button_gnome.Active)
|
||||
server = "ssh://git@gnome.org";
|
||||
|
||||
|
||||
string name = FolderEntry.Text;
|
||||
|
||||
// Remove the starting slash if there is one
|
||||
if (name.StartsWith ("/"))
|
||||
name = name.Substring (1);
|
||||
|
||||
string canonical_name = System.IO.Path.GetFileNameWithoutExtension (name);
|
||||
|
||||
string url = server + "/" + name;
|
||||
string tmp_folder = SparkleHelpers.CombineMore (SparklePaths.SparkleTmpPath,
|
||||
canonical_name);
|
||||
|
||||
SparkleFetcher fetcher = new SparkleFetcher (url, tmp_folder);
|
||||
|
||||
Console.WriteLine (url);
|
||||
|
||||
fetcher.CloningStarted += delegate {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "[" + canonical_name + "] Cloning Repository");
|
||||
|
||||
};
|
||||
|
||||
|
||||
fetcher.CloningFinished += delegate {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "[" + canonical_name + "] Repository cloned");
|
||||
|
||||
ClearAttributes (tmp_folder);
|
||||
|
||||
try {
|
||||
|
||||
bool folder_exists = Directory.Exists (
|
||||
SparkleHelpers.CombineMore (SparklePaths.SparklePath, canonical_name));
|
||||
|
||||
int i = 1;
|
||||
while (folder_exists) {
|
||||
|
||||
i++;
|
||||
folder_exists = Directory.Exists (
|
||||
SparkleHelpers.CombineMore (SparklePaths.SparklePath,
|
||||
canonical_name + " (" + i + ")"));
|
||||
|
||||
}
|
||||
|
||||
string target_folder_name = canonical_name + " (" + i + ")";
|
||||
|
||||
Directory.Move (tmp_folder,
|
||||
SparkleHelpers.CombineMore (SparklePaths.SparklePath, target_folder_name));
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git",
|
||||
"[" + name + "] Error moving folder: " + e.Message);
|
||||
|
||||
}
|
||||
|
||||
Application.Invoke (delegate { ShowFinishedStep (); });
|
||||
|
||||
};
|
||||
|
||||
|
||||
fetcher.CloningFailed += delegate {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "[" + canonical_name + "] Cloning failed");
|
||||
|
||||
if (Directory.Exists (tmp_folder)) {
|
||||
|
||||
ClearAttributes (tmp_folder);
|
||||
Directory.Delete (tmp_folder, true);
|
||||
|
||||
SparkleHelpers.DebugInfo ("Config",
|
||||
"[" + name + "] Deleted temporary directory");
|
||||
|
||||
}
|
||||
|
||||
Application.Invoke (delegate { ShowErrorStep (); });
|
||||
|
||||
};
|
||||
|
||||
ShowStepTwoAndAHalf ();
|
||||
fetcher.Clone ();
|
||||
|
||||
};
|
||||
|
||||
Button skip_button = new Button (_("Skip"));
|
||||
|
||||
skip_button.Clicked += delegate {
|
||||
ShowStepThree ();
|
||||
};
|
||||
|
||||
|
||||
if (!StepTwoOnly)
|
||||
controls.Add (skip_button);
|
||||
|
||||
controls.Add (AddButton);
|
||||
|
||||
layout_vertical.PackStart (header, false, false, 0);
|
||||
layout_vertical.PackStart (new Label (""), false, false, 3);
|
||||
layout_vertical.PackStart (table, false, false, 0);
|
||||
layout_vertical.PackStart (layout_folder, false, false, 6);
|
||||
|
||||
wrapper.PackStart (layout_vertical, true, true, 0);
|
||||
wrapper.PackStart (controls, false, true, 0);
|
||||
|
||||
layout_horizontal.PackStart (side_splash, false, false, 0);
|
||||
layout_horizontal.PackStart (wrapper, true, true, 0);
|
||||
|
||||
Add (layout_horizontal);
|
||||
|
||||
CheckStepTwoFields ();
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ShowErrorStep ()
|
||||
{
|
||||
|
||||
Remove (Child);
|
||||
|
||||
Title = _("Error adding folder");
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
||||
Image side_splash = new Image (SparkleHelpers.CombineMore (Defines.PREFIX, "share", "pixmaps",
|
||||
"side-splash.png"));
|
||||
|
||||
VBox wrapper = new VBox (false, 0);
|
||||
|
||||
VBox layout_vertical = new VBox (false, 0) {
|
||||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
_("Something went wrong…") +
|
||||
"</b></span>\n") {
|
||||
UseMarkup = true,
|
||||
Xalign = 0
|
||||
};
|
||||
|
||||
Label information = new Label ("<span fgcolor='" + SecondaryTextColor + "'>" +
|
||||
_("Hey, it's an Alpha!") +
|
||||
"</span>") {
|
||||
Xalign = 0,
|
||||
Wrap = true,
|
||||
UseMarkup = true
|
||||
};
|
||||
|
||||
|
||||
HButtonBox controls = new HButtonBox () {
|
||||
BorderWidth = 12,
|
||||
Layout = ButtonBoxStyle.End
|
||||
};
|
||||
|
||||
Button try_again_button = new Button (_("Try again…")) {
|
||||
Sensitive = true
|
||||
};
|
||||
|
||||
try_again_button.Clicked += delegate (object o, EventArgs args) {
|
||||
|
||||
ShowStepTwo ();
|
||||
|
||||
};
|
||||
|
||||
controls.Add (try_again_button);
|
||||
|
||||
layout_vertical.PackStart (header, false, false, 0);
|
||||
layout_vertical.PackStart (information, false, false, 0);
|
||||
|
||||
wrapper.PackStart (layout_vertical, true, true, 0);
|
||||
wrapper.PackStart (controls, false, true, 0);
|
||||
|
||||
layout_horizontal.PackStart (side_splash, false, false, 0);
|
||||
layout_horizontal.PackStart (wrapper, true, true, 0);
|
||||
|
||||
Add (layout_horizontal);
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ShowFinishedStep ()
|
||||
{
|
||||
|
||||
Remove (Child);
|
||||
|
||||
Title = _("Folder Added Successfully");
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
||||
Image side_splash = new Image (SparkleHelpers.CombineMore (Defines.PREFIX, "share", "pixmaps",
|
||||
"side-splash.png"));
|
||||
|
||||
VBox wrapper = new VBox (false, 0);
|
||||
|
||||
VBox layout_vertical = new VBox (false, 0) {
|
||||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
_("Folder successfully retrieved!") +
|
||||
"</b></span>") {
|
||||
UseMarkup = true,
|
||||
Xalign = 0
|
||||
};
|
||||
|
||||
Label information = new Label ("<span fgcolor='" + SecondaryTextColor + "'>" +
|
||||
_("Buy a lottery ticket!") +
|
||||
"</span>") {
|
||||
Xalign = 0,
|
||||
Wrap = true,
|
||||
UseMarkup = true
|
||||
};
|
||||
|
||||
|
||||
HButtonBox controls = new HButtonBox () {
|
||||
BorderWidth = 12,
|
||||
Layout = ButtonBoxStyle.End
|
||||
};
|
||||
|
||||
Button finish_button = new Button (_("Finish"));
|
||||
|
||||
finish_button.Clicked += delegate (object o, EventArgs args) {
|
||||
|
||||
SparkleShare.SparkleUI.UpdateRepositories ();
|
||||
// Destroy ();
|
||||
|
||||
};
|
||||
|
||||
controls.Add (finish_button);
|
||||
|
||||
layout_vertical.PackStart (header, false, false, 0);
|
||||
layout_vertical.PackStart (information, false, false, 0);
|
||||
|
||||
wrapper.PackStart (layout_vertical, true, true, 0);
|
||||
wrapper.PackStart (controls, false, true, 0);
|
||||
|
||||
layout_horizontal.PackStart (side_splash, false, false, 0);
|
||||
layout_horizontal.PackStart (wrapper, true, true, 0);
|
||||
|
||||
Add (layout_horizontal);
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ShowStepTwoAndAHalf ()
|
||||
{
|
||||
|
||||
Title = _("Add Remote Folder");
|
||||
|
||||
Remove (Child);
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
||||
Image side_splash = new Image (SparkleHelpers.CombineMore (Defines.PREFIX, "share", "pixmaps",
|
||||
"side-splash.png"));
|
||||
|
||||
VBox wrapper = new VBox (false, 0);
|
||||
|
||||
VBox layout_vertical = new VBox (false, 0) {
|
||||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
String.Format (_("Retrieving folder ‘{0}’…"), FolderEntry.Text) +
|
||||
"</b></span>") {
|
||||
UseMarkup = true,
|
||||
Xalign = 0,
|
||||
Wrap = true
|
||||
};
|
||||
|
||||
Label information = new Label ("<span fgcolor='" + SecondaryTextColor + "'>" +
|
||||
_("This may take a while.\n") +
|
||||
_("You sure it’s not coffee o-clock?" +
|
||||
"</span>")) {
|
||||
UseMarkup = true,
|
||||
Xalign = 0
|
||||
};
|
||||
|
||||
HButtonBox controls = new HButtonBox () {
|
||||
BorderWidth = 12,
|
||||
Layout = ButtonBoxStyle.End,
|
||||
Spacing = 6
|
||||
};
|
||||
|
||||
Button button = new Button () {
|
||||
Sensitive = false
|
||||
};
|
||||
|
||||
if (StepTwoOnly) {
|
||||
|
||||
button.Label = _("Finish");
|
||||
button.Clicked += delegate {
|
||||
Destroy ();
|
||||
};
|
||||
|
||||
} else {
|
||||
|
||||
button.Label = _("Next");
|
||||
button.Clicked += delegate {
|
||||
ShowStepThree ();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
controls.Add (button);
|
||||
|
||||
SparkleSpinner spinner = new SparkleSpinner (22);
|
||||
|
||||
Table table = new Table (2, 2, false) {
|
||||
RowSpacing = 12,
|
||||
ColumnSpacing = 9
|
||||
};
|
||||
|
||||
HBox box = new HBox (false, 0);
|
||||
|
||||
table.Attach (spinner, 0, 1, 0, 1);
|
||||
table.Attach (header, 1, 2, 0, 1);
|
||||
table.Attach (information, 1, 2, 1, 2);
|
||||
|
||||
box.PackStart (table, false, false, 0);
|
||||
|
||||
layout_vertical.PackStart (box, false, false, 0);
|
||||
|
||||
wrapper.PackStart (layout_vertical, true, true, 0);
|
||||
wrapper.PackStart (controls, false, true, 0);
|
||||
|
||||
layout_horizontal.PackStart (side_splash, false, false, 0);
|
||||
layout_horizontal.PackStart (wrapper, true, true, 0);
|
||||
|
||||
Add (layout_horizontal);
|
||||
|
||||
CheckStepTwoFields ();
|
||||
|
||||
ShowAll ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ShowStepThree ()
|
||||
{
|
||||
|
||||
Title = _("Done!");
|
||||
|
||||
Remove (Child);
|
||||
|
||||
HBox layout_horizontal = new HBox (false, 6);
|
||||
|
||||
Image side_splash = new Image (SparkleHelpers.CombineMore (Defines.PREFIX, "share", "pixmaps",
|
||||
"side-splash.png"));
|
||||
|
||||
VBox wrapper = new VBox (false, 0);
|
||||
|
||||
VBox layout_vertical = new VBox (false, 0) {
|
||||
BorderWidth = 30
|
||||
};
|
||||
|
||||
Label header = new Label ("<span size='x-large'><b>" +
|
||||
_("SparkleShare is ready to go!") +
|
||||
"</b></span>") {
|
||||
UseMarkup = true,
|
||||
|
@ -238,7 +713,7 @@ namespace SparkleShare {
|
|||
|
||||
link_wrapper.PackStart (link, false, false, 0);
|
||||
|
||||
layout_vertical.PackStart (introduction, false, false, 0);
|
||||
layout_vertical.PackStart (header, false, false, 0);
|
||||
layout_vertical.PackStart (information, false, false, 21);
|
||||
layout_vertical.PackStart (link_wrapper, false, false, 0);
|
||||
|
||||
|
@ -271,7 +746,7 @@ namespace SparkleShare {
|
|||
|
||||
// Enables or disables the 'Next' button depending on the
|
||||
// entries filled in by the user
|
||||
private void CheckFields ()
|
||||
private void CheckStepOneFields ()
|
||||
{
|
||||
|
||||
if (NameEntry.Text.Length > 0 &&
|
||||
|
@ -288,24 +763,54 @@ namespace SparkleShare {
|
|||
}
|
||||
|
||||
|
||||
// Enables the Add button when the fields are
|
||||
// filled in correctly
|
||||
public void CheckStepTwoFields (object o, EventArgs args)
|
||||
{
|
||||
|
||||
CheckStepTwoFields ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Enables the Add button when the fields are
|
||||
// filled in correctly
|
||||
public void CheckStepTwoFields ()
|
||||
{
|
||||
|
||||
AddButton.Sensitive = false;
|
||||
bool IsFolder = !FolderEntry.Text.Trim ().Equals ("");
|
||||
|
||||
if (ServerEntry.Sensitive == true) {
|
||||
|
||||
if (IsGitUrl (ServerEntry.Text) && IsFolder)
|
||||
AddButton.Sensitive = true;
|
||||
|
||||
} else if (IsFolder) {
|
||||
|
||||
AddButton.Sensitive = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Configures SparkleShare with the user's information
|
||||
private void Configure ()
|
||||
{
|
||||
|
||||
string config_file_path = SparkleHelpers.CombineMore (SparklePaths.SparkleConfigPath, ".gitconfig");
|
||||
string config_file_path = SparkleHelpers.CombineMore (SparklePaths.SparkleConfigPath, "config");
|
||||
|
||||
TextWriter writer = new StreamWriter (config_file_path);
|
||||
writer.WriteLine ("[user]\n" +
|
||||
"\tname = " + NameEntry.Text + "\n" +
|
||||
"\temail = " + EmailEntry.Text + "\n");
|
||||
"\temail = " + EmailEntry.Text);
|
||||
writer.Close ();
|
||||
|
||||
SparkleHelpers.DebugInfo ("Config", "Created '" + config_file_path + "'");
|
||||
|
||||
GenerateKeyPair ();
|
||||
|
||||
ShowStepTwo ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -365,8 +870,10 @@ namespace SparkleShare {
|
|||
process.Start ();
|
||||
|
||||
process.Exited += delegate {
|
||||
|
||||
SparkleHelpers.DebugInfo ("Config", "Created key '" + key_file_name + "'");
|
||||
SparkleHelpers.DebugInfo ("Config", "Created key '" + key_file_name + ".pub'");
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -383,6 +890,62 @@ namespace SparkleShare {
|
|||
|
||||
}
|
||||
|
||||
|
||||
// Checks if a url is a valid git url
|
||||
private static bool IsGitUrl (string url)
|
||||
{
|
||||
|
||||
return Regex.Match (url, @"ssh://(.)+").Success;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Recursively sets access rights of a folder to 'Normal'
|
||||
private void ClearAttributes (string path)
|
||||
{
|
||||
|
||||
if (Directory.Exists (path)) {
|
||||
|
||||
string [] folders = Directory .GetDirectories (path);
|
||||
|
||||
foreach (string folder in folders)
|
||||
ClearAttributes (folder);
|
||||
|
||||
string [] files = Directory .GetFiles(path);
|
||||
|
||||
foreach (string file in files)
|
||||
File.SetAttributes (file, FileAttributes.Normal);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Converts a Gdk RGB color to a hex value.
|
||||
// Example: from "rgb:0,0,0" to "#000000"
|
||||
public string GdkColorToHex (Gdk.Color color)
|
||||
{
|
||||
|
||||
return String.Format ("#{0:X2}{1:X2}{2:X2}",
|
||||
(int) Math.Truncate (color.Red / 256.00),
|
||||
(int) Math.Truncate (color.Green / 256.00),
|
||||
(int) Math.Truncate (color.Blue / 256.00));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Convert the more human readable sparkle:// url to something Git can use.
|
||||
// Example: sparkle://gitorious.org/sparkleshare ssh://git@gitorious.org/sparkleshare
|
||||
private static string SparkleToGitUrl (string url)
|
||||
{
|
||||
|
||||
if (url.StartsWith ("sparkle://"))
|
||||
url = url.Replace ("sparkle://", "ssh://git@");
|
||||
|
||||
return url;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,8 +37,8 @@ namespace SparkleShare {
|
|||
|
||||
public static string SparkleLocalIconPath = SparkleHelpers.CombineMore (HomePath, ".icons", "sparkleshare");
|
||||
|
||||
public static string SparkleIconPath = SparkleHelpers.CombineMore (Defines.PREFIX,
|
||||
"sparkleshare", "icons", "hicolor");
|
||||
public static string SparkleIconPath = SparkleHelpers.CombineMore (Defines.PREFIX, "share", "sparkleshare",
|
||||
"icons");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace SparkleShare {
|
|||
private Timer FetchTimer;
|
||||
private Timer BufferTimer;
|
||||
private FileSystemWatcher Watcher;
|
||||
private bool HasChanged = false;
|
||||
private bool HasChanged;
|
||||
private DateTime LastChange;
|
||||
private System.Object ChangeLock = new System.Object();
|
||||
|
||||
|
@ -66,14 +66,19 @@ namespace SparkleShare {
|
|||
public SparkleRepo (string path)
|
||||
{
|
||||
|
||||
if (!Directory.Exists (path))
|
||||
Directory.CreateDirectory (path);
|
||||
|
||||
LocalPath = path;
|
||||
Name = Path.GetFileName (LocalPath);
|
||||
|
||||
Process = new Process ();
|
||||
Process.EnableRaisingEvents = true;
|
||||
Process = new Process () {
|
||||
EnableRaisingEvents = true
|
||||
};
|
||||
|
||||
Process.StartInfo.FileName = "git";
|
||||
Process.StartInfo.RedirectStandardOutput = true;
|
||||
Process.StartInfo.UseShellExecute = false;
|
||||
Process.StartInfo.FileName = "git";
|
||||
Process.StartInfo.WorkingDirectory = LocalPath;
|
||||
|
||||
UserName = GetUserName ();
|
||||
|
@ -83,6 +88,8 @@ namespace SparkleShare {
|
|||
Domain = GetDomain (RemoteOriginUrl);
|
||||
|
||||
|
||||
HasChanged = false;
|
||||
|
||||
// Watch the repository's folder
|
||||
Watcher = new FileSystemWatcher (LocalPath) {
|
||||
IncludeSubdirectories = true,
|
||||
|
@ -97,7 +104,7 @@ namespace SparkleShare {
|
|||
|
||||
// Fetch remote changes every minute
|
||||
FetchTimer = new Timer () {
|
||||
Interval = 30000
|
||||
Interval = 5000
|
||||
};
|
||||
|
||||
FetchTimer.Elapsed += delegate {
|
||||
|
@ -265,11 +272,10 @@ namespace SparkleShare {
|
|||
SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Fetching changes...");
|
||||
|
||||
Process.StartInfo.Arguments = "fetch -v";
|
||||
|
||||
Process.WaitForExit ();
|
||||
Process.Start ();
|
||||
|
||||
string output = Process.StandardOutput.ReadToEnd ().Trim (); // TODO: This doesn't work :(
|
||||
|
||||
SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Changes fetched.");
|
||||
|
||||
args = new SparkleEventArgs ("FetchingFinished");
|
||||
|
@ -277,8 +283,6 @@ namespace SparkleShare {
|
|||
if (FetchingFinished != null)
|
||||
FetchingFinished (this, args);
|
||||
|
||||
// Rebase if there are changes
|
||||
if (!output.Contains ("up to date"))
|
||||
Rebase ();
|
||||
|
||||
} finally {
|
||||
|
|
|
@ -72,13 +72,8 @@ namespace SparkleShare {
|
|||
}
|
||||
}
|
||||
|
||||
Gtk.Application.Init ();
|
||||
|
||||
SparkleUI = new SparkleUI (HideUI);
|
||||
|
||||
// The main loop
|
||||
Gtk.Application.Run ();
|
||||
|
||||
}
|
||||
|
||||
// Prints the help output
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
@ -22,25 +22,28 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<OutputPath>..\bin</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<Package>gtk-sharp-2.0</Package>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="Mono.Posix" />
|
||||
<Reference Include="DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\SharpSSH\lib\DiffieHellman.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="SparkleBubble.cs" />
|
||||
<Compile Include="SparkleDialog.cs" />
|
||||
<Compile Include="SparkleFetcher.cs" />
|
||||
<Compile Include="SparkleIntro.cs" />
|
||||
<Compile Include="SparkleHelpers.cs" />
|
||||
<Compile Include="SparklePaths.cs" />
|
||||
<Compile Include="SparklePlatform.cs" />
|
||||
|
@ -50,6 +53,8 @@
|
|||
<Compile Include="SparkleStatusIcon.cs" />
|
||||
<Compile Include="SparkleUI.cs" />
|
||||
<Compile Include="SparkleWindow.cs" />
|
||||
<Compile Include="SparkleIntro.cs" />
|
||||
<Compile Include="Defines.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\NotifySharp\NotifySharp.csproj">
|
||||
|
@ -57,4 +62,19 @@
|
|||
<Name>NotifySharp</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<MonoDevelop>
|
||||
<Properties>
|
||||
<MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="true" RelativeMakefileName="Makefile.am">
|
||||
<BuildFilesVar Sync="true" Name="SOURCES" />
|
||||
<DeployFilesVar />
|
||||
<ResourcesVar />
|
||||
<OthersVar />
|
||||
<GacRefVar />
|
||||
<AsmRefVar />
|
||||
<ProjectRefVar />
|
||||
</MonoDevelop.Autotools.MakefileInfo>
|
||||
</Properties>
|
||||
</MonoDevelop>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
|
|
|
@ -32,64 +32,92 @@ namespace SparkleShare {
|
|||
private int NumSteps;
|
||||
private int Size;
|
||||
|
||||
public SparkleSpinner () : base ()
|
||||
public SparkleSpinner (int size) : base ()
|
||||
{
|
||||
|
||||
CycleDuration = 750;
|
||||
Size = size;
|
||||
|
||||
CycleDuration = 600;
|
||||
CurrentStep = 0;
|
||||
Size = 16;
|
||||
|
||||
Gdk.Pixbuf spinner_gallery = SparkleHelpers.GetIcon ("process-working", Size);
|
||||
|
||||
int frames_in_width = spinner_gallery.Width / Size;
|
||||
int frames_in_height = spinner_gallery.Height / Size;
|
||||
|
||||
NumSteps = frames_in_width * frames_in_height;
|
||||
Images = new Gdk.Pixbuf [NumSteps - 1];
|
||||
|
||||
int i = 0;
|
||||
|
||||
for (int y = 0; y < frames_in_height; y++) {
|
||||
|
||||
for (int x = 0; x < frames_in_width; x++) {
|
||||
|
||||
if (!(y == 0 && x == 0)) {
|
||||
|
||||
Images [i] = new Gdk.Pixbuf (spinner_gallery, x * Size, y * Size, Size, Size);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Timer = new Timer ();
|
||||
Timer.Interval = CycleDuration / NumSteps;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Timer = new Timer () {
|
||||
Interval = CycleDuration / NumSteps
|
||||
};
|
||||
|
||||
Timer.Elapsed += delegate {
|
||||
NextImage ();
|
||||
};
|
||||
|
||||
Start ();
|
||||
|
||||
}
|
||||
|
||||
private void NextImage ()
|
||||
{
|
||||
if (CurrentStep < NumSteps)
|
||||
|
||||
if (CurrentStep < NumSteps - 2)
|
||||
CurrentStep++;
|
||||
else
|
||||
CurrentStep = 0;
|
||||
|
||||
Application.Invoke (delegate { SetImage (); });
|
||||
|
||||
}
|
||||
|
||||
private void SetImage ()
|
||||
{
|
||||
|
||||
Pixbuf = Images [CurrentStep];
|
||||
|
||||
}
|
||||
|
||||
public bool IsActive ()
|
||||
{
|
||||
|
||||
return Active;
|
||||
|
||||
}
|
||||
|
||||
public void Start ()
|
||||
{
|
||||
|
||||
CurrentStep = 0;
|
||||
Active = true;
|
||||
Timer.Start ();
|
||||
|
||||
}
|
||||
|
||||
public void Stop ()
|
||||
{
|
||||
|
||||
Active = false;
|
||||
Timer.Stop ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -127,6 +127,7 @@ namespace SparkleShare {
|
|||
|
||||
Menu.Add (new SeparatorMenuItem ());
|
||||
|
||||
// TODO: Append folder size in secondary text color
|
||||
Gtk.Action folder_action = new Gtk.Action ("", _("SparkleShare Folder")) {
|
||||
IconName = "folder-sparkleshare",
|
||||
IsImportant = true
|
||||
|
@ -172,8 +173,9 @@ namespace SparkleShare {
|
|||
|
||||
add_item.Activated += delegate {
|
||||
|
||||
SparkleDialog dialog = new SparkleDialog ("");
|
||||
dialog.ShowAll ();
|
||||
SparkleIntro intro = new SparkleIntro ();
|
||||
intro.ShowStepTwo (true);
|
||||
intro.ShowAll ();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ namespace SparkleShare {
|
|||
public SparkleUI (bool HideUI)
|
||||
{
|
||||
|
||||
Gtk.Application.Init ();
|
||||
|
||||
Repositories = new List <SparkleRepo> ();
|
||||
|
||||
Process = new Process () {
|
||||
|
@ -87,6 +89,9 @@ namespace SparkleShare {
|
|||
|
||||
}
|
||||
|
||||
// The main loop
|
||||
Gtk.Application.Run ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -163,6 +168,7 @@ namespace SparkleShare {
|
|||
if (!File.Exists (desktopfile_path)) {
|
||||
|
||||
if (!Directory.Exists (apps_path))
|
||||
|
||||
Directory.CreateDirectory (apps_path);
|
||||
|
||||
TextWriter writer = new StreamWriter (desktopfile_path);
|
||||
|
@ -254,7 +260,7 @@ namespace SparkleShare {
|
|||
|
||||
|
||||
// Updates the statusicon to the syncing state
|
||||
public void UpdateStatusIconSyncing (object o, EventArgs args)
|
||||
public void UpdateStatusIconToSyncing (object o, EventArgs args)
|
||||
{
|
||||
|
||||
NotificationIcon.SyncingReposCount++;
|
||||
|
@ -264,7 +270,7 @@ namespace SparkleShare {
|
|||
|
||||
|
||||
// Updates the syncing icon to the idle state
|
||||
public void UpdateStatusIconIdle (object o, EventArgs args)
|
||||
public void UpdateStatusIconToIdle (object o, EventArgs args)
|
||||
{
|
||||
|
||||
NotificationIcon.SyncingReposCount--;
|
||||
|
@ -296,19 +302,19 @@ namespace SparkleShare {
|
|||
};
|
||||
|
||||
repo.FetchingStarted += delegate {
|
||||
Application.Invoke (UpdateStatusIconSyncing);
|
||||
Application.Invoke (UpdateStatusIconToSyncing);
|
||||
};
|
||||
|
||||
repo.FetchingFinished += delegate {
|
||||
Application.Invoke (UpdateStatusIconIdle);
|
||||
Application.Invoke (UpdateStatusIconToIdle);
|
||||
};
|
||||
|
||||
repo.PushingStarted += delegate {
|
||||
Application.Invoke (UpdateStatusIconSyncing);
|
||||
Application.Invoke (UpdateStatusIconToSyncing);
|
||||
};
|
||||
|
||||
repo.PushingFinished += delegate {
|
||||
Application.Invoke (UpdateStatusIconIdle);
|
||||
Application.Invoke (UpdateStatusIconToIdle);
|
||||
};
|
||||
|
||||
repo.ConflictDetected += delegate {
|
||||
|
|
|
@ -4,7 +4,7 @@ hicolordir = $(DESTDIR)$(datadir)/icons/hicolor
|
|||
|
||||
theme_icons = \
|
||||
animations,process-syncing-sparkleshare-24.png \
|
||||
animations,process-working-48.png \
|
||||
animations,process-working-22.png \
|
||||
places,folder-16.png \
|
||||
places,folder-22.png \
|
||||
places,folder-24.png \
|
||||
|
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
data/icons/process-working-22.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
1592
data/side-splash.svg
Before Width: | Height: | Size: 840 KiB After Width: | Height: | Size: 841 KiB |
Before Width: | Height: | Size: 910 KiB After Width: | Height: | Size: 866 KiB |
345
po/de.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: SparkleShare 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-21 19:48+0000\n"
|
||||
"POT-Creation-Date: 2010-07-28 08:26+0000\n"
|
||||
"PO-Revision-Date: 2010-06-21 16:26+0100\n"
|
||||
"Last-Translator: Martin Lettner <m.lettner@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -18,248 +18,289 @@ msgstr ""
|
|||
"X-Poedit-Language: German\n"
|
||||
"X-Poedit-Country: GERMANY\n"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:50
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:49
|
||||
msgid "Git wasn't found."
|
||||
msgstr "Git konnte nicht gefunden werden."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:51
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:50
|
||||
msgid "You can get Git from http://git-scm.com/."
|
||||
msgstr "Sie können Git auf http://git-scm.com/ herunterladen."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:58
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:57
|
||||
msgid "Sorry, you can't run SparkleShare with these permissions."
|
||||
msgstr "Entschuldigung, SparkleShare kann mit diesen Rechten nicht ausgeführt werden."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:59
|
||||
#, fuzzy
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:58
|
||||
msgid "Things would go utterly wrong."
|
||||
msgstr "Vieles würde nicht richtig funktionieren."
|
||||
msgstr "Alles würde völlig schief gehen."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:157
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161
|
||||
msgid "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:159 ../SparkleShare/SparkleShare.cs:90
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163 ../SparkleShare/SparkleShare.cs:89
|
||||
msgid "This program comes with ABSOLUTELY NO WARRANTY."
|
||||
msgstr "Diese Anwendung kommt OHNE IRGENDEINE GARANTIE."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:160 ../SparkleShare/SparkleShare.cs:91
|
||||
#, fuzzy
|
||||
#: ../SparkleDiff/SparkleDiff.cs:164 ../SparkleShare/SparkleShare.cs:90
|
||||
msgid "This is free software, and you are welcome to redistribute it "
|
||||
msgstr "Dies ist freie Software. Sie können es weitergeben und/oder modifizieren"
|
||||
msgstr "Dies ist freie Software, die Sie gerne weitergeben dürfen"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161 ../SparkleShare/SparkleShare.cs:92
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165 ../SparkleShare/SparkleShare.cs:91
|
||||
msgid "under certain conditions. Please read the GNU GPLv3 for details."
|
||||
msgstr "unter bestimmten Bedingungen. Bitte lesen Sie dazu die GNU GPLv3 für weitere Details."
|
||||
msgstr "unter bestimmten Bedingungen. Bitte lesen Sie die GNU GPLv3 für weitere Details."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163
|
||||
#: ../SparkleDiff/SparkleDiff.cs:167
|
||||
msgid "SparkleDiff let's you compare revisions of an image file side by side."
|
||||
msgstr "SparkleDiff lässt dich Versionen einer Bilddatei nebeneinander vergleichen."
|
||||
msgstr "Mit SparkleDiff können Sie Revisionen einer Bilddatei nebeneinander vergleichen."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169
|
||||
msgid "Usage: sparklediff [FILE]"
|
||||
msgstr "Verwendung: sparklediff [DATEI]"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:166
|
||||
#: ../SparkleDiff/SparkleDiff.cs:170
|
||||
msgid "Open an image file to show its revisions"
|
||||
msgstr "Öffnet eine Bilddatei zur Anzeige ihrer Versionen"
|
||||
msgstr "Öffnet eine Bilddatei zur Anzeige Ihrer Revisionen"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:168 ../SparkleShare/SparkleShare.cs:99
|
||||
#: ../SparkleDiff/SparkleDiff.cs:172 ../SparkleShare/SparkleShare.cs:98
|
||||
msgid "Arguments:"
|
||||
msgstr "Parameter:"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169 ../SparkleShare/SparkleShare.cs:101
|
||||
#: ../SparkleDiff/SparkleDiff.cs:173 ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -h, --help\t\tDisplay this help text."
|
||||
msgstr "\t -h, --help\t\tDiesen Hilfe-Text anzeigen."
|
||||
|
||||
#. TRANSLATORS: The parameter is a filename
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:53
|
||||
#, csharp-format
|
||||
msgid "Comparing Revisions of ‘{0}’"
|
||||
msgstr "Versionen von »{0}« vergleichen"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:92
|
||||
#, fuzzy, csharp-format
|
||||
msgid "{0} at {1}"
|
||||
msgstr "»{0}« auf {1}"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:81
|
||||
msgid "Current Revision"
|
||||
msgstr "Aktuelle Version"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:93
|
||||
#, fuzzy
|
||||
msgid "ddd MMM d, yyyy"
|
||||
msgstr "ddd MMM d, yyyy"
|
||||
|
||||
#. TRANSLATORS: This is a format specifier according to
|
||||
#. System.Globalization.DateTimeFormatInfo
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:85
|
||||
msgid "d MMM\tH:mm"
|
||||
msgstr "d MMM\tH:mm"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:94
|
||||
#, fuzzy
|
||||
msgid "H:mm"
|
||||
msgstr "H:mm"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:50
|
||||
#: ../SparkleShare/SparkleDialog.cs:51
|
||||
msgid "Address of remote SparkleShare folder:"
|
||||
msgstr "Adresse des entfernten SparkleShare-Verzeichnis:"
|
||||
msgstr "Adresse des entfernten SparkleShare-Ordners:"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:81
|
||||
#: ../SparkleShare/SparkleDialog.cs:82
|
||||
msgid "Add Folder"
|
||||
msgstr "Verzeichnis hinzufügen"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:126
|
||||
#, csharp-format
|
||||
msgid "Syncing folder ‘{0}’"
|
||||
msgstr "Verzeichnis »{0}« wird abgeglichen"
|
||||
msgstr "Ordner hinzufügen"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
msgid "SparkleShare will notify you when this is done."
|
||||
msgstr "SparkleShare wird Sie benachrichtigen sobald diese Aktion abgeschlossen ist."
|
||||
#, csharp-format
|
||||
msgid "Syncing folder ‘{0}’"
|
||||
msgstr "Ordner »{0}« wird abgeglichen"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:129
|
||||
#: ../SparkleShare/SparkleDialog.cs:128
|
||||
msgid "SparkleShare will notify you when this is done."
|
||||
msgstr "SparkleShare wird Sie benachrichtigen, sobald diese Aktion abgeschlossen ist."
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:130
|
||||
msgid "Dismiss"
|
||||
msgstr "Verwerfen"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:157
|
||||
#: ../SparkleShare/SparkleDialog.cs:158
|
||||
#, csharp-format
|
||||
msgid "Something went wrong while syncing ‘{0}’"
|
||||
msgstr "Beim Datenabgleich von »{0}« ist ein Fehler aufgetreten"
|
||||
msgstr "Beim Synchronisieren von »{0}« ist ein Fehler aufgetreten"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:167
|
||||
#: ../SparkleShare/SparkleDialog.cs:168
|
||||
msgid "Try Again…"
|
||||
msgstr "Erneut versuchen …"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:197
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#, csharp-format
|
||||
msgid "Successfully synced folder ‘{0}’"
|
||||
msgstr "Verzeichnis »{0}« erfolgreich abgeglichen"
|
||||
msgstr "Ordner »{0}« erfolgreich abgeglichen"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#, fuzzy
|
||||
#: ../SparkleShare/SparkleDialog.cs:199
|
||||
msgid "Now make great stuff happen!"
|
||||
msgstr "Und jetzt, tue etwas großartiges!"
|
||||
|
||||
#. Add a button to open the folder where the changed file is
|
||||
#: ../SparkleShare/SparkleDialog.cs:200 ../SparkleShare/SparkleRepo.cs:319
|
||||
#: ../SparkleShare/SparkleWindow.cs:63
|
||||
#: ../SparkleShare/SparkleDialog.cs:201 ../SparkleShare/SparkleWindow.cs:62
|
||||
msgid "Open Folder"
|
||||
msgstr "Verzeichnis öffnen"
|
||||
msgstr "Ordner öffnen"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:164
|
||||
#: ../SparkleShare/SparkleHelpers.cs:136
|
||||
#, csharp-format
|
||||
msgid "a second ago"
|
||||
msgid_plural "{0} seconds ago"
|
||||
msgstr[0] "vor einer Sekunde"
|
||||
msgstr[1] "vor {0} Sekunden"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:170
|
||||
#: ../SparkleShare/SparkleHelpers.cs:142
|
||||
#, csharp-format
|
||||
msgid "a minute ago"
|
||||
msgid_plural "about {0} minutes ago"
|
||||
msgstr[0] "vor einer Minute"
|
||||
msgstr[1] "vor {0} Minuten"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:176
|
||||
#: ../SparkleShare/SparkleHelpers.cs:148
|
||||
#, csharp-format
|
||||
msgid "about an hour ago"
|
||||
msgid_plural "about {0} hours ago"
|
||||
msgstr[0] "vor einer Stunde"
|
||||
msgstr[1] "vor {0} Stunden"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:182
|
||||
#: ../SparkleShare/SparkleHelpers.cs:154
|
||||
#, csharp-format
|
||||
msgid "yesterday"
|
||||
msgid_plural "{0} days ago"
|
||||
msgstr[0] "gestern"
|
||||
msgstr[1] "vor {0} Tagen"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:188
|
||||
#: ../SparkleShare/SparkleHelpers.cs:160
|
||||
#, csharp-format
|
||||
msgid "a month ago"
|
||||
msgid_plural "{0} months ago"
|
||||
msgstr[0] "vor einem Monat"
|
||||
msgstr[1] "vor {0} Monaten"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:193
|
||||
#: ../SparkleShare/SparkleHelpers.cs:165
|
||||
#, csharp-format
|
||||
msgid "a year ago"
|
||||
msgid_plural "{0} years ago"
|
||||
msgstr[0] "vor einem Jahr"
|
||||
msgstr[1] "vor {0} Jahren"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:205
|
||||
#: ../SparkleShare/SparkleIntro.cs:72
|
||||
msgid "Welcome to SparkleShare!"
|
||||
msgstr "Willkommen bei SparkleShare!"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:78
|
||||
msgid "Before we can create a SparkleShare folder on this computer, we need a few bits of information from you."
|
||||
msgstr "Bevor wir einen SparkleShare-Ordner auf diesem Computer einrichten können, benötigen wir ein paar Informationen von Ihnen."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:90
|
||||
msgid "Full Name:"
|
||||
msgstr "Vollständiger Name: "
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:106
|
||||
msgid "Email:"
|
||||
msgstr "Email:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:115
|
||||
msgid "Folder Address:"
|
||||
msgstr "Order-Adresse: "
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:122
|
||||
msgid "I'm already subscribed to a folder on a SparkleServer"
|
||||
msgstr "Ich abonniere bereits einen Order auf einem SparkleServer"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:157
|
||||
msgid "Next"
|
||||
msgstr "Weiter"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:168
|
||||
msgid "Configuring…"
|
||||
msgstr "Konfiguriere..."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:220
|
||||
msgid "SparkleShare is ready to go!"
|
||||
msgstr "SparkleShare ist bereit zum Loslegen!"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:226
|
||||
msgid "Now you can start accepting invitations from others. Just click on invitations you get by email and we will take care of the rest."
|
||||
msgstr "Sie können nun Einladungen annehmen. Klicken Sie einfach auf Einladungen, die Sie per Email erhalten und wir kümmern uns um den Rest."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:237
|
||||
msgid "Learn how to host your own SparkleServer"
|
||||
msgstr "Lernen Sie, wie Sie ihren eigenen SparkleServer betreiben können"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:250
|
||||
msgid "Finish"
|
||||
msgstr "Fertigstellen"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:87
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:93
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare synchronisiert den Ordner ~/SparkleShare mit dem Remote-Repository."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:95
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Verwendung: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare Ordner mit dem Remote-Repository synchronisieren."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:99
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tBenachrichtigungs-Symbol nicht anzeigen."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:130
|
||||
msgid "SparkleShare Folder"
|
||||
msgstr "SparkleShare-Ordner"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:163
|
||||
msgid "No Shared Folders Yet"
|
||||
msgstr "Noch keine freigegebenen Ordner"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:171
|
||||
msgid "Add Remote Folder…"
|
||||
msgstr "Remote-Ordner hinzufügen …"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:184
|
||||
msgid "Show Notifications"
|
||||
msgstr "Benachrichtigungen anzeigen"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:205
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:222
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:271
|
||||
msgid "All up to date"
|
||||
msgstr "Schon am aktuellsten Stand."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:280
|
||||
msgid "Syncing…"
|
||||
msgstr "Abgleichen …"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:247
|
||||
#, fuzzy
|
||||
msgid "Ouch! Mid-air collision!"
|
||||
msgstr "Autsch! Zusammenstoß in der Luft!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:248
|
||||
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/SparkleUI.cs:334
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Immer langsam mit den jungen Pferden!"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:206
|
||||
msgid ""
|
||||
"SparkleShare is known to be insanely fast with \n"
|
||||
"pictures of unicorns. Please make sure your internets\n"
|
||||
"are upgraded to the latest version to avoid problems."
|
||||
#: ../SparkleShare/SparkleUI.cs:335
|
||||
#, fuzzy
|
||||
msgid "SparkleShare is known to be insanely fast with pictures of unicorns. Please make sure your internets are upgraded to the latest version to avoid any problems."
|
||||
msgstr ""
|
||||
"SparkleShare ist bekannt dafür, Bilder von Einhörnern\n"
|
||||
"wahnsinnig schnell zu bearbeiten. Bitte stellen Sie sicher,\n"
|
||||
"dass Sie die neueste Version des Internets installiert haben,\n"
|
||||
"um Probleme zu vermeiden."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:88
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:94
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare gleicht das Verzeichnis ~/SparkleShare mit entfernten Verzeichnissen ab"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Verwendung: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:97
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare Ordner mit entfernten Repositories abgleichen."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tBenachrichtigungs-Symbol nicht anzeigen."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:69
|
||||
msgid "Error syncing"
|
||||
msgstr "Fehler beim Datenabgleich"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:72
|
||||
msgid "Everything is up to date"
|
||||
msgstr "Alles ist auf dem aktuellsten Stand"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:75
|
||||
msgid "Syncing…"
|
||||
msgstr "Abgleichen …"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:116
|
||||
msgid "Add a Remote Folder…"
|
||||
msgstr "Ein entferntes Verzeichnis hinzufügen …"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:124
|
||||
msgid "Show Notifications"
|
||||
msgstr "Benachrichtigungen anzeigen"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:142
|
||||
msgid "Visit Website"
|
||||
msgstr "Website besuchen"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:159
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:145
|
||||
msgid "Welcome to SparkleShare!"
|
||||
msgstr "Willkommen bei SparkleShare!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:146
|
||||
msgid "You don't have any folders set up yet."
|
||||
msgstr "Sie haben noch keine Verzeichnisse konfiguriert."
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:149
|
||||
msgid "Add a Folder…"
|
||||
msgstr "Ein Verzeichnis hinzufügen …"
|
||||
|
||||
#. TRANSLATORS: {0} is a folder name, and {1} is a server address
|
||||
#: ../SparkleShare/SparkleWindow.cs:51
|
||||
#: ../SparkleShare/SparkleWindow.cs:50
|
||||
#, csharp-format
|
||||
msgid "‘{0}’ on {1}"
|
||||
msgstr "»{0}« auf {1}"
|
||||
msgid "Recent Events in ‘{0}’"
|
||||
msgstr "Letzte Ereignisse in ‘{0}’"
|
||||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:108
|
||||
msgid "Get Earlier Version"
|
||||
msgstr "Holen einer früheren Version"
|
||||
msgstr "Frühere Version abrufen"
|
||||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:109
|
||||
msgid "Make a copy of an earlier version in this folder"
|
||||
|
@ -267,23 +308,41 @@ msgstr "Erstelle eine Kopie einer früheren Version in diesem Verzeichnis"
|
|||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:122
|
||||
msgid "Select to get a copy of this version"
|
||||
msgstr "Wählen Sie eine Kopie dieser Version"
|
||||
msgstr "Selektieren, um eine Kopie dieser Version abzurufen"
|
||||
|
||||
#~ msgid "Comparing Revisions of ‘{0}’"
|
||||
#~ msgstr "Versionen von »{0}« vergleichen"
|
||||
|
||||
#~ msgid "Current Revision"
|
||||
#~ msgstr "Aktuelle Version"
|
||||
|
||||
#~ msgid "d MMM\tH:mm"
|
||||
#~ msgstr "d MMM\tH:mm"
|
||||
|
||||
#~ msgid "Error syncing"
|
||||
#~ msgstr "Fehler beim Datenabgleich"
|
||||
|
||||
#~ msgid "Everything is up to date"
|
||||
#~ msgstr "Alles ist auf dem aktuellsten Stand"
|
||||
|
||||
#~ msgid "Visit Website"
|
||||
#~ msgstr "Website besuchen"
|
||||
|
||||
#~ msgid "You don't have any folders set up yet."
|
||||
#~ msgstr "Sie haben noch keine Verzeichnisse konfiguriert."
|
||||
|
||||
#~ msgid "Add a Folder…"
|
||||
#~ msgstr "Ein Verzeichnis hinzufügen …"
|
||||
|
||||
#~ msgid "folder-sparkleshare"
|
||||
#~ msgstr "ordner-sparkleshare"
|
||||
|
||||
#~ msgid "Folder Name: "
|
||||
#~ msgstr "Ordner Name: "
|
||||
|
||||
#~ msgid "<span size='small'><i>Example: "
|
||||
#~ msgstr "<span size='small'><i>Beispiel: "
|
||||
|
||||
#~ msgid "‘Project’.</i></span>"
|
||||
#~ msgstr "‘Projekt’.</i></span>"
|
||||
|
||||
#~ msgid "Remote address: "
|
||||
#~ msgstr "Remote-Adresse: "
|
||||
|
||||
#~ msgid "Downloading files,\n"
|
||||
#~ msgstr "Herunterladen von Dateien,\n"
|
||||
|
||||
|
@ -348,9 +407,6 @@ msgstr "Wählen Sie eine Kopie dieser Version"
|
|||
#~ msgid "] Changes merged."
|
||||
#~ msgstr "] Änderungen zusammengeführt."
|
||||
|
||||
#~ msgid "Already up-to-date."
|
||||
#~ msgstr "Schon am aktuellsten Stand."
|
||||
|
||||
#~ msgid "] Nothing going on... "
|
||||
#~ msgstr "] Nichts passiert... "
|
||||
|
||||
|
@ -405,9 +461,6 @@ msgstr "Wählen Sie eine Kopie dieser Version"
|
|||
#~ msgid "’ to ‘"
|
||||
#~ msgstr "‘ zu ‘"
|
||||
|
||||
#~ msgid "Open Sharing Folder"
|
||||
#~ msgstr "Öffne gemeinsamen Ornder"
|
||||
|
||||
#~ msgid "Happenings in ‘"
|
||||
#~ msgstr "Ereignis in ‘"
|
||||
|
||||
|
|
295
po/fr_FR.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: SparkleShare\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-25 06:12+0000\n"
|
||||
"POT-Creation-Date: 2010-07-29 06:23+0000\n"
|
||||
"PO-Revision-Date: 2010-07-13 16:07+0800\n"
|
||||
"Last-Translator: Yann Hermans <chezyann@gmail.com>\n"
|
||||
"Language-Team: French (France)\n"
|
||||
|
@ -20,240 +20,279 @@ msgstr ""
|
|||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-Country: FRANCE\n"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:50
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:49
|
||||
msgid "Git wasn't found."
|
||||
msgstr "Git n’a pas été détecté."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:51
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:50
|
||||
msgid "You can get Git from http://git-scm.com/."
|
||||
msgstr "Vous pouvez récupérer Git sur http://git-scm.com/."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:58
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:57
|
||||
msgid "Sorry, you can't run SparkleShare with these permissions."
|
||||
msgstr "Désolé, vous ne disposez pas des autorisations nécessaires pour lancer SparkleShare."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:59
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:58
|
||||
msgid "Things would go utterly wrong."
|
||||
msgstr "Les choses pourraient très mal tourner."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:157
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161
|
||||
msgid "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Copyright (C) SparkleDiff 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:159 ../SparkleShare/SparkleShare.cs:90
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163 ../SparkleShare/SparkleShare.cs:89
|
||||
msgid "This program comes with ABSOLUTELY NO WARRANTY."
|
||||
msgstr "Ce logiciel est diffusé sans AUCUNE GARANTIE."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:160 ../SparkleShare/SparkleShare.cs:91
|
||||
#: ../SparkleDiff/SparkleDiff.cs:164 ../SparkleShare/SparkleShare.cs:90
|
||||
msgid "This is free software, and you are welcome to redistribute it "
|
||||
msgstr "Ce logiciel est libre, et vous êtes invité à le re‑distribuer "
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161 ../SparkleShare/SparkleShare.cs:92
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165 ../SparkleShare/SparkleShare.cs:91
|
||||
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."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163
|
||||
#: ../SparkleDiff/SparkleDiff.cs:167
|
||||
msgid "SparkleDiff let's you compare revisions of an image file side by side."
|
||||
msgstr "SparkleDiff vous permet de comparer les versions d’une image côte à côte."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169
|
||||
msgid "Usage: sparklediff [FILE]"
|
||||
msgstr "Utilisation : sparklediff [FICHIER]"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:166
|
||||
#: ../SparkleDiff/SparkleDiff.cs:170
|
||||
msgid "Open an image file to show its revisions"
|
||||
msgstr "Ouvrir une image pour en afficher les versions"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:168 ../SparkleShare/SparkleShare.cs:99
|
||||
#: ../SparkleDiff/SparkleDiff.cs:172 ../SparkleShare/SparkleShare.cs:98
|
||||
msgid "Arguments:"
|
||||
msgstr "Paramètres :"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169 ../SparkleShare/SparkleShare.cs:101
|
||||
#: ../SparkleDiff/SparkleDiff.cs:173 ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -h, --help\t\tDisplay this help text."
|
||||
msgstr "\t -h, --help\t\tAffiche ce texte d’aide."
|
||||
|
||||
#. TRANSLATORS: The parameter is a filename
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:53
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:92
|
||||
#, csharp-format
|
||||
msgid "Comparing Revisions of ‘{0}’"
|
||||
msgstr "Compare les versions de « {0} »"
|
||||
msgid "{0} at {1}"
|
||||
msgstr "{0} sur {1}"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:81
|
||||
msgid "Current Revision"
|
||||
msgstr "Version actuelle"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:93
|
||||
msgid "ddd MMM d, yyyy"
|
||||
msgstr "ddd d MMM yyyy"
|
||||
|
||||
#. TRANSLATORS: This is a format specifier according to
|
||||
#. System.Globalization.DateTimeFormatInfo
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:85
|
||||
msgid "d MMM\tH:mm"
|
||||
msgstr "d MMM\tH:mm"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:94
|
||||
msgid "H:mm"
|
||||
msgstr "H:mm"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:50
|
||||
#: ../SparkleShare/SparkleDialog.cs:51
|
||||
msgid "Address of remote SparkleShare folder:"
|
||||
msgstr "Adresse du dossier distant SparkleShare :"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:81
|
||||
#: ../SparkleShare/SparkleDialog.cs:82
|
||||
msgid "Add Folder"
|
||||
msgstr "Ajouter un dossier"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:126
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#, csharp-format
|
||||
msgid "Syncing folder ‘{0}’"
|
||||
msgstr "Synchronise le dossier « {0} »"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#: ../SparkleShare/SparkleDialog.cs:128
|
||||
msgid "SparkleShare will notify you when this is done."
|
||||
msgstr "SparkleShare vous signalera la fin de l’opération."
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:129
|
||||
#: ../SparkleShare/SparkleDialog.cs:130
|
||||
msgid "Dismiss"
|
||||
msgstr "Abandonner"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:157
|
||||
#: ../SparkleShare/SparkleDialog.cs:158
|
||||
#, csharp-format
|
||||
msgid "Something went wrong while syncing ‘{0}’"
|
||||
msgstr "Une erreur est survenue lors de la synchronisation de « {0} »"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:167
|
||||
#: ../SparkleShare/SparkleDialog.cs:168
|
||||
msgid "Try Again…"
|
||||
msgstr "Essayer de nouveau…"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:197
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#, csharp-format
|
||||
msgid "Successfully synced folder ‘{0}’"
|
||||
msgstr "Le dossier « {0} » a été synchronisé avec succès"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#: ../SparkleShare/SparkleDialog.cs:199
|
||||
msgid "Now make great stuff happen!"
|
||||
msgstr "Maintenant, la magie peut opérer !"
|
||||
|
||||
#. Add a button to open the folder where the changed file is
|
||||
#: ../SparkleShare/SparkleDialog.cs:200 ../SparkleShare/SparkleRepo.cs:319
|
||||
#: ../SparkleShare/SparkleWindow.cs:63
|
||||
#: ../SparkleShare/SparkleDialog.cs:201 ../SparkleShare/SparkleWindow.cs:62
|
||||
msgid "Open Folder"
|
||||
msgstr "Ouvrir le dossier"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:164
|
||||
#: ../SparkleShare/SparkleHelpers.cs:136
|
||||
#, csharp-format
|
||||
msgid "a second ago"
|
||||
msgid_plural "{0} seconds ago"
|
||||
msgstr[0] "il y a une seconde"
|
||||
msgstr[1] "il y a {0} secondes"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:170
|
||||
#: ../SparkleShare/SparkleHelpers.cs:142
|
||||
#, csharp-format
|
||||
msgid "a minute ago"
|
||||
msgid_plural "about {0} minutes ago"
|
||||
msgstr[0] "il y a une minute"
|
||||
msgstr[1] "il y a environ {0} minutes"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:176
|
||||
#: ../SparkleShare/SparkleHelpers.cs:148
|
||||
#, csharp-format
|
||||
msgid "about an hour ago"
|
||||
msgid_plural "about {0} hours ago"
|
||||
msgstr[0] "il y a environ une heure"
|
||||
msgstr[1] "il y a environ {0} heures"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:182
|
||||
#: ../SparkleShare/SparkleHelpers.cs:154
|
||||
#, csharp-format
|
||||
msgid "yesterday"
|
||||
msgid_plural "{0} days ago"
|
||||
msgstr[0] "hier"
|
||||
msgstr[1] "il y a {0} jours"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:188
|
||||
#: ../SparkleShare/SparkleHelpers.cs:160
|
||||
#, csharp-format
|
||||
msgid "a month ago"
|
||||
msgid_plural "{0} months ago"
|
||||
msgstr[0] "il y a un mois"
|
||||
msgstr[1] "il y a {0} mois"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:193
|
||||
#: ../SparkleShare/SparkleHelpers.cs:165
|
||||
#, csharp-format
|
||||
msgid "a year ago"
|
||||
msgid_plural "{0} years ago"
|
||||
msgstr[0] "il y a un an"
|
||||
msgstr[1] "il y a {0} ans"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:205
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Restons calme !"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:206
|
||||
msgid ""
|
||||
"SparkleShare is known to be insanely fast with \n"
|
||||
"pictures of unicorns. Please make sure your internets\n"
|
||||
"are upgraded to the latest version to avoid problems."
|
||||
msgstr ""
|
||||
"SparkleShare est réputé pour son hallucinante rapidité\n"
|
||||
"concernant les images de licornes. Merci de vérifier que\n"
|
||||
"votre navigateur est à jour pour éviter tout problème."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:88
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Copyright (C) SparkleShare 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:94
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare synchronize le dossier ~/SparkleShare avec les dépôts distants."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Utilisation : sparkleshare [start|stop|restart] [OPTION]…"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:97
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Synchroniser le dossier SparkleShare avec les dépôts distants."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tMasquer l’icône de notification."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:69
|
||||
msgid "Error syncing"
|
||||
msgstr "Erreur de synchronisation"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:72
|
||||
msgid "Everything is up to date"
|
||||
msgstr "Tout est à jour"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:75
|
||||
msgid "Syncing…"
|
||||
msgstr "Synchronisation en cours…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:116
|
||||
msgid "Add a Remote Folder…"
|
||||
msgstr "Ajouter un dossier distant…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:124
|
||||
msgid "Show Notifications"
|
||||
msgstr "Montrer les notifications"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:142
|
||||
msgid "Visit Website"
|
||||
msgstr "Visiter le site web"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:159
|
||||
msgid "Quit"
|
||||
msgstr "Quitter"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:145
|
||||
#: ../SparkleShare/SparkleIntro.cs:72
|
||||
msgid "Welcome to SparkleShare!"
|
||||
msgstr "Bienvenue sur SparkleShare !"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:146
|
||||
msgid "You don't have any folders set up yet."
|
||||
msgstr "Vous n’avez encore configuré aucun dossier."
|
||||
#: ../SparkleShare/SparkleIntro.cs:78
|
||||
msgid "Before we can create a SparkleShare folder on this computer, we need a few bits of information from you."
|
||||
msgstr "Afin de pouvoir créer un dossier SparkleShare sur cet ordinateur, nous avons besoin de quelques informations."
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:149
|
||||
msgid "Add a Folder…"
|
||||
msgstr "Ajouter un dossier…"
|
||||
#: ../SparkleShare/SparkleIntro.cs:90
|
||||
msgid "Full Name:"
|
||||
msgstr "Nom et prénom:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:106
|
||||
msgid "Email:"
|
||||
msgstr "Email:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:115
|
||||
msgid "Folder Address:"
|
||||
msgstr "Adresse du dossier:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:122
|
||||
msgid "I'm already subscribed to a folder on a SparkleServer"
|
||||
msgstr "Je suis déjà assigné à un dossier sur le serveur SparkleServer"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:157
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:168
|
||||
msgid "Configuring…"
|
||||
msgstr "Configuration en cours..."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:220
|
||||
msgid "SparkleShare is ready to go!"
|
||||
msgstr "SparkleShare est opérationnel!"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:226
|
||||
msgid "Now you can start accepting invitations from others. Just click on invitations you get by email and we will take care of the rest."
|
||||
msgstr ""
|
||||
"Vous pouvez désormais accepter des invitations.\r\n"
|
||||
"Pour cela, il vous suffira de cliquer sur les invitations que vous aurez reçues par mail et nous nous occuperons du reste."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:237
|
||||
msgid "Learn how to host your own SparkleServer"
|
||||
msgstr "Apprendre à héberger son propre serveur SparkleServer"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:250
|
||||
msgid "Finish"
|
||||
msgstr "Terminer"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:87
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Copyright (C) SparkleShare 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:93
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare synchronize le dossier ~/SparkleShare avec les dépôts distants."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:95
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Utilisation : sparkleshare [start|stop|restart] [OPTION]…"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Synchroniser le dossier SparkleShare avec les dépôts distants."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:99
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tMasquer l’icône de notification."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:130
|
||||
msgid "SparkleShare Folder"
|
||||
msgstr "Dossier SparkleShare "
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:163
|
||||
msgid "No Shared Folders Yet"
|
||||
msgstr "Encore aucun dossier de partagé"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:171
|
||||
msgid "Add Remote Folder…"
|
||||
msgstr "Ajouter un dossier distant..."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:184
|
||||
msgid "Show Notifications"
|
||||
msgstr "Montrer les notifications"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:205
|
||||
msgid "About"
|
||||
msgstr "A propos"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:222
|
||||
msgid "Quit"
|
||||
msgstr "Quitter"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:271
|
||||
msgid "All up to date"
|
||||
msgstr "Tous à jour"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:280
|
||||
msgid "Syncing…"
|
||||
msgstr "Synchronisation en cours…"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:247
|
||||
msgid "Ouch! Mid-air collision!"
|
||||
msgstr "Outch! Collision en plein ciel!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:248
|
||||
msgid "Don't worry, SparkleShare made a copy of each conflicting file."
|
||||
msgstr "Ne vous inquiétez pas, SparkleShare à effectué une copie de chacun des fichiers en conflit."
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:334
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Restons calme !"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:335
|
||||
msgid "SparkleShare is known to be insanely fast with pictures of unicorns. Please make sure your internets are upgraded to the latest version to avoid any problems."
|
||||
msgstr "SparkleShare est réputé pour son hallucinante rapidité concernant les images de licornes. Merci de vérifier que votre navigateur est à jour pour éviter tout problème."
|
||||
|
||||
#. TRANSLATORS: {0} is a folder name, and {1} is a server address
|
||||
#: ../SparkleShare/SparkleWindow.cs:51
|
||||
#: ../SparkleShare/SparkleWindow.cs:50
|
||||
#, csharp-format
|
||||
msgid "‘{0}’ on {1}"
|
||||
msgstr "« {0} » sur {1}"
|
||||
msgid "Recent Events in ‘{0}’"
|
||||
msgstr "Derniers événements dans « {0} »"
|
||||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:108
|
||||
msgid "Get Earlier Version"
|
||||
|
@ -266,3 +305,27 @@ msgstr "Créer une copie d'une version antérieure de ce dossier"
|
|||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:122
|
||||
msgid "Select to get a copy of this version"
|
||||
msgstr "Sélectionner pour obtenir une copie de cette version"
|
||||
|
||||
#~ msgid "Comparing Revisions of ‘{0}’"
|
||||
#~ msgstr "Compare les versions de « {0} »"
|
||||
|
||||
#~ msgid "Current Revision"
|
||||
#~ msgstr "Version actuelle"
|
||||
|
||||
#~ msgid "d MMM\tH:mm"
|
||||
#~ msgstr "d MMM\tH:mm"
|
||||
|
||||
#~ msgid "Error syncing"
|
||||
#~ msgstr "Erreur de synchronisation"
|
||||
|
||||
#~ msgid "Everything is up to date"
|
||||
#~ msgstr "Tout est à jour"
|
||||
|
||||
#~ msgid "Visit Website"
|
||||
#~ msgstr "Visiter le site web"
|
||||
|
||||
#~ msgid "You don't have any folders set up yet."
|
||||
#~ msgstr "Vous n’avez encore configuré aucun dossier."
|
||||
|
||||
#~ msgid "Add a Folder…"
|
||||
#~ msgstr "Ajouter un dossier…"
|
||||
|
|
300
po/pl.po
|
@ -10,133 +10,129 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-21 19:48+0000\n"
|
||||
"POT-Creation-Date: 2010-07-26 00:04+0000\n"
|
||||
"PO-Revision-Date: 2010-06-11 21:59+0200\n"
|
||||
"Last-Translator: Łukasz Jernaś <deejay1@srem.org>\n"
|
||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Country: Poland\n"
|
||||
"Language: pl\n"
|
||||
"X-Generator: Virtaal 0.5.2\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Poedit-Language: Polish\n"
|
||||
"X-Poedit-Country: Poland\n"
|
||||
"X-Generator: Virtaal 0.5.2\n"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:50
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:49
|
||||
msgid "Git wasn't found."
|
||||
msgstr "Nie znaleziono programu Git."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:51
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:50
|
||||
msgid "You can get Git from http://git-scm.com/."
|
||||
msgstr "Można go pobrać ze strony http://git-scm.com/."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:58
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:57
|
||||
msgid "Sorry, you can't run SparkleShare with these permissions."
|
||||
msgstr "Przepraszamy, nie można uruchomić programu SparkleShare z bieżącymi uprawnieniami."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:59
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:58
|
||||
msgid "Things would go utterly wrong."
|
||||
msgstr "Może to spowodować nieprzewidziane skutki."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:157
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161
|
||||
msgid "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:159 ../SparkleShare/SparkleShare.cs:90
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163 ../SparkleShare/SparkleShare.cs:89
|
||||
msgid "This program comes with ABSOLUTELY NO WARRANTY."
|
||||
msgstr "Niniejszy program dostarczany jest BEZ JAKIEJKOLWIEK GWARANCJI."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:160 ../SparkleShare/SparkleShare.cs:91
|
||||
#: ../SparkleDiff/SparkleDiff.cs:164 ../SparkleShare/SparkleShare.cs:90
|
||||
msgid "This is free software, and you are welcome to redistribute it "
|
||||
msgstr "Niniejszy program jest wolnym oprogramowanie, można go rozprowadzać dalej pod pewnymi warunkami."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161 ../SparkleShare/SparkleShare.cs:92
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165 ../SparkleShare/SparkleShare.cs:91
|
||||
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."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163
|
||||
#: ../SparkleDiff/SparkleDiff.cs:167
|
||||
msgid "SparkleDiff let's you compare revisions of an image file side by side."
|
||||
msgstr "Program SparkleDiff pozwala na porównywanie różnych rewizji pliku graficznego obok siebie."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169
|
||||
msgid "Usage: sparklediff [FILE]"
|
||||
msgstr "Sposób użycia: sparklediff [PLIK]"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:166
|
||||
#: ../SparkleDiff/SparkleDiff.cs:170
|
||||
msgid "Open an image file to show its revisions"
|
||||
msgstr "Otwiera plik graficzny z możliwością porównywania jego rewizji"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:168 ../SparkleShare/SparkleShare.cs:99
|
||||
#: ../SparkleDiff/SparkleDiff.cs:172 ../SparkleShare/SparkleShare.cs:98
|
||||
msgid "Arguments:"
|
||||
msgstr "Parametry:"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169 ../SparkleShare/SparkleShare.cs:101
|
||||
#: ../SparkleDiff/SparkleDiff.cs:173 ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -h, --help\t\tDisplay this help text."
|
||||
msgstr "\t -h, --help\t\tWyświetla opcje pomocy."
|
||||
|
||||
#. TRANSLATORS: The parameter is a filename
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:53
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:92
|
||||
#, csharp-format
|
||||
msgid "Comparing Revisions of ‘{0}’"
|
||||
msgstr "Porównywanie rewizji pliku „{0}”"
|
||||
msgid "{0} at {1}"
|
||||
msgstr "{0} na {1}"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:81
|
||||
msgid "Current Revision"
|
||||
msgstr "Bieżąca rewizja"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:93
|
||||
msgid "ddd MMM d, yyyy"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: This is a format specifier according to
|
||||
#. System.Globalization.DateTimeFormatInfo
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:85
|
||||
msgid "d MMM\tH:mm"
|
||||
msgstr "d MMM\tH:mm"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:94
|
||||
#, fuzzy
|
||||
msgid "H:mm"
|
||||
msgstr "H:mm"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:50
|
||||
#: ../SparkleShare/SparkleDialog.cs:51
|
||||
msgid "Address of remote SparkleShare folder:"
|
||||
msgstr "Adres zdalnego katalogu SparkleShare:"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:81
|
||||
#: ../SparkleShare/SparkleDialog.cs:82
|
||||
msgid "Add Folder"
|
||||
msgstr "Dodaj katalog"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:126
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#, csharp-format
|
||||
msgid "Syncing folder ‘{0}’"
|
||||
msgstr "Synchronizowanie katalogu „{0}”"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#: ../SparkleShare/SparkleDialog.cs:128
|
||||
msgid "SparkleShare will notify you when this is done."
|
||||
msgstr "Zostanie wyświetlone powiadomienie w momencie zakończenia."
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:129
|
||||
#: ../SparkleShare/SparkleDialog.cs:130
|
||||
msgid "Dismiss"
|
||||
msgstr "Porzuć"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:157
|
||||
#: ../SparkleShare/SparkleDialog.cs:158
|
||||
#, csharp-format
|
||||
msgid "Something went wrong while syncing ‘{0}’"
|
||||
msgstr "Wystąpił błąd w trakcie synchronizowania „{0}”"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:167
|
||||
#: ../SparkleShare/SparkleDialog.cs:168
|
||||
msgid "Try Again…"
|
||||
msgstr "Spróbuj ponownie…"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:197
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#, csharp-format
|
||||
msgid "Successfully synced folder ‘{0}’"
|
||||
msgstr "Poprawnie zsynchronizowano katalog „{0}”"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#: ../SparkleShare/SparkleDialog.cs:199
|
||||
msgid "Now make great stuff happen!"
|
||||
msgstr "Teraz możesz zacząć czynić wielkie rzeczy!"
|
||||
|
||||
#. Add a button to open the folder where the changed file is
|
||||
#: ../SparkleShare/SparkleDialog.cs:200 ../SparkleShare/SparkleRepo.cs:319
|
||||
#: ../SparkleShare/SparkleWindow.cs:63
|
||||
#: ../SparkleShare/SparkleDialog.cs:201 ../SparkleShare/SparkleWindow.cs:62
|
||||
msgid "Open Folder"
|
||||
msgstr "Otwórz katalog"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:164
|
||||
#: ../SparkleShare/SparkleHelpers.cs:136
|
||||
#, csharp-format
|
||||
msgid "a second ago"
|
||||
msgid_plural "{0} seconds ago"
|
||||
|
@ -144,7 +140,7 @@ msgstr[0] "sekundę temu"
|
|||
msgstr[1] "{0} sekundy temu"
|
||||
msgstr[2] "{0} sekund temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:170
|
||||
#: ../SparkleShare/SparkleHelpers.cs:142
|
||||
#, csharp-format
|
||||
msgid "a minute ago"
|
||||
msgid_plural "about {0} minutes ago"
|
||||
|
@ -152,7 +148,7 @@ msgstr[0] "minutę temu"
|
|||
msgstr[1] "około {0} minuty temu"
|
||||
msgstr[2] "około {0} minut temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:176
|
||||
#: ../SparkleShare/SparkleHelpers.cs:148
|
||||
#, csharp-format
|
||||
msgid "about an hour ago"
|
||||
msgid_plural "about {0} hours ago"
|
||||
|
@ -160,7 +156,7 @@ msgstr[0] "około godzinę temu"
|
|||
msgstr[1] "około {0} godziny temu"
|
||||
msgstr[2] "około {0} godzin temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:182
|
||||
#: ../SparkleShare/SparkleHelpers.cs:154
|
||||
#, csharp-format
|
||||
msgid "yesterday"
|
||||
msgid_plural "{0} days ago"
|
||||
|
@ -168,7 +164,7 @@ msgstr[0] "wczoraj"
|
|||
msgstr[1] "{0} dni temu"
|
||||
msgstr[2] "{0} dni temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:188
|
||||
#: ../SparkleShare/SparkleHelpers.cs:160
|
||||
#, csharp-format
|
||||
msgid "a month ago"
|
||||
msgid_plural "{0} months ago"
|
||||
|
@ -176,7 +172,7 @@ msgstr[0] "miesiąc temu"
|
|||
msgstr[1] "{0} miesiące temu"
|
||||
msgstr[2] "{0} miesięcy temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:193
|
||||
#: ../SparkleShare/SparkleHelpers.cs:165
|
||||
#, csharp-format
|
||||
msgid "a year ago"
|
||||
msgid_plural "{0} years ago"
|
||||
|
@ -184,85 +180,129 @@ msgstr[0] "rok temu"
|
|||
msgstr[1] "{0} lata temu"
|
||||
msgstr[2] "{0} lat temu"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:205
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Wstrzymaj konie!"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:206
|
||||
msgid ""
|
||||
"SparkleShare is known to be insanely fast with \n"
|
||||
"pictures of unicorns. Please make sure your internets\n"
|
||||
"are upgraded to the latest version to avoid problems."
|
||||
msgstr ""
|
||||
"Program SparkleShare jest znany z niesamowitej szybkości \n"
|
||||
" przy wysyłaniu obrazków z jednorożcami.\n"
|
||||
"Dopilnuj, by Twój internet był w najnowszej wersji, aby uniknąć problemów."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:88
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:94
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "Program SparkleShare synchronizuje zawartość katalogu ~/SparkleShare ze zdalnymi repozytoriami."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Użycie: sparkleshare [start|stop|restart] [OPCJA]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:97
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Synchronizuj zawartość katalogu SparkleShare ze zdalnymi repozytoriami."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tWyłącza wyświetlanie ikony w obszarze powiadamiania."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:69
|
||||
msgid "Error syncing"
|
||||
msgstr "Błąd w trakcie synchronizacji"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:72
|
||||
msgid "Everything is up to date"
|
||||
msgstr "Wszystko jest aktualne"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:75
|
||||
msgid "Syncing…"
|
||||
msgstr "Synchronizowanie…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:116
|
||||
msgid "Add a Remote Folder…"
|
||||
msgstr "Dodaj zdalny katalog…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:124
|
||||
msgid "Show Notifications"
|
||||
msgstr "Wyświetlanie powiadomień"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:142
|
||||
msgid "Visit Website"
|
||||
msgstr "Odwiedź stronę domową"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:159
|
||||
msgid "Quit"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:145
|
||||
#: ../SparkleShare/SparkleIntro.cs:72
|
||||
msgid "Welcome to SparkleShare!"
|
||||
msgstr "Witamy w programie SparkleShare!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:146
|
||||
msgid "You don't have any folders set up yet."
|
||||
msgstr "Nie ustawiono żadnych katalogów."
|
||||
#: ../SparkleShare/SparkleIntro.cs:78
|
||||
msgid "Before we can create a SparkleShare folder on this computer, we need a few bits of information from you."
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:149
|
||||
msgid "Add a Folder…"
|
||||
msgstr "Dodaj katalog…"
|
||||
#: ../SparkleShare/SparkleIntro.cs:90
|
||||
msgid "Full Name:"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:106
|
||||
#, fuzzy
|
||||
msgid "Email:"
|
||||
msgstr "Email:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:115
|
||||
msgid "Folder Address:"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:122
|
||||
msgid "I'm already subscribed to a folder on a SparkleServer"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:157
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:168
|
||||
msgid "Configuring…"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:220
|
||||
msgid "SparkleShare is ready to go!"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:226
|
||||
msgid "Now you can start accepting invitations from others. Just click on invitations you get by email and we will take care of the rest."
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:237
|
||||
msgid "Learn how to host your own SparkleServer"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:250
|
||||
msgid "Finish"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:87
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:93
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "Program SparkleShare synchronizuje zawartość katalogu ~/SparkleShare ze zdalnymi repozytoriami."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:95
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Użycie: sparkleshare [start|stop|restart] [OPCJA]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Synchronizuj zawartość katalogu SparkleShare ze zdalnymi repozytoriami."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:99
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tWyłącza wyświetlanie ikony w obszarze powiadamiania."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:130
|
||||
#, fuzzy
|
||||
msgid "SparkleShare Folder"
|
||||
msgstr "Adres zdalnego katalogu SparkleShare:"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:163
|
||||
msgid "No Shared Folders Yet"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:171
|
||||
msgid "Add Remote Folder…"
|
||||
msgstr "Dodaj zdalny katalog…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:184
|
||||
msgid "Show Notifications"
|
||||
msgstr "Wyświetlanie powiadomień"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:205
|
||||
msgid "About"
|
||||
msgstr "O programie"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:222
|
||||
msgid "Quit"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:271
|
||||
msgid "All up to date"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:280
|
||||
msgid "Syncing…"
|
||||
msgstr "Synchronizowanie…"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:247
|
||||
msgid "Ouch! Mid-air collision!"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:248
|
||||
msgid "Don't worry, SparkleShare made a copy of each conflicting file."
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:334
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Wstrzymaj konie!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:335
|
||||
msgid "SparkleShare is known to be insanely fast with pictures of unicorns. Please make sure your internets are upgraded to the latest version to avoid any problems."
|
||||
msgstr "Program SparkleShare jest znany z niesamowitej szybkości przy wysyłaniu obrazków z jednorożcami. Dopilnuj, by Twój internet był w najnowszej wersji, aby uniknąć problemów."
|
||||
|
||||
#. TRANSLATORS: {0} is a folder name, and {1} is a server address
|
||||
#: ../SparkleShare/SparkleWindow.cs:51
|
||||
#: ../SparkleShare/SparkleWindow.cs:50
|
||||
#, csharp-format
|
||||
msgid "‘{0}’ on {1}"
|
||||
msgstr "„{0}” na {1}"
|
||||
msgid "Recent Events in ‘{0}’"
|
||||
msgstr ""
|
||||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:108
|
||||
msgid "Get Earlier Version"
|
||||
|
@ -276,5 +316,29 @@ 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"
|
||||
|
||||
#~ msgid "Comparing Revisions of ‘{0}’"
|
||||
#~ msgstr "Porównywanie rewizji pliku „{0}”"
|
||||
|
||||
#~ msgid "Current Revision"
|
||||
#~ msgstr "Bieżąca rewizja"
|
||||
|
||||
#~ msgid "d MMM\tH:mm"
|
||||
#~ msgstr "d MMM\tH:mm"
|
||||
|
||||
#~ msgid "Error syncing"
|
||||
#~ msgstr "Błąd w trakcie synchronizacji"
|
||||
|
||||
#~ msgid "Everything is up to date"
|
||||
#~ msgstr "Wszystko jest aktualne"
|
||||
|
||||
#~ msgid "Visit Website"
|
||||
#~ msgstr "Odwiedź stronę domową"
|
||||
|
||||
#~ msgid "You don't have any folders set up yet."
|
||||
#~ msgstr "Nie ustawiono żadnych katalogów."
|
||||
|
||||
#~ msgid "Add a Folder…"
|
||||
#~ msgstr "Dodaj katalog…"
|
||||
|
||||
#~ msgid "That’s you!"
|
||||
#~ msgstr "To ty!"
|
||||
|
|
291
po/pt_BR.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: SparkleShare\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-07-22 06:17+0000\n"
|
||||
"POT-Creation-Date: 2010-07-28 08:26+0000\n"
|
||||
"PO-Revision-Date: 2010-07-05 13:01-0300\n"
|
||||
"Last-Translator: Magnun Leno <magnun.leno@gmail.com>\n"
|
||||
"Language-Team: Brazilian Portuguese\n"
|
||||
|
@ -20,241 +20,277 @@ msgstr ""
|
|||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Poedit-Country: BRAZIL\n"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:50
|
||||
#: ../SparkleDiff/SparkleDiff.cs:77 ../SparkleShare/SparkleShare.cs:49
|
||||
msgid "Git wasn't found."
|
||||
msgstr "Git não foi encontrado."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:51
|
||||
#: ../SparkleDiff/SparkleDiff.cs:78 ../SparkleShare/SparkleShare.cs:50
|
||||
msgid "You can get Git from http://git-scm.com/."
|
||||
msgstr "Você pode obter o Git no site http://git-scm.com/."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:58
|
||||
#: ../SparkleDiff/SparkleDiff.cs:86 ../SparkleShare/SparkleShare.cs:57
|
||||
msgid "Sorry, you can't run SparkleShare with these permissions."
|
||||
msgstr "Descuple, você não pode rodar o SparkleShare sem essas permissões."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:59
|
||||
#: ../SparkleDiff/SparkleDiff.cs:87 ../SparkleShare/SparkleShare.cs:58
|
||||
msgid "Things would go utterly wrong."
|
||||
msgstr "As coisas vão dar completamente errado."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:157
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161
|
||||
msgid "SparkleDiff Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Direitos Autorais SparkleShare (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:159 ../SparkleShare/SparkleShare.cs:90
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163 ../SparkleShare/SparkleShare.cs:89
|
||||
msgid "This program comes with ABSOLUTELY NO WARRANTY."
|
||||
msgstr "Este programa vem com ABSOLUTAMENTE NENHUMA GARANTIA."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:160 ../SparkleShare/SparkleShare.cs:91
|
||||
#: ../SparkleDiff/SparkleDiff.cs:164 ../SparkleShare/SparkleShare.cs:90
|
||||
msgid "This is free software, and you are welcome to redistribute it "
|
||||
msgstr "Este é um software livre, e você é incentivado a distribuí-lo "
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:161 ../SparkleShare/SparkleShare.cs:92
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165 ../SparkleShare/SparkleShare.cs:91
|
||||
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."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:163
|
||||
#: ../SparkleDiff/SparkleDiff.cs:167
|
||||
msgid "SparkleDiff let's you compare revisions of an image file side by side."
|
||||
msgstr "O SparkleDiff permite que você compare lado a lado revisões de uma imagem."
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:165
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169
|
||||
msgid "Usage: sparklediff [FILE]"
|
||||
msgstr "Utilização: sparklediff [ARQUIVO]"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:166
|
||||
#: ../SparkleDiff/SparkleDiff.cs:170
|
||||
msgid "Open an image file to show its revisions"
|
||||
msgstr "Abre um arquivo de imagem e mostra suas revisões"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:168 ../SparkleShare/SparkleShare.cs:99
|
||||
#: ../SparkleDiff/SparkleDiff.cs:172 ../SparkleShare/SparkleShare.cs:98
|
||||
msgid "Arguments:"
|
||||
msgstr "Argumentos:"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiff.cs:169 ../SparkleShare/SparkleShare.cs:101
|
||||
#: ../SparkleDiff/SparkleDiff.cs:173 ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -h, --help\t\tDisplay this help text."
|
||||
msgstr "\t -h, --help\t\tMostra esse texto de ajuda."
|
||||
|
||||
#. TRANSLATORS: The parameter is a filename
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:53
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:92
|
||||
#, csharp-format
|
||||
msgid "Comparing Revisions of ‘{0}’"
|
||||
msgstr "Comparando revisões de '{0}'"
|
||||
msgid "{0} at {1}"
|
||||
msgstr "{0} em {1}"
|
||||
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:81
|
||||
msgid "Current Revision"
|
||||
msgstr "Revisão Atual"
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:93
|
||||
msgid "ddd MMM d, yyyy"
|
||||
msgstr "ddd MMM d, yyyy"
|
||||
|
||||
#. TRANSLATORS: This is a format specifier according to
|
||||
#. System.Globalization.DateTimeFormatInfo
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:85
|
||||
msgid "d MMM\tH:mm"
|
||||
msgstr ""
|
||||
#: ../SparkleDiff/SparkleDiffWindow.cs:94
|
||||
msgid "H:mm"
|
||||
msgstr "H:mm"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:50
|
||||
#: ../SparkleShare/SparkleDialog.cs:51
|
||||
msgid "Address of remote SparkleShare folder:"
|
||||
msgstr "Endereço da pasta remota SparkleShare:"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:81
|
||||
#: ../SparkleShare/SparkleDialog.cs:82
|
||||
msgid "Add Folder"
|
||||
msgstr "Adicionar Pasta"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:126
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#, csharp-format
|
||||
msgid "Syncing folder ‘{0}’"
|
||||
msgstr "Sincronizando pasta ‘{0}’"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:127
|
||||
#: ../SparkleShare/SparkleDialog.cs:128
|
||||
msgid "SparkleShare will notify you when this is done."
|
||||
msgstr "SparkleShare irá notifica-lo quando houver concluído."
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:129
|
||||
#: ../SparkleShare/SparkleDialog.cs:130
|
||||
msgid "Dismiss"
|
||||
msgstr "Fechar"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:157
|
||||
#: ../SparkleShare/SparkleDialog.cs:158
|
||||
#, csharp-format
|
||||
msgid "Something went wrong while syncing ‘{0}’"
|
||||
msgstr "Alguma coisa deu errado enquanto sincronizava ‘{0}’"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:167
|
||||
#: ../SparkleShare/SparkleDialog.cs:168
|
||||
msgid "Try Again…"
|
||||
msgstr "Tentar novamente…"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:197
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#, csharp-format
|
||||
msgid "Successfully synced folder ‘{0}’"
|
||||
msgstr "Pasta ‘{0}’ sincronizada com sucesso"
|
||||
|
||||
#: ../SparkleShare/SparkleDialog.cs:198
|
||||
#: ../SparkleShare/SparkleDialog.cs:199
|
||||
msgid "Now make great stuff happen!"
|
||||
msgstr "Agora faça grandes coisas acontecerem!"
|
||||
|
||||
#. Add a button to open the folder where the changed file is
|
||||
#: ../SparkleShare/SparkleDialog.cs:200 ../SparkleShare/SparkleRepo.cs:319
|
||||
#: ../SparkleShare/SparkleWindow.cs:63
|
||||
#: ../SparkleShare/SparkleDialog.cs:201 ../SparkleShare/SparkleWindow.cs:62
|
||||
msgid "Open Folder"
|
||||
msgstr "Abrir Pasta"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:164
|
||||
#: ../SparkleShare/SparkleHelpers.cs:136
|
||||
#, csharp-format
|
||||
msgid "a second ago"
|
||||
msgid_plural "{0} seconds ago"
|
||||
msgstr[0] "há um segundo"
|
||||
msgstr[1] "há {0} segundos"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:170
|
||||
#: ../SparkleShare/SparkleHelpers.cs:142
|
||||
#, csharp-format
|
||||
msgid "a minute ago"
|
||||
msgid_plural "about {0} minutes ago"
|
||||
msgstr[0] "há um minuto"
|
||||
msgstr[1] "há quase {0} minutos"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:176
|
||||
#: ../SparkleShare/SparkleHelpers.cs:148
|
||||
#, csharp-format
|
||||
msgid "about an hour ago"
|
||||
msgid_plural "about {0} hours ago"
|
||||
msgstr[0] "há quase uma hora"
|
||||
msgstr[1] "há quase {0} horas"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:182
|
||||
#: ../SparkleShare/SparkleHelpers.cs:154
|
||||
#, csharp-format
|
||||
msgid "yesterday"
|
||||
msgid_plural "{0} days ago"
|
||||
msgstr[0] "ontem"
|
||||
msgstr[1] "há {0} dias"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:188
|
||||
#: ../SparkleShare/SparkleHelpers.cs:160
|
||||
#, csharp-format
|
||||
msgid "a month ago"
|
||||
msgid_plural "{0} months ago"
|
||||
msgstr[0] "há um mês"
|
||||
msgstr[1] "há {0} meses"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:193
|
||||
#: ../SparkleShare/SparkleHelpers.cs:165
|
||||
#, csharp-format
|
||||
msgid "a year ago"
|
||||
msgid_plural "{0} years ago"
|
||||
msgstr[0] "há um ano"
|
||||
msgstr[1] "há {0} anos"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:205
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Segure seus pôneis!"
|
||||
|
||||
#: ../SparkleShare/SparkleHelpers.cs:206
|
||||
msgid ""
|
||||
"SparkleShare is known to be insanely fast with \n"
|
||||
"pictures of unicorns. Please make sure your internets\n"
|
||||
"are upgraded to the latest version to avoid problems."
|
||||
msgstr ""
|
||||
"SparkleShare é conhecido por ser insanamente rápido com\n"
|
||||
"imagens de unicórnios. Para evitar problemas, por favor\n"
|
||||
"verifique se sua internet foi atualizada para a versão\n"
|
||||
"mais recente."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:88
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Diretos Autorais do SparkleShare (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:94
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare sincroniza a pasta ~/SparkleShare com repositórios remotos."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Utilização: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:97
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Sincroniza a pasta SparkleShare com repositórios remotos."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:100
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tNão mostra o ícone de notificação."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:69
|
||||
msgid "Error syncing"
|
||||
msgstr "Erro ao sincronizar"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:72
|
||||
msgid "Everything is up to date"
|
||||
msgstr "Tudo está atualizado"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:75
|
||||
msgid "Syncing…"
|
||||
msgstr "Sincronizando…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:116
|
||||
msgid "Add a Remote Folder…"
|
||||
msgstr "Adicionar uma Pasta Remota…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:124
|
||||
msgid "Show Notifications"
|
||||
msgstr "Mostrar Notificações"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:142
|
||||
msgid "Visit Website"
|
||||
msgstr "Visitar o Website"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:159
|
||||
msgid "Quit"
|
||||
msgstr "Sair"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:145
|
||||
#: ../SparkleShare/SparkleIntro.cs:72
|
||||
msgid "Welcome to SparkleShare!"
|
||||
msgstr "Bem vindo ao SparkleShare"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:146
|
||||
msgid "You don't have any folders set up yet."
|
||||
msgstr "Você ainda não possui nenhuma pasta configurada."
|
||||
#: ../SparkleShare/SparkleIntro.cs:78
|
||||
msgid "Before we can create a SparkleShare folder on this computer, we need a few bits of information from you."
|
||||
msgstr "Antes de criarmos uma pasta SparkleShare neste computador, precisamos de algumas informação sobre você;"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:149
|
||||
msgid "Add a Folder…"
|
||||
msgstr "Adicionar uma Pasta…"
|
||||
#: ../SparkleShare/SparkleIntro.cs:90
|
||||
msgid "Full Name:"
|
||||
msgstr "Nome Completo:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:106
|
||||
msgid "Email:"
|
||||
msgstr "Email:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:115
|
||||
msgid "Folder Address:"
|
||||
msgstr "Endereço da Pasta:"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:122
|
||||
msgid "I'm already subscribed to a folder on a SparkleServer"
|
||||
msgstr "Eu já tenho uma pasta cadastrada no SparkleShare"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:157
|
||||
msgid "Next"
|
||||
msgstr "Próximo"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:168
|
||||
msgid "Configuring…"
|
||||
msgstr "Configurando..."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:220
|
||||
msgid "SparkleShare is ready to go!"
|
||||
msgstr "SparkleShare está pronto!"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:226
|
||||
msgid "Now you can start accepting invitations from others. Just click on invitations you get by email and we will take care of the rest."
|
||||
msgstr "Agora você pode aceitar convites. Simplesmente clique nos convites que você recebeu por e-mail e nós tomaremos conta do resto."
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:237
|
||||
msgid "Learn how to host your own SparkleServer"
|
||||
msgstr "Aprenda como hospedar o seu próprio SparkleServer"
|
||||
|
||||
#: ../SparkleShare/SparkleIntro.cs:250
|
||||
msgid "Finish"
|
||||
msgstr "Finalizar"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:87
|
||||
msgid "SparkleShare Copyright (C) 2010 Hylke Bons"
|
||||
msgstr "Diretos Autorais do SparkleShare (C) 2010 Hylke Bons"
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:93
|
||||
msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories."
|
||||
msgstr "SparkleShare sincroniza a pasta ~/SparkleShare com repositórios remotos."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:95
|
||||
msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
msgstr "Utilização: sparkleshare [start|stop|restart] [OPTION]..."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:96
|
||||
msgid "Sync SparkleShare folder with remote repositories."
|
||||
msgstr "Sincroniza a pasta SparkleShare com repositórios remotos."
|
||||
|
||||
#: ../SparkleShare/SparkleShare.cs:99
|
||||
msgid "\t -d, --disable-gui\tDon't show the notification icon."
|
||||
msgstr "\t -d, --disable-gui\tNão mostra o ícone de notificação."
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:130
|
||||
msgid "SparkleShare Folder"
|
||||
msgstr "Pasta SparkleShare:"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:163
|
||||
msgid "No Shared Folders Yet"
|
||||
msgstr "Nenhuma Pasta Compartilhada Ainda"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:171
|
||||
msgid "Add Remote Folder…"
|
||||
msgstr "Adicionar Pasta Remota…"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:184
|
||||
msgid "Show Notifications"
|
||||
msgstr "Mostrar Notificações"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:205
|
||||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:222
|
||||
msgid "Quit"
|
||||
msgstr "Sair"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:271
|
||||
msgid "All up to date"
|
||||
msgstr "Tudo está atualizado"
|
||||
|
||||
#: ../SparkleShare/SparkleStatusIcon.cs:280
|
||||
msgid "Syncing…"
|
||||
msgstr "Sincronizando…"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:247
|
||||
msgid "Ouch! Mid-air collision!"
|
||||
msgstr "Ops! Colisão em pleno ar!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:248
|
||||
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/SparkleUI.cs:334
|
||||
msgid "Hold your ponies!"
|
||||
msgstr "Segure seus pôneis!"
|
||||
|
||||
#: ../SparkleShare/SparkleUI.cs:335
|
||||
msgid "SparkleShare is known to be insanely fast with pictures of unicorns. Please make sure your internets are upgraded to the latest version to avoid any problems."
|
||||
msgstr "SparkleShare é conhecido por ser insanamente rápido com imagens de unicórnios. Para evitar problemas, por favor verifique se sua internet foi atualizada para a versão mais recente."
|
||||
|
||||
#. TRANSLATORS: {0} is a folder name, and {1} is a server address
|
||||
#: ../SparkleShare/SparkleWindow.cs:51
|
||||
#: ../SparkleShare/SparkleWindow.cs:50
|
||||
#, csharp-format
|
||||
msgid "‘{0}’ on {1}"
|
||||
msgstr "‘{0}’ de {1}"
|
||||
msgid "Recent Events in ‘{0}’"
|
||||
msgstr "Eventos Recentes em '{0}'"
|
||||
|
||||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:108
|
||||
msgid "Get Earlier Version"
|
||||
|
@ -267,3 +303,24 @@ msgstr "Fazer uma cópia de uma anterior nesta pasta"
|
|||
#: ../SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in:122
|
||||
msgid "Select to get a copy of this version"
|
||||
msgstr "Selecione para obter uma cópia dessa versão"
|
||||
|
||||
#~ msgid "Comparing Revisions of ‘{0}’"
|
||||
#~ msgstr "Comparando revisões de '{0}'"
|
||||
|
||||
#~ msgid "Current Revision"
|
||||
#~ msgstr "Revisão Atual"
|
||||
|
||||
#~ msgid "Error syncing"
|
||||
#~ msgstr "Erro ao sincronizar"
|
||||
|
||||
#~ msgid "Everything is up to date"
|
||||
#~ msgstr "Tudo está atualizado"
|
||||
|
||||
#~ msgid "Visit Website"
|
||||
#~ msgstr "Visitar o Website"
|
||||
|
||||
#~ msgid "You don't have any folders set up yet."
|
||||
#~ msgstr "Você ainda não possui nenhuma pasta configurada."
|
||||
|
||||
#~ msgid "Add a Folder…"
|
||||
#~ msgstr "Adicionar uma Pasta…"
|
||||
|
|