diff --git a/AUTHORS b/AUTHORS index 57bc114c..260ae7ee 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,15 +1,25 @@ -Maintainer: +Points of contact: + Maintainer: Hylke Bons + Marketing: + Alexandre Saiz Verdaguer + + Translations: + Łukasz Jernaś + + Contributors: + Alexandre Saiz Verdaguer Alex Hudson Allan Day Andreas Nilsson Benjamin Podszun Bertrand Lorentz Garrett LeSage + Hylke Bons Jakub Steiner Kristi Tsukida Lapo Calamandrei @@ -26,4 +36,4 @@ Contributors: Steven Harms Vincent Untz -Thanks very much! +Thanks very much! \ No newline at end of file diff --git a/NEWS b/NEWS index 3d345607..d194e1b9 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,12 @@ -0.2-beta2 for Mac (Sat Feb, 2011): +0.2-rc1 for Linux and Mac (Sun Mar 20, 2011) + + Hylke: A lot of fixes and optimisations across the backend. Less memory + usage, less crashes. Instant notifications of new changes instead of polling. + Refreshed event log HTML theme. Keeping logs in memory for faster reopening and + loads more goodness. + + +0.2-beta2 for Mac (Sat Feb 12, 2011): Hylke: Mac version! Massive restructure of the code to an MVC-like model to make building different front-ends easier. Ported the event logs to diff --git a/SparkleLib/SparkleListener.cs b/SparkleLib/SparkleListener.cs index dab3731d..78c70761 100644 --- a/SparkleLib/SparkleListener.cs +++ b/SparkleLib/SparkleListener.cs @@ -25,6 +25,15 @@ using Meebey.SmartIrc4net; namespace SparkleLib { + public enum NotificationServerType + { + + Own, + Central + + } + + // A persistent connection to the server that // listens for change notifications public class SparkleListener { @@ -39,14 +48,23 @@ namespace SparkleLib { public readonly string Nick; - public SparkleListener (string server, string folder_name, string user_email) + public SparkleListener (string server, string folder_name, + string user_email, NotificationServerType type) { - // This is SparkleShare's centralized notification service. - // Don't worry, we only use this server as a backup if you - // don't have your own. All data needed to connect is hashed and - // we don't store any personal information ever. - Server = "204.62.14.135"; + if (type == NotificationServerType.Own) { + + Server = server; + + } else { + + // This is SparkleShare's centralized notification service. + // Don't worry, we only use this server as a backup if you + // don't have your own. All data needed to connect is hashed and + // we don't store any personal information ever. + Server = "204.62.14.135"; + + } if (!user_email.Equals ("") && user_email != null) Nick = GetSHA1 (folder_name + user_email + "sparkles"); diff --git a/SparkleLib/SparkleRepo.cs b/SparkleLib/SparkleRepo.cs index 7055c7a1..e80f17c3 100644 --- a/SparkleLib/SparkleRepo.cs +++ b/SparkleLib/SparkleRepo.cs @@ -307,7 +307,11 @@ namespace SparkleLib { // Listen to the irc channel on the server... - Listener = new SparkleListener (Domain, RemoteName, UserEmail); + if (UsesNotificationCenter) + Listener = new SparkleListener (Domain, RemoteName, UserEmail, NotificationServerType.Central); + else + Listener = new SparkleListener (Domain, RemoteName, UserEmail, NotificationServerType.Own); + // ...fetch remote changes every 60 seconds if that fails RemoteTimer = new Timer () { @@ -1149,13 +1153,27 @@ namespace SparkleLib { } - public static bool IsRepo (string path) { + public static bool IsRepo (string path) + { return System.IO.Directory.Exists (Path.Combine (path, ".git")); } + public bool UsesNotificationCenter + { + + get { + + string file_path = SparkleHelpers.CombineMore (LocalPath, ".git", "disable_notification_center"); + return !File.Exists (file_path); + + } + + } + + // Disposes all resourses of this object new public void Dispose () { diff --git a/SparkleShare/SparkleLog.cs b/SparkleShare/SparkleLog.cs index 683ec123..104045cd 100644 --- a/SparkleShare/SparkleLog.cs +++ b/SparkleShare/SparkleLog.cs @@ -32,13 +32,13 @@ namespace SparkleShare { public readonly string LocalPath; - private VBox LayoutVertical; private ScrolledWindow ScrolledWindow; private MenuBar MenuBar; private WebView WebView; private string LinkStatus; private SparkleSpinner Spinner; private string HTML; + private EventBox LogContent; // Short alias for the translations @@ -77,13 +77,15 @@ namespace SparkleShare { DeleteEvent += Close; CreateEventLog (); + UpdateEventLog (); } private void CreateEventLog () { - LayoutVertical = new VBox (false, 0); + LogContent = new EventBox (); + VBox layout_vertical = new VBox (false, 0); ScrolledWindow = new ScrolledWindow (); @@ -113,10 +115,10 @@ namespace SparkleShare { }; ScrolledWindow.AddWithViewport (WebView); + LogContent.Add (ScrolledWindow); - LayoutVertical.PackStart (ScrolledWindow, true, true, 0); + layout_vertical.PackStart (LogContent, true, true, 0); - UpdateEventLog (); HButtonBox dialog_buttons = new HButtonBox { Layout = ButtonBoxStyle.Edge, @@ -146,10 +148,14 @@ namespace SparkleShare { dialog_buttons.Add (close_button); // We have to hide the menubar somewhere... - LayoutVertical.PackStart (CreateShortcutsBar (), false, false, 0); - LayoutVertical.PackStart (dialog_buttons, false, false, 0); + layout_vertical.PackStart (CreateShortcutsBar (), false, false, 0); + layout_vertical.PackStart (dialog_buttons, false, false, 0); + + Add (layout_vertical); + + ShowAll (); + - Add (LayoutVertical); } @@ -159,9 +165,10 @@ namespace SparkleShare { if (HTML == null) { // TODO: there may be a race condition here - LayoutVertical.Remove (ScrolledWindow); + LogContent.Remove (LogContent.Child); Spinner = new SparkleSpinner (22); - LayoutVertical.PackStart (Spinner, true, true, 0); + LogContent.Add (Spinner); + LogContent.ShowAll (); } @@ -204,31 +211,24 @@ namespace SparkleShare { Application.Invoke (delegate { Spinner.Stop (); - - if (Spinner.Parent == LayoutVertical) { - - LayoutVertical.Remove (Spinner); - - } else { - - LayoutVertical.Remove (ScrolledWindow); - - } + LogContent.Remove (LogContent.Child); ScrolledWindow = new ScrolledWindow () { HscrollbarPolicy = PolicyType.Never }; - Viewport viewport = new Viewport (); + Viewport viewport = new Viewport () { + ShadowType = ShadowType.None + }; + WebView.Reparent (viewport); ScrolledWindow.Add (viewport); - (ScrolledWindow.Child as Viewport).ShadowType = ShadowType.None; - LayoutVertical.PackStart (ScrolledWindow, true, true, 0); - LayoutVertical.ReorderChild (ScrolledWindow, 0); WebView.LoadString (HTML, null, null, "file://"); - ShowAll (); + LogContent.Add (ScrolledWindow); + LogContent.ShowAll (); + }); diff --git a/SparkleShare/SparkleWindow.cs b/SparkleShare/SparkleWindow.cs index 38c60412..a4e93b06 100644 --- a/SparkleShare/SparkleWindow.cs +++ b/SparkleShare/SparkleWindow.cs @@ -37,6 +37,7 @@ namespace SparkleShare { public SparkleWindow () : base ("") { + Title = "SparkleShare Setup"; BorderWidth = 0; IconName = "folder-sparkleshare"; Resizable = false; diff --git a/po/bg.po b/po/bg.po index 264b4fe5..8c2a227c 100644 --- a/po/bg.po +++ b/po/bg.po @@ -1,43 +1,43 @@ -# This file is distributed under the same license as the Sparkleshare package. -# -# WARNING: Due to the nature of Transifex all translation file headers were lost -# we apologise for any incovenience this may have caused and we hope to bring them -# back in the future. -# +# Bulgarian translation of SparkleShare po-file. +# Copyright (C) 2010, 2011 Alexander Shopov . +# Alexander Shopov , 2002, 2006, 2007, 2008, 2009, 2010, 2011. +# This file is distributed under the same license as the SparkleShare package. +# msgid "" msgstr "" -"Project-Id-Version: SparkleShare\n" +"Project-Id-Version: SparkleShare master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-13 17:07+0100\n" -"PO-Revision-Date: 2011-03-10 17:31+0000\n" -"Last-Translator: deejay1 \n" +"POT-Creation-Date: 2011-03-21 21:57+0200\n" +"PO-Revision-Date: 2011-03-21 21:57+0200\n" +"Last-Translator: Alexander Shopov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ../MacCore/src/Options.cs:497 ../SparkleLib/SparkleOptions.cs:486 +#: ../SparkleLib/SparkleOptions.cs:486 msgid "OptionName" msgstr "ИмеНаОпция" #: ../SparkleShare/Mac/SparkleStatusIcon.cs:360 -#: ../SparkleShare/SparkleIntro.cs:64 ../SparkleShare/SparkleStatusIcon.cs:345 +#: ../SparkleShare/SparkleIntro.cs:67 ../SparkleShare/SparkleStatusIcon.cs:335 msgid "Welcome to SparkleShare!" msgstr "Здравейте в SparkleShare!" #: ../SparkleShare/Mac/SparkleStatusIcon.cs:375 -#: ../SparkleShare/SparkleStatusIcon.cs:354 +#: ../SparkleShare/SparkleStatusIcon.cs:344 msgid "Not everything is synced" msgstr "Синхронизирането не е приключило" #: ../SparkleShare/Mac/SparkleStatusIcon.cs:382 -#: ../SparkleShare/SparkleStatusIcon.cs:361 +#: ../SparkleShare/SparkleStatusIcon.cs:351 msgid "Up to date" msgstr "Обновено" #: ../SparkleShare/Mac/SparkleStatusIcon.cs:404 -#: ../SparkleShare/SparkleStatusIcon.cs:377 +#: ../SparkleShare/SparkleStatusIcon.cs:367 msgid "Syncing…" msgstr "Синхронизиране…" @@ -61,11 +61,38 @@ msgstr "Копие в тази папка на по-ранна версия" msgid "Select to get a copy of this version" msgstr "Изберете за копие на версията" -#: ../SparkleShare/SparkleDialog.cs:177 +#: ../SparkleShare/SparkleAbout.cs:88 +msgid "_Show Credits" +msgstr "_Заслуги" + +#: ../SparkleShare/SparkleAbout.cs:101 msgid "_Visit Website" msgstr "_Към уеб сайта" -#: ../SparkleShare/SparkleIntro.cs:70 +#: ../SparkleShare/SparkleController.cs:416 +msgid "ddd MMM d, yyyy" +msgstr "dd.MM.yyyy" + +#: ../SparkleShare/SparkleController.cs:422 +msgid "ddd MMM d" +msgstr "dd MMM, ddd" + +#: ../SparkleShare/SparkleController.cs:700 +#, csharp-format +msgid "added ‘{0}’" +msgstr "добавен е „{0}“" + +#: ../SparkleShare/SparkleController.cs:711 +#, csharp-format +msgid "edited ‘{0}’" +msgstr "редактиран е „{0}“" + +#: ../SparkleShare/SparkleController.cs:722 +#, csharp-format +msgid "deleted ‘{0}’" +msgstr "изтрит е „{0}“" + +#: ../SparkleShare/SparkleIntro.cs:73 msgid "" "Before we can create a SparkleShare folder on this computer, we need a few " "bits of information from you." @@ -73,103 +100,103 @@ msgstr "" "Трябва да попълните някои данни за себе си, преди да се създаде папка на " "компютъра, ползваща SparkleShare." -#: ../SparkleShare/SparkleIntro.cs:82 +#: ../SparkleShare/SparkleIntro.cs:86 msgid "Full Name:" msgstr "Лично име:" -#: ../SparkleShare/SparkleIntro.cs:98 +#: ../SparkleShare/SparkleIntro.cs:102 msgid "Email:" msgstr "Е-поща:" -#: ../SparkleShare/SparkleIntro.cs:109 +#: ../SparkleShare/SparkleIntro.cs:113 msgid "Next" msgstr "Нататък" -#: ../SparkleShare/SparkleIntro.cs:116 +#: ../SparkleShare/SparkleIntro.cs:120 msgid "Configuring…" msgstr "Настройване…" -#: ../SparkleShare/SparkleIntro.cs:179 +#: ../SparkleShare/SparkleIntro.cs:173 msgid "Where is your remote folder?" msgstr "Къде е отдалечената папка?" -#: ../SparkleShare/SparkleIntro.cs:192 +#: ../SparkleShare/SparkleIntro.cs:186 msgid "address-to-server.com" msgstr "адрес.на.сървъра.com" -#: ../SparkleShare/SparkleIntro.cs:197 +#: ../SparkleShare/SparkleIntro.cs:191 msgid "On my own server:" msgstr "На основния сървър:" -#: ../SparkleShare/SparkleIntro.cs:204 +#: ../SparkleShare/SparkleIntro.cs:198 msgid "Free hosting for Free and Open Source Software projects." msgstr "Безплатен хостинг за свободни проекти и такива с отворен код." -#: ../SparkleShare/SparkleIntro.cs:205 +#: ../SparkleShare/SparkleIntro.cs:199 msgid "Also has paid accounts for extra private space and bandwidth." msgstr "За непублично пространство и допълнителни ресурси се плаща." -#: ../SparkleShare/SparkleIntro.cs:213 +#: ../SparkleShare/SparkleIntro.cs:207 msgid "The GNOME Project" msgstr "Проектът GNOME" -#: ../SparkleShare/SparkleIntro.cs:215 +#: ../SparkleShare/SparkleIntro.cs:209 msgid "GNOME is an easy to understand interface to your computer." msgstr "GNOME е разбираем интерфейс за компютъра ви." -#: ../SparkleShare/SparkleIntro.cs:216 +#: ../SparkleShare/SparkleIntro.cs:210 msgid "Select this option if you’re a developer or designer working on GNOME." msgstr "Ако работите по GNOME, изберете тази версия." -#: ../SparkleShare/SparkleIntro.cs:224 +#: ../SparkleShare/SparkleIntro.cs:218 msgid "Gitorious" msgstr "Gitorious" -#: ../SparkleShare/SparkleIntro.cs:226 +#: ../SparkleShare/SparkleIntro.cs:220 msgid "Completely Free as in Freedom infrastructure." msgstr "Свободен като инфраструктурата на свободата." -#: ../SparkleShare/SparkleIntro.cs:227 +#: ../SparkleShare/SparkleIntro.cs:221 msgid "Free accounts for Free and Open Source projects." msgstr "Безплатно за свободни проекти и такива с отворен код." -#: ../SparkleShare/SparkleIntro.cs:239 +#: ../SparkleShare/SparkleIntro.cs:233 msgid "Username/Folder" msgstr "Потребител/Папка" -#: ../SparkleShare/SparkleIntro.cs:246 +#: ../SparkleShare/SparkleIntro.cs:240 msgid "Project/Folder" msgstr "Проект/Папка" -#: ../SparkleShare/SparkleIntro.cs:253 +#: ../SparkleShare/SparkleIntro.cs:247 msgid "Project" msgstr "Проект" -#: ../SparkleShare/SparkleIntro.cs:262 ../SparkleShare/SparkleIntro.cs:285 +#: ../SparkleShare/SparkleIntro.cs:256 ../SparkleShare/SparkleIntro.cs:279 msgid "Folder" msgstr "Папка" -#: ../SparkleShare/SparkleIntro.cs:290 ../SparkleShare/SparkleIntro.cs:467 +#: ../SparkleShare/SparkleIntro.cs:284 ../SparkleShare/SparkleIntro.cs:462 msgid "Folder Name:" msgstr "Име на папка:" -#: ../SparkleShare/SparkleIntro.cs:300 +#: ../SparkleShare/SparkleIntro.cs:294 msgid "Sync" msgstr "Синхронизиране" -#: ../SparkleShare/SparkleIntro.cs:394 +#: ../SparkleShare/SparkleIntro.cs:389 msgid "Cancel" msgstr "Отказване" -#: ../SparkleShare/SparkleIntro.cs:405 +#: ../SparkleShare/SparkleIntro.cs:400 msgid "Skip" msgstr "Прескачане" -#: ../SparkleShare/SparkleIntro.cs:437 +#: ../SparkleShare/SparkleIntro.cs:432 msgid "Invitation received!" msgstr "Поканата е приета!" -#: ../SparkleShare/SparkleIntro.cs:443 +#: ../SparkleShare/SparkleIntro.cs:438 msgid "" "You've received an invitation to join a shared folder.\n" "We're ready to hook you up immediately if you wish." @@ -177,35 +204,35 @@ msgstr "" "Получихте покана за споделена папка. Ако искате,\n" "можете да я приемете, за да започне синхронизирането." -#: ../SparkleShare/SparkleIntro.cs:449 +#: ../SparkleShare/SparkleIntro.cs:444 msgid "Do you accept this invitation?" msgstr "Приемате ли поканата?" -#: ../SparkleShare/SparkleIntro.cs:458 +#: ../SparkleShare/SparkleIntro.cs:453 msgid "Server Address:" msgstr "Адрес на сървър:" -#: ../SparkleShare/SparkleIntro.cs:481 +#: ../SparkleShare/SparkleIntro.cs:476 msgid "Reject" msgstr "Отхвърляне" -#: ../SparkleShare/SparkleIntro.cs:482 +#: ../SparkleShare/SparkleIntro.cs:477 msgid "Accept and Sync" msgstr "Приемане и синхронизиране" -#: ../SparkleShare/SparkleIntro.cs:539 +#: ../SparkleShare/SparkleIntro.cs:532 msgid "Something went wrong…" msgstr "Получи се грешка…" -#: ../SparkleShare/SparkleIntro.cs:545 +#: ../SparkleShare/SparkleIntro.cs:538 msgid "Try Again" msgstr "Опитайте отново" -#: ../SparkleShare/SparkleIntro.cs:573 +#: ../SparkleShare/SparkleIntro.cs:566 msgid "Folder synced successfully!" msgstr "Папката е успешно синхронизирана!" -#: ../SparkleShare/SparkleIntro.cs:580 +#: ../SparkleShare/SparkleIntro.cs:573 #, csharp-format msgid "" "Now you can access the synced files from ‘{0}’ in your SparkleShare folder." @@ -214,86 +241,55 @@ msgstr "" "SparkleShare." #. A button that opens the synced folder -#: ../SparkleShare/SparkleIntro.cs:588 +#: ../SparkleShare/SparkleIntro.cs:581 msgid "Open Folder" msgstr "Отваряне на папката" -#: ../SparkleShare/SparkleIntro.cs:596 ../SparkleShare/SparkleIntro.cs:644 -#: ../SparkleShare/SparkleIntro.cs:712 +#: ../SparkleShare/SparkleIntro.cs:589 ../SparkleShare/SparkleIntro.cs:635 +#: ../SparkleShare/SparkleIntro.cs:702 msgid "Finish" msgstr "Завършване" -#: ../SparkleShare/SparkleIntro.cs:628 +#: ../SparkleShare/SparkleIntro.cs:619 #, csharp-format msgid "Syncing folder ‘{0}’…" msgstr "Синхронизиране на папка „{0}“…" -#: ../SparkleShare/SparkleIntro.cs:635 +#: ../SparkleShare/SparkleIntro.cs:626 msgid "This may take a while.\n" msgstr "Това може да отнеме малко време.\n" -#: ../SparkleShare/SparkleIntro.cs:636 +#: ../SparkleShare/SparkleIntro.cs:627 msgid "Are you sure it’s not coffee o'clock?" -msgstr "" +msgstr "Не е ли време за кафенце?" -#: ../SparkleShare/SparkleIntro.cs:687 +#: ../SparkleShare/SparkleIntro.cs:677 msgid "SparkleShare is ready to go!" msgstr "SparkleShare е готов!" -#: ../SparkleShare/SparkleIntro.cs:693 +#: ../SparkleShare/SparkleIntro.cs:683 msgid "" "Now you can start accepting invitations from others. \n" "Just click on invitations you get by email and we will take care of the rest." msgstr "" "Можете да приемате покани от други хора. \n" -"Когато ги получите по е-пощата, просто натиснете върху връзката. SparkleShare се грижи за останалото." +"Когато ги получите по е-пощата, просто натиснете върху връзката. " +"SparkleShare се грижи за останалото." -#: ../SparkleShare/SparkleIntro.cs:704 +#: ../SparkleShare/SparkleIntro.cs:694 msgid "Learn how to host your own SparkleServer" msgstr "Научете как да създадете свой сървър за SparkleServer" #. TRANSLATORS: {0} is a folder name, and {1} is a server address -#: ../SparkleShare/SparkleLog.cs:54 +#: ../SparkleShare/SparkleLog.cs:74 #, csharp-format msgid "Events in ‘{0}’" -msgstr "" +msgstr "Събития в „{0}“" -#: ../SparkleShare/SparkleLog.cs:109 +#: ../SparkleShare/SparkleLog.cs:126 msgid "_Open Folder" msgstr "_Отваряне на папка" -#: ../SparkleShare/SparkleLog.cs:222 -msgid "This folder has unsynced changes" -msgstr "В папката има несинхронизирани промени " - -#: ../SparkleShare/SparkleLog.cs:223 -msgid "We will sync these once we’re connected again" -msgstr "При наличие на връзка към Интернет, тя ще бъде синхронизирана" - -#: ../SparkleShare/SparkleLog.cs:236 -msgid "Could not sync with the remote folder" -msgstr "Папката не може да се синхронизира" - -#: ../SparkleShare/SparkleLog.cs:237 -msgid "Is the you and the server online?" -msgstr "Дали има връзка през Интернет към отдалечения сървър?" - -#: ../SparkleShare/SparkleLog.cs:383 -msgid "Edited" -msgstr "Редактиран" - -#: ../SparkleShare/SparkleLog.cs:397 -msgid "Added" -msgstr "Добавен" - -#: ../SparkleShare/SparkleLog.cs:411 -msgid "Deleted" -msgstr "Изтрит" - -#: ../SparkleShare/SparkleLog.cs:425 -msgid "Moved" -msgstr "Преместен" - #: ../SparkleShare/SparkleShare.cs:55 msgid "Sorry, you can't run SparkleShare with these permissions." msgstr "С настоящите права не може да стартирате SparkleShare." @@ -350,8 +346,7 @@ msgstr "Употреба: sparkleshare [start|stop|restart] [ОПЦИЯ]…" #: ../SparkleShare/SparkleShare.cs:145 msgid "Sync SparkleShare folder with remote repositories." -msgstr "" -"Синхронизиране на папката ви за SparkleShare с отдалечените източници." +msgstr "Синхронизиране на папката ви за SparkleShare с отдалечените източници." #: ../SparkleShare/SparkleShare.cs:147 msgid "Arguments:" @@ -361,52 +356,37 @@ msgstr "Аргументи:" msgid "SparkleShare " msgstr "SparkleShare " -#: ../SparkleShare/SparkleStatusIcon.cs:187 +#: ../SparkleShare/SparkleStatusIcon.cs:189 msgid "No Remote Folders Yet" msgstr "Все още няма отдалечени папки" #. Opens the wizard to add a new remote folder -#: ../SparkleShare/SparkleStatusIcon.cs:196 +#: ../SparkleShare/SparkleStatusIcon.cs:198 msgid "Add Remote Folder…" -msgstr "" +msgstr "Добавяне на отдалечена папка…" -#: ../SparkleShare/SparkleStatusIcon.cs:216 +#: ../SparkleShare/SparkleStatusIcon.cs:228 msgid "Turn Notifications Off" -msgstr "" +msgstr "Изключване на уведомяванията" -#: ../SparkleShare/SparkleStatusIcon.cs:218 +#: ../SparkleShare/SparkleStatusIcon.cs:230 msgid "Turn Notifications On" -msgstr "" +msgstr "Включване на уведомленията" #. A menu item that takes the user to http://www.sparkleshare.org/ -#: ../SparkleShare/SparkleStatusIcon.cs:231 +#: ../SparkleShare/SparkleStatusIcon.cs:243 msgid "About SparkleShare" -msgstr "" +msgstr "Относно SparkleShare" #. A menu item that quits the application -#: ../SparkleShare/SparkleStatusIcon.cs:244 +#: ../SparkleShare/SparkleStatusIcon.cs:256 msgid "Quit" msgstr "Спиране на програмата" -#: ../SparkleShare/SparkleUI.cs:91 -#, csharp-format -msgid "added ‘{0}’" -msgstr "" - -#: ../SparkleShare/SparkleUI.cs:102 -#, csharp-format -msgid "edited ‘{0}’" -msgstr "" - -#: ../SparkleShare/SparkleUI.cs:113 -#, csharp-format -msgid "deleted ‘{0}’" -msgstr "" - -#: ../SparkleShare/SparkleUI.cs:157 +#: ../SparkleShare/SparkleUI.cs:124 msgid "Ouch! Mid-air collision!" msgstr "Опс, конфликт на версии!" -#: ../SparkleShare/SparkleUI.cs:158 +#: ../SparkleShare/SparkleUI.cs:125 msgid "Don't worry, SparkleShare made a copy of each conflicting file." msgstr "Без паника! SparkleShare е създал копие на всеки файл в конфликт."