From 20256e2761f256c48d41ded8baf8c06bfddfd0a8 Mon Sep 17 00:00:00 2001 From: mlettner Date: Mon, 21 Jun 2010 13:51:30 +0000 Subject: [PATCH 01/13] l10n: Updated German (de) translation to 25% New status: 9 messages complete with 4 fuzzies and 22 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/de.po | 875 ++++++++++++++----------------------------------------- 1 file changed, 217 insertions(+), 658 deletions(-) diff --git a/po/de.po b/po/de.po index 03ef6d81..1e394a39 100644 --- a/po/de.po +++ b/po/de.po @@ -1,25 +1,13 @@ -# SPANISH TRANSLATION +# SPANISH TRANSLATION # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Simon Haller , 2010 -# -#: SparkleShare/SparkleDialog.cs:39 SparkleShare/SparkleHelpers.cs:78 -#: SparkleShare/SparklePreferencesDialog.cs:36 SparkleShare/SparkleRepo.cs:202 -#: SparkleShare/SparkleRepo.cs:332 SparkleShare/SparkleRepo.cs:336 -#: SparkleShare/SparkleRepo.cs:345 SparkleShare/SparkleRepo.cs:349 -#: SparkleShare/SparkleRepo.cs:358 SparkleShare/SparkleRepo.cs:362 -#: SparkleShare/SparkleRepo.cs:371 SparkleShare/SparkleRepo.cs:376 -#: SparkleShare/SparkleRepo.cs:383 SparkleShare/SparkleRepo.cs:393 -#: SparkleShare/SparkleRepo.cs:398 SparkleShare/SparkleUI.cs:115 -#: SparkleShare/SparkleWindow.cs:37 SparkleShare/SparkleWindow.cs:119 -#: SparkleShare/SparkleWindow.cs:178 SparkleShare/SparkleWindow.cs:179 -#: SparkleShare/SparkleWindow.cs:180 -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-17 09:36+0100\n" +"POT-Creation-Date: 2010-06-21 08:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,749 +15,320 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: SparkleShare/SparkleDialog.cs:42 -#: SparkleShare/SparklePreferencesDialog.cs:39 SparkleShare/SparkleUI.cs:114 -#: SparkleShare/SparkleWindow.cs:50 -msgid "folder-sparkleshare" -msgstr "ordner-sparkleshare" +#: ../SparkleShare/SparkleDialog.cs:50 +msgid "Address of remote SparkleShare folder:" +msgstr "Adresse des entfernten SparkleShare-Verzeichnis:" -#: SparkleShare/SparkleDialog.cs:46 -msgid "Add a Folder" +#: ../SparkleShare/SparkleDialog.cs:81 +#, fuzzy +msgid "Add Folder" msgstr "Ordner hinzufügen" -#: SparkleShare/SparkleDialog.cs:50 -msgid "Folder Name: " -msgstr "Ordner Name: " - -#: SparkleShare/SparkleDialog.cs:52 SparkleShare/SparkleDialog.cs:67 -msgid "Example: " -msgstr "Beispiel: " - -#: SparkleShare/SparkleDialog.cs:53 -msgid "‘Project’." -msgstr "‘Projekt’." - -#: SparkleShare/SparkleDialog.cs:58 -msgid "Remote address: " -msgstr "Remote-Adresse: " - -#: SparkleShare/SparkleDialog.cs:60 -msgid "ssh://git@github.com" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:61 -msgid "ssh://git@git.gnome.org" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:62 -msgid "ssh://git@fedorahosted.org" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:63 -msgid "ssh://git@gitorious.org" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:68 -msgid "‘ssh://git@github.com’." -msgstr "" - -#: SparkleShare/SparkleDialog.cs:118 -msgid "Downloading files,\n" -msgstr "Herunterladen von Dateien,\n" - -#: SparkleShare/SparkleDialog.cs:119 -msgid "this may take a while..." -msgstr "Dies kann eine Weile dauern..." - -#: SparkleShare/SparkleDialog.cs:132 SparkleShare/SparkleRepo.cs:70 -#: SparkleShare/SparkleRepo.cs:77 SparkleShare/SparkleRepo.cs:83 -#: SparkleShare/SparkleRepo.cs:100 SparkleShare/SparkleRepo.cs:403 -#: SparkleShare/SparkleShare.cs:42 SparkleShare/SparkleWindow.cs:117 -#: SparkleShare/SparkleWindow.cs:203 -msgid "git" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:137 SparkleShare/SparkleRepo.cs:182 -msgid "clone " -msgstr "" - -#: SparkleShare/SparkleDialog.cs:150 SparkleShare/SparkleDialog.cs:154 -#: SparkleShare/SparklePreferencesDialog.cs:61 -#: SparkleShare/SparklePreferencesDialog.cs:81 SparkleShare/SparkleRepo.cs:58 -#: SparkleShare/SparkleRepo.cs:62 SparkleShare/SparkleRepo.cs:287 -#: SparkleShare/SparkleUI.cs:77 -msgid ".git" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:151 -#: SparkleShare/SparklePreferencesDialog.cs:61 SparkleShare/SparkleRepo.cs:59 -msgid "sparkleshare.notify" -msgstr "" - -#: SparkleShare/SparkleDialog.cs:155 -#: SparkleShare/SparklePreferencesDialog.cs:81 SparkleShare/SparkleRepo.cs:63 -msgid "sparkleshare.sync" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:32 -msgid "x" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:36 SparkleShare/SparkleUI.cs:42 -#: SparkleShare/SparkleUI.cs:144 SparkleShare/SparkleUI.cs:148 -msgid "[Config] Created '" -msgstr "[Config] erstellt '" - -#: SparkleShare/SparkleHelpers.cs:36 SparkleShare/SparkleRepo.cs:136 -#: SparkleShare/SparkleUI.cs:42 SparkleShare/SparkleUI.cs:133 -#: SparkleShare/SparkleUI.cs:144 -msgid "'" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:47 -msgid "http://www.gravatar.com/avatar/" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:48 -msgid ".jpg?s=" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:48 -msgid "&d=404" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:67 -msgid "avatar-default" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:78 -msgid "-" -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:84 SparkleShare/SparkleRepo.cs:262 -#: SparkleShare/SparkleShare.cs:86 SparkleShare/SparkleShare.cs:90 -#: SparkleShare/SparkleShare.cs:92 SparkleShare/SparkleShare.cs:95 -#: SparkleShare/SparkleShare.cs:99 SparkleShare/SparkleWindow.cs:164 -msgid " " -msgstr "" - -#: SparkleShare/SparkleHelpers.cs:100 -msgid "[a-z]+://(.)+" -msgstr "" - -#: SparkleShare/SparklePaths.cs:24 -msgid "/tmp/sparkleshare" -msgstr "" - -#: SparkleShare/SparklePaths.cs:27 -msgid "HOME" -msgstr "" - -#: SparkleShare/SparklePaths.cs:29 -msgid "SparkleShare" -msgstr "" - -#: SparkleShare/SparklePaths.cs:32 -msgid ".config" -msgstr "" - -#: SparkleShare/SparklePaths.cs:32 SparkleShare/SparklePaths.cs:35 -msgid "sparkleshare" -msgstr "" - -#: SparkleShare/SparklePaths.cs:35 -msgid "usr" -msgstr "" - -#: SparkleShare/SparklePaths.cs:35 -msgid "share" -msgstr "" - -#: SparkleShare/SparklePaths.cs:36 -msgid "icons" -msgstr "" - -#: SparkleShare/SparklePaths.cs:36 -msgid "hicolor" -msgstr "" - -#: SparkleShare/SparklePaths.cs:39 -msgid "avatars" -msgstr "" - -#: SparkleShare/SparklePaths.cs:41 -msgid "/usr/share/icons/hicolor" -msgstr "" - -#: SparkleShare/SparklePlatform.cs:24 SparkleShare/SparkleUI.cs:44 -#: SparkleShare/SparkleUI.cs:82 -msgid "GNOME" -msgstr "" - -#: SparkleShare/SparklePreferencesDialog.cs:42 -msgid "Preferences" -msgstr "Preferencias" - -#: SparkleShare/SparklePreferencesDialog.cs:48 -msgid "The folder " -msgstr "Der Ordner " - -#: SparkleShare/SparklePreferencesDialog.cs:49 -#: SparkleShare/SparklePreferencesDialog.cs:51 -#: SparkleShare/SparkleWindow.cs:237 -msgid "" -msgstr "" - -#: SparkleShare/SparklePreferencesDialog.cs:49 -#: SparkleShare/SparklePreferencesDialog.cs:51 -msgid "" -msgstr "" - -#: SparkleShare/SparklePreferencesDialog.cs:50 -msgid "" -"\n" -"is linked to " -msgstr "" -"\n" -"ist verknüpft mit " - -#: SparkleShare/SparklePreferencesDialog.cs:57 -msgid "Notify me when something changes" -msgstr "Benachrichtige mich, wenn sich etwas ändert" - -#: SparkleShare/SparklePreferencesDialog.cs:77 -msgid "Synchronize my changes" -msgstr "Synchronisiere meine Änderungen" - -#: SparkleShare/SparkleRepo.cs:69 -msgid "Anonymous" -msgstr "Anonym" - -#: SparkleShare/SparkleRepo.cs:71 -msgid "config --get user.name" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:76 -msgid "not.set@git-scm.com" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:78 -msgid "config --get user.email" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:84 -msgid "config --get remote.origin.url" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:93 -msgid "@" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:94 SparkleShare/SparkleRepo.cs:95 -msgid ":" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:97 -msgid "/" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:101 -msgid "rev-list --max-count=1 HEAD" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:109 -msgid "*" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:127 SparkleShare/SparkleRepo.cs:195 -#: SparkleShare/SparkleRepo.cs:199 SparkleShare/SparkleRepo.cs:214 -#: SparkleShare/SparkleRepo.cs:218 SparkleShare/SparkleRepo.cs:225 -#: SparkleShare/SparkleRepo.cs:229 SparkleShare/SparkleRepo.cs:238 -#: SparkleShare/SparkleRepo.cs:242 SparkleShare/SparkleRepo.cs:269 -#: SparkleShare/SparkleRepo.cs:275 SparkleShare/SparkleRepo.cs:279 -msgid "[Git][" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:127 -msgid "] Nothing going on..." -msgstr "] Es passiert nichts..." - -#: SparkleShare/SparkleRepo.cs:135 -msgid "[Event][" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:135 SparkleShare/SparkleRepo.cs:213 -msgid "] " -msgstr "" - -#: SparkleShare/SparkleRepo.cs:136 SparkleShare/SparkleUI.cs:133 -msgid " '" +#: ../SparkleShare/SparkleDialog.cs:126 +#, csharp-format +msgid "Syncing folder ‘{0}’" msgstr "" -#: SparkleShare/SparkleRepo.cs:152 SparkleShare/SparkleRepo.cs:155 -#: SparkleShare/SparkleRepo.cs:167 SparkleShare/SparkleRepo.cs:173 -msgid "[Buffer][" +#: ../SparkleShare/SparkleDialog.cs:127 +msgid "SparkleShare will notify you when this is done." msgstr "" -#: SparkleShare/SparkleRepo.cs:152 SparkleShare/SparkleRepo.cs:167 -msgid "] Done waiting." -msgstr "] warten beendet." - -#: SparkleShare/SparkleRepo.cs:155 SparkleShare/SparkleRepo.cs:173 -msgid "] Waiting for more changes..." -msgstr "] Warten auf weitere Änderungen..." - -#: SparkleShare/SparkleRepo.cs:186 -msgid ".gitignore" +#: ../SparkleShare/SparkleDialog.cs:129 +msgid "Dismiss" msgstr "" -#: SparkleShare/SparkleRepo.cs:187 -msgid "*~" +#: ../SparkleShare/SparkleDialog.cs:156 +#, csharp-format +msgid "Something went wrong while syncing ‘{0}’" msgstr "" -#: SparkleShare/SparkleRepo.cs:188 -msgid ".*.sw?" +#: ../SparkleShare/SparkleDialog.cs:166 +msgid "Try Again…" msgstr "" -#: SparkleShare/SparkleRepo.cs:195 -msgid "] Staging changes..." -msgstr "] Zustand ändert sich. " - -#: SparkleShare/SparkleRepo.cs:196 -msgid "add --all" +#: ../SparkleShare/SparkleDialog.cs:196 +#, csharp-format +msgid "Successfully synced folder ‘{0}’" msgstr "" -#: SparkleShare/SparkleRepo.cs:199 -msgid "] Changed staged." -msgstr "] Zustand geändert." - -#: SparkleShare/SparkleRepo.cs:213 -msgid "[Commit][" +#: ../SparkleShare/SparkleDialog.cs:197 +msgid "Now make great stuff happen!" msgstr "" -#: SparkleShare/SparkleRepo.cs:214 -msgid "] Commiting changes..." -msgstr "] Änderungen einbringen..." - -#: SparkleShare/SparkleRepo.cs:215 -msgid "commit -m \"" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:215 -msgid "\"" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:218 -msgid "] Changes commited." -msgstr "] Änderungen eingebracht." - -#: SparkleShare/SparkleRepo.cs:225 -msgid "] Fetching changes... " -msgstr "] Hole Änderungen..." - -#: SparkleShare/SparkleRepo.cs:226 -msgid "fetch -v" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:229 -msgid "] Changes fetched." -msgstr "] Änderungen geholt." - -#: SparkleShare/SparkleRepo.cs:238 -msgid "] Merging fetched changes... " -msgstr "] Geholte Änderungen zusammenführen..." - -#: SparkleShare/SparkleRepo.cs:239 -msgid "merge origin/master" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:242 -msgid "] Changes merged." -msgstr "] Änderungen zusammengeführt." - -#: SparkleShare/SparkleRepo.cs:245 -msgid "Already up-to-date." -msgstr "Schon am aktuellsten Stand." - -#: SparkleShare/SparkleRepo.cs:248 -msgid "log --format=\"%ae\" -1" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:253 -msgid "log --format=\"%s\" -1" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:258 -msgid "log --format=\"%an\" -1" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:269 -msgid "] Nothing going on... " -msgstr "] Nichts passiert... " - -#: SparkleShare/SparkleRepo.cs:275 -msgid "] Pushing changes..." -msgstr "] übergebe Änderungen..." - -#: SparkleShare/SparkleRepo.cs:276 -msgid "push" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:279 -msgid "] Changes pushed." -msgstr "] Änderungen übergeben." - -#: SparkleShare/SparkleRepo.cs:285 -msgid "." -msgstr "" - -#: SparkleShare/SparkleRepo.cs:286 -msgid ".lock" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:288 -msgid "/." -msgstr "" - -#: SparkleShare/SparkleRepo.cs:292 -msgid ".swp" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:309 -msgid "status" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:313 SparkleShare/SparkleRepo.cs:324 -#: SparkleShare/SparkleWindow.cs:128 SparkleShare/SparkleWindow.cs:131 -#: SparkleShare/SparkleWindow.cs:132 SparkleShare/SparkleWindow.cs:210 -msgid "\n" -msgstr "" - -#: SparkleShare/SparkleRepo.cs:314 SparkleShare/SparkleRepo.cs:328 -msgid "new file:" -msgstr "neue Datei:" - -#: SparkleShare/SparkleRepo.cs:316 SparkleShare/SparkleRepo.cs:341 -msgid "modified:" -msgstr "geändert:" - -#: SparkleShare/SparkleRepo.cs:318 SparkleShare/SparkleRepo.cs:367 -msgid "renamed:" -msgstr "umbenannt:" - -#: SparkleShare/SparkleRepo.cs:320 SparkleShare/SparkleRepo.cs:354 -msgid "deleted:" -msgstr "gelöscht:" - -#: SparkleShare/SparkleRepo.cs:331 SparkleShare/SparkleRepo.cs:335 -msgid "added ‘" -msgstr "hinzugefügt " - -#: SparkleShare/SparkleRepo.cs:332 SparkleShare/SparkleRepo.cs:336 -msgid "#\tnew file:" -msgstr "#\tneue Datei:" - -#: SparkleShare/SparkleRepo.cs:333 SparkleShare/SparkleRepo.cs:346 -#: SparkleShare/SparkleRepo.cs:359 SparkleShare/SparkleRepo.cs:372 -msgid "’ and " -msgstr "’ und " - -#: SparkleShare/SparkleRepo.cs:333 SparkleShare/SparkleRepo.cs:346 -#: SparkleShare/SparkleRepo.cs:359 SparkleShare/SparkleRepo.cs:373 -msgid " more." -msgstr " mehr." - -#: SparkleShare/SparkleRepo.cs:336 SparkleShare/SparkleRepo.cs:349 -#: SparkleShare/SparkleRepo.cs:362 SparkleShare/SparkleRepo.cs:377 -msgid "’." -msgstr "" - -#: SparkleShare/SparkleRepo.cs:344 SparkleShare/SparkleRepo.cs:348 -msgid "edited ‘" -msgstr "editiert ‘" - -#: SparkleShare/SparkleRepo.cs:345 SparkleShare/SparkleRepo.cs:349 -msgid "#\tmodified:" -msgstr "#\tmodifiziert:" - -#: SparkleShare/SparkleRepo.cs:357 SparkleShare/SparkleRepo.cs:361 -msgid "deleted ‘" -msgstr "gelöscht ‘" - -#: SparkleShare/SparkleRepo.cs:358 SparkleShare/SparkleRepo.cs:362 -msgid "#\tdeleted:" -msgstr "#\tgelöscht:" - -#: SparkleShare/SparkleRepo.cs:370 SparkleShare/SparkleRepo.cs:375 -msgid "renamed ‘" -msgstr "umbenannt ‘" - -#: SparkleShare/SparkleRepo.cs:371 SparkleShare/SparkleRepo.cs:376 -msgid "#\trenamed:" -msgstr "#\tumbenannt:" - -#: SparkleShare/SparkleRepo.cs:372 SparkleShare/SparkleRepo.cs:377 -msgid " -> " -msgstr "" - -#: SparkleShare/SparkleRepo.cs:372 SparkleShare/SparkleRepo.cs:377 -msgid "’ to ‘" -msgstr "‘ zu ‘" - -#: SparkleShare/SparkleRepo.cs:398 +#. Add a button to open the folder where the changed file is +#: ../SparkleShare/SparkleDialog.cs:199 ../SparkleShare/SparkleRepo.cs:316 +#: ../SparkleShare/SparkleWindow.cs:62 msgid "Open Folder" msgstr "Öffne Ordner" -#: SparkleShare/SparkleRepo.cs:400 SparkleShare/SparkleStatusIcon.cs:41 -#: SparkleShare/SparkleStatusIcon.cs:71 SparkleShare/SparkleUI.cs:116 -msgid "xdg-open" -msgstr "" - -#: SparkleShare/SparkleShare.cs:38 -msgid "i18n" -msgstr "" - -#: SparkleShare/SparkleShare.cs:38 -msgid "locale" -msgstr "" - -#: SparkleShare/SparkleShare.cs:47 -msgid "version" -msgstr "" - -#: SparkleShare/SparkleShare.cs:48 +#: ../SparkleShare/SparkleShare.cs:50 msgid "Git wasn't found." msgstr "Git nicht gefunden." -#: SparkleShare/SparkleShare.cs:49 +#: ../SparkleShare/SparkleShare.cs:51 msgid "You can get Git from http://git-scm.com/." msgstr "Git ist auf http://git-scm.com/ verfügbar." -#: SparkleShare/SparkleShare.cs:54 -msgid "whoami" -msgstr "" - -#: SparkleShare/SparkleShare.cs:56 -msgid "root" -msgstr "" - -#: SparkleShare/SparkleShare.cs:57 +#: ../SparkleShare/SparkleShare.cs:58 msgid "Sorry, you can't run SparkleShare with these permissions." msgstr "SparkleShare kann leider nicht mit diesen Rechten laufen." -#: SparkleShare/SparkleShare.cs:58 +#: ../SparkleShare/SparkleShare.cs:59 msgid "Things will go utterly wrong." msgstr "Die Dinge werden völlig daneben gehen." -#: SparkleShare/SparkleShare.cs:66 -msgid "--disable-gui" -msgstr "" - -#: SparkleShare/SparkleShare.cs:66 -msgid "-d" -msgstr "" - -#: SparkleShare/SparkleShare.cs:68 -msgid "--help" -msgstr "" - -#: SparkleShare/SparkleShare.cs:68 -msgid "-h" -msgstr "" - -#: SparkleShare/SparkleShare.cs:85 +#: ../SparkleShare/SparkleShare.cs:87 msgid "SparkleShare Copyright (C) 2010 Hylke Bons" msgstr "" -#: SparkleShare/SparkleShare.cs:87 +#: ../SparkleShare/SparkleShare.cs:89 msgid "This program comes with ABSOLUTELY NO WARRANTY." msgstr "" -#: SparkleShare/SparkleShare.cs:88 +#: ../SparkleShare/SparkleShare.cs:90 msgid "This is free software, and you are welcome to redistribute it " msgstr "" -#: SparkleShare/SparkleShare.cs:89 +#: ../SparkleShare/SparkleShare.cs:91 msgid "under certain conditions. Please read the GNU GPLv3 for details." msgstr "" -#: SparkleShare/SparkleShare.cs:91 +#: ../SparkleShare/SparkleShare.cs:93 msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories." msgstr "" -#: SparkleShare/SparkleShare.cs:93 +#: ../SparkleShare/SparkleShare.cs:95 msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..." msgstr "" -#: SparkleShare/SparkleShare.cs:94 +#: ../SparkleShare/SparkleShare.cs:96 msgid "Sync SparkleShare folder with remote repositories." msgstr "Synchronisiere SparkleShare Ordner mit entfernten Repositories." -#: SparkleShare/SparkleShare.cs:96 +#: ../SparkleShare/SparkleShare.cs:98 msgid "Arguments:" msgstr "" -#: SparkleShare/SparkleShare.cs:97 +#: ../SparkleShare/SparkleShare.cs:99 msgid "\t -d, --disable-gui\tDon't show the notification icon." msgstr "" -#: SparkleShare/SparkleShare.cs:98 +#: ../SparkleShare/SparkleShare.cs:100 msgid "\t -h, --help\t\tDisplay this help text." msgstr "" -#: SparkleShare/SparkleSpinner.cs:40 -msgid "process-working" +#: ../SparkleShare/SparkleStatusIcon.cs:69 +msgid "Error syncing" msgstr "" -#: SparkleShare/SparkleStatusIcon.cs:38 -msgid "Open Sharing Folder" -msgstr "Öffne gemeinsamen Ornder" - -#: SparkleShare/SparkleStatusIcon.cs:48 +#: ../SparkleShare/SparkleStatusIcon.cs:72 msgid "Everything is up to date" msgstr "Alles ist am aktuellsten Stand" -#: SparkleShare/SparkleStatusIcon.cs:68 -msgid "About SparkleShare" +#: ../SparkleShare/SparkleStatusIcon.cs:75 +msgid "Syncing…" msgstr "" -#: SparkleShare/SparkleStatusIcon.cs:72 -msgid "http://www.sparkleshare.org/" +#: ../SparkleShare/SparkleStatusIcon.cs:116 +#, fuzzy +msgid "Add a Remote Folder…" +msgstr "Ordner hinzufügen" + +#: ../SparkleShare/SparkleStatusIcon.cs:124 +msgid "Show Notifications" msgstr "" -#: SparkleShare/SparkleStatusIcon.cs:92 -msgid "folder-synced" +#: ../SparkleShare/SparkleStatusIcon.cs:142 +msgid "Visit Website" msgstr "" -#: SparkleShare/SparkleStatusIcon.cs:106 -msgid "sparkleshare.pid" +#: ../SparkleShare/SparkleStatusIcon.cs:159 +msgid "Quit" msgstr "" -#: SparkleShare/SparkleUI.cs:47 SparkleShare/SparkleUI.cs:83 -msgid "gvfs-set-attribute" -msgstr "" - -#: SparkleShare/SparkleUI.cs:49 -msgid "" -" metadata::custom-icon file:///usr/share/icons/hicolor/48x48/places/folder-" -"sparkleshare.png" -msgstr "" - -#: SparkleShare/SparkleUI.cs:57 -msgid ".gtk-bookmarks" -msgstr "" - -#: SparkleShare/SparkleUI.cs:60 -msgid "file://" -msgstr "" - -#: SparkleShare/SparkleUI.cs:60 -msgid " SparkleShare" -msgstr "" - -#: SparkleShare/SparkleUI.cs:84 -msgid " file://" -msgstr "" - -#: SparkleShare/SparkleUI.cs:85 -msgid " metadata::emblems [synced]" -msgstr "" - -#: SparkleShare/SparkleUI.cs:108 +#: ../SparkleShare/SparkleUI.cs:134 msgid "Welcome to SparkleShare!" msgstr "Wilkommen bei SparkleShare!" -#: SparkleShare/SparkleUI.cs:109 -msgid "" -"You don't have any folders set up yet.\n" -"Please create some in the SparkleShare folder." +#: ../SparkleShare/SparkleUI.cs:135 +#, fuzzy +msgid "You don't have any folders set up yet." msgstr "" "Bis jetyt sind keine Ordner angelegt.\n" "Bitte erstelle welche im SparkleShare Ordner." +#: ../SparkleShare/SparkleUI.cs:138 +#, fuzzy +msgid "Add a Folder…" +msgstr "Ordner hinzufügen" -#: SparkleShare/SparkleUI.cs:115 -msgid "Open SparkleShare Folder" -msgstr "Öffne SparkleShare Ordner" - -#: SparkleShare/SparkleUI.cs:132 -msgid "[Event][SparkleShare] " +#: ../SparkleShare/SparkleWindow.cs:50 +#, csharp-format +msgid "‘{0}’ on {1}" msgstr "" -#: SparkleShare/SparkleUI.cs:148 -msgid "avatars'" -msgstr "" +#~ msgid "folder-sparkleshare" +#~ msgstr "ordner-sparkleshare" -#: SparkleShare/SparkleWindow.cs:49 -msgid "Happenings in ‘" -msgstr "Ereignis in ‘" +#~ msgid "Folder Name: " +#~ msgstr "Ordner Name: " -#: SparkleShare/SparkleWindow.cs:49 -msgid "’" -msgstr "" +#~ msgid "Example: " +#~ msgstr "Beispiel: " -#: SparkleShare/SparkleWindow.cs:124 -msgid "log --format=\"%at☃%an %s☃%cr\" -25" -msgstr "" +#~ msgid "‘Project’." +#~ msgstr "‘Projekt’." -#: SparkleShare/SparkleWindow.cs:144 SparkleShare/SparkleWindow.cs:223 -msgid "☃" -msgstr "" +#~ msgid "Remote address: " +#~ msgstr "Remote-Adresse: " -#: SparkleShare/SparkleWindow.cs:148 -msgid "document-edited" -msgstr "Dokument editiert" +#~ msgid "Downloading files,\n" +#~ msgstr "Herunterladen von Dateien,\n" -#: SparkleShare/SparkleWindow.cs:150 -msgid " added ‘" -msgstr " hinzugefügt ‘" +#~ msgid "this may take a while..." +#~ msgstr "Dies kann eine Weile dauern..." -#: SparkleShare/SparkleWindow.cs:151 -msgid "document-added" -msgstr "Dokument hinzugefügt" +#~ msgid "[Config] Created '" +#~ msgstr "[Config] erstellt '" -#: SparkleShare/SparkleWindow.cs:153 -msgid " deleted ‘" -msgstr " gelöscht ‘" +#~ msgid "Preferences" +#~ msgstr "Preferencias" -#: SparkleShare/SparkleWindow.cs:154 -msgid "document-removed" -msgstr "Dokument gelöscht" +#~ msgid "The folder " +#~ msgstr "Der Ordner " -#: SparkleShare/SparkleWindow.cs:156 -msgid " moved ‘" -msgstr " verschoben ‘" +#~ msgid "" +#~ "\n" +#~ "is linked to " +#~ msgstr "" +#~ "\n" +#~ "ist verknüpft mit " -#: SparkleShare/SparkleWindow.cs:157 -msgid " renamed ‘" -msgstr " umbenannt ‘" +#~ msgid "Notify me when something changes" +#~ msgstr "Benachrichtige mich, wenn sich etwas ändert" -#: SparkleShare/SparkleWindow.cs:158 -msgid "document-moved" -msgstr "Dokument verschoben" +#~ msgid "Synchronize my changes" +#~ msgstr "Synchronisiere meine Änderungen" -#: SparkleShare/SparkleWindow.cs:178 -msgid "pixbuf" -msgstr "" +#~ msgid "Anonymous" +#~ msgstr "Anonym" -#: SparkleShare/SparkleWindow.cs:179 SparkleShare/SparkleWindow.cs:180 -msgid "text" -msgstr "" +#~ msgid "] Nothing going on..." +#~ msgstr "] Es passiert nichts..." -#: SparkleShare/SparkleWindow.cs:204 -msgid "log --format=\"%an☃%ae\" -50" -msgstr "" +#~ msgid "] Done waiting." +#~ msgstr "] warten beendet." -#: SparkleShare/SparkleWindow.cs:230 -msgid " (that’s you!)" -msgstr "" +#~ msgid "] Waiting for more changes..." +#~ msgstr "] Warten auf weitere Änderungen..." -#: SparkleShare/SparkleWindow.cs:237 -msgid "" -"\n" -"" -msgstr "" +#~ msgid "] Staging changes..." +#~ msgstr "] Zustand ändert sich. " -#: SparkleShare/SparkleWindow.cs:239 -msgid "" -msgstr "" +#~ msgid "] Changed staged." +#~ msgstr "] Zustand geändert." + +#~ msgid "] Commiting changes..." +#~ msgstr "] Änderungen einbringen..." + +#~ msgid "] Changes commited." +#~ msgstr "] Änderungen eingebracht." + +#~ msgid "] Fetching changes... " +#~ msgstr "] Hole Änderungen..." + +#~ msgid "] Changes fetched." +#~ msgstr "] Änderungen geholt." + +#~ msgid "] Merging fetched changes... " +#~ msgstr "] Geholte Änderungen zusammenführen..." + +#~ msgid "] Changes merged." +#~ msgstr "] Änderungen zusammengeführt." + +#~ msgid "Already up-to-date." +#~ msgstr "Schon am aktuellsten Stand." + +#~ msgid "] Nothing going on... " +#~ msgstr "] Nichts passiert... " + +#~ msgid "] Pushing changes..." +#~ msgstr "] übergebe Änderungen..." + +#~ msgid "] Changes pushed." +#~ msgstr "] Änderungen übergeben." + +#~ msgid "new file:" +#~ msgstr "neue Datei:" + +#~ msgid "modified:" +#~ msgstr "geändert:" + +#~ msgid "renamed:" +#~ msgstr "umbenannt:" + +#~ msgid "deleted:" +#~ msgstr "gelöscht:" + +#~ msgid "added ‘" +#~ msgstr "hinzugefügt " + +#~ msgid "#\tnew file:" +#~ msgstr "#\tneue Datei:" + +#~ msgid "’ and " +#~ msgstr "’ und " + +#~ msgid " more." +#~ msgstr " mehr." + +#~ msgid "edited ‘" +#~ msgstr "editiert ‘" + +#~ msgid "#\tmodified:" +#~ msgstr "#\tmodifiziert:" + +#~ msgid "deleted ‘" +#~ msgstr "gelöscht ‘" + +#~ msgid "#\tdeleted:" +#~ msgstr "#\tgelöscht:" + +#~ msgid "renamed ‘" +#~ msgstr "umbenannt ‘" + +#~ msgid "#\trenamed:" +#~ msgstr "#\tumbenannt:" + +#~ msgid "’ to ‘" +#~ msgstr "‘ zu ‘" + +#~ msgid "Open Sharing Folder" +#~ msgstr "Öffne gemeinsamen Ornder" + +#~ msgid "Happenings in ‘" +#~ msgstr "Ereignis in ‘" + +#~ msgid "document-edited" +#~ msgstr "Dokument editiert" + +#~ msgid " added ‘" +#~ msgstr " hinzugefügt ‘" + +#~ msgid "document-added" +#~ msgstr "Dokument hinzugefügt" + +#~ msgid " deleted ‘" +#~ msgstr " gelöscht ‘" + +#~ msgid "document-removed" +#~ msgstr "Dokument gelöscht" + +#~ msgid " moved ‘" +#~ msgstr " verschoben ‘" + +#~ msgid " renamed ‘" +#~ msgstr " umbenannt ‘" + +#~ msgid "document-moved" +#~ msgstr "Dokument verschoben" From 085c3ae5fe3906bbd2e86817ff8908032e7d634f Mon Sep 17 00:00:00 2001 From: mlettner Date: Mon, 21 Jun 2010 13:55:50 +0000 Subject: [PATCH 02/13] l10n: Updated German (de) translation to 77% New status: 27 messages complete with 3 fuzzies and 5 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/de.po | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/po/de.po b/po/de.po index 1e394a39..38961482 100644 --- a/po/de.po +++ b/po/de.po @@ -20,36 +20,35 @@ msgid "Address of remote SparkleShare folder:" msgstr "Adresse des entfernten SparkleShare-Verzeichnis:" #: ../SparkleShare/SparkleDialog.cs:81 -#, fuzzy msgid "Add Folder" -msgstr "Ordner hinzufügen" +msgstr "Verzeichnis hinzufügen" #: ../SparkleShare/SparkleDialog.cs:126 #, csharp-format msgid "Syncing folder ‘{0}’" -msgstr "" +msgstr "Verzeichnis »{0}« wird synchronisiert" #: ../SparkleShare/SparkleDialog.cs:127 msgid "SparkleShare will notify you when this is done." -msgstr "" +msgstr "SparkleShare wird Sie benachrichtigen sobald diese Aktion abgeschlossen ist." #: ../SparkleShare/SparkleDialog.cs:129 msgid "Dismiss" -msgstr "" +msgstr "Schließen" #: ../SparkleShare/SparkleDialog.cs:156 #, csharp-format msgid "Something went wrong while syncing ‘{0}’" -msgstr "" +msgstr "Bei der Synchronisierung von »{0}« ist ein Fehler aufgetreten" #: ../SparkleShare/SparkleDialog.cs:166 msgid "Try Again…" -msgstr "" +msgstr "Erneut versuchen …" #: ../SparkleShare/SparkleDialog.cs:196 #, csharp-format msgid "Successfully synced folder ‘{0}’" -msgstr "" +msgstr "Verzeichnis »{0}« erfolgreich synchronisiert" #: ../SparkleShare/SparkleDialog.cs:197 msgid "Now make great stuff happen!" @@ -78,28 +77,29 @@ msgid "Things will go utterly wrong." msgstr "Die Dinge werden völlig daneben gehen." #: ../SparkleShare/SparkleShare.cs:87 +#, fuzzy msgid "SparkleShare Copyright (C) 2010 Hylke Bons" -msgstr "" +msgstr "SparkleShare Copyright (C) 2010 Hylke Bons" #: ../SparkleShare/SparkleShare.cs:89 msgid "This program comes with ABSOLUTELY NO WARRANTY." -msgstr "" +msgstr "Diese Anwendung wird OHNE IRGENDEINE GARANTIE veröffentlicht." #: ../SparkleShare/SparkleShare.cs:90 msgid "This is free software, and you are welcome to redistribute it " -msgstr "" +msgstr "Dies ist freie Software. Sie können es weitergeben und/oder modifizieren" #: ../SparkleShare/SparkleShare.cs:91 msgid "under certain conditions. Please read the GNU GPLv3 for details." -msgstr "" +msgstr "unter bestimmten Bedingungen. Bitte lesen Sie dazu die GNU GPLv3 für weitere Details." #: ../SparkleShare/SparkleShare.cs:93 msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories." -msgstr "" +msgstr "SparkleShare synchronisiert das Verzeichnis ~/SparkleShare mit entfernten Verzeichnissen" #: ../SparkleShare/SparkleShare.cs:95 msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..." -msgstr "" +msgstr "Verwendung: sparkleshare [start|stop|restart] [OPTION]..." #: ../SparkleShare/SparkleShare.cs:96 msgid "Sync SparkleShare folder with remote repositories." @@ -107,19 +107,19 @@ msgstr "Synchronisiere SparkleShare Ordner mit entfernten Repositories." #: ../SparkleShare/SparkleShare.cs:98 msgid "Arguments:" -msgstr "" +msgstr "Parameter:" #: ../SparkleShare/SparkleShare.cs:99 msgid "\t -d, --disable-gui\tDon't show the notification icon." -msgstr "" +msgstr "\t -d, --disable-gui\tBenachrichtigungs-Symbol nicht anzeigen." #: ../SparkleShare/SparkleShare.cs:100 msgid "\t -h, --help\t\tDisplay this help text." -msgstr "" +msgstr "\t -h, --help\t\tDiesen Hilfe-Text nicht anzeigen." #: ../SparkleShare/SparkleStatusIcon.cs:69 msgid "Error syncing" -msgstr "" +msgstr "Fehler bei der Synchronisierung" #: ../SparkleShare/SparkleStatusIcon.cs:72 msgid "Everything is up to date" @@ -127,12 +127,11 @@ msgstr "Alles ist am aktuellsten Stand" #: ../SparkleShare/SparkleStatusIcon.cs:75 msgid "Syncing…" -msgstr "" +msgstr "Synchronisieren …" #: ../SparkleShare/SparkleStatusIcon.cs:116 -#, fuzzy msgid "Add a Remote Folder…" -msgstr "Ordner hinzufügen" +msgstr "Ein entferntes Verzeichnis hinzufügen" #: ../SparkleShare/SparkleStatusIcon.cs:124 msgid "Show Notifications" From 1d0511d145b6cce38da0ab406a0627869553607d Mon Sep 17 00:00:00 2001 From: mlettner Date: Mon, 21 Jun 2010 13:58:52 +0000 Subject: [PATCH 03/13] l10n: Updated German (de) translation to 97% New status: 34 messages complete with 0 fuzzies and 1 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/de.po | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/po/de.po b/po/de.po index 38961482..19fbc511 100644 --- a/po/de.po +++ b/po/de.po @@ -77,7 +77,6 @@ msgid "Things will go utterly wrong." msgstr "Die Dinge werden völlig daneben gehen." #: ../SparkleShare/SparkleShare.cs:87 -#, fuzzy msgid "SparkleShare Copyright (C) 2010 Hylke Bons" msgstr "SparkleShare Copyright (C) 2010 Hylke Bons" @@ -135,36 +134,32 @@ msgstr "Ein entferntes Verzeichnis hinzufügen" #: ../SparkleShare/SparkleStatusIcon.cs:124 msgid "Show Notifications" -msgstr "" +msgstr "Benachrichtigungen anzeigen" #: ../SparkleShare/SparkleStatusIcon.cs:142 msgid "Visit Website" -msgstr "" +msgstr "Website besuchen" #: ../SparkleShare/SparkleStatusIcon.cs:159 msgid "Quit" -msgstr "" +msgstr "Beenden" #: ../SparkleShare/SparkleUI.cs:134 msgid "Welcome to SparkleShare!" msgstr "Wilkommen bei SparkleShare!" #: ../SparkleShare/SparkleUI.cs:135 -#, fuzzy msgid "You don't have any folders set up yet." -msgstr "" -"Bis jetyt sind keine Ordner angelegt.\n" -"Bitte erstelle welche im SparkleShare Ordner." +msgstr "Sie haben noch keine Verzeichnisse konfiguriert." #: ../SparkleShare/SparkleUI.cs:138 -#, fuzzy msgid "Add a Folder…" -msgstr "Ordner hinzufügen" +msgstr "Ein Verzeichnis hinzufügen …" #: ../SparkleShare/SparkleWindow.cs:50 #, csharp-format msgid "‘{0}’ on {1}" -msgstr "" +msgstr "»{0}« an {1}" #~ msgid "folder-sparkleshare" #~ msgstr "ordner-sparkleshare" From 7dd7007c83386e527eb8e93ed6292cf634b129da Mon Sep 17 00:00:00 2001 From: mlettner Date: Mon, 21 Jun 2010 14:00:53 +0000 Subject: [PATCH 04/13] l10n: Updated German (de) translation to 97% New status: 34 messages complete with 0 fuzzies and 1 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/de.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/de.po b/po/de.po index 19fbc511..a954cd2b 100644 --- a/po/de.po +++ b/po/de.po @@ -58,23 +58,23 @@ msgstr "" #: ../SparkleShare/SparkleDialog.cs:199 ../SparkleShare/SparkleRepo.cs:316 #: ../SparkleShare/SparkleWindow.cs:62 msgid "Open Folder" -msgstr "Öffne Ordner" +msgstr "Verzeichnis öffnen" #: ../SparkleShare/SparkleShare.cs:50 msgid "Git wasn't found." -msgstr "Git nicht gefunden." +msgstr "Git konnte nicht gefunden werden." #: ../SparkleShare/SparkleShare.cs:51 msgid "You can get Git from http://git-scm.com/." -msgstr "Git ist auf http://git-scm.com/ verfügbar." +msgstr "Sie können Git auf http://git-scm.com/ herunterladen." #: ../SparkleShare/SparkleShare.cs:58 msgid "Sorry, you can't run SparkleShare with these permissions." -msgstr "SparkleShare kann leider nicht mit diesen Rechten laufen." +msgstr "Entschuldigung, SparkleShare kann mit diesen Rechten nicht ausgeführt werden." #: ../SparkleShare/SparkleShare.cs:59 msgid "Things will go utterly wrong." -msgstr "Die Dinge werden völlig daneben gehen." +msgstr "Vieles würde nicht richtig funktionieren." #: ../SparkleShare/SparkleShare.cs:87 msgid "SparkleShare Copyright (C) 2010 Hylke Bons" From 7bb87ef3549c695c1583c4a42626c6856d5f9401 Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sun, 20 Jun 2010 14:40:39 +0100 Subject: [PATCH 05/13] add a todo --- SparkleShare/SparkleDialog.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/SparkleShare/SparkleDialog.cs b/SparkleShare/SparkleDialog.cs index 6ab72681..b3af6c27 100644 --- a/SparkleShare/SparkleDialog.cs +++ b/SparkleShare/SparkleDialog.cs @@ -140,6 +140,7 @@ namespace SparkleShare { 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; From 187d4dc68f65e9244c4259f6a78d279248d4d997 Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sun, 20 Jun 2010 14:57:02 +0100 Subject: [PATCH 06/13] some cleanups --- SparkleShare/SparkleHelpers.cs | 6 +- SparkleShare/SparkleUI.cs | 249 +++++++++++++++++++++++++++++++++ 2 files changed, 252 insertions(+), 3 deletions(-) create mode 100644 SparkleShare/SparkleUI.cs diff --git a/SparkleShare/SparkleHelpers.cs b/SparkleShare/SparkleHelpers.cs index 134eddd7..f37f0d01 100644 --- a/SparkleShare/SparkleHelpers.cs +++ b/SparkleShare/SparkleHelpers.cs @@ -86,7 +86,7 @@ namespace SparkleShare { // Convert the more human readable sparkle:// url to // something Git can use // Example: sparkle://gitorious.org/sparkleshare - // to ssh://git@ + // to ssh://git@gitorious.org/sparkleshare public static string SparkleToGitUrl (string Url) { if (Url.Substring (0, 10).Equals ("sparkle://")) @@ -94,7 +94,7 @@ namespace SparkleShare { // Usually don't need the ".git" at the end. // It looks ugly as a folder too. - if (Url.Substring (Url.Length - 4, 4).Equals (".git")) + if (Url.Substring (-4).Equals (".git")) Url = Url.Substring (0, Url.Length - 4); return Url; @@ -136,7 +136,7 @@ namespace SparkleShare { if (ShowDebugInfo) { DateTime DateTime = new DateTime (); string TimeStamp = DateTime.Now.ToString ("HH:mm:ss"); - Console.WriteLine ("[" + TimeStamp + "]" + "[" + Type + "]" + Message); + Console.WriteLine ("[" + TimeStamp + "]" + "[" + Type + "] " + Message); } } diff --git a/SparkleShare/SparkleUI.cs b/SparkleShare/SparkleUI.cs new file mode 100644 index 00000000..dcc30808 --- /dev/null +++ b/SparkleShare/SparkleUI.cs @@ -0,0 +1,249 @@ +// SparkleShare, an instant update workflow to Git. +// Copyright (C) 2010 Hylke Bons +// +// 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 . + +using Gtk; +using Mono.Unix; +using SparkleShare; +using System; +using System.Diagnostics; +using System.IO; + +namespace SparkleShare { + + public class SparkleUI + { + + private Process Process; + + // Short alias for the translations + public static string _ (string s) + { + return Catalog.GetString (s); + } + + public static SparkleStatusIcon NotificationIcon; + + public SparkleUI (bool HideUI) + { + + Process = new Process (); + Process.EnableRaisingEvents = true; + Process.StartInfo.RedirectStandardOutput = true; + Process.StartInfo.UseShellExecute = false; + + string SparklePath = SparklePaths.SparklePath; + + + // Create .desktop entry in autostart folder to + // start SparkleShare on each login + switch (SparklePlatform.Name) { + case "GNOME": + + string autostart_path = SparkleHelpers.CombineMore (SparklePaths.HomePath, ".config", "autostart"); + string desktopfile_path = SparkleHelpers.CombineMore (autostart_path, "sparkleshare.desktop"); + + if (!File.Exists (desktopfile_path)) { + if (!Directory.Exists (autostart_path)) + Directory.CreateDirectory (autostart_path); + TextWriter writer = new StreamWriter (desktopfile_path); + writer.WriteLine ("[Desktop Entry]\n" + + "Name=SparkleShare\n" + + "Exec=sparkleshare start\n" + + "Icon=folder-sparkleshare\n" + + "Terminal=false\n" + + "X-GNOME-Autostart-enabled=true"); + writer.Close (); + SparkleHelpers.DebugInfo ("Config", "Created '" + desktopfile_path + "'"); + } + + break; + + } + + + // Create 'SparkleShare' folder in the user's home folder + // if it's not there already + if (!Directory.Exists (SparklePath)) { + + Directory.CreateDirectory (SparklePath); + SparkleHelpers.DebugInfo ("Config", "Created '" + SparklePath + "'"); + + // Add a special icon to the SparkleShare folder + switch (SparklePlatform.Name) { + case "GNOME": + + Process.StartInfo.FileName = "gvfs-set-attribute"; + Process.StartInfo.Arguments = SparklePath + " metadata::custom-icon " + + "file:///usr/share/icons/hicolor/48x48/places/" + + "folder-sparkleshare.png"; + Process.Start (); + + break; + + } + + // Add the SparkleShare folder to the bookmarks + switch (SparklePlatform.Name) { + case "GNOME": + + string BookmarksFileName = + Path.Combine (SparklePaths.HomePath, ".gtk-bookmarks"); + + if (File.Exists (BookmarksFileName)) { + TextWriter TextWriter = File.AppendText (BookmarksFileName); + TextWriter.WriteLine ("file://" + SparklePath + " SparkleShare"); + TextWriter.Close (); + } + + break; + + } + + } + + // Create a directory to store temporary files in + if (!Directory.Exists (SparklePaths.SparkleTmpPath)) + Directory.CreateDirectory (SparklePaths.SparkleTmpPath); + + if (!HideUI) + NotificationIcon = new SparkleStatusIcon (); + + UpdateRepositories (); + + // Don't create the window and status + // icon when --disable-gui was given + if (!HideUI) { + + // Show a notification if there are no folders yet + if (SparkleShare.Repositories.Length == 0) { + + SparkleBubble NoFoldersBubble; + NoFoldersBubble = new SparkleBubble (_("Welcome to SparkleShare!"), + _("You don't have any folders set up yet.")); + + NoFoldersBubble.IconName = "folder-sparkleshare"; + NoFoldersBubble.AddAction ("", _("Add a Folder…"), delegate { + SparkleDialog SparkleDialog = new SparkleDialog (""); + SparkleDialog.ShowAll (); +/* Process.StartInfo.FileName = "xdg-open"; + Process.StartInfo.Arguments = SparklePaths.SparklePath; + Process.Start (); +*/ + } ); + + NoFoldersBubble.Show (); + + } + + } + + + // TODO: This crashes +/* + + // Watch the SparkleShare folder and pop up the + // Add dialog when a new folder is created + + FileSystemWatcher Watcher = new FileSystemWatcher (SparklePaths.SparklePath); + Watcher.IncludeSubdirectories = false; + Watcher.EnableRaisingEvents = true; + Watcher.Created += delegate (object o, FileSystemEventArgs args) { + WatcherChangeTypes wct = args.ChangeType; + SparkleHelpers.DebugInfo ("Event", + wct.ToString () + + " '" + args.Name + "'"); + SparkleDialog SparkleDialog = new SparkleDialog (); + SparkleDialog.ShowAll (); + }; + + // When a repo folder is deleted, don't sync and update the UI + Watcher.Deleted += delegate (object o, FileSystemEventArgs args) { + WatcherChangeTypes wct = args.ChangeType; + SparkleHelpers.DebugInfo ("Event", + wct.ToString () + + " '" + args.Name + "'"); + SparkleUI SparkleUI = new SparkleUI (); + SparkleUI.ShowAll (); + }; +*/ + + // Create place to store configuration user's home folder + string ConfigPath = SparklePaths.SparkleConfigPath; + string AvatarPath = SparklePaths.SparkleAvatarPath; + + if (!Directory.Exists (ConfigPath)) { + + Directory.CreateDirectory (ConfigPath); + SparkleHelpers.DebugInfo ("Config", "Created '" + ConfigPath + "'"); + + // Create a place to store the avatars + Directory.CreateDirectory (AvatarPath); + SparkleHelpers.DebugInfo ("Config", "Created '" + AvatarPath + "'"); + + } + + string NotifySettingFile = SparkleHelpers.CombineMore (SparklePaths.SparkleConfigPath, + "sparkleshare.notify"); + + // Enable notifications by default + if (!File.Exists (NotifySettingFile)) + File.Create (NotifySettingFile); + + } + + + public void UpdateRepositories () + { + + string SparklePath = SparklePaths.SparklePath; + // Get all the repos in ~/SparkleShare + SparkleRepo [] TmpRepos = new SparkleRepo [Directory.GetDirectories (SparklePath).Length]; + + int FolderCount = 0; + foreach (string Folder in Directory.GetDirectories (SparklePath)) { + + // Check if the folder is a git repo + if (Directory.Exists (SparkleHelpers.CombineMore (Folder, ".git"))) { + + TmpRepos [FolderCount] = new SparkleRepo (Folder); + FolderCount++; + + // TODO: emblems don't show up in nautilus + // Attach emblems + switch (SparklePlatform.Name) { + case "GNOME": + + Process.StartInfo.FileName = "gvfs-set-attribute"; + Process.StartInfo.Arguments = "-t string \"" + Folder + + "\" metadata::emblems [synced]"; + Process.Start (); + + break; + + } + + } + + } + + SparkleShare.Repositories = new SparkleRepo [FolderCount]; + Array.Copy (TmpRepos, SparkleShare.Repositories, FolderCount); + + } + + } + +} From 616e7cbcf1bcde671e3fe1b4daf971e41afad7be Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sun, 20 Jun 2010 22:05:11 +0100 Subject: [PATCH 07/13] Warn the user for speed issues when uploading certain types of images --- SparkleShare/SparkleHelpers.cs | 35 ++- SparkleShare/SparkleRepo.cs | 462 +++++++++++++++++++++++++++++++++ 2 files changed, 489 insertions(+), 8 deletions(-) create mode 100644 SparkleShare/SparkleRepo.cs diff --git a/SparkleShare/SparkleHelpers.cs b/SparkleShare/SparkleHelpers.cs index f37f0d01..4c418064 100644 --- a/SparkleShare/SparkleHelpers.cs +++ b/SparkleShare/SparkleHelpers.cs @@ -15,6 +15,7 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using System; using System.IO; using System.Net; @@ -27,6 +28,11 @@ namespace SparkleShare { public static class SparkleHelpers { + public static string _ (string s) + { + return Catalog.GetString (s); + } + // Get's the avatar for a specific email address and size public static Gdk.Pixbuf GetAvatar (string Email, int Size) { @@ -151,52 +157,65 @@ namespace SparkleShare { if (time_span <= TimeSpan.FromSeconds (60)) { if (time_span.Seconds > 1) - return string.Format ("{0} seconds ago", time_span.Seconds); + return string.Format (_("{0} seconds ago"), time_span.Seconds); else return "a second ago"; } if (time_span <= TimeSpan.FromSeconds (60)) { if (time_span.Minutes > 1) - return string.Format ("about {0} minutes ago", time_span.Minutes); + return string.Format (_("about {0} minutes ago"), time_span.Minutes); else return "a minute ago"; } if (time_span <= TimeSpan.FromHours(24)) { if (time_span.Hours > 1) - return string.Format ("about {0} minutes ago", time_span.Hours); + return string.Format (_("about {0} minutes ago"), time_span.Hours); else return "about an hour ago"; } if (time_span <= TimeSpan.FromDays(30)) { if (time_span.Days > 1) - return string.Format ("{0} days ago", time_span.Days); + return string.Format (_("{0} days ago"), time_span.Days); else return "yesterday"; } if (time_span <= TimeSpan.FromDays(365)) { if (time_span.Days > 1) - return string.Format ("{0} months ago", (int) time_span.Days / 30); + return string.Format (_("{0} months ago"), (int) time_span.Days / 30); else return "a month ago"; } if (time_span <= TimeSpan.FromDays(365)) { if (time_span.Days > 1) - return string.Format ("{0} months ago", (int) time_span.Days / 365); + return string.Format (_("{0} months ago"), (int) time_span.Days / 365); else return "a month ago"; } if (time_span.Days > 365) - return string.Format ("{0} months ago", (int) time_span.Days / 365); + return string.Format (_("{0} months ago"), (int) time_span.Days / 365); else return "a year ago"; - } + } + + // Checks for unicorns + public static void CheckForUnicorns (string s) { + s = s.ToLower (); + if (s.Contains ("unicorn") && (s.Contains (".png") || s.Contains (".jpg"))) { + string title = _("Hold your ponies!"); + string subtext = _("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."); + SparkleBubble unicorn_bubble = new SparkleBubble (title, subtext); + unicorn_bubble.Show (); + } + } } diff --git a/SparkleShare/SparkleRepo.cs b/SparkleShare/SparkleRepo.cs new file mode 100644 index 00000000..d9dac422 --- /dev/null +++ b/SparkleShare/SparkleRepo.cs @@ -0,0 +1,462 @@ +// SparkleShare, an instant update workflow to Git. +// Copyright (C) 2010 Hylke Bons +// +// 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 . + +using Gtk; +using Mono.Unix; +using SparkleShare; +using System; +using System.Diagnostics; +using System.IO; +using System.Text.RegularExpressions; +using System.Timers; + +namespace SparkleShare { + + // SparkleRepo class holds repository information and timers + public class SparkleRepo + { + + private Process Process; + private Timer FetchTimer; + private Timer BufferTimer; + private FileSystemWatcher Watcher; + private bool HasChanged = false; + private DateTime LastChange; + + public string Name; + public string Domain; + public string LocalPath; + public string RemoteOriginUrl; + public string CurrentHash; + + public string UserEmail; + public string UserName; + + public static string _ (string s) + { + return Catalog.GetString (s); + } + + public SparkleRepo (string RepoPath) + { + + Process = new Process (); + Process.EnableRaisingEvents = true; + Process.StartInfo.RedirectStandardOutput = true; + Process.StartInfo.UseShellExecute = false; + + // Get the repository's path, example: "/home/user/SparkleShare/repo" + LocalPath = RepoPath; + Process.StartInfo.WorkingDirectory = LocalPath; + + // Get user.name, example: "User Name" + UnixUserInfo UnixUserInfo = new UnixUserInfo (UnixEnvironment.UserName); + if (UnixUserInfo.RealName.Equals ("")) + UserName = "Anonymous"; + else + UserName = UnixUserInfo.RealName; + + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config user.name " + UserName; + Process.Start (); + + // Get user.email, example: "user@github.com" + UserEmail = "not.set@git-scm.com"; + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config --get user.email"; + Process.Start (); + UserEmail = Process.StandardOutput.ReadToEnd ().Trim (); + + // Get remote.origin.url, example: "ssh://git@github.com/user/repo" + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "config --get remote.origin.url"; + Process.Start (); + RemoteOriginUrl = Process.StandardOutput.ReadToEnd ().Trim (); + + // Get the repository name, example: "Project" + Name = Path.GetFileName (LocalPath); + + // Get the domain, example: "github.com" + Domain = RemoteOriginUrl; + Domain = Domain.Substring (Domain.IndexOf ("@") + 1); + if (Domain.IndexOf (":") > -1) + Domain = Domain.Substring (0, Domain.IndexOf (":")); + else + Domain = Domain.Substring (0, Domain.IndexOf ("/")); + + // Get hash of the current commit + Process.StartInfo.FileName = "git"; + Process.StartInfo.Arguments = "rev-list --max-count=1 HEAD"; + Process.Start (); + CurrentHash = Process.StandardOutput.ReadToEnd ().Trim (); + + // Watch the repository's folder + Watcher = new FileSystemWatcher (LocalPath); + Watcher.IncludeSubdirectories = true; + Watcher.EnableRaisingEvents = true; + Watcher.Filter = "*"; + Watcher.Changed += new FileSystemEventHandler (OnFileActivity); + Watcher.Created += new FileSystemEventHandler (OnFileActivity); + Watcher.Deleted += new FileSystemEventHandler (OnFileActivity); + + // Fetch remote changes every 20 seconds + FetchTimer = new Timer (); + FetchTimer.Interval = 20000; + FetchTimer.Elapsed += delegate { + Fetch (); + }; + + FetchTimer.Start (); + + BufferTimer = new Timer (); + BufferTimer.Interval = 4000; + BufferTimer.Elapsed += delegate (object o, ElapsedEventArgs args) { + SparkleHelpers.DebugInfo ("Buffer", "[" + Name + "] Checking for changes."); + + if (HasChanged) { + SparkleHelpers.DebugInfo ("Buffer", "[" + Name + "] Changes found, checking if settled."); + DateTime now = DateTime.UtcNow; + TimeSpan changed = new TimeSpan (now.Ticks - LastChange.Ticks); + if (changed.TotalMilliseconds > 5000) { + HasChanged = false; + SparkleHelpers.DebugInfo ("Buffer", "[" + Name + "] Changes have settled, adding."); + AddCommitAndPush (); + } + } + }; + + BufferTimer.Start (); + + // Add everything that changed + // since SparkleShare was stopped + + AddCommitAndPush (); + + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Nothing going on..."); + + } + + // Starts a time buffer when something changes + private void OnFileActivity (object o, FileSystemEventArgs args) + { + WatcherChangeTypes wct = args.ChangeType; + if (!ShouldIgnore (args.Name)) { + SparkleHelpers.DebugInfo ("Event", "[" + Name + "] " + wct.ToString () + " '" + args.Name + "'"); + FetchTimer.Stop (); + LastChange = DateTime.UtcNow; + HasChanged = true; + } + } + + // When there are changes we generally want to Add, Commit and Push + // so this method does them all with appropriate timers, etc switched off + public void AddCommitAndPush () + { + BufferTimer.Stop (); + FetchTimer.Stop (); + + Add (); + string Message = FormatCommitMessage (); + if (!Message.Equals ("")) { + Commit (Message); + Fetch (); + Push (); + } + + FetchTimer.Start (); + BufferTimer.Start (); + + SparkleHelpers.CheckForUnicorns (Message); + + } + + // Stages the made changes + private void Add () + { + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Staging changes..."); + Process.StartInfo.Arguments = "add --all"; + Process.Start (); + Process.WaitForExit (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Changes staged."); +// SparkleUI.NotificationIcon.SetSyncingState (); +// SparkleUI.NotificationIcon.SetIdleState (); + } + + // Commits the made changes + public void Commit (string Message) + { + SparkleHelpers.DebugInfo ("Commit", "[" + Name + "] " + Message); + Process.StartInfo.Arguments = "commit -m \"" + Message + "\""; + Process.Start (); + Process.WaitForExit (); + } + + // Fetches changes from the remote repo + public void Fetch () + { + FetchTimer.Stop (); +// SparkleUI.NotificationIcon.SetSyncingState (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Fetching changes..."); + Process.StartInfo.Arguments = "fetch -v"; + Process.Start (); + string Output = Process.StandardOutput.ReadToEnd ().Trim (); // TODO: This doesn't work :( + Process.WaitForExit (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Changes fetched."); + if (!Output.Contains ("up to date")) + Rebase (); +// SparkleUI.NotificationIcon.SetIdleState (); + FetchTimer.Start (); + } + + // Merges the fetched changes + public void Rebase () + { + + Watcher.EnableRaisingEvents = false; + + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Rebasing changes..."); + Process.StartInfo.Arguments = "rebase origin"; + Process.WaitForExit (); + Process.Start (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Changes rebased."); + string Output = Process.StandardOutput.ReadToEnd ().Trim (); + + // Show notification if there are updates + if (!Output.Contains ("up to date")) { + + if (Output.Contains ("Failed to merge")) { + + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Resolving conflict..."); + + Process.StartInfo.Arguments = "status"; + Process.WaitForExit (); + Process.Start (); + Output = Process.StandardOutput.ReadToEnd ().Trim (); + + foreach (string Line in Regex.Split (Output, "\n")) { + + if (Line.Contains ("needs merge")) { + + string ProblemFileName = Line.Substring (Line.IndexOf (": needs merge")); + + Process.StartInfo.Arguments = "checkout --ours " + ProblemFileName; + Process.WaitForExit (); + Process.Start (); + + DateTime DateTime = new DateTime (); + string TimeStamp = DateTime.Now.ToString ("H:mm, d MMM yyyy"); + + File.Move (ProblemFileName, + ProblemFileName + " (" + UserName + " - " + TimeStamp + ")"); + + Process.StartInfo.Arguments + = "checkout --theirs " + ProblemFileName; + Process.WaitForExit (); + Process.Start (); + + string ConflictTitle = "A mid-air collision happened!\n"; + string ConflictSubtext = "Don't worry, SparkleShare made\na copy of the conflicting files."; + + SparkleBubble ConflictBubble = + new SparkleBubble(_(ConflictTitle), _(ConflictSubtext)); + + ConflictBubble.Show (); + + } + + } + + Add (); + + Process.StartInfo.Arguments = "rebase --continue"; + Process.WaitForExit (); + Process.Start (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Conflict resolved."); + Push (); + Fetch (); + + } + + // Get the last committer e-mail + Process.StartInfo.Arguments = "log --format=\"%ae\" -1"; + Process.Start (); + string LastCommitEmail = Process.StandardOutput.ReadToEnd ().Trim (); + + // Get the last commit message + Process.StartInfo.Arguments = "log --format=\"%s\" -1"; + Process.Start (); + string LastCommitMessage = Process.StandardOutput.ReadToEnd ().Trim (); + + // Get the last commiter + Process.StartInfo.Arguments = "log --format=\"%an\" -1"; + Process.Start (); + string LastCommitUserName = Process.StandardOutput.ReadToEnd ().Trim (); + + string NotifySettingFile = SparkleHelpers.CombineMore (SparklePaths.SparkleConfigPath, + "sparkleshare.notify"); + + if (File.Exists (NotifySettingFile)) { + + SparkleHelpers.DebugInfo ("Notification", "[" + Name + "] Showing message..."); + + SparkleBubble StuffChangedBubble = new SparkleBubble (LastCommitUserName, LastCommitMessage); + StuffChangedBubble.Icon = SparkleHelpers.GetAvatar (LastCommitEmail, 32); + + // Add a button to open the folder where the changed file is + StuffChangedBubble.AddAction ("", _("Open Folder"), + delegate { + switch (SparklePlatform.Name) { + case "GNOME": + Process.StartInfo.FileName = "xdg-open"; + break; + case "OSX": + Process.StartInfo.FileName = "open"; + break; + } + Process.StartInfo.Arguments = LocalPath; + Process.Start (); + Process.StartInfo.FileName = "git"; + } ); + + StuffChangedBubble.Show (); + + } + + } + + Watcher.EnableRaisingEvents = true; + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Nothing going on..."); + + } + + // Pushes the changes to the remote repo + public void Push () + { + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Pushing changes..."); + Process.StartInfo.Arguments = "push"; + Process.Start (); + Process.WaitForExit (); + SparkleHelpers.DebugInfo ("Git", "[" + Name + "] Changes pushed."); +// SparkleUI.NotificationIcon.SetIdleState (); + } + + // Ignores Repos, dotfiles, swap files and the like. + private bool ShouldIgnore (string FileName) { + if (FileName.Substring (0, 1).Equals (".") || + FileName.Contains (".lock") || + FileName.Contains (".git") || + FileName.Contains ("/.") || + Directory.Exists (LocalPath + FileName)) + return true; // Yes, ignore it. + else if (FileName.Length > 3 && FileName.Substring (FileName.Length - 4).Equals (".swp")) + return true; + else return false; + } + + // Creates a pretty commit message based on what has changed + private string FormatCommitMessage () + { + + bool DoneAddCommit = false; + bool DoneEditCommit = false; + bool DoneRenameCommit = false; + bool DoneDeleteCommit = false; + int FilesAdded = 0; + int FilesEdited = 0; + int FilesRenamed = 0; + int FilesDeleted = 0; + + Process.StartInfo.Arguments = "status"; + Process.Start (); + string Output = Process.StandardOutput.ReadToEnd (); + + foreach (string Line in Regex.Split (Output, "\n")) { + if (Line.IndexOf ("new file:") > -1) + FilesAdded++; + if (Line.IndexOf ("modified:") > -1) + FilesEdited++; + if (Line.IndexOf ("renamed:") > -1) + FilesRenamed++; + if (Line.IndexOf ("deleted:") > -1) + FilesDeleted++; + } + + foreach (string Line in Regex.Split (Output, "\n")) { + + // Format message for when files are added, + // example: "added 'file' and 3 more." + if (Line.IndexOf ("new file:") > -1 && !DoneAddCommit) { + DoneAddCommit = true; + if (FilesAdded > 1) + return "added ‘" + + Line.Replace ("#\tnew file:", "").Trim () + + "’\nand " + (FilesAdded - 1) + " more."; + else + return "added ‘" + + Line.Replace ("#\tnew file:", "").Trim () + "’."; + } + + // Format message for when files are edited, + // example: "edited 'file'." + if (Line.IndexOf ("modified:") > -1 && !DoneEditCommit) { + DoneEditCommit = true; + if (FilesEdited > 1) + return "edited ‘" + + Line.Replace ("#\tmodified:", "").Trim () + + "’\nand " + (FilesEdited - 1) + " more."; + else + return "edited ‘" + + Line.Replace ("#\tmodified:", "").Trim () + "’."; + } + + // Format message for when files are edited, + // example: "deleted 'file'." + if (Line.IndexOf ("deleted:") > -1 && !DoneDeleteCommit) { + DoneDeleteCommit = true; + if (FilesDeleted > 1) + return "deleted ‘" + + Line.Replace ("#\tdeleted:", "").Trim () + + "’\nand " + (FilesDeleted - 1) + " more."; + else + return "deleted ‘" + + Line.Replace ("#\tdeleted:", "").Trim () + "’."; + } + + // Format message for when files are renamed, + // example: "renamed 'file' to 'new name'." + if (Line.IndexOf ("renamed:") > -1 && !DoneRenameCommit) { + DoneDeleteCommit = true; + if (FilesRenamed > 1) + return "renamed ‘" + + Line.Replace ("#\trenamed:", "").Trim ().Replace + (" -> ", "’ to ‘") + "’ and " + (FilesDeleted - 1) + + " more."; + else + return "renamed ‘" + + Line.Replace ("#\trenamed:", "").Trim ().Replace + (" -> ", "’ to ‘") + "’."; + } + + } + + // Nothing happened: + return ""; + + } + + } + +} From 8c052911f1080473334243bd3da722a10c85354b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Jerna=C5=9B?= Date: Mon, 21 Jun 2010 15:30:34 +0200 Subject: [PATCH 08/13] Fix plural form handling in ToRelativeDate() --- SparkleShare/SparkleHelpers.cs | 36 +++++++--------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/SparkleShare/SparkleHelpers.cs b/SparkleShare/SparkleHelpers.cs index 4c418064..a1c912c9 100644 --- a/SparkleShare/SparkleHelpers.cs +++ b/SparkleShare/SparkleHelpers.cs @@ -156,52 +156,30 @@ namespace SparkleShare { time_span = DateTime.Now - date_time; if (time_span <= TimeSpan.FromSeconds (60)) { - if (time_span.Seconds > 1) - return string.Format (_("{0} seconds ago"), time_span.Seconds); - else - return "a second ago"; + return string.Format (Catalog.GetPluralString ("a second ago", "{0} seconds ago", time_span.Seconds), time_span.Seconds); } if (time_span <= TimeSpan.FromSeconds (60)) { - if (time_span.Minutes > 1) - return string.Format (_("about {0} minutes ago"), time_span.Minutes); - else - return "a minute ago"; + return string.Format (Catalog.GetPluralString ("a minute ago", "about {0} minutes ago", time_span.Minutes), time_span.Minutes); } if (time_span <= TimeSpan.FromHours(24)) { - if (time_span.Hours > 1) - return string.Format (_("about {0} minutes ago"), time_span.Hours); - else - return "about an hour ago"; + return string.Format (Catalog.GetPluralString ("about an hour ago", "about {0} minutes ago", time_span.Hours), time_span.Hours); } if (time_span <= TimeSpan.FromDays(30)) { - if (time_span.Days > 1) - return string.Format (_("{0} days ago"), time_span.Days); - else - return "yesterday"; + return string.Format (Catalog.GetPluralString ("yesterday", "{0} days ago", time_span.Days), time_span.Days); } if (time_span <= TimeSpan.FromDays(365)) { - if (time_span.Days > 1) - return string.Format (_("{0} months ago"), (int) time_span.Days / 30); - else - return "a month ago"; + return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", time_span.Days), (int) time_span.Days / 30); } if (time_span <= TimeSpan.FromDays(365)) { - if (time_span.Days > 1) - return string.Format (_("{0} months ago"), (int) time_span.Days / 365); - else - return "a month ago"; + return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", time_span.Days), (int) time_span.Days / 365); } - if (time_span.Days > 365) - return string.Format (_("{0} months ago"), (int) time_span.Days / 365); - else - return "a year ago"; - + return string.Format (Catalog.GetPluralString ("a year ago", "{0} years ago", (int) time_span.Days / 365), (int) time_span.Days / 365); } // Checks for unicorns From 7ffb4ce3e7831e182875f0a75aba6c5aaa632e81 Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Mon, 21 Jun 2010 14:47:29 +0100 Subject: [PATCH 09/13] Use some whitespace so lines won't go over 120 characters --- SparkleShare/SparkleHelpers.cs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/SparkleShare/SparkleHelpers.cs b/SparkleShare/SparkleHelpers.cs index a1c912c9..073fa8f0 100644 --- a/SparkleShare/SparkleHelpers.cs +++ b/SparkleShare/SparkleHelpers.cs @@ -156,30 +156,44 @@ namespace SparkleShare { time_span = DateTime.Now - date_time; if (time_span <= TimeSpan.FromSeconds (60)) { - return string.Format (Catalog.GetPluralString ("a second ago", "{0} seconds ago", time_span.Seconds), time_span.Seconds); + return string.Format (Catalog.GetPluralString ("a second ago", "{0} seconds ago", + time_span.Seconds), + time_span.Seconds); } if (time_span <= TimeSpan.FromSeconds (60)) { - return string.Format (Catalog.GetPluralString ("a minute ago", "about {0} minutes ago", time_span.Minutes), time_span.Minutes); + return string.Format (Catalog.GetPluralString ("a minute ago", "about {0} minutes ago", + time_span.Minutes), + time_span.Minutes); } if (time_span <= TimeSpan.FromHours(24)) { - return string.Format (Catalog.GetPluralString ("about an hour ago", "about {0} minutes ago", time_span.Hours), time_span.Hours); + return string.Format (Catalog.GetPluralString ("about an hour ago", "about {0} minutes ago", + time_span.Hours), + time_span.Hours); } if (time_span <= TimeSpan.FromDays(30)) { - return string.Format (Catalog.GetPluralString ("yesterday", "{0} days ago", time_span.Days), time_span.Days); + return string.Format (Catalog.GetPluralString ("yesterday", "{0} days ago", + time_span.Days), + time_span.Days); } if (time_span <= TimeSpan.FromDays(365)) { - return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", time_span.Days), (int) time_span.Days / 30); + return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", + time_span.Days), + (int) time_span.Days / 30); } if (time_span <= TimeSpan.FromDays(365)) { - return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", time_span.Days), (int) time_span.Days / 365); + return string.Format (Catalog.GetPluralString ("a month ago", "{0} months ago", + time_span.Days), + (int) time_span.Days / 365); } - return string.Format (Catalog.GetPluralString ("a year ago", "{0} years ago", (int) time_span.Days / 365), (int) time_span.Days / 365); + return string.Format (Catalog.GetPluralString ("a year ago", "{0} years ago", + (int) time_span.Days / 365), + (int) time_span.Days / 365); } // Checks for unicorns From a3de8eb84d78e2ffd747024b2530f4bcf7fa9e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Jerna=C5=9B?= Date: Mon, 21 Jun 2010 14:20:27 +0000 Subject: [PATCH 10/13] l10n: Updated Polish (pl) translation to 93% New status: 40 messages complete with 0 fuzzies and 3 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/pl.po | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/po/pl.po b/po/pl.po index ad942f34..c9c111ee 100644 --- a/po/pl.po +++ b/po/pl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-20 18:53+0000\n" +"POT-Creation-Date: 2010-06-21 14:13+0000\n" "PO-Revision-Date: 2010-06-11 21:59+0200\n" "Last-Translator: Łukasz Jernaś \n" "Language-Team: Polish \n" @@ -44,30 +44,89 @@ msgstr "Zostanie wyświetlone powiadomienie w momencie zakończenia." msgid "Dismiss" msgstr "Porzuć" -#: ../SparkleShare/SparkleDialog.cs:156 +#: ../SparkleShare/SparkleDialog.cs:157 #, csharp-format msgid "Something went wrong while syncing ‘{0}’" msgstr "Wystąpił błąd w trakcie synchronizowania „{0}”" -#: ../SparkleShare/SparkleDialog.cs:166 +#: ../SparkleShare/SparkleDialog.cs:167 msgid "Try Again…" msgstr "Spróbuj ponownie…" -#: ../SparkleShare/SparkleDialog.cs:196 +#: ../SparkleShare/SparkleDialog.cs:197 #, csharp-format msgid "Successfully synced folder ‘{0}’" msgstr "Poprawnie zsynchronizowano katalog „{0}”" -#: ../SparkleShare/SparkleDialog.cs:197 +#: ../SparkleShare/SparkleDialog.cs:198 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:199 ../SparkleShare/SparkleRepo.cs:316 +#: ../SparkleShare/SparkleDialog.cs:200 ../SparkleShare/SparkleRepo.cs:319 #: ../SparkleShare/SparkleWindow.cs:62 msgid "Open Folder" msgstr "Otwórz katalog" +#: ../SparkleShare/SparkleHelpers.cs:159 +#, csharp-format +msgid "a second ago" +msgid_plural "{0} seconds ago" +msgstr[0] "sekundę temu" +msgstr[1] "{0} sekundy temu" +msgstr[2] "{0} sekund temu" + +#: ../SparkleShare/SparkleHelpers.cs:165 +#, csharp-format +msgid "a minute ago" +msgid_plural "about {0} minutes ago" +msgstr[0] "minutę temu" +msgstr[1] "około {0} minuty temu" +msgstr[2] "około {0} minut temu" + +#: ../SparkleShare/SparkleHelpers.cs:171 +#, csharp-format +msgid "about an hour ago" +msgid_plural "about {0} minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../SparkleShare/SparkleHelpers.cs:177 +#, csharp-format +msgid "yesterday" +msgid_plural "{0} days ago" +msgstr[0] "wczoraj" +msgstr[1] "{0} dni temu" +msgstr[2] "{0} dni temu" + +#: ../SparkleShare/SparkleHelpers.cs:183 ../SparkleShare/SparkleHelpers.cs:189 +#, csharp-format +msgid "a month ago" +msgid_plural "{0} months ago" +msgstr[0] "miesiąc temu" +msgstr[1] "{0} miesiące temu" +msgstr[2] "{0} miesięcy temu" + +#: ../SparkleShare/SparkleHelpers.cs:194 +#, csharp-format +msgid "a year ago" +msgid_plural "{0} years ago" +msgstr[0] "rok temu" +msgstr[1] "{0} lata temu" +msgstr[2] "{0} lat temu" + +#: ../SparkleShare/SparkleHelpers.cs:203 +msgid "Hold your ponies!" +msgstr "" + +#: ../SparkleShare/SparkleHelpers.cs:204 +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/SparkleShare.cs:50 msgid "Git wasn't found." msgstr "Nie znaleziono programu Git." From 8e28d8abff28e9b66ac7ac7ef74d19cf6186e076 Mon Sep 17 00:00:00 2001 From: mlettner Date: Mon, 21 Jun 2010 14:30:44 +0000 Subject: [PATCH 11/13] l10n: Updated German (de) translation to 93% New status: 40 messages complete with 0 fuzzies and 3 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/de.po | 134 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 64 deletions(-) diff --git a/po/de.po b/po/de.po index a954cd2b..a8605e8d 100644 --- a/po/de.po +++ b/po/de.po @@ -2,18 +2,21 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Simon Haller , 2010 -# +# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: SparkleShare 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-21 08:20+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"POT-Creation-Date: 2010-06-21 14:13+0000\n" +"PO-Revision-Date: 2010-06-21 16:26+0100\n" +"Last-Translator: Martin Lettner \n" +"Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" #: ../SparkleShare/SparkleDialog.cs:50 msgid "Address of remote SparkleShare folder:" @@ -36,30 +39,85 @@ msgstr "SparkleShare wird Sie benachrichtigen sobald diese Aktion abgeschlossen msgid "Dismiss" msgstr "Schließen" -#: ../SparkleShare/SparkleDialog.cs:156 +#: ../SparkleShare/SparkleDialog.cs:157 #, csharp-format msgid "Something went wrong while syncing ‘{0}’" msgstr "Bei der Synchronisierung von »{0}« ist ein Fehler aufgetreten" -#: ../SparkleShare/SparkleDialog.cs:166 +#: ../SparkleShare/SparkleDialog.cs:167 msgid "Try Again…" msgstr "Erneut versuchen …" -#: ../SparkleShare/SparkleDialog.cs:196 +#: ../SparkleShare/SparkleDialog.cs:197 #, csharp-format msgid "Successfully synced folder ‘{0}’" msgstr "Verzeichnis »{0}« erfolgreich synchronisiert" -#: ../SparkleShare/SparkleDialog.cs:197 +#: ../SparkleShare/SparkleDialog.cs:198 msgid "Now make great stuff happen!" msgstr "" #. Add a button to open the folder where the changed file is -#: ../SparkleShare/SparkleDialog.cs:199 ../SparkleShare/SparkleRepo.cs:316 +#: ../SparkleShare/SparkleDialog.cs:200 +#: ../SparkleShare/SparkleRepo.cs:319 #: ../SparkleShare/SparkleWindow.cs:62 msgid "Open Folder" msgstr "Verzeichnis öffnen" +#: ../SparkleShare/SparkleHelpers.cs:159 +#, csharp-format +msgid "a second ago" +msgid_plural "{0} seconds ago" +msgstr[0] "vor einer Sekunde" +msgstr[1] "vor {0} Sekunden" + +#: ../SparkleShare/SparkleHelpers.cs:165 +#, 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:171 +#, csharp-format +msgid "about an hour ago" +msgid_plural "about {0} minutes ago" +msgstr[0] "vor einer Stunde" +msgstr[1] "vor {0} Stunden" + +#: ../SparkleShare/SparkleHelpers.cs:177 +#, csharp-format +msgid "yesterday" +msgid_plural "{0} days ago" +msgstr[0] "gestern" +msgstr[1] "vor {0} Tagen" + +#: ../SparkleShare/SparkleHelpers.cs:183 +#: ../SparkleShare/SparkleHelpers.cs:189 +#, csharp-format +msgid "a month ago" +msgid_plural "{0} months ago" +msgstr[0] "vor einem Monat" +msgstr[1] "vor {0} Monaten" + +#: ../SparkleShare/SparkleHelpers.cs:194 +#, csharp-format +msgid "a year ago" +msgid_plural "{0} years ago" +msgstr[0] "vor einem Jahren" +msgstr[1] "vor {0} Jahren" + +#: ../SparkleShare/SparkleHelpers.cs:203 +msgid "Hold your ponies!" +msgstr "" + +#: ../SparkleShare/SparkleHelpers.cs:204 +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/SparkleShare.cs:50 msgid "Git wasn't found." msgstr "Git konnte nicht gefunden werden." @@ -163,166 +221,114 @@ msgstr "»{0}« an {1}" #~ msgid "folder-sparkleshare" #~ msgstr "ordner-sparkleshare" - #~ msgid "Folder Name: " #~ msgstr "Ordner Name: " - #~ msgid "Example: " #~ msgstr "Beispiel: " - #~ msgid "‘Project’." #~ msgstr "‘Projekt’." - #~ msgid "Remote address: " #~ msgstr "Remote-Adresse: " - #~ msgid "Downloading files,\n" #~ msgstr "Herunterladen von Dateien,\n" - #~ msgid "this may take a while..." #~ msgstr "Dies kann eine Weile dauern..." - #~ msgid "[Config] Created '" #~ msgstr "[Config] erstellt '" - #~ msgid "Preferences" #~ msgstr "Preferencias" - #~ msgid "The folder " #~ msgstr "Der Ordner " - #~ msgid "" #~ "\n" #~ "is linked to " #~ msgstr "" #~ "\n" #~ "ist verknüpft mit " - #~ msgid "Notify me when something changes" #~ msgstr "Benachrichtige mich, wenn sich etwas ändert" - #~ msgid "Synchronize my changes" #~ msgstr "Synchronisiere meine Änderungen" - #~ msgid "Anonymous" #~ msgstr "Anonym" - #~ msgid "] Nothing going on..." #~ msgstr "] Es passiert nichts..." - #~ msgid "] Done waiting." #~ msgstr "] warten beendet." - #~ msgid "] Waiting for more changes..." #~ msgstr "] Warten auf weitere Änderungen..." - #~ msgid "] Staging changes..." #~ msgstr "] Zustand ändert sich. " - #~ msgid "] Changed staged." #~ msgstr "] Zustand geändert." - #~ msgid "] Commiting changes..." #~ msgstr "] Änderungen einbringen..." - #~ msgid "] Changes commited." #~ msgstr "] Änderungen eingebracht." - #~ msgid "] Fetching changes... " #~ msgstr "] Hole Änderungen..." - #~ msgid "] Changes fetched." #~ msgstr "] Änderungen geholt." - #~ msgid "] Merging fetched changes... " #~ msgstr "] Geholte Änderungen zusammenführen..." - #~ msgid "] Changes merged." #~ msgstr "] Änderungen zusammengeführt." - #~ msgid "Already up-to-date." #~ msgstr "Schon am aktuellsten Stand." - #~ msgid "] Nothing going on... " #~ msgstr "] Nichts passiert... " - #~ msgid "] Pushing changes..." #~ msgstr "] übergebe Änderungen..." - #~ msgid "] Changes pushed." #~ msgstr "] Änderungen übergeben." - #~ msgid "new file:" #~ msgstr "neue Datei:" - #~ msgid "modified:" #~ msgstr "geändert:" - #~ msgid "renamed:" #~ msgstr "umbenannt:" - #~ msgid "deleted:" #~ msgstr "gelöscht:" - #~ msgid "added ‘" #~ msgstr "hinzugefügt " - #~ msgid "#\tnew file:" #~ msgstr "#\tneue Datei:" - #~ msgid "’ and " #~ msgstr "’ und " - #~ msgid " more." #~ msgstr " mehr." - #~ msgid "edited ‘" #~ msgstr "editiert ‘" - #~ msgid "#\tmodified:" #~ msgstr "#\tmodifiziert:" - #~ msgid "deleted ‘" #~ msgstr "gelöscht ‘" - #~ msgid "#\tdeleted:" #~ msgstr "#\tgelöscht:" - #~ msgid "renamed ‘" #~ msgstr "umbenannt ‘" - #~ msgid "#\trenamed:" #~ msgstr "#\tumbenannt:" - #~ msgid "’ to ‘" #~ msgstr "‘ zu ‘" - #~ msgid "Open Sharing Folder" #~ msgstr "Öffne gemeinsamen Ornder" - #~ msgid "Happenings in ‘" #~ msgstr "Ereignis in ‘" - #~ msgid "document-edited" #~ msgstr "Dokument editiert" - #~ msgid " added ‘" #~ msgstr " hinzugefügt ‘" - #~ msgid "document-added" #~ msgstr "Dokument hinzugefügt" - #~ msgid " deleted ‘" #~ msgstr " gelöscht ‘" - #~ msgid "document-removed" #~ msgstr "Dokument gelöscht" - #~ msgid " moved ‘" #~ msgstr " verschoben ‘" - #~ msgid " renamed ‘" #~ msgstr " umbenannt ‘" - #~ msgid "document-moved" #~ msgstr "Dokument verschoben" + From ffcce3a2c312d0c8c4fb6063c9e67270f5b39da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Jerna=C5=9B?= Date: Mon, 21 Jun 2010 15:13:18 +0000 Subject: [PATCH 12/13] l10n: Updated Polish (pl) translation to 100% New status: 43 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/pl.po | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/po/pl.po b/po/pl.po index c9c111ee..6c7e8c0a 100644 --- a/po/pl.po +++ b/po/pl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-21 14:13+0000\n" +"POT-Creation-Date: 2010-06-21 15:09+0000\n" "PO-Revision-Date: 2010-06-11 21:59+0200\n" "Last-Translator: Łukasz Jernaś \n" "Language-Team: Polish \n" @@ -88,9 +88,9 @@ msgstr[2] "około {0} minut temu" #, csharp-format msgid "about an hour ago" msgid_plural "about {0} minutes ago" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "około godzinę temu" +msgstr[1] "około {0} godziny temu" +msgstr[2] "około {0} godzin temu" #: ../SparkleShare/SparkleHelpers.cs:177 #, csharp-format @@ -118,7 +118,7 @@ msgstr[2] "{0} lat temu" #: ../SparkleShare/SparkleHelpers.cs:203 msgid "Hold your ponies!" -msgstr "" +msgstr "Wstrzymaj konie!" #: ../SparkleShare/SparkleHelpers.cs:204 msgid "" @@ -126,6 +126,11 @@ msgid "" "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śc\n" +"\r\n" +"przy wysyłaniu obrazków z jednorożcami.\n" +"\r\n" +"Dopilnuj, by Twój internet był w najnowszej wersji, aby uniknąć problemów." #: ../SparkleShare/SparkleShare.cs:50 msgid "Git wasn't found." From ebf1130d0d62eb8241b549964cb9a26f6f5dc203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Jerna=C5=9B?= Date: Wed, 23 Jun 2010 09:09:34 +0000 Subject: [PATCH 13/13] l10n: Updated Polish (pl) translation to 100% New status: 43 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (www.transifex.net). --- po/pl.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/pl.po b/po/pl.po index 6c7e8c0a..c3157de3 100644 --- a/po/pl.po +++ b/po/pl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-21 15:09+0000\n" +"POT-Creation-Date: 2010-06-23 06:09+0000\n" "PO-Revision-Date: 2010-06-11 21:59+0200\n" "Last-Translator: Łukasz Jernaś \n" "Language-Team: Polish \n" @@ -182,7 +182,7 @@ msgstr "Parametry:" #: ../SparkleShare/SparkleShare.cs:99 msgid "\t -d, --disable-gui\tDon't show the notification icon." -msgstr "\t -d, --disable-gui\tWyłączenie wyświetlania ikony w obszarze powiadamiania." +msgstr "\t -d, --disable-gui\tWyłącza wyświetlanie ikony w obszarze powiadamiania." #: ../SparkleShare/SparkleShare.cs:100 msgid "\t -h, --help\t\tDisplay this help text."