From 45f9610ba3b3385e9bdfb9383afa31911f455c71 Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Tue, 18 May 2010 19:40:58 +0100 Subject: [PATCH] add basic translation support --- .gitignore | 1 + README | 1 + SparkleShare/SparkleDialog.cs | 24 +- SparkleShare/SparklePreferencesDialog.cs | 16 +- SparkleShare/SparkleShare.cs | 47 +- SparkleShare/SparkleShare.csproj | 1 + SparkleShare/SparkleShare.pidb | Bin 16674 -> 16935 bytes SparkleShare/SparkleStatusIcon.cs | 16 +- SparkleShare/SparkleWindow.cs | 10 +- create-po-file | 9 + locale/nl.po | 762 +++++++++++++++++++++++ 11 files changed, 847 insertions(+), 40 deletions(-) create mode 100755 create-po-file create mode 100644 locale/nl.po diff --git a/.gitignore b/.gitignore index 691d2dfa..b95070bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *~ *.exe *.exe.mdb +*.userprefs diff --git a/README b/README index 946043b8..1b2697b2 100644 --- a/README +++ b/README @@ -66,6 +66,7 @@ You can build and install SparkleShare like this: $ make $ sudo make install + Frequently Asked Question ========================= diff --git a/SparkleShare/SparkleDialog.cs b/SparkleShare/SparkleDialog.cs index c64ec028..b33c18ef 100644 --- a/SparkleShare/SparkleDialog.cs +++ b/SparkleShare/SparkleDialog.cs @@ -15,6 +15,7 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using SparkleShare; using System; using System.Diagnostics; @@ -26,6 +27,11 @@ namespace SparkleShare { // name and url to sync changes with public class SparkleDialog : Window { + // Short alias for the translations + public static string _ (string s) { + return Catalog.GetString (s); + } + private Button AddButton; private ComboBoxEntry RemoteUrlCombo; private Entry NameEntry; @@ -37,19 +43,19 @@ namespace SparkleShare { Modal = true; Resizable = false; SetPosition (WindowPosition.Center); - Title = "Add a Folder"; + Title = _("Add a Folder"); VBox VBox = new VBox (false, 0); - Label NameLabel = new Label ("Folder Name: "); + Label NameLabel = new Label (_("Folder Name: ")); NameEntry = new Entry (); - Label NameExample = new Label ("Example: " + - "‘Project’."); + Label NameExample = new Label (_("Example: ") + + _("‘Project’.")); NameExample.UseMarkup = true; NameExample.SetAlignment (0, 0); NameLabel.Xalign = 1; - Label RemoteUrlLabel = new Label ("Remote address: "); + Label RemoteUrlLabel = new Label (_("Remote address: ")); string [] DefaultUrls = new string [4] { "ssh://git@github.com", "ssh://git@git.gnome.org", @@ -58,8 +64,8 @@ namespace SparkleShare { RemoteUrlCombo = new ComboBoxEntry (DefaultUrls); - Label RemoteUrlExample = new Label ("Example: " + - "‘ssh://git@github.com’."); + Label RemoteUrlExample = new Label (_("Example: ") + + _("‘ssh://git@github.com’.")); RemoteUrlExample.UseMarkup = true; RemoteUrlExample.SetAlignment (0, 0); RemoteUrlLabel.Xalign = 1; @@ -109,8 +115,8 @@ namespace SparkleShare { Remove (Child); VBox Box = new VBox (false, 24); SparkleSpinner Spinner = new SparkleSpinner (); - Label Label = new Label ("Downloading files,\n" + - "this may take a while..."); + Label Label = new Label (_("Downloading files,\n") + + _("this may take a while...")); Box.PackStart (Spinner, false, false, 0); Box.PackStart (Label, false, false, 0); BorderWidth = 30; diff --git a/SparkleShare/SparklePreferencesDialog.cs b/SparkleShare/SparklePreferencesDialog.cs index 5bddb128..cb542860 100644 --- a/SparkleShare/SparklePreferencesDialog.cs +++ b/SparkleShare/SparklePreferencesDialog.cs @@ -15,6 +15,7 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using SparkleShare; using System; using System.Diagnostics; @@ -26,6 +27,11 @@ namespace SparkleShare { // name and url to sync changes with public class SparklePreferencesDialog : Window { + // Short alias for the translations + public static string _ (string s) { + return Catalog.GetString (s); + } + public SparklePreferencesDialog (SparkleWindow SparkleWindow, SparkleRepo SparkleRepo) : base ("") { @@ -33,22 +39,22 @@ namespace SparkleShare { IconName = "folder-sparkleshare"; Resizable = false; SetPosition (WindowPosition.Center); - Title = "Preferences"; + Title = _("Preferences"); TransientFor = SparkleWindow; VBox LayoutVertical = new VBox (false, 0); Label InfoLabel = new Label (); - InfoLabel.Text = "The folder " + + InfoLabel.Text = _("The folder ") + "" + SparkleRepo.LocalPath + "" + - "\nis linked to " + + _("\nis linked to ") + "" + SparkleRepo.RemoteOriginUrl + ""; InfoLabel.Xalign = 0; InfoLabel.UseMarkup = true; CheckButton NotifyChangesCheckButton = - new CheckButton ("Notify me when something changes"); + new CheckButton (_("Notify me when something changes")); string NotifyChangesFileName = SparkleHelpers.CombineMore (SparkleRepo.LocalPath, @@ -68,7 +74,7 @@ namespace SparkleShare { }; CheckButton SyncChangesCheckButton = - new CheckButton ("Synchronize my changes"); + new CheckButton (_("Synchronize my changes")); string SyncChangesFileName = SparkleHelpers.CombineMore (SparkleRepo.LocalPath, diff --git a/SparkleShare/SparkleShare.cs b/SparkleShare/SparkleShare.cs index 4f323ca6..6f1501a3 100644 --- a/SparkleShare/SparkleShare.cs +++ b/SparkleShare/SparkleShare.cs @@ -15,6 +15,7 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using System; using System.Diagnostics; @@ -22,12 +23,20 @@ namespace SparkleShare { // This is SparkleShare! public class SparkleShare { + + // Short alias for the translations + public static string _ (string s) { + return Catalog.GetString (s); + } public static SparkleRepo [] Repositories; public static SparkleUI SparkleUI; public static void Main (string [] args) { + // Use translations + Catalog.Init ("i18n", "locale"); + // Check if git is installed Process Process = new Process(); Process.StartInfo.FileName = "git"; @@ -36,8 +45,8 @@ namespace SparkleShare { Process.Start(); if (Process.StandardOutput.ReadToEnd().IndexOf ("version") == -1) { - Console.WriteLine ("Git wasn't found."); - Console.WriteLine ("You can get it from http://git-scm.com/."); + Console.WriteLine (_("Git wasn't found.")); + Console.WriteLine (_("You can get Git from http://git-scm.com/.")); Environment.Exit (0); } @@ -45,8 +54,8 @@ namespace SparkleShare { Process.StartInfo.FileName = "whoami"; Process.Start(); if (Process.StandardOutput.ReadToEnd().Trim ().Equals ("root")) { - Console.WriteLine ("Sorry, you can't run SparkleShare as root."); - Console.WriteLine ("Things will go utterly wrong."); + Console.WriteLine (_("Sorry, you can't run SparkleShare with these permissions.")); + Console.WriteLine (_("Things will go utterly wrong.")); Environment.Exit (0); } @@ -73,21 +82,21 @@ namespace SparkleShare { // Prints the help output public static void ShowHelp () { - Console.WriteLine ("SparkleShare Copyright (C) 2010 Hylke Bons"); - Console.WriteLine (""); - Console.WriteLine ("This program comes with ABSOLUTELY NO WARRANTY."); - Console.WriteLine ("This is free software, and you are welcome to redistribute it "); - Console.WriteLine ("under certain conditions. Please read the GNU GPLv3 for details."); - Console.WriteLine (""); - Console.WriteLine ("SparkleShare syncs the ~/SparkleShare folder with remote repositories."); - Console.WriteLine (""); - Console.WriteLine ("Usage: sparkleshare [start|stop|restart] [OPTION]..."); - Console.WriteLine ("Sync SparkleShare folder with remote repositories."); - Console.WriteLine (""); - Console.WriteLine ("Arguments:"); - Console.WriteLine ("\t -d, --disable-gui\tDon't show the notification icon."); - Console.WriteLine ("\t -h, --help\t\tDisplay this help text."); - Console.WriteLine (""); + Console.WriteLine (_("SparkleShare Copyright (C) 2010 Hylke Bons")); + Console.WriteLine (" "); + Console.WriteLine (_("This program comes with ABSOLUTELY NO WARRANTY.")); + Console.WriteLine (_("This is free software, and you are welcome to redistribute it ")); + Console.WriteLine (_("under certain conditions. Please read the GNU GPLv3 for details.")); + Console.WriteLine (" "); + Console.WriteLine (_("SparkleShare syncs the ~/SparkleShare folder with remote repositories.")); + Console.WriteLine (" "); + Console.WriteLine (_("Usage: sparkleshare [start|stop|restart] [OPTION]...")); + Console.WriteLine (_("Sync SparkleShare folder with remote repositories.")); + Console.WriteLine (" "); + Console.WriteLine (_("Arguments:")); + Console.WriteLine (_("\t -d, --disable-gui\tDon't show the notification icon.")); + Console.WriteLine (_("\t -h, --help\t\tDisplay this help text.")); + Console.WriteLine (" "); Environment.Exit (0); } diff --git a/SparkleShare/SparkleShare.csproj b/SparkleShare/SparkleShare.csproj index 9adf1094..eb35b0d8 100644 --- a/SparkleShare/SparkleShare.csproj +++ b/SparkleShare/SparkleShare.csproj @@ -31,6 +31,7 @@ + diff --git a/SparkleShare/SparkleShare.pidb b/SparkleShare/SparkleShare.pidb index ccc738397a0951364d0613bff280b1d67cc5a125..4811296f89b28421aaabce7c4a8e2b391f7b8b6d 100644 GIT binary patch literal 16935 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 Ni!&{dv?zJxe*qNG{>K0S diff --git a/SparkleShare/SparkleStatusIcon.cs b/SparkleShare/SparkleStatusIcon.cs index f99238d9..69a6a79f 100644 --- a/SparkleShare/SparkleStatusIcon.cs +++ b/SparkleShare/SparkleStatusIcon.cs @@ -15,21 +15,27 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using SparkleShare; using System; using System.Diagnostics; namespace SparkleShare { - + public class SparkleStatusIcon : StatusIcon { + // Short alias for the translations + public static string _ (string s) { + return Catalog.GetString (s); + } + public SparkleStatusIcon () : base () { Activate += delegate { Menu Menu = new Menu(); - MenuItem OpenFolderItem = new MenuItem ("Open Sharing Folder"); + MenuItem OpenFolderItem = new MenuItem (_("Open Sharing Folder")); OpenFolderItem.Activated += delegate { Process Process = new Process (); Process.StartInfo.FileName = "xdg-open"; @@ -39,7 +45,7 @@ namespace SparkleShare { Menu.Add (OpenFolderItem); Menu.Add (new SeparatorMenuItem ()); - MenuItem StatusItem = new MenuItem ("Everything up to date"); + MenuItem StatusItem = new MenuItem (_("Everything is up to date")); StatusItem.Sensitive = false; Menu.Add (StatusItem); @@ -59,7 +65,7 @@ namespace SparkleShare { } Menu.Add (new SeparatorMenuItem ()); - MenuItem AboutItem = new MenuItem ("About SparkleShare"); + MenuItem AboutItem = new MenuItem (_("About SparkleShare")); AboutItem.Activated += delegate { Process Process = new Process (); Process.StartInfo.FileName = "xdg-open"; @@ -69,7 +75,7 @@ namespace SparkleShare { Menu.Add(AboutItem); Menu.Add (new SeparatorMenuItem ()); - MenuItem QuitItem = new MenuItem ("Quit"); + MenuItem QuitItem = new MenuItem (Gtk.Stock.Quit); QuitItem.Activated += delegate { Environment.Exit (0); }; Menu.Add(QuitItem); diff --git a/SparkleShare/SparkleWindow.cs b/SparkleShare/SparkleWindow.cs index 32f15655..97d13867 100644 --- a/SparkleShare/SparkleWindow.cs +++ b/SparkleShare/SparkleWindow.cs @@ -15,6 +15,7 @@ // along with this program. If not, see . using Gtk; +using Mono.Unix; using SparkleShare; using System; using System.Diagnostics; @@ -26,6 +27,11 @@ namespace SparkleShare { public class SparkleWindow : Window { + // Short alias for the translations + public static string _ (string s) { + return Catalog.GetString (s); + } + private SparkleRepo SparkleRepo; public SparkleWindow (SparkleRepo Repo) : base ("") { @@ -40,7 +46,7 @@ namespace SparkleShare { SetSizeRequest (900, 480); SetPosition (WindowPosition.Center); BorderWidth = 6; - Title = "Happenings in ‘" + SparkleRepo.Name + "’"; + Title = _("Happenings in ‘" + SparkleRepo.Name + "’"); IconName = "folder-sparkleshare"; VBox LayoutVertical = new VBox (false, 0); @@ -221,7 +227,7 @@ namespace SparkleShare { // Do something special if the person is you if (UserName.Equals (SparkleRepo.UserName)) - UserName += " (that’s you!)"; + UserName += _(" (that’s you!)"); // Actually add to the list PeopleIter = PeopleStore.Prepend (); diff --git a/create-po-file b/create-po-file new file mode 100755 index 00000000..31fea2a2 --- /dev/null +++ b/create-po-file @@ -0,0 +1,9 @@ +#!/bin/bash + +mkdir -p locale +if [ $# -ne 1 ]; then + echo "Usage: ./create-po-file [LOCALE].po" +else + xgettext -a --from-code=UTF-8 SparkleShare/*.cs -o locale/$1 + echo "Created locale/$1." +fi diff --git a/locale/nl.po b/locale/nl.po new file mode 100644 index 00000000..1c807f3c --- /dev/null +++ b/locale/nl.po @@ -0,0 +1,762 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#: SparkleShare/SparkleDialog.cs:39 SparkleShare/SparkleHelpers.cs:78 +#: SparkleShare/SparkleHelpers.cs:84 +#: 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-05-18 19:36+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"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 "" + +#: SparkleShare/SparkleDialog.cs:46 +msgid "Add a Folder" +msgstr "" + +#: SparkleShare/SparkleDialog.cs:50 +msgid "Folder Name: " +msgstr "" + +#: SparkleShare/SparkleDialog.cs:52 +msgid "Example: ‘Project’." +msgstr "" + +#: SparkleShare/SparkleDialog.cs:58 +msgid "Remote address: " +msgstr "" + +#: 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:67 +msgid "Example: ‘ssh://git@github.com’." +msgstr "" + +#: SparkleShare/SparkleDialog.cs:118 +msgid "" +"Downloading files,\n" +"this may take a while..." +msgstr "" + +#: 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 "" + +#: 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: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 "" + +#: SparkleShare/SparklePreferencesDialog.cs:48 +msgid "The folder " +msgstr "" + +#: SparkleShare/SparklePreferencesDialog.cs:49 +msgid "" +"\n" +"is linked to " +msgstr "" + +#: SparkleShare/SparklePreferencesDialog.cs:51 +msgid "" +msgstr "" + +#: SparkleShare/SparklePreferencesDialog.cs:57 +msgid "Notify me when something changes" +msgstr "" + +#: SparkleShare/SparklePreferencesDialog.cs:77 +msgid "Synchronize my changes" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:69 +msgid "Anonymous" +msgstr "" + +#: 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 "" + +#: 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 " '" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:152 SparkleShare/SparkleRepo.cs:155 +#: SparkleShare/SparkleRepo.cs:167 SparkleShare/SparkleRepo.cs:173 +msgid "[Buffer][" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:152 SparkleShare/SparkleRepo.cs:167 +msgid "] Done waiting." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:155 SparkleShare/SparkleRepo.cs:173 +msgid "] Waiting for more changes..." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:186 +msgid ".gitignore" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:187 +msgid "*~" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:188 +msgid ".*.sw?" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:195 +msgid "] Staging changes..." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:196 +msgid "add --all" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:199 +msgid "] Changed staged." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:213 +msgid "[Commit][" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:214 +msgid "] Commiting changes..." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:215 +msgid "commit -m \"" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:215 +msgid "\"" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:218 +msgid "] Changes commited." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:225 +msgid "] Fetching changes... " +msgstr "" + +#: SparkleShare/SparkleRepo.cs:226 +msgid "fetch -v" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:229 +msgid "] Changes fetched." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:238 +msgid "] Merging fetched changes... " +msgstr "" + +#: SparkleShare/SparkleRepo.cs:239 +msgid "merge origin/master" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:242 +msgid "] Changes merged." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:245 +msgid "Already up-to-date." +msgstr "" + +#: 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: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/SparkleRepo.cs:269 +msgid "] Nothing going on... " +msgstr "" + +#: SparkleShare/SparkleRepo.cs:275 +msgid "] Pushing changes..." +msgstr "" + +#: SparkleShare/SparkleRepo.cs:276 +msgid "push" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:279 +msgid "] Changes pushed." +msgstr "" + +#: 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 "" + +#: SparkleShare/SparkleRepo.cs:316 SparkleShare/SparkleRepo.cs:341 +msgid "modified:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:318 SparkleShare/SparkleRepo.cs:367 +msgid "renamed:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:320 SparkleShare/SparkleRepo.cs:354 +msgid "deleted:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:331 SparkleShare/SparkleRepo.cs:335 +msgid "added ‘" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:332 SparkleShare/SparkleRepo.cs:336 +msgid "#\tnew file:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:333 SparkleShare/SparkleRepo.cs:346 +#: SparkleShare/SparkleRepo.cs:359 SparkleShare/SparkleRepo.cs:372 +msgid "’ and " +msgstr "" + +#: SparkleShare/SparkleRepo.cs:333 SparkleShare/SparkleRepo.cs:346 +#: SparkleShare/SparkleRepo.cs:359 SparkleShare/SparkleRepo.cs:373 +msgid " more." +msgstr "" + +#: 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 "" + +#: SparkleShare/SparkleRepo.cs:345 SparkleShare/SparkleRepo.cs:349 +msgid "#\tmodified:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:357 SparkleShare/SparkleRepo.cs:361 +msgid "deleted ‘" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:358 SparkleShare/SparkleRepo.cs:362 +msgid "#\tdeleted:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:370 SparkleShare/SparkleRepo.cs:375 +msgid "renamed ‘" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:371 SparkleShare/SparkleRepo.cs:376 +msgid "#\trenamed:" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:372 SparkleShare/SparkleRepo.cs:377 +msgid " -> " +msgstr "" + +#: SparkleShare/SparkleRepo.cs:372 SparkleShare/SparkleRepo.cs:377 +msgid "’ to ‘" +msgstr "" + +#: SparkleShare/SparkleRepo.cs:398 +msgid "Open Folder" +msgstr "" + +#: 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 +msgid "Git wasn't found." +msgstr "" + +#: SparkleShare/SparkleShare.cs:49 +msgid "You can get Git from http://git-scm.com/." +msgstr "" + +#: SparkleShare/SparkleShare.cs:54 +msgid "whoami" +msgstr "" + +#: SparkleShare/SparkleShare.cs:56 +msgid "root" +msgstr "" + +#: SparkleShare/SparkleShare.cs:57 +msgid "Sorry, you can't run SparkleShare with these permissions." +msgstr "" + +#: SparkleShare/SparkleShare.cs:58 +msgid "Things will go utterly wrong." +msgstr "" + +#: 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 +msgid "SparkleShare Copyright (C) 2010 Hylke Bons" +msgstr "" + +#: SparkleShare/SparkleShare.cs:87 +msgid "This program comes with ABSOLUTELY NO WARRANTY." +msgstr "" + +#: SparkleShare/SparkleShare.cs:88 +msgid "This is free software, and you are welcome to redistribute it " +msgstr "" + +#: SparkleShare/SparkleShare.cs:89 +msgid "under certain conditions. Please read the GNU GPLv3 for details." +msgstr "" + +#: SparkleShare/SparkleShare.cs:91 +msgid "SparkleShare syncs the ~/SparkleShare folder with remote repositories." +msgstr "" + +#: SparkleShare/SparkleShare.cs:93 +msgid "Usage: sparkleshare [start|stop|restart] [OPTION]..." +msgstr "" + +#: SparkleShare/SparkleShare.cs:94 +msgid "Sync SparkleShare folder with remote repositories." +msgstr "" + +#: SparkleShare/SparkleShare.cs:96 +msgid "Arguments:" +msgstr "" + +#: SparkleShare/SparkleShare.cs:97 +msgid "\t -d, --disable-gui\tDon't show the notification icon." +msgstr "" + +#: SparkleShare/SparkleShare.cs:98 +msgid "\t -h, --help\t\tDisplay this help text." +msgstr "" + +#: SparkleShare/SparkleSpinner.cs:40 +msgid "process-working" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:38 +msgid "Open Sharing Folder" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:48 +msgid "Everything is up to date" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:68 +msgid "About SparkleShare" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:72 +msgid "http://www.sparkleshare.org/" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:92 +msgid "folder-synced" +msgstr "" + +#: SparkleShare/SparkleStatusIcon.cs:106 +msgid "sparkleshare.pid" +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 +msgid "Welcome to SparkleShare!" +msgstr "" + +#: SparkleShare/SparkleUI.cs:109 +msgid "" +"You don't have any folders set up yet.\n" +"Please create some in the SparkleShare folder." +msgstr "" + +#: SparkleShare/SparkleUI.cs:115 +msgid "Open SparkleShare Folder" +msgstr "" + +#: SparkleShare/SparkleUI.cs:132 +msgid "[Event][SparkleShare] " +msgstr "" + +#: SparkleShare/SparkleUI.cs:148 +msgid "avatars'" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:49 +msgid "Happenings in ‘" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:49 +msgid "’" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:124 +msgid "log --format=\"%at☃%an %s☃%cr\" -25" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:144 SparkleShare/SparkleWindow.cs:223 +msgid "☃" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:148 +msgid "document-edited" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:150 +msgid " added ‘" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:151 +msgid "document-added" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:153 +msgid " deleted ‘" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:154 +msgid "document-removed" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:156 +msgid " moved ‘" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:157 +msgid " renamed ‘" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:158 +msgid "document-moved" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:178 +msgid "pixbuf" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:179 SparkleShare/SparkleWindow.cs:180 +msgid "text" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:204 +msgid "log --format=\"%an☃%ae\" -50" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:230 +msgid " (that’s you!)" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:237 +msgid "" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:237 +msgid "" +"\n" +"" +msgstr "" + +#: SparkleShare/SparkleWindow.cs:239 +msgid "" +msgstr ""