diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..1005aaa08
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,19 @@
+.svn/
+*.gsp
+*.bak
+*INSTALLER*.exe
+*INSTALLER*.zip
+*.paf.exe
+*-SVN.*
+bin/
+obj/
+fugue/
+*Credentials.private.cs
+*Credentials.orig.cs
+upgradeLog.htm
+upgradeLog.XML
+*.log
+/Greenshot/releases/additional_files/readme.txt
+/*.error
+
+/Greenshot/releases/innosetup/setup.iss
diff --git a/Greenshot/App.config b/Greenshot/App.config
index d4ff71058..b3cdbf446 100644
--- a/Greenshot/App.config
+++ b/Greenshot/App.config
@@ -6,5 +6,8 @@
+
+
+
\ No newline at end of file
diff --git a/Greenshot/AssemblyInfo.cs.template b/Greenshot/AssemblyInfo.cs.template
index 8e855aa32..d4788fff0 100644
--- a/Greenshot/AssemblyInfo.cs.template
+++ b/Greenshot/AssemblyInfo.cs.template
@@ -47,4 +47,4 @@ using System.Runtime.InteropServices;
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/Greenshot/Configuration/EditorConfiguration.cs b/Greenshot/Configuration/EditorConfiguration.cs
index e2ea809c5..d677045e7 100644
--- a/Greenshot/Configuration/EditorConfiguration.cs
+++ b/Greenshot/Configuration/EditorConfiguration.cs
@@ -57,6 +57,13 @@ namespace Greenshot.Configuration {
[IniProperty("SuppressSaveDialogAtClose", Description="Suppressed the 'do you want to save' dialog when closing the editor.", DefaultValue="False")]
public bool SuppressSaveDialogAtClose;
+
+ public override void AfterLoad() {
+ base.AfterLoad();
+ if (RecentColors == null) {
+ RecentColors = new List();
+ }
+ }
/// Type of the class for which to create the field
/// FieldType of the field to construct
/// FieldType of the field to construct
diff --git a/Greenshot/Drawing/TextContainer.cs b/Greenshot/Drawing/TextContainer.cs
index e39036ff4..2d8946079 100644
--- a/Greenshot/Drawing/TextContainer.cs
+++ b/Greenshot/Drawing/TextContainer.cs
@@ -47,7 +47,7 @@ namespace Greenshot.Drawing {
/// The StringFormat object is not serializable!!
///
[NonSerialized]
- StringFormat stringFormat;
+ StringFormat stringFormat = new StringFormat();
private string text;
// there is a binding on the following property!
@@ -192,39 +192,46 @@ namespace Greenshot.Drawing {
bool fontBold = GetFieldValueAsBool(FieldType.FONT_BOLD);
bool fontItalic = GetFieldValueAsBool(FieldType.FONT_ITALIC);
float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE);
-
- if (fontInvalidated && fontFamily != null && fontSize != 0) {
- FontStyle fs = FontStyle.Regular;
-
- bool hasStyle = false;
- using(FontFamily fam = new FontFamily(fontFamily)) {
- bool boldAvailable = fam.IsStyleAvailable(FontStyle.Bold);
- if (fontBold && boldAvailable) {
- fs |= FontStyle.Bold;
- hasStyle = true;
- }
+ try {
+ if (fontInvalidated && fontFamily != null && fontSize != 0) {
+ FontStyle fs = FontStyle.Regular;
+
+ bool hasStyle = false;
+ using(FontFamily fam = new FontFamily(fontFamily)) {
+ bool boldAvailable = fam.IsStyleAvailable(FontStyle.Bold);
+ if (fontBold && boldAvailable) {
+ fs |= FontStyle.Bold;
+ hasStyle = true;
+ }
- bool italicAvailable = fam.IsStyleAvailable(FontStyle.Italic);
- if (fontItalic && italicAvailable) {
- fs |= FontStyle.Italic;
- hasStyle = true;
- }
+ bool italicAvailable = fam.IsStyleAvailable(FontStyle.Italic);
+ if (fontItalic && italicAvailable) {
+ fs |= FontStyle.Italic;
+ hasStyle = true;
+ }
- if (!hasStyle) {
- bool regularAvailable = fam.IsStyleAvailable(FontStyle.Regular);
- if (regularAvailable) {
- fs = FontStyle.Regular;
- } else {
- if (boldAvailable) {
- fs = FontStyle.Bold;
- } else if(italicAvailable) {
- fs = FontStyle.Italic;
+ if (!hasStyle) {
+ bool regularAvailable = fam.IsStyleAvailable(FontStyle.Regular);
+ if (regularAvailable) {
+ fs = FontStyle.Regular;
+ } else {
+ if (boldAvailable) {
+ fs = FontStyle.Bold;
+ } else if(italicAvailable) {
+ fs = FontStyle.Italic;
+ }
}
}
+ font = new Font(fam, fontSize, fs, GraphicsUnit.Pixel);
}
- font = new Font(fam, fontSize, fs, GraphicsUnit.Pixel);
+ fontInvalidated = false;
}
- fontInvalidated = false;
+ } catch (Exception ex) {
+ ex.Data.Add("fontFamily", fontFamily);
+ ex.Data.Add("fontBold", fontBold);
+ ex.Data.Add("fontItalic", fontItalic);
+ ex.Data.Add("fontSize", fontSize);
+ throw;
}
stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT);
diff --git a/Greenshot/Forms/ImageEditorForm.cs b/Greenshot/Forms/ImageEditorForm.cs
index b92b1f27d..6d26a44f5 100644
--- a/Greenshot/Forms/ImageEditorForm.cs
+++ b/Greenshot/Forms/ImageEditorForm.cs
@@ -90,7 +90,6 @@ namespace Greenshot {
var thread = new Thread(delegate() {AddDestinations();});
thread.Name = "add destinations";
thread.Start();
- IniConfig.IniChanged += new FileSystemEventHandler(ReloadConfiguration);
};
// Make sure the editor is placed on the same location as the last editor was on close
@@ -356,18 +355,6 @@ namespace Greenshot {
ImageEditorFormResize(sender, new EventArgs());
}
- private void ReloadConfiguration(object source, FileSystemEventArgs e) {
- this.Invoke((MethodInvoker) delegate {
- // Even update language when needed
- ApplyLanguage();
-
- // Fix title
- if (surface != null && surface.CaptureDetails != null && surface.CaptureDetails.Title != null) {
- this.Text = surface.CaptureDetails.Title + " - " + Language.GetString(LangKey.editor_title);
- }
- });
- }
-
public ISurface Surface {
get {
return surface;
@@ -680,7 +667,6 @@ namespace Greenshot {
}
void ImageEditorFormFormClosing(object sender, FormClosingEventArgs e) {
- IniConfig.IniChanged -= new FileSystemEventHandler(ReloadConfiguration);
if (surface.Modified && !editorConfiguration.SuppressSaveDialogAtClose) {
// Make sure the editor is visible
WindowDetails.ToForeground(this.Handle);
@@ -1277,13 +1263,16 @@ namespace Greenshot {
}
private void ImageEditorFormResize(object sender, EventArgs e) {
- if (this.Surface == null) {
+ if (this.Surface == null || this.Surface.Image == null || this.panel1 == null) {
return;
}
Size imageSize = this.Surface.Image.Size;
Size currentClientSize = this.panel1.ClientSize;
var canvas = this.Surface as Control;
Panel panel = (Panel)canvas.Parent;
+ if (panel == null) {
+ return;
+ }
int offsetX = -panel.HorizontalScroll.Value;
int offsetY = -panel.VerticalScroll.Value;
if (canvas != null) {
diff --git a/Greenshot/Forms/MainForm.cs b/Greenshot/Forms/MainForm.cs
index f2932f99d..0011ee191 100644
--- a/Greenshot/Forms/MainForm.cs
+++ b/Greenshot/Forms/MainForm.cs
@@ -153,6 +153,10 @@ namespace Greenshot {
helpOutput.AppendLine("\t\tSet the language of Greenshot, e.g. greenshot /language en-US.");
helpOutput.AppendLine();
helpOutput.AppendLine();
+ helpOutput.AppendLine("\t/inidirectory [directory]");
+ helpOutput.AppendLine("\t\tSet the directory where the greenshot.ini should be stored & read.");
+ helpOutput.AppendLine();
+ helpOutput.AppendLine();
helpOutput.AppendLine("\t[filename]");
helpOutput.AppendLine("\t\tOpen the bitmap files in the running Greenshot instance or start a new instance");
Console.WriteLine(helpOutput.ToString());
@@ -201,7 +205,13 @@ namespace Greenshot {
IniConfig.Save();
continue;
}
-
+
+ // Setting the INI-directory
+ if (argument.ToLower().Equals("/inidirectory")) {
+ IniConfig.IniDirectory = args[++argumentNr];
+ continue;
+ }
+
// Files to open
filesToOpen.Add(argument);
}
@@ -338,8 +348,6 @@ namespace Greenshot {
// Disable access to the settings, for feature #3521446
contextmenu_settings.Visible = !conf.DisableSettings;
- IniConfig.IniChanged += new FileSystemEventHandler(ReloadConfiguration);
-
// Make sure all hotkeys pass this window!
HotkeyControl.RegisterHotkeyHWND(this.Handle);
RegisterHotkeys();
@@ -441,7 +449,14 @@ namespace Greenshot {
LOG.Info("Reload requested");
try {
IniConfig.Reload();
- ReloadConfiguration(null, null);
+ this.Invoke((MethodInvoker)delegate {
+ // Even update language when needed
+ UpdateUI();
+ // Update the hotkey
+ // Make sure the current hotkeys are disabled
+ HotkeyControl.UnregisterHotkeys();
+ RegisterHotkeys();
+ });
} catch {}
break;
case CommandEnum.OpenFile:
@@ -462,23 +477,6 @@ namespace Greenshot {
}
}
- ///
- /// This is called when the ini-file changes
- ///
- ///
- ///
- private void ReloadConfiguration(object source, FileSystemEventArgs e) {
- Language.CurrentLanguage = null; // Reload
- this.Invoke((MethodInvoker) delegate {
- // Even update language when needed
- UpdateUI();
- // Update the hotkey
- // Make sure the current hotkeys are disabled
- HotkeyControl.UnregisterHotkeys();
- RegisterHotkeys();
- });
- }
-
public ContextMenuStrip MainMenu {
get {return contextMenu;}
}
diff --git a/Greenshot/Forms/SettingsForm.Designer.cs b/Greenshot/Forms/SettingsForm.Designer.cs
index b094942d8..d613d8531 100644
--- a/Greenshot/Forms/SettingsForm.Designer.cs
+++ b/Greenshot/Forms/SettingsForm.Designer.cs
@@ -99,8 +99,8 @@ namespace Greenshot {
this.checkbox_ie_capture = new GreenshotPlugin.Controls.GreenshotCheckBox();
this.groupbox_windowscapture = new GreenshotPlugin.Controls.GreenshotGroupBox();
this.colorButton_window_background = new Greenshot.Controls.ColorButton();
- this.label_window_capture_mode = new GreenshotPlugin.Controls.GreenshotLabel();
- this.checkbox_capture_windows_interactive = new GreenshotPlugin.Controls.GreenshotCheckBox();
+ this.radiobuttonWindowCapture = new GreenshotPlugin.Controls.GreenshotRadioButton();
+ this.radiobuttonInteractiveCapture = new GreenshotPlugin.Controls.GreenshotRadioButton();
this.combobox_window_capture_mode = new System.Windows.Forms.ComboBox();
this.groupbox_capture = new GreenshotPlugin.Controls.GreenshotGroupBox();
this.checkbox_notifications = new GreenshotPlugin.Controls.GreenshotCheckBox();
@@ -186,7 +186,6 @@ namespace Greenshot {
this.label_storagelocation.Name = "label_storagelocation";
this.label_storagelocation.Size = new System.Drawing.Size(126, 23);
this.label_storagelocation.TabIndex = 11;
- this.label_storagelocation.Text = "Storage location";
//
// settings_cancel
//
@@ -195,7 +194,6 @@ namespace Greenshot {
this.settings_cancel.Name = "settings_cancel";
this.settings_cancel.Size = new System.Drawing.Size(75, 23);
this.settings_cancel.TabIndex = 7;
- this.settings_cancel.Text = "Cancel";
this.settings_cancel.UseVisualStyleBackColor = true;
this.settings_cancel.Click += new System.EventHandler(this.Settings_cancelClick);
//
@@ -206,7 +204,6 @@ namespace Greenshot {
this.settings_confirm.Name = "settings_confirm";
this.settings_confirm.Size = new System.Drawing.Size(75, 23);
this.settings_confirm.TabIndex = 6;
- this.settings_confirm.Text = "Ok";
this.settings_confirm.UseVisualStyleBackColor = true;
this.settings_confirm.Click += new System.EventHandler(this.Settings_okayClick);
//
@@ -227,7 +224,6 @@ namespace Greenshot {
this.label_screenshotname.Name = "label_screenshotname";
this.label_screenshotname.Size = new System.Drawing.Size(126, 23);
this.label_screenshotname.TabIndex = 9;
- this.label_screenshotname.Text = "Filename pattern";
//
// textbox_screenshotname
//
@@ -244,7 +240,6 @@ namespace Greenshot {
this.label_language.Name = "label_language";
this.label_language.Size = new System.Drawing.Size(181, 23);
this.label_language.TabIndex = 10;
- this.label_language.Text = "Language";
//
// combobox_language
//
@@ -273,7 +268,6 @@ namespace Greenshot {
this.label_primaryimageformat.Name = "label_primaryimageformat";
this.label_primaryimageformat.Size = new System.Drawing.Size(126, 19);
this.label_primaryimageformat.TabIndex = 8;
- this.label_primaryimageformat.Text = "Image format";
//
// groupbox_preferredfilesettings
//
@@ -292,7 +286,6 @@ namespace Greenshot {
this.groupbox_preferredfilesettings.Size = new System.Drawing.Size(412, 122);
this.groupbox_preferredfilesettings.TabIndex = 13;
this.groupbox_preferredfilesettings.TabStop = false;
- this.groupbox_preferredfilesettings.Text = "Preferred Output File Settings";
//
// btnPatternHelp
//
@@ -312,7 +305,6 @@ namespace Greenshot {
this.checkbox_copypathtoclipboard.PropertyName = "OutputFileCopyPathToClipboard";
this.checkbox_copypathtoclipboard.Size = new System.Drawing.Size(394, 24);
this.checkbox_copypathtoclipboard.TabIndex = 18;
- this.checkbox_copypathtoclipboard.Text = "Copy file path to clipboard every time an image is saved";
this.checkbox_copypathtoclipboard.UseVisualStyleBackColor = true;
//
// groupbox_applicationsettings
@@ -326,7 +318,6 @@ namespace Greenshot {
this.groupbox_applicationsettings.Size = new System.Drawing.Size(412, 68);
this.groupbox_applicationsettings.TabIndex = 14;
this.groupbox_applicationsettings.TabStop = false;
- this.groupbox_applicationsettings.Text = "Application Settings";
//
// checkbox_autostartshortcut
//
@@ -335,7 +326,6 @@ namespace Greenshot {
this.checkbox_autostartshortcut.Name = "checkbox_autostartshortcut";
this.checkbox_autostartshortcut.Size = new System.Drawing.Size(397, 25);
this.checkbox_autostartshortcut.TabIndex = 15;
- this.checkbox_autostartshortcut.Text = "Launch Greenshot on startup";
this.checkbox_autostartshortcut.UseVisualStyleBackColor = true;
//
// groupbox_qualitysettings
@@ -351,7 +341,6 @@ namespace Greenshot {
this.groupbox_qualitysettings.Size = new System.Drawing.Size(412, 106);
this.groupbox_qualitysettings.TabIndex = 14;
this.groupbox_qualitysettings.TabStop = false;
- this.groupbox_qualitysettings.Text = "Quality settings";
//
// checkbox_reducecolors
//
@@ -361,7 +350,6 @@ namespace Greenshot {
this.checkbox_reducecolors.PropertyName = "OutputFileReduceColors";
this.checkbox_reducecolors.Size = new System.Drawing.Size(394, 25);
this.checkbox_reducecolors.TabIndex = 17;
- this.checkbox_reducecolors.Text = "Reduce the amount of colors to a maximum of 256";
this.checkbox_reducecolors.UseVisualStyleBackColor = true;
//
// checkbox_alwaysshowqualitydialog
@@ -372,7 +360,6 @@ namespace Greenshot {
this.checkbox_alwaysshowqualitydialog.PropertyName = "OutputFilePromptQuality";
this.checkbox_alwaysshowqualitydialog.Size = new System.Drawing.Size(394, 25);
this.checkbox_alwaysshowqualitydialog.TabIndex = 16;
- this.checkbox_alwaysshowqualitydialog.Text = "Show quality dialog every time an image is saved";
this.checkbox_alwaysshowqualitydialog.UseVisualStyleBackColor = true;
//
// label_jpegquality
@@ -382,7 +369,6 @@ namespace Greenshot {
this.label_jpegquality.Name = "label_jpegquality";
this.label_jpegquality.Size = new System.Drawing.Size(116, 23);
this.label_jpegquality.TabIndex = 13;
- this.label_jpegquality.Text = "JPEG quality";
//
// textBoxJpegQuality
//
@@ -414,7 +400,6 @@ namespace Greenshot {
this.groupbox_destination.Size = new System.Drawing.Size(412, 311);
this.groupbox_destination.TabIndex = 16;
this.groupbox_destination.TabStop = false;
- this.groupbox_destination.Text = "Destination";
//
// checkbox_picker
//
@@ -423,7 +408,6 @@ namespace Greenshot {
this.checkbox_picker.Name = "checkbox_picker";
this.checkbox_picker.Size = new System.Drawing.Size(394, 24);
this.checkbox_picker.TabIndex = 19;
- this.checkbox_picker.Text = "Select destination dynamically";
this.checkbox_picker.UseVisualStyleBackColor = true;
this.checkbox_picker.CheckStateChanged += new System.EventHandler(this.DestinationsCheckStateChanged);
//
@@ -477,7 +461,6 @@ namespace Greenshot {
this.tab_general.Padding = new System.Windows.Forms.Padding(3);
this.tab_general.Size = new System.Drawing.Size(423, 351);
this.tab_general.TabIndex = 0;
- this.tab_general.Text = "General";
this.tab_general.UseVisualStyleBackColor = true;
//
// groupbox_network
@@ -491,7 +474,6 @@ namespace Greenshot {
this.groupbox_network.Size = new System.Drawing.Size(412, 72);
this.groupbox_network.TabIndex = 54;
this.groupbox_network.TabStop = false;
- this.groupbox_network.Text = "Network and updates";
//
// numericUpDown_daysbetweencheck
//
@@ -508,7 +490,6 @@ namespace Greenshot {
this.label_checkperiod.Name = "label_checkperiod";
this.label_checkperiod.Size = new System.Drawing.Size(334, 23);
this.label_checkperiod.TabIndex = 19;
- this.label_checkperiod.Text = "Update check interval in days (0=no check)";
//
// checkbox_usedefaultproxy
//
@@ -518,7 +499,6 @@ namespace Greenshot {
this.checkbox_usedefaultproxy.PropertyName = "UseProxy";
this.checkbox_usedefaultproxy.Size = new System.Drawing.Size(397, 25);
this.checkbox_usedefaultproxy.TabIndex = 17;
- this.checkbox_usedefaultproxy.Text = "Use default system proxy";
this.checkbox_usedefaultproxy.UseVisualStyleBackColor = true;
//
// groupbox_hotkeys
@@ -539,7 +519,6 @@ namespace Greenshot {
this.groupbox_hotkeys.Size = new System.Drawing.Size(412, 152);
this.groupbox_hotkeys.TabIndex = 15;
this.groupbox_hotkeys.TabStop = false;
- this.groupbox_hotkeys.Text = "Hotkeys";
//
// label_lastregion_hotkey
//
@@ -548,7 +527,6 @@ namespace Greenshot {
this.label_lastregion_hotkey.Name = "label_lastregion_hotkey";
this.label_lastregion_hotkey.Size = new System.Drawing.Size(212, 20);
this.label_lastregion_hotkey.TabIndex = 53;
- this.label_lastregion_hotkey.Text = "Capture last region";
//
// lastregion_hotkeyControl
//
@@ -567,7 +545,6 @@ namespace Greenshot {
this.label_ie_hotkey.Name = "label_ie_hotkey";
this.label_ie_hotkey.Size = new System.Drawing.Size(212, 20);
this.label_ie_hotkey.TabIndex = 51;
- this.label_ie_hotkey.Text = "Capture Internet Explorer";
//
// ie_hotkeyControl
//
@@ -586,7 +563,6 @@ namespace Greenshot {
this.label_region_hotkey.Name = "label_region_hotkey";
this.label_region_hotkey.Size = new System.Drawing.Size(212, 20);
this.label_region_hotkey.TabIndex = 49;
- this.label_region_hotkey.Text = "Capture region";
//
// label_window_hotkey
//
@@ -595,7 +571,6 @@ namespace Greenshot {
this.label_window_hotkey.Name = "label_window_hotkey";
this.label_window_hotkey.Size = new System.Drawing.Size(212, 23);
this.label_window_hotkey.TabIndex = 48;
- this.label_window_hotkey.Text = "Capture window";
//
// label_fullscreen_hotkey
//
@@ -604,7 +579,6 @@ namespace Greenshot {
this.label_fullscreen_hotkey.Name = "label_fullscreen_hotkey";
this.label_fullscreen_hotkey.Size = new System.Drawing.Size(212, 23);
this.label_fullscreen_hotkey.TabIndex = 47;
- this.label_fullscreen_hotkey.Text = "Capture full screen";
//
// region_hotkeyControl
//
@@ -647,7 +621,6 @@ namespace Greenshot {
this.tab_capture.Name = "tab_capture";
this.tab_capture.Size = new System.Drawing.Size(423, 351);
this.tab_capture.TabIndex = 3;
- this.tab_capture.Text = "Capture";
this.tab_capture.UseVisualStyleBackColor = true;
//
// groupbox_editor
@@ -659,7 +632,6 @@ namespace Greenshot {
this.groupbox_editor.Size = new System.Drawing.Size(416, 50);
this.groupbox_editor.TabIndex = 27;
this.groupbox_editor.TabStop = false;
- this.groupbox_editor.Text = "Editor";
//
// checkbox_editor_match_capture_size
//
@@ -670,7 +642,6 @@ namespace Greenshot {
this.checkbox_editor_match_capture_size.SectionName = "Editor";
this.checkbox_editor_match_capture_size.Size = new System.Drawing.Size(397, 24);
this.checkbox_editor_match_capture_size.TabIndex = 26;
- this.checkbox_editor_match_capture_size.Text = "Match capture size";
this.checkbox_editor_match_capture_size.UseVisualStyleBackColor = true;
//
// groupbox_iecapture
@@ -682,7 +653,6 @@ namespace Greenshot {
this.groupbox_iecapture.Size = new System.Drawing.Size(416, 50);
this.groupbox_iecapture.TabIndex = 2;
this.groupbox_iecapture.TabStop = false;
- this.groupbox_iecapture.Text = "Internet Explorer capture";
//
// checkbox_ie_capture
//
@@ -692,14 +662,13 @@ namespace Greenshot {
this.checkbox_ie_capture.PropertyName = "IECapture";
this.checkbox_ie_capture.Size = new System.Drawing.Size(404, 24);
this.checkbox_ie_capture.TabIndex = 26;
- this.checkbox_ie_capture.Text = "Internet Explorer capture";
this.checkbox_ie_capture.UseVisualStyleBackColor = true;
//
// groupbox_windowscapture
//
this.groupbox_windowscapture.Controls.Add(this.colorButton_window_background);
- this.groupbox_windowscapture.Controls.Add(this.label_window_capture_mode);
- this.groupbox_windowscapture.Controls.Add(this.checkbox_capture_windows_interactive);
+ this.groupbox_windowscapture.Controls.Add(this.radiobuttonWindowCapture);
+ this.groupbox_windowscapture.Controls.Add(this.radiobuttonInteractiveCapture);
this.groupbox_windowscapture.Controls.Add(this.combobox_window_capture_mode);
this.groupbox_windowscapture.LanguageKey = "settings_windowscapture";
this.groupbox_windowscapture.Location = new System.Drawing.Point(4, 141);
@@ -707,7 +676,6 @@ namespace Greenshot {
this.groupbox_windowscapture.Size = new System.Drawing.Size(416, 80);
this.groupbox_windowscapture.TabIndex = 1;
this.groupbox_windowscapture.TabStop = false;
- this.groupbox_windowscapture.Text = "Window capture";
//
// colorButton_window_background
//
@@ -720,26 +688,30 @@ namespace Greenshot {
this.colorButton_window_background.TabIndex = 45;
this.colorButton_window_background.UseVisualStyleBackColor = true;
//
- // label_window_capture_mode
//
- this.label_window_capture_mode.LanguageKey = "settings_window_capture_mode";
- this.label_window_capture_mode.Location = new System.Drawing.Point(6, 46);
- this.label_window_capture_mode.Name = "label_window_capture_mode";
- this.label_window_capture_mode.Size = new System.Drawing.Size(205, 23);
- this.label_window_capture_mode.TabIndex = 26;
- this.label_window_capture_mode.Text = "Window capture mode";
+ // radiobuttonWindowCapture
//
- // checkbox_capture_windows_interactive
+ this.radiobuttonWindowCapture.AutoSize = true;
+ this.radiobuttonWindowCapture.LanguageKey = "settings_window_capture_mode";
+ this.radiobuttonWindowCapture.Location = new System.Drawing.Point(11, 44);
+ this.radiobuttonWindowCapture.Name = "radiobuttonWindowCapture";
+ this.radiobuttonWindowCapture.Size = new System.Drawing.Size(132, 17);
+ this.radiobuttonWindowCapture.TabIndex = 47;
+ this.radiobuttonWindowCapture.TabStop = true;
+ this.radiobuttonWindowCapture.UseVisualStyleBackColor = true;
//
- this.checkbox_capture_windows_interactive.LanguageKey = "settings_capture_windows_interactive";
- this.checkbox_capture_windows_interactive.Location = new System.Drawing.Point(9, 19);
- this.checkbox_capture_windows_interactive.Name = "checkbox_capture_windows_interactive";
- this.checkbox_capture_windows_interactive.PropertyName = "CaptureWindowsInteractive";
- this.checkbox_capture_windows_interactive.Size = new System.Drawing.Size(394, 18);
- this.checkbox_capture_windows_interactive.TabIndex = 19;
- this.checkbox_capture_windows_interactive.Text = "Use interactive window capture mode";
- this.checkbox_capture_windows_interactive.UseVisualStyleBackColor = true;
+ // radiobuttonInteractiveCapture
//
+ this.radiobuttonInteractiveCapture.AutoSize = true;
+ this.radiobuttonInteractiveCapture.LanguageKey = "settings_capture_windows_interactive";
+ this.radiobuttonInteractiveCapture.Location = new System.Drawing.Point(11, 20);
+ this.radiobuttonInteractiveCapture.Name = "radiobuttonInteractiveCapture";
+ this.radiobuttonInteractiveCapture.PropertyName = "CaptureWindowsInteractive";
+ this.radiobuttonInteractiveCapture.Size = new System.Drawing.Size(203, 17);
+ this.radiobuttonInteractiveCapture.TabIndex = 46;
+ this.radiobuttonInteractiveCapture.TabStop = true;
+ this.radiobuttonInteractiveCapture.UseVisualStyleBackColor = true;
+ this.radiobuttonInteractiveCapture.CheckedChanged += new System.EventHandler(this.radiobutton_CheckedChanged);
// combobox_window_capture_mode
//
this.combobox_window_capture_mode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@@ -784,7 +756,6 @@ namespace Greenshot {
this.checkbox_notifications.PropertyName = "ShowTrayNotification";
this.checkbox_notifications.Size = new System.Drawing.Size(399, 24);
this.checkbox_notifications.TabIndex = 26;
- this.checkbox_notifications.Text = "Show notifications";
this.checkbox_notifications.UseVisualStyleBackColor = true;
//
// checkbox_playsound
@@ -795,7 +766,6 @@ namespace Greenshot {
this.checkbox_playsound.PropertyName = "PlayCameraSound";
this.checkbox_playsound.Size = new System.Drawing.Size(399, 24);
this.checkbox_playsound.TabIndex = 18;
- this.checkbox_playsound.Text = "Play camera sound";
this.checkbox_playsound.UseVisualStyleBackColor = true;
//
// checkbox_capture_mousepointer
@@ -806,7 +776,6 @@ namespace Greenshot {
this.checkbox_capture_mousepointer.PropertyName = "CaptureMousepointer";
this.checkbox_capture_mousepointer.Size = new System.Drawing.Size(394, 24);
this.checkbox_capture_mousepointer.TabIndex = 17;
- this.checkbox_capture_mousepointer.Text = "Capture mousepointer";
this.checkbox_capture_mousepointer.UseVisualStyleBackColor = true;
//
// numericUpDownWaitTime
@@ -834,7 +803,6 @@ namespace Greenshot {
this.label_waittime.Name = "label_waittime";
this.label_waittime.Size = new System.Drawing.Size(331, 16);
this.label_waittime.TabIndex = 25;
- this.label_waittime.Text = "Milliseconds to wait before capture";
//
// tab_output
//
@@ -847,7 +815,6 @@ namespace Greenshot {
this.tab_output.Padding = new System.Windows.Forms.Padding(3);
this.tab_output.Size = new System.Drawing.Size(423, 351);
this.tab_output.TabIndex = 1;
- this.tab_output.Text = "Output";
this.tab_output.UseVisualStyleBackColor = true;
//
// tab_destinations
@@ -858,7 +825,6 @@ namespace Greenshot {
this.tab_destinations.Name = "tab_destinations";
this.tab_destinations.Size = new System.Drawing.Size(423, 351);
this.tab_destinations.TabIndex = 4;
- this.tab_destinations.Text = "Destination";
this.tab_destinations.UseVisualStyleBackColor = true;
//
// tab_printer
@@ -872,7 +838,6 @@ namespace Greenshot {
this.tab_printer.Padding = new System.Windows.Forms.Padding(3);
this.tab_printer.Size = new System.Drawing.Size(423, 351);
this.tab_printer.TabIndex = 2;
- this.tab_printer.Text = "Printer";
this.tab_printer.UseVisualStyleBackColor = true;
//
// groupBoxColors
@@ -888,7 +853,6 @@ namespace Greenshot {
this.groupBoxColors.Size = new System.Drawing.Size(331, 124);
this.groupBoxColors.TabIndex = 34;
this.groupBoxColors.TabStop = false;
- this.groupBoxColors.Text = "Color settings";
//
// checkboxPrintInverted
//
@@ -901,7 +865,6 @@ namespace Greenshot {
this.checkboxPrintInverted.PropertyName = "OutputPrintInverted";
this.checkboxPrintInverted.Size = new System.Drawing.Size(141, 17);
this.checkboxPrintInverted.TabIndex = 28;
- this.checkboxPrintInverted.Text = "Print with inverted colors";
this.checkboxPrintInverted.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxPrintInverted.UseVisualStyleBackColor = true;
//
@@ -916,7 +879,6 @@ namespace Greenshot {
this.radioBtnColorPrint.PropertyName = "OutputPrintColor";
this.radioBtnColorPrint.Size = new System.Drawing.Size(90, 17);
this.radioBtnColorPrint.TabIndex = 29;
- this.radioBtnColorPrint.Text = "Full color print";
this.radioBtnColorPrint.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.radioBtnColorPrint.UseVisualStyleBackColor = true;
//
@@ -946,7 +908,6 @@ namespace Greenshot {
this.radioBtnMonochrome.PropertyName = "OutputPrintMonochrome";
this.radioBtnMonochrome.Size = new System.Drawing.Size(148, 17);
this.radioBtnMonochrome.TabIndex = 30;
- this.radioBtnMonochrome.Text = "Force black/white printing";
this.radioBtnMonochrome.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.radioBtnMonochrome.UseVisualStyleBackColor = true;
//
@@ -964,7 +925,6 @@ namespace Greenshot {
this.groupBoxPrintLayout.Size = new System.Drawing.Size(331, 151);
this.groupBoxPrintLayout.TabIndex = 33;
this.groupBoxPrintLayout.TabStop = false;
- this.groupBoxPrintLayout.Text = "Page layout settings";
//
// checkboxDateTime
//
@@ -977,7 +937,6 @@ namespace Greenshot {
this.checkboxDateTime.PropertyName = "OutputPrintFooter";
this.checkboxDateTime.Size = new System.Drawing.Size(187, 17);
this.checkboxDateTime.TabIndex = 26;
- this.checkboxDateTime.Text = "Print date / time at bottom of page";
this.checkboxDateTime.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxDateTime.UseVisualStyleBackColor = true;
//
@@ -992,7 +951,6 @@ namespace Greenshot {
this.checkboxAllowShrink.PropertyName = "OutputPrintAllowShrink";
this.checkboxAllowShrink.Size = new System.Drawing.Size(168, 17);
this.checkboxAllowShrink.TabIndex = 21;
- this.checkboxAllowShrink.Text = "Shrink printout to fit paper size";
this.checkboxAllowShrink.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxAllowShrink.UseVisualStyleBackColor = true;
//
@@ -1007,7 +965,6 @@ namespace Greenshot {
this.checkboxAllowEnlarge.PropertyName = "OutputPrintAllowEnlarge";
this.checkboxAllowEnlarge.Size = new System.Drawing.Size(174, 17);
this.checkboxAllowEnlarge.TabIndex = 22;
- this.checkboxAllowEnlarge.Text = "Enlarge printout to fit paper size";
this.checkboxAllowEnlarge.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxAllowEnlarge.UseVisualStyleBackColor = true;
//
@@ -1022,7 +979,6 @@ namespace Greenshot {
this.checkboxAllowRotate.PropertyName = "OutputPrintAllowRotate";
this.checkboxAllowRotate.Size = new System.Drawing.Size(187, 17);
this.checkboxAllowRotate.TabIndex = 23;
- this.checkboxAllowRotate.Text = "Rotate printout to page orientation";
this.checkboxAllowRotate.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxAllowRotate.UseVisualStyleBackColor = true;
//
@@ -1037,7 +993,6 @@ namespace Greenshot {
this.checkboxAllowCenter.PropertyName = "OutputPrintCenter";
this.checkboxAllowCenter.Size = new System.Drawing.Size(137, 17);
this.checkboxAllowCenter.TabIndex = 24;
- this.checkboxAllowCenter.Text = "Center printout on page";
this.checkboxAllowCenter.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.checkboxAllowCenter.UseVisualStyleBackColor = true;
//
@@ -1060,7 +1015,6 @@ namespace Greenshot {
this.tab_plugins.Name = "tab_plugins";
this.tab_plugins.Size = new System.Drawing.Size(423, 351);
this.tab_plugins.TabIndex = 2;
- this.tab_plugins.Text = "Plugins";
this.tab_plugins.UseVisualStyleBackColor = true;
//
// groupbox_plugins
@@ -1102,7 +1056,6 @@ namespace Greenshot {
this.button_pluginconfigure.Name = "button_pluginconfigure";
this.button_pluginconfigure.Size = new System.Drawing.Size(75, 23);
this.button_pluginconfigure.TabIndex = 1;
- this.button_pluginconfigure.Text = "Configure";
this.button_pluginconfigure.UseVisualStyleBackColor = true;
this.button_pluginconfigure.Click += new System.EventHandler(this.Button_pluginconfigureClick);
//
@@ -1150,7 +1103,6 @@ namespace Greenshot {
this.checkbox_reuseeditor.SectionName = "Editor";
this.checkbox_reuseeditor.Size = new System.Drawing.Size(394, 24);
this.checkbox_reuseeditor.TabIndex = 31;
- this.checkbox_reuseeditor.Text = "Reuse editor if possible";
this.checkbox_reuseeditor.UseVisualStyleBackColor = true;
//
// checkbox_minimizememoryfootprint
@@ -1161,7 +1113,6 @@ namespace Greenshot {
this.checkbox_minimizememoryfootprint.PropertyName = "MinimizeWorkingSetSize";
this.checkbox_minimizememoryfootprint.Size = new System.Drawing.Size(394, 24);
this.checkbox_minimizememoryfootprint.TabIndex = 30;
- this.checkbox_minimizememoryfootprint.Text = "Minimize memory footprint, but with a performance penalty (not adviced).";
this.checkbox_minimizememoryfootprint.UseVisualStyleBackColor = true;
//
// checkbox_checkunstableupdates
@@ -1172,7 +1123,6 @@ namespace Greenshot {
this.checkbox_checkunstableupdates.PropertyName = "CheckForUnstable";
this.checkbox_checkunstableupdates.Size = new System.Drawing.Size(394, 24);
this.checkbox_checkunstableupdates.TabIndex = 29;
- this.checkbox_checkunstableupdates.Text = "Check for unstable updates";
this.checkbox_checkunstableupdates.UseVisualStyleBackColor = true;
//
// checkbox_suppresssavedialogatclose
@@ -1184,7 +1134,6 @@ namespace Greenshot {
this.checkbox_suppresssavedialogatclose.SectionName = "Editor";
this.checkbox_suppresssavedialogatclose.Size = new System.Drawing.Size(394, 24);
this.checkbox_suppresssavedialogatclose.TabIndex = 28;
- this.checkbox_suppresssavedialogatclose.Text = "Suppress the save dialog when closing the editor";
this.checkbox_suppresssavedialogatclose.UseVisualStyleBackColor = true;
//
// label_counter
@@ -1195,7 +1144,6 @@ namespace Greenshot {
this.label_counter.Name = "label_counter";
this.label_counter.Size = new System.Drawing.Size(246, 13);
this.label_counter.TabIndex = 27;
- this.label_counter.Text = "The number for the ${NUM} in the filename pattern";
//
// textbox_counter
//
@@ -1231,7 +1179,6 @@ namespace Greenshot {
this.checkbox_thumbnailpreview.PropertyName = "ThumnailPreview";
this.checkbox_thumbnailpreview.Size = new System.Drawing.Size(394, 24);
this.checkbox_thumbnailpreview.TabIndex = 23;
- this.checkbox_thumbnailpreview.Text = "Show window thumbnails in context menu (for Vista and windows 7)";
this.checkbox_thumbnailpreview.UseVisualStyleBackColor = true;
//
// checkbox_optimizeforrdp
@@ -1242,7 +1189,6 @@ namespace Greenshot {
this.checkbox_optimizeforrdp.PropertyName = "OptimizeForRDP";
this.checkbox_optimizeforrdp.Size = new System.Drawing.Size(394, 24);
this.checkbox_optimizeforrdp.TabIndex = 22;
- this.checkbox_optimizeforrdp.Text = "Make some optimizations for usage with remote desktop";
this.checkbox_optimizeforrdp.UseVisualStyleBackColor = true;
//
// checkbox_autoreducecolors
@@ -1253,8 +1199,6 @@ namespace Greenshot {
this.checkbox_autoreducecolors.PropertyName = "OutputFileAutoReduceColors";
this.checkbox_autoreducecolors.Size = new System.Drawing.Size(408, 24);
this.checkbox_autoreducecolors.TabIndex = 21;
- this.checkbox_autoreducecolors.Text = "Create an 8-bit image if the colors are less than 256 while having a > 8 bits ima" +
- "ge";
this.checkbox_autoreducecolors.UseVisualStyleBackColor = true;
//
// label_clipboardformats
@@ -1265,7 +1209,6 @@ namespace Greenshot {
this.label_clipboardformats.Name = "label_clipboardformats";
this.label_clipboardformats.Size = new System.Drawing.Size(88, 13);
this.label_clipboardformats.TabIndex = 20;
- this.label_clipboardformats.Text = "Clipboard formats";
//
// checkbox_enableexpert
//
@@ -1274,7 +1217,6 @@ namespace Greenshot {
this.checkbox_enableexpert.Name = "checkbox_enableexpert";
this.checkbox_enableexpert.Size = new System.Drawing.Size(394, 24);
this.checkbox_enableexpert.TabIndex = 19;
- this.checkbox_enableexpert.Text = "I know what I am doing!";
this.checkbox_enableexpert.UseVisualStyleBackColor = true;
this.checkbox_enableexpert.CheckedChanged += new System.EventHandler(this.checkbox_enableexpert_CheckedChanged);
//
@@ -1374,9 +1316,9 @@ namespace Greenshot {
private GreenshotPlugin.Controls.GreenshotLabel label_ie_hotkey;
private GreenshotPlugin.Controls.HotkeyControl lastregion_hotkeyControl;
private GreenshotPlugin.Controls.GreenshotLabel label_lastregion_hotkey;
- private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_hotkeys;
+ private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_hotkeys;
private Greenshot.Controls.ColorButton colorButton_window_background;
- private GreenshotPlugin.Controls.GreenshotLabel label_window_capture_mode;
+ private GreenshotPlugin.Controls.GreenshotRadioButton radiobuttonWindowCapture;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_ie_capture;
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_capture;
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_windowscapture;
@@ -1385,15 +1327,15 @@ namespace Greenshot {
private System.Windows.Forms.ComboBox combobox_window_capture_mode;
private System.Windows.Forms.NumericUpDown numericUpDownWaitTime;
private GreenshotPlugin.Controls.GreenshotLabel label_waittime;
- private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_windows_interactive;
+ private GreenshotPlugin.Controls.GreenshotRadioButton radiobuttonInteractiveCapture;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_mousepointer;
private GreenshotPlugin.Controls.GreenshotTabPage tab_printer;
private System.Windows.Forms.ListView listview_plugins;
private GreenshotPlugin.Controls.GreenshotButton button_pluginconfigure;
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_plugins;
- private GreenshotPlugin.Controls.GreenshotTabPage tab_plugins;
+ private GreenshotPlugin.Controls.GreenshotTabPage tab_plugins;
private System.Windows.Forms.Button btnPatternHelp;
- private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_copypathtoclipboard;
+ private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_copypathtoclipboard;
private GreenshotPlugin.Controls.GreenshotTabPage tab_output;
private GreenshotPlugin.Controls.GreenshotTabPage tab_general;
private System.Windows.Forms.TabControl tabcontrol;
@@ -1425,7 +1367,7 @@ namespace Greenshot {
private GreenshotPlugin.Controls.GreenshotLabel label_clipboardformats;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_enableexpert;
private System.Windows.Forms.ListView listview_clipboardformats;
- private System.Windows.Forms.ColumnHeader columnHeader1;
+ private System.Windows.Forms.ColumnHeader columnHeader1;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_autoreducecolors;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_optimizeforrdp;
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_thumbnailpreview;
diff --git a/Greenshot/Forms/SettingsForm.cs b/Greenshot/Forms/SettingsForm.cs
index 6e96b2b69..eb34fc112 100644
--- a/Greenshot/Forms/SettingsForm.cs
+++ b/Greenshot/Forms/SettingsForm.cs
@@ -342,7 +342,8 @@ namespace Greenshot {
SetWindowCaptureMode(coreConfiguration.WindowCaptureMode);
// Disable editing when the value is fixed
- combobox_window_capture_mode.Enabled = !coreConfiguration.Values["WindowCaptureMode"].IsFixed;
+ combobox_window_capture_mode.Enabled = !coreConfiguration.CaptureWindowsInteractive && !coreConfiguration.Values["WindowCaptureMode"].IsFixed;
+ radiobuttonWindowCapture.Checked = !coreConfiguration.CaptureWindowsInteractive;
trackBarJpegQuality.Value = coreConfiguration.OutputFileJpegQuality;
trackBarJpegQuality.Enabled = !coreConfiguration.Values["OutputFileJpegQuality"].IsFixed;
@@ -352,19 +353,24 @@ namespace Greenshot {
numericUpDownWaitTime.Value = coreConfiguration.CaptureDelay >=0?coreConfiguration.CaptureDelay:0;
numericUpDownWaitTime.Enabled = !coreConfiguration.Values["CaptureDelay"].IsFixed;
- // Autostart checkbox logic.
- if (StartupHelper.hasRunAll()) {
- // Remove runUser if we already have a run under all
- StartupHelper.deleteRunUser();
- checkbox_autostartshortcut.Enabled = StartupHelper.canWriteRunAll();
- checkbox_autostartshortcut.Checked = true; // We already checked this
- } else if (StartupHelper.IsInStartupFolder()) {
- checkbox_autostartshortcut.Enabled = false;
- checkbox_autostartshortcut.Checked = true; // We already checked this
+ if (IniConfig.IsPortable) {
+ checkbox_autostartshortcut.Visible = false;
+ checkbox_autostartshortcut.Checked = false;
} else {
- // No run for all, enable the checkbox and set it to true if the current user has a key
- checkbox_autostartshortcut.Enabled = StartupHelper.canWriteRunUser();
- checkbox_autostartshortcut.Checked = StartupHelper.hasRunUser();
+ // Autostart checkbox logic.
+ if (StartupHelper.hasRunAll()) {
+ // Remove runUser if we already have a run under all
+ StartupHelper.deleteRunUser();
+ checkbox_autostartshortcut.Enabled = StartupHelper.canWriteRunAll();
+ checkbox_autostartshortcut.Checked = true; // We already checked this
+ } else if (StartupHelper.IsInStartupFolder()) {
+ checkbox_autostartshortcut.Enabled = false;
+ checkbox_autostartshortcut.Checked = true; // We already checked this
+ } else {
+ // No run for all, enable the checkbox and set it to true if the current user has a key
+ checkbox_autostartshortcut.Enabled = StartupHelper.canWriteRunUser();
+ checkbox_autostartshortcut.Checked = StartupHelper.hasRunUser();
+ }
}
numericUpDown_daysbetweencheck.Value = coreConfiguration.UpdateCheckInterval;
@@ -591,6 +597,10 @@ namespace Greenshot {
CheckBox checkBox = sender as CheckBox;
ExpertSettingsEnableState(checkBox.Checked);
}
+
+ private void radiobutton_CheckedChanged(object sender, EventArgs e) {
+ combobox_window_capture_mode.Enabled = radiobuttonWindowCapture.Checked;
+ }
}
public class ListviewWithDestinationComparer : System.Collections.IComparer {
diff --git a/Greenshot/Greenshot.csproj b/Greenshot/Greenshot.csproj
index b84e44c1c..eed3687a5 100644
--- a/Greenshot/Greenshot.csproj
+++ b/Greenshot/Greenshot.csproj
@@ -213,9 +213,6 @@
-
- Always
-
@@ -400,7 +397,7 @@
- "$(MSBuildProjectDirectory)\tools\TortoiseSVN\SubWCRev.exe" "$(MSBuildProjectDirectory)\.." "$(MSBuildProjectDirectory)\AssemblyInfo.cs.template" "$(MSBuildProjectDirectory)\AssemblyInfo.cs"
+
copy "$(ProjectDir)log4net-debug.xml" "$(SolutionDir)bin\$(Configuration)\log4net.xml"
diff --git a/Greenshot/Help/HelpFileLoader.cs b/Greenshot/Help/HelpFileLoader.cs
index 560c9ae32..091c991f6 100644
--- a/Greenshot/Help/HelpFileLoader.cs
+++ b/Greenshot/Help/HelpFileLoader.cs
@@ -1,83 +1,83 @@
-/*
- * Created by SharpDevelop.
- * User: jens
- * Date: 09.04.2012
- * Time: 19:24
- *
- * To change this template use Tools | Options | Coding | Edit Standard Headers.
- */
-using Greenshot.Configuration;
-using GreenshotPlugin.Core;
-using System;
-using System.Diagnostics;
-using System.Net;
-using System.Windows.Forms;
-
-namespace Greenshot.Help
-{
- ///
- /// Description of HelpFileLoader.
- ///
- public sealed class HelpFileLoader
- {
-
- private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(HelpFileLoader));
-
- private const string EXT_HELP_URL = @"http://getgreenshot.org/help/";
-
- private HelpFileLoader() {
- }
-
- public static void LoadHelp() {
- string uri = findOnlineHelpUrl(Language.CurrentLanguage);
- if(uri == null) {
- uri = Language.HelpFilePath;
- }
- Process.Start(uri);
- }
-
- /// URL of help file in selected ietf, or (if not present) default ietf, or null (if not present, too. probably indicating that there is no internet connection)
- private static string findOnlineHelpUrl(string currentIETF) {
- string ret = null;
-
- string extHelpUrlForCurrrentIETF = EXT_HELP_URL;
-
- if(!currentIETF.Equals("en-US")) {
- extHelpUrlForCurrrentIETF += currentIETF.ToLower() + "/";
- }
-
- HttpStatusCode? httpStatusCode = getHttpStatus(extHelpUrlForCurrrentIETF);
- if(httpStatusCode == HttpStatusCode.OK) {
- ret = extHelpUrlForCurrrentIETF;
- } else if(httpStatusCode != null && !extHelpUrlForCurrrentIETF.Equals(EXT_HELP_URL)) {
- LOG.DebugFormat("Localized online help not found at {0}, will try {1} as fallback", extHelpUrlForCurrrentIETF, EXT_HELP_URL);
- httpStatusCode = getHttpStatus(EXT_HELP_URL);
- if(httpStatusCode == HttpStatusCode.OK) {
- ret = EXT_HELP_URL;
- } else {
- LOG.WarnFormat("{0} returned status {1}", EXT_HELP_URL, httpStatusCode);
- }
- } else if(httpStatusCode == null){
- LOG.Info("Internet connection does not seem to be available, will load help from file system.");
- }
-
- return ret;
- }
-
- ///
- /// Retrieves HTTP status for a given url.
- ///
- /// URL for which the HTTP status is to be checked
- /// An HTTP status code, or null if there is none (probably indicating that there is no internet connection available
- private static HttpStatusCode? getHttpStatus(string url) {
- try {
- HttpWebRequest req = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
- HttpWebResponse res = (HttpWebResponse)req.GetResponse();
- return res.StatusCode;
- } catch(WebException e) {
- if(e.Response != null) return ((HttpWebResponse)e.Response).StatusCode;
- else return null;
- }
- }
- }
-}
+/*
+ * Created by SharpDevelop.
+ * User: jens
+ * Date: 09.04.2012
+ * Time: 19:24
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using Greenshot.Configuration;
+using GreenshotPlugin.Core;
+using System;
+using System.Diagnostics;
+using System.Net;
+using System.Windows.Forms;
+
+namespace Greenshot.Help
+{
+ ///
+ /// Description of HelpFileLoader.
+ ///
+ public sealed class HelpFileLoader
+ {
+
+ private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(HelpFileLoader));
+
+ private const string EXT_HELP_URL = @"http://getgreenshot.org/help/";
+
+ private HelpFileLoader() {
+ }
+
+ public static void LoadHelp() {
+ string uri = findOnlineHelpUrl(Language.CurrentLanguage);
+ if(uri == null) {
+ uri = Language.HelpFilePath;
+ }
+ Process.Start(uri);
+ }
+
+ /// URL of help file in selected ietf, or (if not present) default ietf, or null (if not present, too. probably indicating that there is no internet connection)
+ private static string findOnlineHelpUrl(string currentIETF) {
+ string ret = null;
+
+ string extHelpUrlForCurrrentIETF = EXT_HELP_URL;
+
+ if(!currentIETF.Equals("en-US")) {
+ extHelpUrlForCurrrentIETF += currentIETF.ToLower() + "/";
+ }
+
+ HttpStatusCode? httpStatusCode = getHttpStatus(extHelpUrlForCurrrentIETF);
+ if(httpStatusCode == HttpStatusCode.OK) {
+ ret = extHelpUrlForCurrrentIETF;
+ } else if(httpStatusCode != null && !extHelpUrlForCurrrentIETF.Equals(EXT_HELP_URL)) {
+ LOG.DebugFormat("Localized online help not found at {0}, will try {1} as fallback", extHelpUrlForCurrrentIETF, EXT_HELP_URL);
+ httpStatusCode = getHttpStatus(EXT_HELP_URL);
+ if(httpStatusCode == HttpStatusCode.OK) {
+ ret = EXT_HELP_URL;
+ } else {
+ LOG.WarnFormat("{0} returned status {1}", EXT_HELP_URL, httpStatusCode);
+ }
+ } else if(httpStatusCode == null){
+ LOG.Info("Internet connection does not seem to be available, will load help from file system.");
+ }
+
+ return ret;
+ }
+
+ ///
+ /// Retrieves HTTP status for a given url.
+ ///
+ /// URL for which the HTTP status is to be checked
+ /// An HTTP status code, or null if there is none (probably indicating that there is no internet connection available
+ private static HttpStatusCode? getHttpStatus(string url) {
+ try {
+ HttpWebRequest req = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
+ HttpWebResponse res = (HttpWebResponse)req.GetResponse();
+ return res.StatusCode;
+ } catch(WebException e) {
+ if(e.Response != null) return ((HttpWebResponse)e.Response).StatusCode;
+ else return null;
+ }
+ }
+ }
+}
diff --git a/Greenshot/Helpers/DestinationHelper.cs b/Greenshot/Helpers/DestinationHelper.cs
index c10ab8a81..f0261161a 100644
--- a/Greenshot/Helpers/DestinationHelper.cs
+++ b/Greenshot/Helpers/DestinationHelper.cs
@@ -24,6 +24,7 @@ using System.Collections.Generic;
using Greenshot.Plugin;
using GreenshotPlugin.Core;
using Greenshot.Destinations;
+using Greenshot.IniFile;
namespace Greenshot.Helpers {
///
@@ -32,6 +33,7 @@ namespace Greenshot.Helpers {
public static class DestinationHelper {
private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(DestinationHelper));
private static Dictionary RegisteredDestinations = new Dictionary();
+ private static CoreConfiguration coreConfig = IniConfig.GetIniSection();
/// Initialize the destinations
static DestinationHelper() {
@@ -64,8 +66,10 @@ namespace Greenshot.Helpers {
///
///
public static void RegisterDestination(IDestination destination) {
- // don't test the key, an exception should happen wenn it's not unique
- RegisteredDestinations.Add(destination.Designation, destination);
+ if (coreConfig.ExcludeDestinations == null || !coreConfig.ExcludeDestinations.Contains(destination.Designation)) {
+ // don't test the key, an exception should happen wenn it's not unique
+ RegisteredDestinations.Add(destination.Designation, destination);
+ }
}
///
@@ -77,9 +81,10 @@ namespace Greenshot.Helpers {
foreach (PluginAttribute pluginAttribute in PluginHelper.Instance.Plugins.Keys) {
IGreenshotPlugin plugin = PluginHelper.Instance.Plugins[pluginAttribute];
try {
- var dests = plugin.Destinations();
- if (dests != null) {
- destinations.AddRange(dests);
+ foreach (IDestination destination in plugin.Destinations()) {
+ if (coreConfig.ExcludeDestinations == null || !coreConfig.ExcludeDestinations.Contains(destination.Designation)) {
+ destinations.Add(destination);
+ }
}
} catch (Exception ex) {
LOG.ErrorFormat("Couldn't get destinations from the plugin {0}", pluginAttribute.Name);
diff --git a/Greenshot/Helpers/IECaptureHelper.cs b/Greenshot/Helpers/IECaptureHelper.cs
index da04b45c1..b759d0086 100644
--- a/Greenshot/Helpers/IECaptureHelper.cs
+++ b/Greenshot/Helpers/IECaptureHelper.cs
@@ -145,6 +145,7 @@ namespace Greenshot.Helpers {
try {
IHTMLDocument2 document2 = getHTMLDocument(ieWindow);
string title = document2.title;
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(document2);
if (string.IsNullOrEmpty(title)) {
singleWindowText.Add(ieWindow.Text);
} else {
@@ -581,29 +582,6 @@ namespace Greenshot.Helpers {
}
return returnBitmap;
}
-
- ///
- /// Used as an example
- ///
- ///
- ///
- ///
- private static void ParseElements(DocumentContainer documentContainer, Graphics graphicsTarget, Bitmap returnBitmap) {
- foreach(ElementContainer element in documentContainer.GetElementsByTagName("input", new string[]{"greenshot"})) {
- if (element.attributes.ContainsKey("greenshot") && element.attributes["greenshot"] != null) {
- string greenshotAction = element.attributes["greenshot"];
- if ("hide".Equals(greenshotAction)) {
- using (Brush brush = new SolidBrush(Color.Black)) {
- graphicsTarget.FillRectangle(brush, element.rectangle);
- }
- } else if ("red".Equals(greenshotAction)) {
- using (Brush brush = new SolidBrush(Color.Red)) {
- graphicsTarget.FillRectangle(brush, element.rectangle);
- }
- }
- }
- }
- }
///
/// This method takes the actual capture of the document (frame)
diff --git a/Greenshot/Helpers/IEInterop/IEContainer.cs b/Greenshot/Helpers/IEInterop/IEContainer.cs
index cc83f6c67..24e8b6416 100644
--- a/Greenshot/Helpers/IEInterop/IEContainer.cs
+++ b/Greenshot/Helpers/IEInterop/IEContainer.cs
@@ -31,18 +31,11 @@ using Greenshot.Interop.IE;
using Greenshot.IniFile;
namespace Greenshot.Helpers.IEInterop {
- public class ElementContainer {
- public Rectangle rectangle;
- public string id;
- public Dictionary attributes = new Dictionary();
- }
-
public class DocumentContainer {
private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(DocumentContainer));
private static CoreConfiguration configuration = IniConfig.GetIniSection();
- private static readonly List CAPTURE_TAGS = new List();
- private const int E_ACCESSDENIED = unchecked((int)0x80070005L);
- private static readonly Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
+ private const int E_ACCESSDENIED = unchecked((int)0x80070005L);
+ private static readonly Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
private static readonly Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11D0-8A3E-00C04FC9E26E");
private static int counter = 0;
private int id = counter++;
@@ -60,30 +53,6 @@ namespace Greenshot.Helpers.IEInterop {
private double zoomLevelX = 1;
private double zoomLevelY = 1;
private List frames = new List();
-
- static DocumentContainer() {
- CAPTURE_TAGS.Add("LABEL");
- CAPTURE_TAGS.Add("DIV");
- CAPTURE_TAGS.Add("IMG");
- CAPTURE_TAGS.Add("INPUT");
- CAPTURE_TAGS.Add("BUTTON");
- CAPTURE_TAGS.Add("TD");
- CAPTURE_TAGS.Add("TR");
- CAPTURE_TAGS.Add("TH");
- CAPTURE_TAGS.Add("TABLE");
- CAPTURE_TAGS.Add("TBODY");
- CAPTURE_TAGS.Add("SPAN");
- CAPTURE_TAGS.Add("A");
- CAPTURE_TAGS.Add("UL");
- CAPTURE_TAGS.Add("LI");
- CAPTURE_TAGS.Add("H1");
- CAPTURE_TAGS.Add("H2");
- CAPTURE_TAGS.Add("H3");
- CAPTURE_TAGS.Add("H4");
- CAPTURE_TAGS.Add("H5");
- CAPTURE_TAGS.Add("FORM");
- CAPTURE_TAGS.Add("FIELDSET");
- }
private DocumentContainer(IHTMLWindow2 frameWindow, WindowDetails contentWindow, DocumentContainer parent) {
//IWebBrowser2 webBrowser2 = frame as IWebBrowser2;
@@ -108,19 +77,16 @@ namespace Greenshot.Helpers.IEInterop {
this.parent = parent;
// Calculate startLocation for the frames
- IHTMLWindow3 window3 = (IHTMLWindow3)document2.parentWindow;
-// IHTMLElement element = window2.document.body;
-// long x = 0;
-// long y = 0;
-// do {
-// x += element.offsetLeft;
-// y += element.offsetTop;
-// element = element.offsetParent;
-// } while (element != null);
-// startLocation = new Point((int)x, (int)y);
+ IHTMLWindow2 window2 = document2.parentWindow;
+ IHTMLWindow3 window3 = (IHTMLWindow3)window2;
Point contentWindowLocation = contentWindow.WindowRectangle.Location;
int x = window3.screenLeft - contentWindowLocation.X;
int y = window3.screenTop - contentWindowLocation.Y;
+
+ // Release IHTMLWindow 2+3 com objects
+ releaseCom(window2);
+ releaseCom(window3);
+
startLocation = new Point(x, y);
Init(document2, contentWindow);
}
@@ -129,7 +95,17 @@ namespace Greenshot.Helpers.IEInterop {
Init(document2, contentWindow);
LOG.DebugFormat("Creating DocumentContainer for Document {0} found in window with rectangle {1}", name, SourceRectangle);
}
-
+
+ ///
+ /// Helper method to release com objects
+ ///
+ ///
+ private void releaseCom(object comObject) {
+ if (comObject != null) {
+ Marshal.ReleaseComObject(comObject);
+ }
+ }
+
///
/// Private helper method for the constructors
///
@@ -152,12 +128,15 @@ namespace Greenshot.Helpers.IEInterop {
LOG.Error("Error checking the compatibility mode:");
LOG.Error(ex);
}
+ // Do not release IHTMLDocument5 com object, as this also gives problems with the document2!
+ //Marshal.ReleaseComObject(document5);
+
Rectangle clientRectangle = contentWindow.WindowRectangle;
try {
IHTMLWindow2 window2 = (IHTMLWindow2)document2.parentWindow;
//IHTMLWindow3 window3 = (IHTMLWindow3)document2.parentWindow;
- IHTMLScreen2 screen2 = (IHTMLScreen2)window2.screen;
IHTMLScreen screen = window2.screen;
+ IHTMLScreen2 screen2 = (IHTMLScreen2)screen;
if (parent != null) {
// Copy parent values
zoomLevelX = parent.zoomLevelX;
@@ -188,6 +167,10 @@ namespace Greenshot.Helpers.IEInterop {
}
}
LOG.DebugFormat("Zoomlevel {0}, {1}", zoomLevelX, zoomLevelY);
+ // Release com objects
+ releaseCom(window2);
+ releaseCom(screen);
+ releaseCom(screen2);
} catch (Exception e) {
LOG.Warn("Can't get certain properties for documents, using default. Due to: ", e);
}
@@ -226,10 +209,14 @@ namespace Greenshot.Helpers.IEInterop {
} else {
LOG.DebugFormat("Skipping frame {0}", frameData.Name);
}
+ // Clean up frameWindow
+ releaseCom(frameWindow);
} catch (Exception e) {
LOG.Warn("Problem while trying to get information from a frame, skipping the frame!", e);
}
}
+ // Clean up collection
+ releaseCom(frameCollection);
} catch (Exception ex) {
LOG.Warn("Problem while trying to get the frames, skipping!", ex);
}
@@ -239,6 +226,8 @@ namespace Greenshot.Helpers.IEInterop {
foreach (IHTMLElement frameElement in document3.getElementsByTagName("IFRAME")) {
try {
CorrectFrameLocations(frameElement);
+ // Clean up frameElement
+ releaseCom(frameElement);
} catch (Exception e) {
LOG.Warn("Problem while trying to get information from an iframe, skipping the frame!", e);
}
@@ -248,30 +237,32 @@ namespace Greenshot.Helpers.IEInterop {
}
}
- private void DisableScrollbars(IHTMLDocument2 document2) {
- try {
- setAttribute("scroll","no");
- IHTMLBodyElement body = (IHTMLBodyElement)document2.body;
- body.scroll="no";
- document2.body.style.borderStyle = "none";
- } catch (Exception ex) {
- LOG.Warn("Can't disable scroll", ex);
- }
- }
-
+ ///
+ /// Corrent the frame locations with the information
+ ///
+ ///
private void CorrectFrameLocations(IHTMLElement frameElement) {
long x = 0;
long y = 0;
IHTMLElement element = frameElement;
+ IHTMLElement oldElement = null;
do {
x += element.offsetLeft;
y += element.offsetTop;
element = element.offsetParent;
+ // Release element, but prevent the frameElement to be released
+ if (oldElement != null) {
+ releaseCom(oldElement);
+ }
+ oldElement = element;
} while (element != null);
+
Point elementLocation = new Point((int)x, (int)y);
IHTMLElement2 element2 = (IHTMLElement2)frameElement;
IHTMLRect rec = element2.getBoundingClientRect();
Point elementBoundingLocation = new Point(rec.left, rec.top);
+ // Release IHTMLRect
+ releaseCom(rec);
LOG.DebugFormat("Looking for iframe to correct at {0}", elementBoundingLocation);
foreach(DocumentContainer foundFrame in frames) {
Point frameLocation = foundFrame.SourceLocation;
@@ -320,7 +311,7 @@ namespace Greenshot.Helpers.IEInterop {
try {
// Convert IHTMLWindow2 to IWebBrowser2 using IServiceProvider.
Interop.IServiceProvider sp = (Interop.IServiceProvider)htmlWindow;
-
+
// Use IServiceProvider.QueryService to get IWebBrowser2 object.
Object brws = null;
Guid webBrowserApp = IID_IWebBrowserApp.Clone();
@@ -336,128 +327,6 @@ namespace Greenshot.Helpers.IEInterop {
}
return null;
}
-
- ///
- /// Wrapper around getElementsByTagName
- ///
- /// tagName is the name of the tag to look for, e.g. "input"
- /// If true then all attributes are retrieved. This is slow!
- ///
- public List GetElementsByTagName(string tagName, string[] attributes) {
- List elements = new List();
- foreach(IHTMLElement element in document3.getElementsByTagName(tagName)) {
- if (element.offsetWidth <= 0 || element.offsetHeight <= 0) {
- // not visisble
- continue;
- }
- ElementContainer elementContainer = new ElementContainer();
- elementContainer.id = element.id;
-
- if (attributes != null) {
- foreach(string attributeName in attributes) {
- object attributeValue = element.getAttribute(attributeName, 0);
- if (attributeValue != null && attributeValue != DBNull.Value && !elementContainer.attributes.ContainsKey(attributeName)) {
- elementContainer.attributes.Add(attributeName, attributeValue.ToString());
- }
- }
- }
-
- Point elementLocation = new Point((int)element.offsetLeft, (int)element.offsetTop);
- elementLocation.Offset(this.DestinationLocation);
- IHTMLElement parent = element.offsetParent;
- while (parent != null) {
- elementLocation.Offset((int)parent.offsetLeft, (int)parent.offsetTop);
- parent = parent.offsetParent;
- }
- Rectangle elementRectangle = new Rectangle(elementLocation, new Size((int)element.offsetWidth, (int)element.offsetHeight));
- elementContainer.rectangle = elementRectangle;
- elements.Add(elementContainer);
- }
- return elements;
- }
-
- ///
- /// Create a CaptureElement for every element on the page, which can be used by the editor.
- ///
- ///
- public CaptureElement CreateCaptureElements(Size documentSize) {
- LOG.DebugFormat("CreateCaptureElements for {0}", Name);
- IHTMLElement baseElement;
- if (!isDTD) {
- baseElement = document2.body;
- } else {
- baseElement = document3.documentElement;
- }
- IHTMLElement2 baseElement2 = baseElement as IHTMLElement2;
- IHTMLRect htmlRect = baseElement2.getBoundingClientRect();
- if (Size.Empty.Equals(documentSize)) {
- documentSize = new Size(ScrollWidth, ScrollHeight);
- }
- Rectangle baseElementBounds = new Rectangle(DestinationLocation.X + htmlRect.left, DestinationLocation.Y + htmlRect.top, documentSize.Width, documentSize.Height);
- if (baseElementBounds.Width <= 0 || baseElementBounds.Height <= 0) {
- // not visisble
- return null;
- }
-
- CaptureElement captureBaseElement = new CaptureElement(name, baseElementBounds);
-
- foreach(IHTMLElement bodyElement in baseElement.children) {
- if ("BODY".Equals(bodyElement.tagName)) {
- captureBaseElement.Children.AddRange(RecurseElements(bodyElement));
- }
- }
- return captureBaseElement;
- }
-
- ///
- /// Recurse into the document tree
- ///
- /// IHTMLElement we want to recurse into
- /// List of ICaptureElements with child elements
- private List RecurseElements(IHTMLElement parentElement) {
- List childElements = new List();
- foreach(IHTMLElement element in parentElement.children) {
- string tagName = element.tagName;
-
- // Skip elements we aren't interested in
- if (!CAPTURE_TAGS.Contains(tagName)) {
- continue;
- }
-
- ICaptureElement captureElement = new CaptureElement(tagName);
- captureElement.Children.AddRange(RecurseElements(element));
-
- // Get Bounds
- IHTMLElement2 element2 = element as IHTMLElement2;
- IHTMLRect htmlRect = element2.getBoundingClientRect();
-
- int left = htmlRect.left;
- int top = htmlRect.top;
- int right = htmlRect.right;
- int bottom = htmlRect.bottom;
-
- // Offset
- left += DestinationLocation.X;
- top += DestinationLocation.Y;
- right += DestinationLocation.X;
- bottom += DestinationLocation.Y;
-
- // Fit to floating children
- foreach(ICaptureElement childElement in captureElement.Children) {
- //left = Math.Min(left, childElement.Bounds.Left);
- //top = Math.Min(top, childElement.Bounds.Top);
- right = Math.Max(right, childElement.Bounds.Right);
- bottom = Math.Max(bottom, childElement.Bounds.Bottom);
- }
- Rectangle bounds = new Rectangle(left, top, right-left, bottom-top);
-
- if (bounds.Width > 0 && bounds.Height > 0) {
- captureElement.Bounds = bounds;
- childElements.Add(captureElement);
- }
- }
- return childElements;
- }
public Color BackgroundColor {
get {
@@ -523,11 +392,15 @@ namespace Greenshot.Helpers.IEInterop {
/// The IHTMLDocument2
/// The IHTMLDocument3
public void setAttribute(string attribute, string value) {
+ IHTMLElement element = null;
if (!isDTD) {
- document2.body.setAttribute(attribute, value, 1);
+ element = document2.body;
} else {
- document3.documentElement.setAttribute(attribute, value, 1);
+ element = document3.documentElement;
}
+ element.setAttribute(attribute, value, 1);
+ // Release IHTMLElement com object
+ releaseCom(element);
}
///
@@ -538,12 +411,16 @@ namespace Greenshot.Helpers.IEInterop {
/// The IHTMLDocument3
/// object with the attribute value
public object getAttribute(string attribute) {
+ IHTMLElement element = null;
object retVal = 0;
if (!isDTD) {
- retVal = document2.body.getAttribute(attribute, 1);
+ element = document2.body;
} else {
- retVal = document3.documentElement.getAttribute(attribute, 1);
+ element = document3.documentElement;
}
+ retVal = element.getAttribute(attribute, 1);
+ // Release IHTMLElement com object
+ releaseCom(element);
return retVal;
}
diff --git a/Greenshot/Helpers/PrintHelper.cs b/Greenshot/Helpers/PrintHelper.cs
index 044c2ac1e..558e70b7e 100644
--- a/Greenshot/Helpers/PrintHelper.cs
+++ b/Greenshot/Helpers/PrintHelper.cs
@@ -122,7 +122,7 @@ namespace Greenshot.Helpers {
DialogResult? printOptionsResult = ShowPrintOptionsDialog();
try {
if (printOptionsResult == null || printOptionsResult == DialogResult.OK) {
- if (IsColorPrint()) {
+ if (!IsColorPrint()) {
printDocument.DefaultPageSettings.Color = false;
}
printDocument.Print();
@@ -196,7 +196,7 @@ namespace Greenshot.Helpers {
// rotate the image if it fits the page better
if (conf.OutputPrintAllowRotate) {
if ((pageRect.Width > pageRect.Height && imageRect.Width < imageRect.Height) || (pageRect.Width < pageRect.Height && imageRect.Width > imageRect.Height)) {
- image.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ image.RotateFlip(RotateFlipType.Rotate270FlipNone);
imageRect = image.GetBounds(ref gu);
if (alignment.Equals(ContentAlignment.TopLeft)) {
alignment = ContentAlignment.TopRight;
diff --git a/Greenshot/Helpers/UpdateHelper.cs b/Greenshot/Helpers/UpdateHelper.cs
index 8e6de81d7..baa311586 100644
--- a/Greenshot/Helpers/UpdateHelper.cs
+++ b/Greenshot/Helpers/UpdateHelper.cs
@@ -86,7 +86,6 @@ namespace Greenshot.Experimental {
MainForm.Instance.NotifyIcon.ShowBalloonTip(10000, "Greenshot", Language.GetFormattedString(LangKey.update_found, "'" + latestGreenshot.File + "'"), ToolTipIcon.Info);
}
conf.LastUpdateCheck = DateTime.Now;
- IniConfig.Save();
} catch (Exception e) {
LOG.Error("An error occured while checking for updates, the error will be ignored: ", e);
}
@@ -107,7 +106,7 @@ namespace Greenshot.Experimental {
Process.Start(downloadLink);
}
} catch (Exception) {
- MessageBox.Show(Language.GetFormattedString(LangKey.error_openlink, latestGreenshot.Link), Language.GetString(LangKey.error));
+ MessageBox.Show(Language.GetFormattedString(LangKey.error_openlink, downloadLink), Language.GetString(LangKey.error));
} finally {
MainForm.Instance.NotifyIcon.BalloonTipClicked -= HandleBalloonTipClick;
MainForm.Instance.NotifyIcon.BalloonTipClosed -= CleanupBalloonTipClick;
diff --git a/Greenshot/Languages/help-de-DE.html b/Greenshot/Languages/help-de-DE.html
index 04c639352..007dc1bd0 100644
--- a/Greenshot/Languages/help-de-DE.html
+++ b/Greenshot/Languages/help-de-DE.html
@@ -187,7 +187,12 @@
Formen-Werkzeuge .
Zeichnen Sie einfach ein Textelement in der gewnschten Gre und geben Sie
den gewnschten Text ein.
- Durch Doppelklicken knnen Sie den Text eines bestehenden Textelements bearbeiten.
+ Durch Doppelklicken knnen Sie den Text eines bestehenden Textelements bearbeiten.
+ Drcken Sie Return oder Enter um die Bearbeitung des Textes zu beenden.
+
+
+ Wenn Sie Zeilenumbrche innerhalb einer Textbox bentigen, drcken Sie Shift + Return oder
+ Shift + Enter .
diff --git a/Greenshot/Languages/help-en-US.html b/Greenshot/Languages/help-en-US.html
index e5553b31a..2d49ad719 100644
--- a/Greenshot/Languages/help-en-US.html
+++ b/Greenshot/Languages/help-en-US.html
@@ -203,7 +203,12 @@
Usage of the text tool T is similar to the usage of the
shape tools. Just draw the text element to the desired
size, then type in the text.
- Double click an existing text element to edit the text.
+ Double click an existing text element to edit the text.
+ Hit Return or Enter when you have finished editing.
+
+
+ If you need to insert line breaks within a text box, hit Shift + Return or
+ Shift + Enter .
diff --git a/Greenshot/Languages/language-de-x-franconia.xml b/Greenshot/Languages/language-de-x-franconia.xml
index 469cb935f..89cf7597c 100644
--- a/Greenshot/Languages/language-de-x-franconia.xml
+++ b/Greenshot/Languages/language-de-x-franconia.xml
@@ -1,278 +1,278 @@
-
-
-
- Lefft was falsch, meldst di hier
- Wenn der Greenshot gfälld, kannsd uns gern a weng helfn:
- Greenshot is a bei sourceforge, und zwa dordn:
- Dei Fuztl-Bildla sin vom Yusuke Kamiyamane's Fugue icon set (Griäidif Gommens Äddribuschn 3.0 Laisns)
- Kobbireid (C) 2007-2012 Domas Braun, Jens Glingen, Robin Grohm
-A Garandie gibds für Greenshot ned, des kannst vergessn. Greenshot is umsonsd und wennsd mogst, kannsd es a rumreichn.
-Mehr Infos zur GNU Dschännerel Bablig Laisns:
- Was issn Greenshot???
- Greenshot - des subber Sgrienschod-Duhl
- Legg mich
- Des doud mer etz leid, da hammer wohl an Fehler.
-Wenns mogst, kannsd uns gern a weng helfn, den Fehler zer findn, wennsd uns an Brichd schiggst.
-Undn steht a Interned-Adressn, do gehst etz hin und maxd an neun Brichd.
-Dann schreibst no nei, wassd widder für an Scheiß gmachd hasd, gobiersd des Dexdfeld in die Bschreibung nei und saggsd halt noch, wassd so gmachd hast,
-damid mers selber brobiern könna.
-Wennsd etz der Gschichd noch die Grone aufsedzn mogst, schausd vorher amal, ob vor dir scho anner so bläid war. Dodafär gibds däi Suchn.
-Dangschee, wassd scho :)
- Scheiße, Fehler
- Legg mich
- Scheiße, etz hat des mid der Zwischnablach ned glabbd.
- Sachamal, ich kann nix in däi Zwischnablach schreim. Der do hoggd draff: {0}
- Gerädeunabhängiches Bidmäb (DIB)
- HTML
- HTML (mit Bildla)
- PNG
- Alpha
- Mach mer
- Blau
- Grün
- HTML Farb
- Zledzd bnudzde Farm
- Rod
- Farbauswahl
- Dransbarend
- Wasn etz los? Ich kann ned schbaichern. Schau amal, was da los is: '{0}'.
- Was issn Greenshot???
- A Schdüggerla abmoln
- Bild vo der Zwischnablach aufmachn
- En ganzn Bildschirm abmoln
- alle
- undn
- lings
- rechds
- ohm
- Inderned Eggsblohrer abmoln
- Inderned Eggsblohrer abmoln
- En ledzdn Breich nochamal abmoln
- Fensder abmoln
- Fensder aus Lisde abmoln
- A weng helfn
- Wech mid dem Misd
- Hüüülfe!
- Dadei aufmachn
- Ledzdn Sgrienschod im Eggsblorer ozeing
- Zaggich rumdogdern
- Rumdogdern...
- Scheiße, des war nix '{0}'. Brobiers hald nochamal.
- Undn
- Middich
- Lings/Rechds ausrichdna
- Lings
- Middich
- Rechds
- Ohm
- Ohm/Undn ausrichdna
- Anordnen
- Bfeilschbidzn
- Beide
- Endbungd
- Kanne
- Anfangsbunkd
- Audomadisch zamschneidn
- Hindergrundfarm
- Weichzeichner-Rodius
- Fedd
- Rohma
- Hellichgeid
- Ahh, doch ned
- Des woa nix mid der Zwischnablach. Brobiers einfach nochamal.
- Wech!
- Moggsd dei Gschmarri ned schbeichern?
- Bild schbeichern?
- Fei wärgli!
- Grafig in däi Zwischnblach nei
- Bfad in däi Zwischnblach nei
- Kobiern
- Zamschneidn (C)
- Angriffln (ESC)
- Ausschneidn
- Wech mid dem Ding!
- Aanz nach hindn
- Ganz nach hindn
- An Bfeil moln (A)
- An Greis moln (E)
- A weng rumgridzln (F)
- Hervorheem (H)
- An Schdrich moln (L)
- A Vieregg moln (R)
- An Dexd draff schreim (T)
- Elemend dubliziern
- Beabbeidn
- Effegde
- I-Mehl
- Dadei
- Größe
- Rahmafarb
- Grauschdufn
- Breich hervorheem
- Grauschdufn
- Vergrößän
- Hervorheem - Modus
- Dexdmarger
- Schaddn
- Do is etz dei Bild: {0}.
- Fensder nei gladschn
- Inverdiern
- Gusiev
- Objegde aus Dadei ladn
- Vergrößerungsfagdor
- Anbassen an Aufnahmebereich
- Zensiern (O)
- Absofdn
- Zensier - Modus
- Verbixln
- Objegd
- Verzeichnis im Windous Eggsblorer öffnen
- Eifüchn
- Bixlgröß
- Vorschaugwalidäd
- Druggn
- Widderherschdelln {0}
- Größe zrüggsedzn
- Gechern Uhrzeichersinn drehn
- Im Uhrzeichersinn drehn
- Schbeichern
- Objegde in Dadei schbeichern
- Schbeichern under...
- Alle Objegde auswähln
- Drugger läffd: '{0}'
- Schaddn An/Aus
- Bild is in der Zwischnablach.
- Linienschdärge
- Greenshot Edidor
- Ausgfranzde Kandn
- Rüggängich {0}
- Aanz nach vorn
- Ganz nach vorn
- MAPI Glaiend
- Audlugg mid HTML
- Audlugg mit Dexd
- Scheißdregg
- Greenshot läffd scho.
- Es schbeichern hat ned glabbd: {0}
-Schau hald amal, obsd da übbahabds hi schreim däffsd oder duhs woannersch hi.
- Däi Dadei gäid ned aff: "{0}"
- Der Ling gäid ned aff: '{0}'
- Dees woa nix. Schbeichers bidde woannersch hi.
- Exbädde
- 8-Bit-Bilder machn bei wenicher als 256 Farm
- Auch inschdabile Abdäids anbiedn
- Zwischnablach-Formade
- Werd für ${NUM} im Dadeiname-Musder
- Ich wass scho was ich mach, du bläide Sau!
- Undn draff druggn
- Schbeicher schbarn (kosd Berformänz - max ned)
- Für Rimoud Desgdob obdimiern
- Edidor numol bnudzn wenns gäihd
- Ned nervn beim zumachn vom Edidor
- Fensder-Vorschau im Gondexdmenü ozeing (für Visda und Windous 7)
- Exbordierd nach: {0}
- Exbord nach {0} is fehlgschlong
- Greenshot Hüüülfe
- Dasdnküdzl
- Dschäibeg-Qualidäd auswähln.
- Bassd
- Des Druggn hat ned glabbd.
- Ausdrugg in däi Middn baggn
- Ausdrugg auf Seidngröß vergrößern
- Drehung vom Ausdrugg ans Seidenformad anbassn
- Ausdrugg auf Seidengröß vergleinern
- Als Schdandard sbeichern und nimmer nervn
- Farm umkehrn
- Nur grau druggn
- Dadum und Uhrzeid mid draff gladschn
- Greenshot Druggeinschdellungen
- Als Schdandardgwalidäd schbeichern und nimmer nervn
- Greenshot Gwalidäd
- Soford schbeichern (mit bevorzugdn Ausgabedadei-Einschdellungen)
- Druggeinschdellungen vor jeem Ausdrugg ozeing
- Gwalidädseinschdellungen vor jeem Schbeichern ozeing
- Brogrammeinschdellungen
- Greenshot mit Windous schdaddn
- Abmoln
- Mauszeicher mid abmoln
- Fensder-Deile einzeln abmoln
- Alle X Daache aff Abdäids dschäggn (0=ned dschäggn)
- Rumdogdern
- Beim schbeichern en Bfad in däi Zwischnablaach baggn.
- Ziele
- In däi Zwischnablaach
- Im Greenshot-Edidor aufmachn
- I-Mehl
- Sofodd schbeichern
- Schbeichern under (mit Dialooch)
- Schdändich froong
- An Drugger schiggn
- Edidor
- Dadeinamen-Musder
- Allgemein
- Inderned Eggsblorer abmoln
- JPEG-Gwalidäd
- Schbrache
- Däi Bladzhalder gibds:
-${YYYY} Jahr, 4-schdellich
-${MM} Monad, 2-schdellich
-${DD} Daach, 2-schdellich
-${hh} Schdunde, 2-schdellich
-${mm} Minude, 2-schdellich
-${ss} Sekunde, 2-schdellich
-${NUM} ingremendiernde Zahl, 6-schdellich
-${title} Fensderdiddl
-${user} Windous-Benudzername
-${domain} Windous-Domäne
-${hostname} Kombjudername
-
-Greenshot kann a Ordner selber ohleeng.
-Wennsd Ordner vom Dadeinamen drennen willsd, nimssd an Beggsläsch \
-So hald: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
-Da gibds dann an Ordner fürn agduelln Dooch im Schdandard-Schbeicherord und däi Foddos landn dann da drin und heißn wäi die Uhrzeid.
-z.B. C:\Users\MaxMusdermann\Desgdob\2012-08-13\12-58-32.png
- Nedswerch und Abdäids
- Ausgabe
- Kameradoon abschbieln
- Blaggins
- Zammbasdeld vom
- DLL Bfod
- Name
- Väsion
- Bevorzugde Ausgabedadei-Einschdellungen
- Bildformad
- Drugger
- Druggeinschdellungen
- Gwalidädseinschdellungen
- Ned mehr als 256 Farm
- Globale Dasdnkombis agdiviern
- Blidslichd ozeing
- Bnachrichdigunga ozeing
- Schbeicherord
- Rumdogdern
- Musder für die Dadeinamen beim Schbeichern von Sgrienschods
- Schbrache der Benudzeroberfläche
- Schdandard Bildformad
- Wennsd des Häggerla sedzd, wern beim Schdaddn von Greenshot däi Dasdnkürzl Drucken, Strg + Drucken, Alt + Drucken reservierd solang Greenshot läffd.
- Schdandardbfad für Sgrienschods. Leer lassn für Desgdob.
- Schdandard-Broxysörver vom Bedriebssysdem benudzn
- Effegde
- Millisekundn waddn vorm abmoln
- Fensder-abmol-Modus
- Fensder abmoln
- Hier rechds gliggn oder die {0} Dasde drüggn.
- Was hasdn du für an aldn Scheiß?! Magsd des neue Greenshot {0} ham?
- Etz watzd an Momend! Des dauerd a weng...
- Hinweis
- Die globale Dasdnkombi "{0}" konnd ned agdivierd wern.
-Warscheinli hoggd irgend so a andrer Debb draff.
-Endweder ändersd die Dasdnkombi für Greenshot, oder du bisd a Mann und findsd die Sau!
-
-Wennsd mogsd, kannsd nadürlich a einfach es Gondexdmenü nehmen (des grüne G rechds undn).
- Selber a Farm aussuchn
- Dransbarens erhaldn
- Audomadisch
- Schdandardfarm benudzn
- Wäisd es siggsd
-
+
+
+
+ Lefft was falsch, meldst di hier
+ Wenn der Greenshot gfälld, kannsd uns gern a weng helfn:
+ Greenshot is a bei sourceforge, und zwa dordn:
+ Dei Fuztl-Bildla sin vom Yusuke Kamiyamane's Fugue icon set (Griäidif Gommens Äddribuschn 3.0 Laisns)
+ Kobbireid (C) 2007-2012 Domas Braun, Jens Glingen, Robin Grohm
+A Garandie gibds für Greenshot ned, des kannst vergessn. Greenshot is umsonsd und wennsd mogst, kannsd es a rumreichn.
+Mehr Infos zur GNU Dschännerel Bablig Laisns:
+ Was issn Greenshot???
+ Greenshot - des subber Sgrienschod-Duhl
+ Legg mich
+ Des doud mer etz leid, da hammer wohl an Fehler.
+Wenns mogst, kannsd uns gern a weng helfn, den Fehler zer findn, wennsd uns an Brichd schiggst.
+Undn steht a Interned-Adressn, do gehst etz hin und maxd an neun Brichd.
+Dann schreibst no nei, wassd widder für an Scheiß gmachd hasd, gobiersd des Dexdfeld in die Bschreibung nei und saggsd halt noch, wassd so gmachd hast,
+damid mers selber brobiern könna.
+Wennsd etz der Gschichd noch die Grone aufsedzn mogst, schausd vorher amal, ob vor dir scho anner so bläid war. Dodafär gibds däi Suchn.
+Dangschee, wassd scho :)
+ Scheiße, Fehler
+ Legg mich
+ Scheiße, etz hat des mid der Zwischnablach ned glabbd.
+ Sachamal, ich kann nix in däi Zwischnablach schreim. Der do hoggd draff: {0}
+ Gerädeunabhängiches Bidmäb (DIB)
+ HTML
+ HTML (mit Bildla)
+ PNG
+ Alpha
+ Mach mer
+ Blau
+ Grün
+ HTML Farb
+ Zledzd bnudzde Farm
+ Rod
+ Farbauswahl
+ Dransbarend
+ Wasn etz los? Ich kann ned schbaichern. Schau amal, was da los is: '{0}'.
+ Was issn Greenshot???
+ A Schdüggerla abmoln
+ Bild vo der Zwischnablach aufmachn
+ En ganzn Bildschirm abmoln
+ alle
+ undn
+ lings
+ rechds
+ ohm
+ Inderned Eggsblohrer abmoln
+ Inderned Eggsblohrer abmoln
+ En ledzdn Breich nochamal abmoln
+ Fensder abmoln
+ Fensder aus Lisde abmoln
+ A weng helfn
+ Wech mid dem Misd
+ Hüüülfe!
+ Dadei aufmachn
+ Ledzdn Sgrienschod im Eggsblorer ozeing
+ Zaggich rumdogdern
+ Rumdogdern...
+ Scheiße, des war nix '{0}'. Brobiers hald nochamal.
+ Undn
+ Middich
+ Lings/Rechds ausrichdna
+ Lings
+ Middich
+ Rechds
+ Ohm
+ Ohm/Undn ausrichdna
+ Anordnen
+ Bfeilschbidzn
+ Beide
+ Endbungd
+ Kanne
+ Anfangsbunkd
+ Audomadisch zamschneidn
+ Hindergrundfarm
+ Weichzeichner-Rodius
+ Fedd
+ Rohma
+ Hellichgeid
+ Ahh, doch ned
+ Des woa nix mid der Zwischnablach. Brobiers einfach nochamal.
+ Wech!
+ Moggsd dei Gschmarri ned schbeichern?
+ Bild schbeichern?
+ Fei wärgli!
+ Grafig in däi Zwischnblach nei
+ Bfad in däi Zwischnblach nei
+ Kobiern
+ Zamschneidn (C)
+ Angriffln (ESC)
+ Ausschneidn
+ Wech mid dem Ding!
+ Aanz nach hindn
+ Ganz nach hindn
+ An Bfeil moln (A)
+ An Greis moln (E)
+ A weng rumgridzln (F)
+ Hervorheem (H)
+ An Schdrich moln (L)
+ A Vieregg moln (R)
+ An Dexd draff schreim (T)
+ Elemend dubliziern
+ Beabbeidn
+ Effegde
+ I-Mehl
+ Dadei
+ Größe
+ Rahmafarb
+ Grauschdufn
+ Breich hervorheem
+ Grauschdufn
+ Vergrößän
+ Hervorheem - Modus
+ Dexdmarger
+ Schaddn
+ Do is etz dei Bild: {0}.
+ Fensder nei gladschn
+ Inverdiern
+ Gusiev
+ Objegde aus Dadei ladn
+ Vergrößerungsfagdor
+ Anbassen an Aufnahmebereich
+ Zensiern (O)
+ Absofdn
+ Zensier - Modus
+ Verbixln
+ Objegd
+ Verzeichnis im Windous Eggsblorer öffnen
+ Eifüchn
+ Bixlgröß
+ Vorschaugwalidäd
+ Druggn
+ Widderherschdelln {0}
+ Größe zrüggsedzn
+ Gechern Uhrzeichersinn drehn
+ Im Uhrzeichersinn drehn
+ Schbeichern
+ Objegde in Dadei schbeichern
+ Schbeichern under...
+ Alle Objegde auswähln
+ Drugger läffd: '{0}'
+ Schaddn An/Aus
+ Bild is in der Zwischnablach.
+ Linienschdärge
+ Greenshot Edidor
+ Ausgfranzde Kandn
+ Rüggängich {0}
+ Aanz nach vorn
+ Ganz nach vorn
+ MAPI Glaiend
+ Audlugg mid HTML
+ Audlugg mit Dexd
+ Scheißdregg
+ Greenshot läffd scho.
+ Es schbeichern hat ned glabbd: {0}
+Schau hald amal, obsd da übbahabds hi schreim däffsd oder duhs woannersch hi.
+ Däi Dadei gäid ned aff: "{0}"
+ Der Ling gäid ned aff: '{0}'
+ Dees woa nix. Schbeichers bidde woannersch hi.
+ Exbädde
+ 8-Bit-Bilder machn bei wenicher als 256 Farm
+ Auch inschdabile Abdäids anbiedn
+ Zwischnablach-Formade
+ Werd für ${NUM} im Dadeiname-Musder
+ Ich wass scho was ich mach, du bläide Sau!
+ Undn draff druggn
+ Schbeicher schbarn (kosd Berformänz - max ned)
+ Für Rimoud Desgdob obdimiern
+ Edidor numol bnudzn wenns gäihd
+ Ned nervn beim zumachn vom Edidor
+ Fensder-Vorschau im Gondexdmenü ozeing (für Visda und Windous 7)
+ Exbordierd nach: {0}
+ Exbord nach {0} is fehlgschlong
+ Greenshot Hüüülfe
+ Dasdnküdzl
+ Dschäibeg-Qualidäd auswähln.
+ Bassd
+ Des Druggn hat ned glabbd.
+ Ausdrugg in däi Middn baggn
+ Ausdrugg auf Seidngröß vergrößern
+ Drehung vom Ausdrugg ans Seidenformad anbassn
+ Ausdrugg auf Seidengröß vergleinern
+ Als Schdandard sbeichern und nimmer nervn
+ Farm umkehrn
+ Nur grau druggn
+ Dadum und Uhrzeid mid draff gladschn
+ Greenshot Druggeinschdellungen
+ Als Schdandardgwalidäd schbeichern und nimmer nervn
+ Greenshot Gwalidäd
+ Soford schbeichern (mit bevorzugdn Ausgabedadei-Einschdellungen)
+ Druggeinschdellungen vor jeem Ausdrugg ozeing
+ Gwalidädseinschdellungen vor jeem Schbeichern ozeing
+ Brogrammeinschdellungen
+ Greenshot mit Windous schdaddn
+ Abmoln
+ Mauszeicher mid abmoln
+ Fensder-Deile einzeln abmoln
+ Alle X Daache aff Abdäids dschäggn (0=ned dschäggn)
+ Rumdogdern
+ Beim schbeichern en Bfad in däi Zwischnablaach baggn.
+ Ziele
+ In däi Zwischnablaach
+ Im Greenshot-Edidor aufmachn
+ I-Mehl
+ Sofodd schbeichern
+ Schbeichern under (mit Dialooch)
+ Schdändich froong
+ An Drugger schiggn
+ Edidor
+ Dadeinamen-Musder
+ Allgemein
+ Inderned Eggsblorer abmoln
+ JPEG-Gwalidäd
+ Schbrache
+ Däi Bladzhalder gibds:
+${YYYY} Jahr, 4-schdellich
+${MM} Monad, 2-schdellich
+${DD} Daach, 2-schdellich
+${hh} Schdunde, 2-schdellich
+${mm} Minude, 2-schdellich
+${ss} Sekunde, 2-schdellich
+${NUM} ingremendiernde Zahl, 6-schdellich
+${title} Fensderdiddl
+${user} Windous-Benudzername
+${domain} Windous-Domäne
+${hostname} Kombjudername
+
+Greenshot kann a Ordner selber ohleeng.
+Wennsd Ordner vom Dadeinamen drennen willsd, nimssd an Beggsläsch \
+So hald: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+Da gibds dann an Ordner fürn agduelln Dooch im Schdandard-Schbeicherord und däi Foddos landn dann da drin und heißn wäi die Uhrzeid.
+z.B. C:\Users\MaxMusdermann\Desgdob\2012-08-13\12-58-32.png
+ Nedswerch und Abdäids
+ Ausgabe
+ Kameradoon abschbieln
+ Blaggins
+ Zammbasdeld vom
+ DLL Bfod
+ Name
+ Väsion
+ Bevorzugde Ausgabedadei-Einschdellungen
+ Bildformad
+ Drugger
+ Druggeinschdellungen
+ Gwalidädseinschdellungen
+ Ned mehr als 256 Farm
+ Globale Dasdnkombis agdiviern
+ Blidslichd ozeing
+ Bnachrichdigunga ozeing
+ Schbeicherord
+ Rumdogdern
+ Musder für die Dadeinamen beim Schbeichern von Sgrienschods
+ Schbrache der Benudzeroberfläche
+ Schdandard Bildformad
+ Wennsd des Häggerla sedzd, wern beim Schdaddn von Greenshot däi Dasdnkürzl Drucken, Strg + Drucken, Alt + Drucken reservierd solang Greenshot läffd.
+ Schdandardbfad für Sgrienschods. Leer lassn für Desgdob.
+ Schdandard-Broxysörver vom Bedriebssysdem benudzn
+ Effegde
+ Millisekundn waddn vorm abmoln
+ Fensder-abmol-Modus
+ Fensder abmoln
+ Hier rechds gliggn oder die {0} Dasde drüggn.
+ Was hasdn du für an aldn Scheiß?! Magsd des neue Greenshot {0} ham?
+ Etz watzd an Momend! Des dauerd a weng...
+ Hinweis
+ Die globale Dasdnkombi "{0}" konnd ned agdivierd wern.
+Warscheinli hoggd irgend so a andrer Debb draff.
+Endweder ändersd die Dasdnkombi für Greenshot, oder du bisd a Mann und findsd die Sau!
+
+Wennsd mogsd, kannsd nadürlich a einfach es Gondexdmenü nehmen (des grüne G rechds undn).
+ Selber a Farm aussuchn
+ Dransbarens erhaldn
+ Audomadisch
+ Schdandardfarm benudzn
+ Wäisd es siggsd
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-et-EE.xml b/Greenshot/Languages/language-et-EE.xml
new file mode 100644
index 000000000..ef47a27de
--- /dev/null
+++ b/Greenshot/Languages/language-et-EE.xml
@@ -0,0 +1,294 @@
+
+
+
+ Palun saatke veateated
+ Greenshoti kasutamismugavust ja arendust saate toetada siin:
+ Greenshot asub portaalis sourceforge.net
+ Yusuke Kamiyamane on ikoonide tegija Fugue ikooni paketist (Creative Commons Attribution 3.0 litsents)
+ Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
+Greenshot ei paku GARANTIID. See on vabaravaline programm ja Te võite seda levitava vabalt teatud tingimuste alusel.
+Lisainfo GNU Põhilise Avaliku Litsentsi kohta:
+ Info Greenshoti kohta
+ Greenshot - revolutsiooniline kuvatõmmise tööriist
+ Sulge
+ Vabandust aga ilmnes tundmatu viga.
+
+Hea uudis on: saate meil aidata seda eemaldada saates meile veateate.
+Uue veateate teavitamiseks, palun külastage kõrvalolevat URLi ja tekstialalt asetage sisu kirjeldusse.
+
+Vea paremaks parandamiseks lisage palun arusaadav kokkuvõte veast ja lisage ka pisidetailid.
+Me oleksime väga tänulik, kui te enne kontrolliksite, ega sellest veast pole juba teavitatud. (Postituse kiiresti leidmiseks kasutage otsingut.) Aitäh :)
+ Viga
+ Loobu
+ Lõikelauale kirjutamisel ilmnes ootamatu viga.
+ Greenshot ei suutnud lõikelauale kirjutada, sest {0} protsess blokeeris ligipääsu.
+ Lõikelaua pilti ei leitud.
+ Windowsi pisipilt
+ Seadme isesesev pisipilt (DIB)
+ HTML
+ HTML koos tekstisisese pildiga
+ PNG
+ Alpha
+ Kinnita
+ Sinine
+ Roheline
+ HTMLi värv
+ Viimati kasutatud värvid
+ Punane
+ Värvivalik
+ Läbipaistvus
+ Greenshotile keelas ligipääsu sihtkoht {0}, arvatavasti on dialoog avatud. Sulgege dialoog ja proovige uuesti.
+ Greenshotile keelati ligipääs
+ Greenshoti seadistusfaili ei suudetud salvestada. Palun kontrollige '{0}' ligipääsu seadmeid.
+ Info Greenshoti kohta
+ Haarake teatud regioon
+ Avage pilt lõikelaualt
+ Haarake kogu ekraan
+ kõik
+ alt
+ vasakult
+ paremalt
+ ülevalt
+ Haarake Internet Explorer
+ Haarake Internet Explorer loendist
+ Haarake hiljutine regioon
+ Haarake aken
+ Haarake aken loendist
+ Toetage Greenshoti
+ Välju
+ Abi
+ Avage pilt failist
+ Avage viimane haaratud asukoht
+ Kiirsätted
+ Eelistused...
+ {0}-le saatmisel ilmnes viga. Palun proovige uuesti.
+ All
+ Keskel
+ Horisontaalne joondus
+ Vasak
+ Keskel
+ Parem
+ Üleval
+ Vertikaaljoondus
+ Korrasta
+ Noolepead
+ Mõlemad
+ Lõpppunkt
+ Tühi
+ Alguspunkt
+ Automaatne lõikus
+ Täitke värviga
+ Uduse ala raadius
+ Paks
+ Äär
+ Heledus
+ Loobu
+ Lõikelaua kasutamisel ilmnes viga. Palun proovi uuesti.
+ Sulge
+ Kas te tahate salvestada kuvatõmmist?
+ Salvestage pilt?
+ Kinnitan
+ Kopeerige pilt lõikelauale
+ Kopeerige asukoht lõikelauale
+ Kopeeri
+ Lõika (C)
+ Valiku tööriist (ESC)
+ Lõika
+ Kustuta
+ Samm allapoole
+ Samm lõppu
+ Joonista nool (A)
+ Joonistage ellip (E)
+ Joonistage vaba käega (F)
+ Tooge esile (H)
+ Joonistage joon (L)
+ Joonistage ristkülik (R)
+ Lisage tekstikast (T)
+ Varjutav tugevus
+ Varju tasakaalustamine
+ Langeva varju seaded
+ Varju paksus
+ Tehke valitud elemendist koopia
+ Muutke
+ Efektid
+ E-post
+ Fail
+ Suurus
+ Joone värv
+ Halli skaala
+ Tooge esiplaanile
+ Hall skaala
+ Suurendamine
+ Tõstke esile
+ Tõstke esile teksti
+ Langev vari
+ Pilt salvestati {0}.
+ Sisestage aken
+ Võtke tegevus tagasi
+ Kaldkiri
+ Laadige objektid failist
+ Suurendusfaktor
+ Katke haaratava ala suurus
+ Varjutage (O)
+ Udune ala
+ Varjus olev ala
+ Mosaiik
+ Objekt
+ Avage asukoht Windows Exploreriga
+ Asetage
+ Piksli suurus
+ Eelvaate kvaliteet
+ Printige
+ Tehke uuesti {0}
+ Taastage normaalne suurus
+ Protsent
+ Pikslid
+ Pöörake loendurit päripäeva (Control + ,)
+ Pöörake päripäeva (Control + .)
+ Salvesta
+ Salvestage objektid faili
+ Salvestage nimega...
+ Valige kõik
+ Printimiskäsklus saadeti '{0}'.
+ Langev vari
+ Pilt taastati lõikelauale.
+ Joone paksus
+ Greenshoti pildihaldur
+ Rebenev äär
+ Horisontaalne hammasvahemik
+ Rebeneva ääre seaded
+ Rebenemise suurus
+ Vertikaalne hambavahemik
+ Võtke tagasi {0}
+ Aste ülespoole
+ Kuni ülesse äärde
+ MAPI klient
+ Outlook koos HTML-iga
+ Outlook koos tekstiga
+ Viga
+ Greenshot on juba käivitatud.
+ Faili ei suudetud salvestada {0}.
+Palun kontrollige valitud hoiuala kirjutamisõigust.
+ "{0}" ei suudetud avada.
+ Ei suudetud avada '{0}'.
+ Ei suudetud salvestada kuvatõmmist, palun valige sobivam asukoht.
+ Ekspert
+ Looge 8-bitine pilt, kui värvid on väiksemad kui 256 ja 8 bitisel pildil
+ Kontrollige testimisel olevaid uuendusi
+ Lõikelaua formaadid
+ ${NUM} number failinime atribuutides
+ Ma tean, mida ma teen!
+ Printeri alumine muster
+ Vähendage mälu alumist mustrit aga koos jõudluse langusega (ei soovitata).
+ Väliste töölaudade kasutamiseks tehke vajalikud optimiseeringud
+ Kui võimalik, taaskasutage kohandajat
+ Kohandaja sulgemisel pressige kokku salvestatud dialoog
+ Kuvage kontekstimenüüs pisipildid aknast (Vista ja windows 7 jaoks)
+ Eksporditud: {0}
+ Eksportimisel {0} tekkis viga:
+ Greenshoti abi
+ Kiirklahvid
+ Palun valige oma pildile JPEG kvaliteet.
+ Ok
+ Printimisel tekkis viga.
+ Printige lehe keskele
+ Suurendage printimise ala, et pilt kattuks paberi suurusega
+ Pöörake pilti paberi suuna järgi
+ Vähendage pilti, et see mahuks paberile
+ Värvi seaded
+ Salvestage need valikud tavaseadetena ja ärge enam küsige
+ Printige ümberpööratud värvidega
+ Lehekülje välimuse seaded
+ Täielik värviline printimine
+ Sundige printimist hallil skaalal
+ Sundige must/valget printimist
+ Printige kuupäev / aeg lehekülje alla
+ Greenshoti printimisvalikud
+ Salvestage need valikud tavaseadetena ja ärge enam küsige
+ Greenshoti kvaliteet
+ Salvestage otse (kasutades selleks eelistatud faili väljundi seadeid)
+ Igal printimiskorral kuvage printimise valikute dialoog
+ Igal pildi salvestamise korral kuvage kvaliteedi dialoog
+ Rakenduse seaded
+ Käivitage Greenshot koos Windowsiga
+ Haarake
+ Haarake hiirenool
+ Kasutage interaktiivset akna haaramismeetodit
+ Uuendamise intervall (0=uuendamist ei toimu)
+ Seadistage
+ Iga pildi salvestamisega kopeerige faili asukoht lõikelauale
+ Asukoht
+ Kopeerige lõikelauale
+ Avage pildihalduris
+ E-post
+ Salvestage otse (kasutades kõrvalolevaid seadeid)
+ Salvestega nimega (dialoogi kuvamin)
+ Valige asukoht dünaamiliselt
+ Saatke printerisse
+ Kohandaja
+ Faili nime atribuudid
+ Põhiline
+ Internet Exploreri haaramine
+ JPEG kvaliteet
+ Keel
+ See kohatäitja täidetakse automaatselt defineeritud mustris:
+${YYYY} aasta, 4 numbrit
+${MM} kuu, 2 numbrit
+${DD} päev, 2 numbrit
+${hh} tund, 2 numbrit
+${mm} minut, 2 numbrit
+${ss} sekund, 2 numbrit
+${NUM} suurenev number, 6 numbrit
+${title} Akna pealkiri
+${user} Windowsi kasutaja
+${domain} Windowsi domeen
+${hostname} Arvuti nimi
+
+Greenshotiga on võimalik asukohti salvestada dünaamiliselt, selleks kasutage kaldkriipsu (\), et kaustad ja faili nimi oleks eraldatud.
+Näiteks: Kohatäitja ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+loob praeguse päeva jaoks kausta Teie sihtkausta, nt 2008-06-29, kuvatõmmise faili nimi on tuletatud praegusest
+kellaajast, nt 11_58_32 (lisaks seadetes määratud laiend)
+ Võrk ja uuendused
+ Väljund
+ Esitage kaamera heli
+ Laiendid
+ Laiendi omanik
+ DLLi asukoht
+ Nimi
+ Versioon
+ Eelistatud väljundi seade
+ Pildi formaat
+ Printer
+ Printimisvalikud
+ Kvaliteedi seaded
+ Vähendage värvide arvu 256ni
+ Registreerige kiirklahvid
+ Kuvage välklamp
+ Kuvage teateid
+ Hoiuse asukoht
+ Seaded
+ Kuvatõmmiste salvestamise ajal kasutatav atribuut
+ Greenshoti kasutajaliidese keel
+ Kasutatav pildiformaat
+ Määrab, kas kiirklahvid Prnt, Ctrl + Print, Alt + Prnt on jäetud Greenshoti programmi käivitumise ajast kuni programmist väljumiseni.
+ Kuvatõmmiste asukoht (töölauale salvestamise soovil jätke see tühjaks)
+ Kasutage süsteemi proksit
+ Efektid
+ Pildi tegemise ooteaeg millisekundites
+ Akna haaramise meetod
+ Akna pildistamine
+ Kuvage suurendaja
+ Tehke parem-klõps siia või vajutage klahvi {0}.
+ reenshoti uuem versioon on saadaval! Kas te soovite alla laadida Greenshot {0}?
+ Palun oodake, kui pilti Internet Exploreris tehakse...
+ Hoiatus
+ Kiirklahv(e) "{0}" ei suudetud registreerida. Teine tööriist väidab kasutavat sama(u) kiirklahvi(e)! Muutke või deaktiviseerige kiirklahv(id).
+
+Kõik Greenshoti lisad töötavad süsteemisalvest ilma kiirklahvide olemasoluta.
+ Kasutage kohandatud värvi
+ Säilitage läbipaistvus
+ Automaatselt
+ Kasutage tavalist värvi
+ Nagu kuvatud
+
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-fa-IR.xml b/Greenshot/Languages/language-fa-IR.xml
index 631cdef14..20e1da09f 100644
--- a/Greenshot/Languages/language-fa-IR.xml
+++ b/Greenshot/Languages/language-fa-IR.xml
@@ -1,203 +1,203 @@
-
-
-
- :لطفا مشکلات این نرم افزار را به این آدرس گزارش دهید
- :اگر از گرین شات خوشتان آماده و علاقه مند به پشتیبانی هستید
- :جایگاه بارگذاری گرین شات در سورس فورج.نت
- (Creative Commons Attribution 3.0 license) آیکنها ازمجموعه آیکنهای یوسوکه کامیامانه
- توماس براون، جنز کلینگن، رابین کروم (C) حق پخش ۲۰۰۷ ـ ۲۰۱۰
- .گرین شات گارانتی ندارد. این یک نرم افزار رایگان میباشد و میتوان آنرا در برخی شرایط دوباره پخش نمود
- :اطلاعات بیشتر در مورد استفاده و پخش
- درباره گریین شات
- گرین شات ـ ابزار نمونه برداری از تصویر
- بستن
- مشکل
-
- خبر خوب این است که : شما می توانید با پر کردن یک گزارش اشکال، در حل آن اشکال به ما کمک کنید
-
- زیر، ایجاد یک گزارش اشکال جدید و چسباندن مطالب از منطقه متن را به شرح.لطفا URL
-
-لطفا خلاصه ای معنادار و در جوف قرار دادن هر گونه اطلاعات شما در نظر می شود مفید برای بازتولید مسئله.
-همچنین، ما بسیار خواهد بود اگر شما بررسی اینکه آیا یک آیتم ردگیر در حال حاضر برای این اشکال وجود دارد قدردانی. (شما می توانید به جستجو برای پیدا کردن کسانی که به سرعت استفاده کنید) با تشکر از شما :)
- اشتباه
- .مشکل ذخیره سازی در حافظه موقت
- .بدلیل مسدود شدن دسترسی توسط روند {0} ، ذخیره سازی در حافظه موقت امکانپذیر نمی باشد
- غلظت
- بکار ببر
- آبی
- سبز
- HTML رنگ
- آخرین رنگهای استفاده شده
- قرمز
- نمونه بردار رنگ
- پشت نما
- ذخیره تنظیمات گریین شاتامکان پذیر نمی باشد. لطفا مجوز دسترسی به '{0}' را بررسی نمایید
-
-Could not save Greenshot's configuration file. Please check access permissions for '{0}'.
- درباره گرین شات
- نمونه برداری از یک ناحیه
- بازکردن تصویراز حافظه موقت
- نمونه برداری ازتمام صفحه
- نمونه برداری ازآخرین ناحیه
- نمونه برداری از یک پنجره
- پشتیبانی نمودن گرین شات
- بستن
- راهنمایی
- بازکردن تصویراز پوشه
- تنظیمات فوری
- ...تنظیمات
- مرتب کردن
- نوکهای پیکان
- هردو
- نقطه پایان
- هیچکدام
- نقطه شروع
- رنگ پرکننده
- شدت محو کردن
- ضخیم
- روشنایی
- لغو
- مشکل در دسترسی به حافظه موقت. لطفا دوباره انجام دهید
- ببند
- تصویر ذخیره شود؟
- تصویر ذخیره شود؟
- تایید
- ذخیره سازی در حافظه موقت
- ذخیره مسیر در حافظه موقت
- رونویس
- چیدن
-(C دکمه)
- انتخابگر
-(ESC دکمه)
- برش
- پاک کردن
- یک سطح پایین
- به پایین ترین سطح
- کشیدن پیکان
-(A دکمه)
- کشیدن دایره یا بیضی
-(E دکمه)
- برجسته
-(H دکمه)
- کشیدن خط
-(L دکمه)
- کشیدن مربع یا مستطیل
-(R دکمه)
- اضافه کردن نوشته
-(T دکمه)
- رونویسی از بخش انتخاب شده
- ویرایش
- ایمیل
- پوشه
- اندازه
- رنگ خط
- برجسته نمودن ناحیه
- خاکستری
- بزرگنمایی
- حالت برجسته
- برجسته نمودن نوشته
- .تصویر در {0} ذخیره شد
- یک وری
- بازخوانی شیی ازفایل
- بزرگنمایی
- مبهم
-(O دکمه)
- محو کردن
- حالت مبهم
- شطرنجی
- ابزار
- بازکردن پرونه در ویندوزاکسپلورر
- چسباندن
- اندازه پیکسل
- کیفیت پیشنمایش
- چاپ
- ذخیره
- ذخیره شیی در فایل
- ...ذخیره با نام
- اتخاب همه
- .چاپ به ' {0} ' فرستاده شد
- سایه
- سایه
- .تصویر در حافظه موقت ذخیره شد
- ضخامت خط
- ویرایشگر گرین شات
- یک سطح بالا
- به بالاترین سطح
- اشتباه
- .گرین شات قبلا اجرا شده است
- .ذخیره سازی در {0} امکانپذیر نمیباشد
- .امکان ذخیره سازی را بررسی نمایید
- بازکردن پوشه "{0}" امکان پذیر نمی باشد
- .آدرس پیدا نشد
- .ذخیره سازی امکانپذیرنمی باشد، لطفا محل مناسبی رابرگزینید
- راهنمایی گرین شات
- .را انخاب نمایید JPEG لطفا تنظیمات کیفیت
- همیشه با این کیفیت
- گرین شات JPEG کیفیت
- مشکل درچاپ
- چاپ در مرکز صفحه
- همخوانی تصویر با اندازه کاغذ ـ بزرگنمایی
- همخوانی جهت تصویربا کاغذ ـ چرخش
- همخوانی تصویر با اندازه کاغذ ـ کوچک نمایی
- ذخیره تنظیمات به عنوان پیش فرض
- چاپ تاریخ وزمان در پایین صفحه
- حالتهای چاپ گرین شات
- ذخیره سازی مستقیم با تنظیمات پیش فرض
- JPEG نمایش کیفیت در هر بار ذخیره سازی
- نمایش تنظیمات چاپ برای هر چاپ
- تنظیمات نرم افزار
- گرین شات بصورت خودکار همراه با ویندوز اجرا شود
- نمونه برداری
- نمونه برداری از پیکان ماوس
- حالت تعاملی نمونه برداری پنجره
- ذخیره مسیر در حافظه موقت با هر ذخیره سازی تصویر
- مقصد
- رونویس در حافظه موقت
- باز کردن در ویرایشگر
- ایمیل
- بی درنگ با تنظیمات پایین ذخیره کن
- ذخیره سازی با
- فرستادن به چاپگر
- شیوه نامگذاری
- همگانی
- JPEG کیفیت
- JPEG تنظیمات
- زبان
- نمایندههای زیر به صورت خودکار در الگوی تعریف شده جایگزین خواهد شد
-%YYYY% year, 4 digits
-%MM% month, 2 digits
-%DD% day, 2 digits
-%hh% hour, 2 digits
-%mm% minute, 2 digits
-%ss% second, 2 digits
-%NUM% incrementing number, 6 digits
-%title% Window title
-%user% Windows user
-%domain% Windows domain
-%hostname% PC name
-
-شما همچنین می توانید از گرین شات برای ایجاد خودکاردایرکتوری استفاده نمایید ازو یا نماد بک اسلش (\) استفاده نمایید تا پرونده وپوشه ایجاد شوند
- %title%_%YYYY%-%MM%-%DD%_%hh%-%mm%-%ss% :به عنوان مثال
- خروجی
- پخش صدای عکس گرفتن
- تنظیمات مورد پسند پوشه خروجی
- قالب تصویر
- چاپگر
- حالتهای چاپ
- ثبت دکمه های میانبر
- نمایش نور
- محل ذخیره سازی
- تنظیمات
- شیوه نامگذاری نمونه ها در هنگام ذخیره سازی
- (زبان نمایش کاربر ( نیاز به راه اندازی از نو
- پیش فرض قالب تصویر
- .برای استفاده بوسیله گرین شات رزرو شده اند Prnt, Ctrl + Print, Alt + Prnt قبل از بسته شدن گرین شات، مشخص می کند که آیا دکمه های
- (محل ذخیره سازی نمونه ها ( برای ذخیره سازی در دسکتاپ, خالی بگذارید
- جلوه های ویژه
- مکث (میلی ثانیه) تا نمونه برداری
- را فشار دهید Print اینجا کلیک راست کنید یا دکمه
-Right-click here or press the Print-key.
- هشدار
- .ثبت و استفاده از یک یا چند تا از میانبرها امکان پذیر نمی باشد. ممکن است نرم افزار دیگری از میانبرها استفاده می کند
-
+
+
+
+ :لطفا مشکلات این نرم افزار را به این آدرس گزارش دهید
+ :اگر از گرین شات خوشتان آماده و علاقه مند به پشتیبانی هستید
+ :جایگاه بارگذاری گرین شات در سورس فورج.نت
+ (Creative Commons Attribution 3.0 license) آیکنها ازمجموعه آیکنهای یوسوکه کامیامانه
+ توماس براون، جنز کلینگن، رابین کروم (C) حق پخش ۲۰۰۷ ـ ۲۰۱۰
+ .گرین شات گارانتی ندارد. این یک نرم افزار رایگان میباشد و میتوان آنرا در برخی شرایط دوباره پخش نمود
+ :اطلاعات بیشتر در مورد استفاده و پخش
+ درباره گریین شات
+ گرین شات ـ ابزار نمونه برداری از تصویر
+ بستن
+ مشکل
+
+ خبر خوب این است که : شما می توانید با پر کردن یک گزارش اشکال، در حل آن اشکال به ما کمک کنید
+
+ زیر، ایجاد یک گزارش اشکال جدید و چسباندن مطالب از منطقه متن را به شرح.لطفا URL
+
+لطفا خلاصه ای معنادار و در جوف قرار دادن هر گونه اطلاعات شما در نظر می شود مفید برای بازتولید مسئله.
+همچنین، ما بسیار خواهد بود اگر شما بررسی اینکه آیا یک آیتم ردگیر در حال حاضر برای این اشکال وجود دارد قدردانی. (شما می توانید به جستجو برای پیدا کردن کسانی که به سرعت استفاده کنید) با تشکر از شما :)
+ اشتباه
+ .مشکل ذخیره سازی در حافظه موقت
+ .بدلیل مسدود شدن دسترسی توسط روند {0} ، ذخیره سازی در حافظه موقت امکانپذیر نمی باشد
+ غلظت
+ بکار ببر
+ آبی
+ سبز
+ HTML رنگ
+ آخرین رنگهای استفاده شده
+ قرمز
+ نمونه بردار رنگ
+ پشت نما
+ ذخیره تنظیمات گریین شاتامکان پذیر نمی باشد. لطفا مجوز دسترسی به '{0}' را بررسی نمایید
+
+Could not save Greenshot's configuration file. Please check access permissions for '{0}'.
+ درباره گرین شات
+ نمونه برداری از یک ناحیه
+ بازکردن تصویراز حافظه موقت
+ نمونه برداری ازتمام صفحه
+ نمونه برداری ازآخرین ناحیه
+ نمونه برداری از یک پنجره
+ پشتیبانی نمودن گرین شات
+ بستن
+ راهنمایی
+ بازکردن تصویراز پوشه
+ تنظیمات فوری
+ ...تنظیمات
+ مرتب کردن
+ نوکهای پیکان
+ هردو
+ نقطه پایان
+ هیچکدام
+ نقطه شروع
+ رنگ پرکننده
+ شدت محو کردن
+ ضخیم
+ روشنایی
+ لغو
+ مشکل در دسترسی به حافظه موقت. لطفا دوباره انجام دهید
+ ببند
+ تصویر ذخیره شود؟
+ تصویر ذخیره شود؟
+ تایید
+ ذخیره سازی در حافظه موقت
+ ذخیره مسیر در حافظه موقت
+ رونویس
+ چیدن
+(C دکمه)
+ انتخابگر
+(ESC دکمه)
+ برش
+ پاک کردن
+ یک سطح پایین
+ به پایین ترین سطح
+ کشیدن پیکان
+(A دکمه)
+ کشیدن دایره یا بیضی
+(E دکمه)
+ برجسته
+(H دکمه)
+ کشیدن خط
+(L دکمه)
+ کشیدن مربع یا مستطیل
+(R دکمه)
+ اضافه کردن نوشته
+(T دکمه)
+ رونویسی از بخش انتخاب شده
+ ویرایش
+ ایمیل
+ پوشه
+ اندازه
+ رنگ خط
+ برجسته نمودن ناحیه
+ خاکستری
+ بزرگنمایی
+ حالت برجسته
+ برجسته نمودن نوشته
+ .تصویر در {0} ذخیره شد
+ یک وری
+ بازخوانی شیی ازفایل
+ بزرگنمایی
+ مبهم
+(O دکمه)
+ محو کردن
+ حالت مبهم
+ شطرنجی
+ ابزار
+ بازکردن پرونه در ویندوزاکسپلورر
+ چسباندن
+ اندازه پیکسل
+ کیفیت پیشنمایش
+ چاپ
+ ذخیره
+ ذخیره شیی در فایل
+ ...ذخیره با نام
+ اتخاب همه
+ .چاپ به ' {0} ' فرستاده شد
+ سایه
+ سایه
+ .تصویر در حافظه موقت ذخیره شد
+ ضخامت خط
+ ویرایشگر گرین شات
+ یک سطح بالا
+ به بالاترین سطح
+ اشتباه
+ .گرین شات قبلا اجرا شده است
+ .ذخیره سازی در {0} امکانپذیر نمیباشد
+ .امکان ذخیره سازی را بررسی نمایید
+ بازکردن پوشه "{0}" امکان پذیر نمی باشد
+ .آدرس پیدا نشد
+ .ذخیره سازی امکانپذیرنمی باشد، لطفا محل مناسبی رابرگزینید
+ راهنمایی گرین شات
+ .را انخاب نمایید JPEG لطفا تنظیمات کیفیت
+ همیشه با این کیفیت
+ گرین شات JPEG کیفیت
+ مشکل درچاپ
+ چاپ در مرکز صفحه
+ همخوانی تصویر با اندازه کاغذ ـ بزرگنمایی
+ همخوانی جهت تصویربا کاغذ ـ چرخش
+ همخوانی تصویر با اندازه کاغذ ـ کوچک نمایی
+ ذخیره تنظیمات به عنوان پیش فرض
+ چاپ تاریخ وزمان در پایین صفحه
+ حالتهای چاپ گرین شات
+ ذخیره سازی مستقیم با تنظیمات پیش فرض
+ JPEG نمایش کیفیت در هر بار ذخیره سازی
+ نمایش تنظیمات چاپ برای هر چاپ
+ تنظیمات نرم افزار
+ گرین شات بصورت خودکار همراه با ویندوز اجرا شود
+ نمونه برداری
+ نمونه برداری از پیکان ماوس
+ حالت تعاملی نمونه برداری پنجره
+ ذخیره مسیر در حافظه موقت با هر ذخیره سازی تصویر
+ مقصد
+ رونویس در حافظه موقت
+ باز کردن در ویرایشگر
+ ایمیل
+ بی درنگ با تنظیمات پایین ذخیره کن
+ ذخیره سازی با
+ فرستادن به چاپگر
+ شیوه نامگذاری
+ همگانی
+ JPEG کیفیت
+ JPEG تنظیمات
+ زبان
+ نمایندههای زیر به صورت خودکار در الگوی تعریف شده جایگزین خواهد شد
+%YYYY% year, 4 digits
+%MM% month, 2 digits
+%DD% day, 2 digits
+%hh% hour, 2 digits
+%mm% minute, 2 digits
+%ss% second, 2 digits
+%NUM% incrementing number, 6 digits
+%title% Window title
+%user% Windows user
+%domain% Windows domain
+%hostname% PC name
+
+شما همچنین می توانید از گرین شات برای ایجاد خودکاردایرکتوری استفاده نمایید ازو یا نماد بک اسلش (\) استفاده نمایید تا پرونده وپوشه ایجاد شوند
+ %title%_%YYYY%-%MM%-%DD%_%hh%-%mm%-%ss% :به عنوان مثال
+ خروجی
+ پخش صدای عکس گرفتن
+ تنظیمات مورد پسند پوشه خروجی
+ قالب تصویر
+ چاپگر
+ حالتهای چاپ
+ ثبت دکمه های میانبر
+ نمایش نور
+ محل ذخیره سازی
+ تنظیمات
+ شیوه نامگذاری نمونه ها در هنگام ذخیره سازی
+ (زبان نمایش کاربر ( نیاز به راه اندازی از نو
+ پیش فرض قالب تصویر
+ .برای استفاده بوسیله گرین شات رزرو شده اند Prnt, Ctrl + Print, Alt + Prnt قبل از بسته شدن گرین شات، مشخص می کند که آیا دکمه های
+ (محل ذخیره سازی نمونه ها ( برای ذخیره سازی در دسکتاپ, خالی بگذارید
+ جلوه های ویژه
+ مکث (میلی ثانیه) تا نمونه برداری
+ را فشار دهید Print اینجا کلیک راست کنید یا دکمه
+Right-click here or press the Print-key.
+ هشدار
+ .ثبت و استفاده از یک یا چند تا از میانبرها امکان پذیر نمی باشد. ممکن است نرم افزار دیگری از میانبرها استفاده می کند
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-id-ID.xml b/Greenshot/Languages/language-id-ID.xml
index 672b587f9..368dd7f71 100644
--- a/Greenshot/Languages/language-id-ID.xml
+++ b/Greenshot/Languages/language-id-ID.xml
@@ -28,7 +28,7 @@ Juga, kami sangat terbantu apabila anda mengecek laporan lain yang sama dengan k
HTML
HTML dengan gambar inline
PNG
- Alpha
+ Alfa
Lakukan
Biru
Hijau
@@ -223,7 +223,7 @@ Harap cek aksesibilitas menuis pada lokasi penyimpanan yang dipilih.
E-Mail
Simpan cepat (menggunakan pengaturan berikut)
Simpan sebagai (tampilkan dialog)
- Pilih dsetinasi secara dinamis
+ Pilih destinasi secara dinamis
Kirim ke printer
Editor
Pola nama berkas
@@ -277,6 +277,7 @@ cont, 11_58_32 (ditambah ekstensi yang ditetapkan pada pengaturan)
Milisekon untuk menunggu sebelum menagkap
Moda penangkap jendela
Tangkap jendela
+ Tampilkan Pembesar
Klik kanan disini atau tekan tombol {0}.
Versi baru Greenshot telah tersedia! Apakah anda ingin mengunduh Greenshot {0}?
Harap tunggu ketika halaman Internet Explorer sedang ditangkap
diff --git a/Greenshot/Languages/language-installer-de-DE.xml b/Greenshot/Languages/language-installer-de-DE.xml
index 743515c35..ffbbafc05 100644
--- a/Greenshot/Languages/language-installer-de-DE.xml
+++ b/Greenshot/Languages/language-installer-de-DE.xml
@@ -1,14 +1,14 @@
-
-
-
- {#ExeName} starten wenn Windows hochfährt
- {#ExeName} starten
- Jira Plug-in
- Confluence Plug-in
- Öffne mit ein externem Kommando Plug-in
- OCR Plug-in (benötigt Microsoft Office Document Imaging (MODI))
- Imgur Plug-in (Siehe: http://imgur.com)
- Zusätzliche Sprachen
- Optimierung der Leistung, kann etwas dauern.
-
+
+
+
+ {#ExeName} starten wenn Windows hochfährt
+ {#ExeName} starten
+ Jira Plug-in
+ Confluence Plug-in
+ Öffne mit ein externem Kommando Plug-in
+ OCR Plug-in (benötigt Microsoft Office Document Imaging (MODI))
+ Imgur Plug-in (Siehe: http://imgur.com)
+ Zusätzliche Sprachen
+ Optimierung der Leistung, kann etwas dauern.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-en-US.xml b/Greenshot/Languages/language-installer-en-US.xml
index 843005269..058b19a91 100644
--- a/Greenshot/Languages/language-installer-en-US.xml
+++ b/Greenshot/Languages/language-installer-en-US.xml
@@ -1,14 +1,14 @@
-
-
-
- Start {#ExeName} with Windows start
- Start {#ExeName}
- Jira plug-in
- Confluence plug-in
- Open with external command plug-in
- OCR plug-in (needs Microsoft Office Document Imaging (MODI))
- Imgur plug-in (See: http://imgur.com)
- Additional languages
- Optimizing performance, this may take a while.
-
+
+
+
+ Start {#ExeName} with Windows start
+ Start {#ExeName}
+ Jira plug-in
+ Confluence plug-in
+ Open with external command plug-in
+ OCR plug-in (needs Microsoft Office Document Imaging (MODI))
+ Imgur plug-in (See: http://imgur.com)
+ Additional languages
+ Optimizing performance, this may take a while.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-es-ES.xml b/Greenshot/Languages/language-installer-es-ES.xml
index e11d06704..78a27e00d 100644
--- a/Greenshot/Languages/language-installer-es-ES.xml
+++ b/Greenshot/Languages/language-installer-es-ES.xml
@@ -1,14 +1,14 @@
-
-
-
- Extensión para Confluence
- Extensión para abrir con programas externos
- Extensión para Imgur (Ver http://imgur.com)
- Extensión para Jira
- Idiomas adicionales
- Extensión para OCR (necesita Microsoft Office Document Imaging (MODI))
- Optimizando rendimiento; por favor, espera.
- Lanzar {#ExeName}
- Lanzar {#ExeName} al iniciarse Windows
-
+
+
+
+ Extensión para Confluence
+ Extensión para abrir con programas externos
+ Extensión para Imgur (Ver http://imgur.com)
+ Extensión para Jira
+ Idiomas adicionales
+ Extensión para OCR (necesita Microsoft Office Document Imaging (MODI))
+ Optimizando rendimiento; por favor, espera.
+ Lanzar {#ExeName}
+ Lanzar {#ExeName} al iniciarse Windows
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-fi-FI.xml b/Greenshot/Languages/language-installer-fi-FI.xml
index 5182c880b..90d9376c9 100644
--- a/Greenshot/Languages/language-installer-fi-FI.xml
+++ b/Greenshot/Languages/language-installer-fi-FI.xml
@@ -1,14 +1,14 @@
-
-
-
- Käynnistä {#ExeName} Windowsin käynnistyessä
- Käynnistä {#ExeName}
- Jira-liitännäinen
- Confluence-liitännäinen
- Avaa Ulkoinen komento-liitännäisellä
- OCR-liitännäinen (Tarvitaan: Microsoft Office Document Imaging (MODI))
- Imgur-liitännäinen (Katso: http://imgur.com)
- Lisäkielet
- Optimoidaan suorituskykyä, tämä voi kestää hetken.
-
+
+
+
+ Käynnistä {#ExeName} Windowsin käynnistyessä
+ Käynnistä {#ExeName}
+ Jira-liitännäinen
+ Confluence-liitännäinen
+ Avaa Ulkoinen komento-liitännäisellä
+ OCR-liitännäinen (Tarvitaan: Microsoft Office Document Imaging (MODI))
+ Imgur-liitännäinen (Katso: http://imgur.com)
+ Lisäkielet
+ Optimoidaan suorituskykyä, tämä voi kestää hetken.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-fr-FR.xml b/Greenshot/Languages/language-installer-fr-FR.xml
index 4f2cab573..608e2fe3f 100644
--- a/Greenshot/Languages/language-installer-fr-FR.xml
+++ b/Greenshot/Languages/language-installer-fr-FR.xml
@@ -1,14 +1,14 @@
-
-
-
- Greffon Confluence
- Ouvrir avec le greffon de commande externe
- Greffon Imgur (Voir: http://imgur.com)
- Greffon Jira
- Langues additionnelles
- Greffon OCR (nécessite Document Imaging de Microsoft Office [MODI])
- Optimisation des performances, Ceci peut prendre un certain temps.
- Démarrer {#ExeName}
- Lancer {#ExeName} au démarrage de Windows
-
+
+
+
+ Greffon Confluence
+ Ouvrir avec le greffon de commande externe
+ Greffon Imgur (Voir: http://imgur.com)
+ Greffon Jira
+ Langues additionnelles
+ Greffon OCR (nécessite Document Imaging de Microsoft Office [MODI])
+ Optimisation des performances, Ceci peut prendre un certain temps.
+ Démarrer {#ExeName}
+ Lancer {#ExeName} au démarrage de Windows
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-nl-NL.xml b/Greenshot/Languages/language-installer-nl-NL.xml
index 43c8454c4..612f3943c 100644
--- a/Greenshot/Languages/language-installer-nl-NL.xml
+++ b/Greenshot/Languages/language-installer-nl-NL.xml
@@ -1,14 +1,14 @@
-
-
-
- Prestaties verbeteren, kan even duren.
- Extra talen
- Imgur plug-in (Zie: http://imgur.com)
- OCR plug-in (heeft Microsoft Office Document Imaging (MODI) nodig)
- Open met externes commando plug-in
- Confluence plug-in
- Jira plug-in
- Start {#ExeName}
- Start {#ExeName} wanneer Windows opstart
-
+
+
+
+ Prestaties verbeteren, kan even duren.
+ Extra talen
+ Imgur plug-in (Zie: http://imgur.com)
+ OCR plug-in (heeft Microsoft Office Document Imaging (MODI) nodig)
+ Open met externes commando plug-in
+ Confluence plug-in
+ Jira plug-in
+ Start {#ExeName}
+ Start {#ExeName} wanneer Windows opstart
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-sr-RS.xml b/Greenshot/Languages/language-installer-sr-RS.xml
index 01e3ba5f4..b55e6d893 100644
--- a/Greenshot/Languages/language-installer-sr-RS.xml
+++ b/Greenshot/Languages/language-installer-sr-RS.xml
@@ -1,14 +1,14 @@
-
-
-
- Прикључак за Конфлуенс
- Отвори са прикључком за спољне наредбе
- Прикључак за Имиџер (http://imgur.com)
- Прикључак за Џиру
- Додатни језици
- OCR прикључак (захтева Microsoft Office Document Imaging (MODI))
- Оптимизујем перформансе…
- Покрени Гриншот
- Покрени програм са системом
-
+
+
+
+ Прикључак за Конфлуенс
+ Отвори са прикључком за спољне наредбе
+ Прикључак за Имиџер (http://imgur.com)
+ Прикључак за Џиру
+ Додатни језици
+ OCR прикључак (захтева Microsoft Office Document Imaging (MODI))
+ Оптимизујем перформансе…
+ Покрени Гриншот
+ Покрени програм са системом
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-uk-UA.xml b/Greenshot/Languages/language-installer-uk-UA.xml
new file mode 100644
index 000000000..46a3b4633
--- /dev/null
+++ b/Greenshot/Languages/language-installer-uk-UA.xml
@@ -0,0 +1,14 @@
+
+
+
+ Плагін Confluence
+ Відкрити з плагіном зовнішніх команд
+ Плагін Imgur (див.: http://imgur.com)
+ Плагін Jira
+ Додаткові мови
+ Плагін OCR (потребує Microsoft Office Document Imaging (MODI))
+ Оптимізація продуктивності, це може забрати час.
+ Запустити {#ExeName}
+ Запускати {#ExeName} під час запуску Windows
+
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-installer-zh-CN.xml b/Greenshot/Languages/language-installer-zh-CN.xml
index 97e9aa9d4..c73a564b4 100644
--- a/Greenshot/Languages/language-installer-zh-CN.xml
+++ b/Greenshot/Languages/language-installer-zh-CN.xml
@@ -1,14 +1,14 @@
-
-
-
- Confluence插件
- 使用外部命令打开插件
- Imgur插件( (请访问: http://imgur.com))
- Jira插件
- 其它语言
- OCR插件(需要Microsoft Office Document Imaging (MODI)的支持)
- 正在优化性能,这可能需要一点时间。
- 启动{#ExeName}
- 让{#ExeName}随Windows一起启动
-
+
+
+
+ Confluence插件
+ 使用外部命令打开插件
+ Imgur插件( (请访问: http://imgur.com))
+ Jira插件
+ 其它语言
+ OCR插件(需要Microsoft Office Document Imaging (MODI)的支持)
+ 正在优化性能,这可能需要一点时间。
+ 启动{#ExeName}
+ 让{#ExeName}随Windows一起启动
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-it-IT.xml b/Greenshot/Languages/language-it-IT.xml
index 9ea963177..3d8a45fa2 100644
--- a/Greenshot/Languages/language-it-IT.xml
+++ b/Greenshot/Languages/language-it-IT.xml
@@ -180,6 +180,7 @@ Verifica l'accesso in scrittura sulla destinazione di salvataggio.
Salva le opzioni come default, e non chiedere più
Stampa con colori invertiti (negativo)
Forza stampa in scala di grigi
+ Forza stampa in bianco e nero
Stampa data / ora sul piede della pagina
Opzioni di stampa di Greenshot
Save come qualità di default, e non chiedere più
@@ -244,6 +245,7 @@ corrente, es: 11_58_32 (più l'estensione definita nelle impostazioni)Registra scorciatoie di tastiera
Mostra torcia elettrica
Mostra le notifiche
+ Mostra lente ingrandimento
Destinaz. salvataggio
Impostazioni
Modello usato per generare il nome file in fase di salvataggio delle immagini
diff --git a/Greenshot/Languages/language-ko-KR.xml b/Greenshot/Languages/language-ko-KR.xml
index 3023af1cc..c3bd11ac0 100644
--- a/Greenshot/Languages/language-ko-KR.xml
+++ b/Greenshot/Languages/language-ko-KR.xml
@@ -1,194 +1,194 @@
-
-
-
- 버그는 아래 URL로 전달바랍니다.
- Greenshot이 마음에 드신다면 아래 URL로 방문하셔서 지원할 수 있습니다.
- Greenshot은 sourceforge.net 관리하에 아래 링크에서 호스팅되고 있음
- 아이콘들은 Yusuke Kamiyamane's Fugue icon set으로부터 제공 받은 것입니다. (Creative Commons Attribution 3.0 license)
- Copyright (C) 2007-2010 Thomas Braun, Jens Klingen, Robin Krom
-Greenshot comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.
-Details about the GNU General Public License:
- Greenshot(Greenshot)에 관해...
- Greenshot - the revolutionary screenshot utility
- 닫기
- Sorry, an unexpected error occured.
-
-The good news is: you can help us getting rid of it by filing a bug report.
-Please visit the URL below, create a new bug report and paste the contents from the text area into the description.
-
-Please add a meaningful summary and enclose any information you consider to be helpful for reproducing the issue.
-Also, we would highly appreciate if you checked whether a tracker item already exists for this bug. (You can use the search to find those quickly.) Thank you :)
- 에러
- 클립보드에 쓰는 동안 예상하지 못한 에러가 발생
- {0} 프로세스로 인해 클립보드에 저장할 수 없습니다.
- 알파값
- 적용
- 파랑
- 초록
- HTML 색
- 최근 선택 색
- 빨강
- 색 고르기
- 투명
- 환경파일을 저장할 수 없습니다. '{0}'에 대한 접근권한을 확인해보세요.
- Greenshot에 관해
- 캡쳐 영역 지정
- 클립보드에서 이미지 열기
- 전체화면
- 이전 캡쳐 영역
- 윈도우 캡쳐
- Greenshot 응원하기
- 끝내기
- 도움말
- 파일에서 이미지 열기
- 빠른 옵션
- 환경설정...
- 정렬
- 화살표 모양
- 양쪽
- 끝
- 없음
- 시작
- 채우기 색
- 원형 흐리기
- 진하게
- 밝기
- 취소
- 클립보드 접근시 에러 발생, 다시 시도하세요.
- 닫기
- 스크린샷을 저장하시겠습니까?
- 이미지 저장?
- 확인
- 클립보드로 이미지 복사
- 파일 저장 위치 클립보드로 복사하기
- 복사
- 자르기 (C)
- 선택도구 (ESC)
- 자르기
- 삭제
- Down one level
- 한칸 뒤로
- 맨 뒤로
- 화살표 그리기 (A)
- 타원형 (E)
- 돋보이기 (H)
- 선 그리기
- 사각형 (R)
- 텍스트 추가 (T)
- 선택된 요소 추가하기
- 편집
- 이메일
- 파일
- 크기
- 선 색
- 하일라이트 구간
- 그레이스케일
- 확대
- 돋보이기
- 하일라이트 텍스트
- {0} 위치에 이미지 저장
- 이탤릭
- 파일로 부터 객체 불러오기
- 확대 factor
- 모자이크 (O)
- 흐림
- 모자이크 처리
- 픽셀화
- 오브젝트
- 윈도우 익스플로어에서 디렉토리 열기
- 붙여넣기
- 픽셀 크기
- 품질 미리보기
- 프린트
- 저장
- 파일로 객체 저장하기
- 다른이름으로 저장
- 전체선택
- 프린터 작업이 '{0}' 으로 전달되었습니다.
- 그림자
- 그림자
- 클립보드에 이미지 저장
- 선 굵기
- Greenshot 이미지 편집기
- 한칸 앞으로
- 맨 앞으로
- 에러
- Greenshot이 이미 실행중입니다.
- {0} 이름으로 저장할 수 없습니다.
- 선택된 저장 장소의 저장 가능여부를 확인해주세요.
- "{0}" 파일이 열리지 않습니다.
- 링크를 열수 없습니다.
- 스크린샷을 저장할 수 없습니다. 적절한 저장 위치를 선택해주세요.
- Greenshot 도움말
- JPEG 이미지 품질을 선택하세요.
- 기본 JPEG 이미지 품질을 저장하고 다시 묻지 않음.
- Greenshot JPEG 품질
- 프린터로 보내는 도중 에러가 발생했습니다.
- 페이지 중간 출력
- 페이지 사이즈에 맞게 출력
- 페이지 방향(가로세로)에 따라 프린트 회전
- 페이지 크기에 맞게 프린트 축소
- 기본 옵션으로 저장하고 다시 묻지 않기
- 페이지의 아래에 날짜/시간 인쇄하기
- Greenshot 프린터 옵션
- 바로 저장하기 (파일 세팅 활용)
- JPEG 이미지가 저장될때마다 JPEG 품질 다이얼로그 박스 보여짐
- 이미지가 출력될때마다 프린트 옵션화면 보이기
- 프로그램 세팅
- 윈도우 시작시 Greenshot 시작하기
- 화면캡쳐
- 화면캡쳐 마우스포인트
- 대화형 윈도우 캡쳐 모드를 사용
- 이미지 저장시 파일 저장 위치 클립보드로 복사하기
- 화면캡쳐 방법
- 클립보드로 복사
- 이미지 편집기에서 열기
- 이메일
- 바로 저장하기(아래 세팅 활용)
- 다른 이름으로 저장하기(다이얼로그박스 보여주기)
- 프린터로 보내기
- 파일명 저장방식
- 일반
- JPEG 품질
- JPEG 세팅
- 언어
- 파일이름은 아래 표기된 방식으로 자동으로 변경됩니다:
-%YYYY% 년, 4 digits
-%MM% 월, 2 digits
-%DD% 일, 2 digits
-%hh% 시, 2 digits
-%mm% 분, 2 digits
-%ss% 초, 2 digits
-%NUM% 숫자, 6 digits
-%title% 윈도우 타이틀
-%user% 윈도우 사용자
-%domain% 윈도우 도메인
-%hostname% PC 이름
-
-역슬래시(\) 표시를 사용할 경우 파일 저장시 디렉토리를 만들수 있습니다.
-
-예제: 이런 방식(%YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%)의 포맷을 사용할 경우 현재 디렉토리 위치에서 현재 날짜의 폴더에 현재시간의 파일명으로 파일을 생성할 수 있습니다.
- 저장
- 카메라 촬영음
- 생성파일 환경 세팅
- 이미지 포맷
- 프린터
- 프린트 옵션
- 단축기 등록하기
- 카메라 플래시
- 저장위치
- 세팅
- 스크린샷 저장시 파일명을 저장하는 방식
- 사용자 언어환경 (변경시 재부팅 필요)
- 기본 저장 이미지 포맷
- 프로그램 시작시 윈도우의 Ctrl + Print, Alt + Prnt 키를 단축키로 활용할 것인지 결정
- 기본 저장 위치(빈칸이면 바탕화면으로 저장)
- 효과
- 밀리 초 캡쳐하기전 대기
- 여기 오른쪽 마우스 버튼을 클릭하거나 프린터키를 누르세요.
- 주의
- One or several hotkeys could not be registered. Therefore, it might not be possible to use the Greenshot hotkeys.
-This problem is probably caused by another tool claiming usage of the same hotkeys.
-Please deactivate software making use of the Print button. You can also simply use all Greenshot features from the tray icon context menu.
-
+
+
+
+ 버그는 아래 URL로 전달바랍니다.
+ Greenshot이 마음에 드신다면 아래 URL로 방문하셔서 지원할 수 있습니다.
+ Greenshot은 sourceforge.net 관리하에 아래 링크에서 호스팅되고 있음
+ 아이콘들은 Yusuke Kamiyamane's Fugue icon set으로부터 제공 받은 것입니다. (Creative Commons Attribution 3.0 license)
+ Copyright (C) 2007-2010 Thomas Braun, Jens Klingen, Robin Krom
+Greenshot comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.
+Details about the GNU General Public License:
+ Greenshot(Greenshot)에 관해...
+ Greenshot - the revolutionary screenshot utility
+ 닫기
+ Sorry, an unexpected error occured.
+
+The good news is: you can help us getting rid of it by filing a bug report.
+Please visit the URL below, create a new bug report and paste the contents from the text area into the description.
+
+Please add a meaningful summary and enclose any information you consider to be helpful for reproducing the issue.
+Also, we would highly appreciate if you checked whether a tracker item already exists for this bug. (You can use the search to find those quickly.) Thank you :)
+ 에러
+ 클립보드에 쓰는 동안 예상하지 못한 에러가 발생
+ {0} 프로세스로 인해 클립보드에 저장할 수 없습니다.
+ 알파값
+ 적용
+ 파랑
+ 초록
+ HTML 색
+ 최근 선택 색
+ 빨강
+ 색 고르기
+ 투명
+ 환경파일을 저장할 수 없습니다. '{0}'에 대한 접근권한을 확인해보세요.
+ Greenshot에 관해
+ 캡쳐 영역 지정
+ 클립보드에서 이미지 열기
+ 전체화면
+ 이전 캡쳐 영역
+ 윈도우 캡쳐
+ Greenshot 응원하기
+ 끝내기
+ 도움말
+ 파일에서 이미지 열기
+ 빠른 옵션
+ 환경설정...
+ 정렬
+ 화살표 모양
+ 양쪽
+ 끝
+ 없음
+ 시작
+ 채우기 색
+ 원형 흐리기
+ 진하게
+ 밝기
+ 취소
+ 클립보드 접근시 에러 발생, 다시 시도하세요.
+ 닫기
+ 스크린샷을 저장하시겠습니까?
+ 이미지 저장?
+ 확인
+ 클립보드로 이미지 복사
+ 파일 저장 위치 클립보드로 복사하기
+ 복사
+ 자르기 (C)
+ 선택도구 (ESC)
+ 자르기
+ 삭제
+ Down one level
+ 한칸 뒤로
+ 맨 뒤로
+ 화살표 그리기 (A)
+ 타원형 (E)
+ 돋보이기 (H)
+ 선 그리기
+ 사각형 (R)
+ 텍스트 추가 (T)
+ 선택된 요소 추가하기
+ 편집
+ 이메일
+ 파일
+ 크기
+ 선 색
+ 하일라이트 구간
+ 그레이스케일
+ 확대
+ 돋보이기
+ 하일라이트 텍스트
+ {0} 위치에 이미지 저장
+ 이탤릭
+ 파일로 부터 객체 불러오기
+ 확대 factor
+ 모자이크 (O)
+ 흐림
+ 모자이크 처리
+ 픽셀화
+ 오브젝트
+ 윈도우 익스플로어에서 디렉토리 열기
+ 붙여넣기
+ 픽셀 크기
+ 품질 미리보기
+ 프린트
+ 저장
+ 파일로 객체 저장하기
+ 다른이름으로 저장
+ 전체선택
+ 프린터 작업이 '{0}' 으로 전달되었습니다.
+ 그림자
+ 그림자
+ 클립보드에 이미지 저장
+ 선 굵기
+ Greenshot 이미지 편집기
+ 한칸 앞으로
+ 맨 앞으로
+ 에러
+ Greenshot이 이미 실행중입니다.
+ {0} 이름으로 저장할 수 없습니다.
+ 선택된 저장 장소의 저장 가능여부를 확인해주세요.
+ "{0}" 파일이 열리지 않습니다.
+ 링크를 열수 없습니다.
+ 스크린샷을 저장할 수 없습니다. 적절한 저장 위치를 선택해주세요.
+ Greenshot 도움말
+ JPEG 이미지 품질을 선택하세요.
+ 기본 JPEG 이미지 품질을 저장하고 다시 묻지 않음.
+ Greenshot JPEG 품질
+ 프린터로 보내는 도중 에러가 발생했습니다.
+ 페이지 중간 출력
+ 페이지 사이즈에 맞게 출력
+ 페이지 방향(가로세로)에 따라 프린트 회전
+ 페이지 크기에 맞게 프린트 축소
+ 기본 옵션으로 저장하고 다시 묻지 않기
+ 페이지의 아래에 날짜/시간 인쇄하기
+ Greenshot 프린터 옵션
+ 바로 저장하기 (파일 세팅 활용)
+ JPEG 이미지가 저장될때마다 JPEG 품질 다이얼로그 박스 보여짐
+ 이미지가 출력될때마다 프린트 옵션화면 보이기
+ 프로그램 세팅
+ 윈도우 시작시 Greenshot 시작하기
+ 화면캡쳐
+ 화면캡쳐 마우스포인트
+ 대화형 윈도우 캡쳐 모드를 사용
+ 이미지 저장시 파일 저장 위치 클립보드로 복사하기
+ 화면캡쳐 방법
+ 클립보드로 복사
+ 이미지 편집기에서 열기
+ 이메일
+ 바로 저장하기(아래 세팅 활용)
+ 다른 이름으로 저장하기(다이얼로그박스 보여주기)
+ 프린터로 보내기
+ 파일명 저장방식
+ 일반
+ JPEG 품질
+ JPEG 세팅
+ 언어
+ 파일이름은 아래 표기된 방식으로 자동으로 변경됩니다:
+%YYYY% 년, 4 digits
+%MM% 월, 2 digits
+%DD% 일, 2 digits
+%hh% 시, 2 digits
+%mm% 분, 2 digits
+%ss% 초, 2 digits
+%NUM% 숫자, 6 digits
+%title% 윈도우 타이틀
+%user% 윈도우 사용자
+%domain% 윈도우 도메인
+%hostname% PC 이름
+
+역슬래시(\) 표시를 사용할 경우 파일 저장시 디렉토리를 만들수 있습니다.
+
+예제: 이런 방식(%YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%)의 포맷을 사용할 경우 현재 디렉토리 위치에서 현재 날짜의 폴더에 현재시간의 파일명으로 파일을 생성할 수 있습니다.
+ 저장
+ 카메라 촬영음
+ 생성파일 환경 세팅
+ 이미지 포맷
+ 프린터
+ 프린트 옵션
+ 단축기 등록하기
+ 카메라 플래시
+ 저장위치
+ 세팅
+ 스크린샷 저장시 파일명을 저장하는 방식
+ 사용자 언어환경 (변경시 재부팅 필요)
+ 기본 저장 이미지 포맷
+ 프로그램 시작시 윈도우의 Ctrl + Print, Alt + Prnt 키를 단축키로 활용할 것인지 결정
+ 기본 저장 위치(빈칸이면 바탕화면으로 저장)
+ 효과
+ 밀리 초 캡쳐하기전 대기
+ 여기 오른쪽 마우스 버튼을 클릭하거나 프린터키를 누르세요.
+ 주의
+ One or several hotkeys could not be registered. Therefore, it might not be possible to use the Greenshot hotkeys.
+This problem is probably caused by another tool claiming usage of the same hotkeys.
+Please deactivate software making use of the Print button. You can also simply use all Greenshot features from the tray icon context menu.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-nl-NL.xml b/Greenshot/Languages/language-nl-NL.xml
index c8ad9f148..a07b3c79a 100644
--- a/Greenshot/Languages/language-nl-NL.xml
+++ b/Greenshot/Languages/language-nl-NL.xml
@@ -7,7 +7,7 @@
Iconen van de icon set van Yusuke Kamiyamane's Fugue (Creative Commons Attribution 3.0 license)
Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
Greenshot komt zonder enige garantie! Dit is gratis software, en U kunt het distribueren onder bepaalde voorwaarden.
-Deteils over de GNU General Public License:
+Details over de GNU General Public License:
Over Greenshot
Nederlandse vertaling door Jurjen Ladenius en Thomas Smid
Greenshot - de revolutionaire screenshot utility
diff --git a/Greenshot/Languages/language-pl-PL.xml b/Greenshot/Languages/language-pl-PL.xml
index 45dc93bdc..7dd705125 100644
--- a/Greenshot/Languages/language-pl-PL.xml
+++ b/Greenshot/Languages/language-pl-PL.xml
@@ -1,5 +1,5 @@
-
+
Tutaj proszę zgłaszać błędy:
Jeśli podoba Ci się Greenshot, chętnie przyjmiemy Twoje wsparcie:
@@ -9,6 +9,7 @@
Greenshot nie jest objęty JAKĄKOLWIEK GWARANCJĄ. Jako wolne oprogramowanie może być rozpowszechniany na określonych warunkach.
Szczegóły na temat Powszechnej Licencji Publicznej GNU:
O Greenshot
+ Polskie tłumaczenie: Paweł Matyja, piotrex (https://github.com/piotrex)
Greenshot - rewolucyjne narzędzie do zrzutów ekranu
Zamknij
Niestety, wystąpił nieoczekiwany błąd.
@@ -19,8 +20,15 @@ Odwiedź poniższy URL, utwórz nowy raport błędu i wstaw do pola opisu zawart
Dodaj sensowne podsumowanie oraz wszelkie informacje, które uważasz za istotne do odtworzenia zaistniałej sytuacji.
Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zostało już zarejestrowane. (Użyj wyszukiwarki, aby to zweryfikować.) Dziękujemy :)
Błąd
+ Anuluj
Podczas zapisu do schowka wystąpił nieprzewidziany błąd.
Greenshot nie mógł dokonać zapisu do schowka, ponieważ proces {0} zablokował dostęp.
+ Nie można odnaleźć obrazu ze schowka.
+ Bitmapa Windows
+ Bitmapa DIB
+ HTML
+ HTML z obrazami w kodzie
+ PNG
Kanał alfa
Zastosuj
Niebieski
@@ -30,28 +38,50 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
Czerwony
Pobieranie koloru
Przezroczysty
+ Miejsce zapisu {0} nie pozwala Greenshotowi uzyskać dostęp, prawdopodobnie przez otwarte okno. Zamknij okno i spróbuj ponownie.
+ Greenshot nie może uzyskać dostępu
Nie powiódł się zapis pliku konfiguracyjnego Greenshota. Proszę sprawdzić uprawnienia dostępu dla {0}.
O Greenshot
Zrzuć obszar
Otwórz obraz ze schowka
Zrzuć pełny ekran
+ całość
+ od dołu
+ od lewej
+ od prawej
+ od góry
+ Przechwyć Internet Explorer
+ Przechwyć Internet Explorer z listy
Zrzuć poprzedni obszar
Zrzuć okno
+ Przechwyć okno z listy
Wsparcie Greenshota
Wyjście
Pomoc
Otwórz obraz z pliku
+ Otwórz ostatnią lokalizację zapisu
Szybki dostęp do opcji
Preferencje...
+ Błąd podczas eksportowania do {0}. Proszę spróbować później.
+ Do dołu
+ Wyśrodkowane
+ Wyrównanie w poziomie
+ Do lewej
+ Do środka
+ Do prawej
+ Do góry
+ Wyrównanie w pionie
Zmień rozmieszczenie
Groty strzałki
Oba
Końcowy
Żaden
Początkowy
+ Przytnij automatycznie
Kolor wypełnienia
Promień rozmycia
Pogrubienie
+ Obramowanie
Jaskrawość
Anuluj
Błąd przy próbie dostępu do schowka. Spróbuj ponownie.
@@ -70,25 +100,36 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
Na sam dół
Rysuj strzałkę (A)
Rysuj elipsę (E)
+ Rysuj odręcznie (F)
Uwydatnienie (H)
Rysuj linię (L)
Rysuj prostokąt (R)
Dodaj pole tekstowe (T)
+ Intensywność cienia
+ Przesunięcie cienia
+ Ustawienia cienia
+ Intensywność cienia
Duplikuj wybrany element
Edycja
+ Efekty
Wyślij e-mailem
Plik
Rozmiar
Kolor linii
+ Skala szarości
Uwydatnienie obszaru
Wyszarzenie
Powiększenie
Tryb uwydatnienia
Uwydatnienie tekstu
+ Rzuć cień
Obraz został zapisany w {0}.
+ Wklej okno
+ Negatyw
Pochylenie
Załaduj obiekty z pliku
Współczynnik powiększenia
+ Dopasowuj wielkość zrzutów
Zamglenie (O)
Rozmywanie
Tryb zamglenia
@@ -99,18 +140,32 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
Rozmiar piksela
Jakość podglądu
Drukuj
+ Cofnij {0}
+ Domyślny rozmiar
+ Procent
+ Pikseli
+ Obróć w lewo (Ctrl + ,)
+ Obróć w prawo (Ctrl + .)
Zapisz
Zapisz obiekty do pliku
Zapisz jako...
Zaznacz wszystko
Zadanie drukowania zostało wysłane do '{0}'.
Cień
- Cień
Obraz został zapisany w schowku.
Grubość linii
Greenshot - edytor obrazów
+ Poszarpane krawędzie
+ Poziomy zasięg poszarpania
+ Ustawienia poszarpanych krawędzi
+ Rozmiar poszarpania
+ Pionowy zasięg poszarpania
+ Cofnij {0}
Jeden poziom w górę
Na samą górę
+ Klient MAPI
+ Outlook z HTML
+ Outlook z tekstem
Błąd
Instancja aplikacji Greenshot jest już uruchomiona.
Nie można wykonać zapisu do {0}.
@@ -118,26 +173,50 @@ Sprawdź możliwość zapisu w wybranej lokalizacji.
Nie można otworzyć pliku {0}.
Nie można otworzyć odsyłacza.
Nie można zapisać zrzutu ekranu, proszę wskazać bardziej odpowiednią lokalizację.
+ Ekspert
+ Twórz obraz 8-bitowy, kiedy kolorów jest mniej niż 256, gdy ma się do czynienia z obrazem > 8-bitowym
+ Sprawdzaj niestabilne wersje
+ Formaty schowka
+ Numer dla ${NUM} we wzorcu nazwy pliku
+ Wiem, co robię!
+ Wzorzec stopki wydruku
+ Minimalizuj użycie pamięci kosztem wydajności (nie polecane)
+ Optymalizacje korzystania z programu w zdalnym pulpicie
+ Korzystaj ponownie z edytora, kiedy to tylko możliwe
+ Nie pytaj o zapisywanie przy zamykaniu edytora
+ Pokazuj miniaturki oknien w menu kontekstowym (Vista i Win 7)
+ Wyeksportowano do: {0}
+ Wystąpił błąd przy eksportowaniu do {0}:
Greenshot - pomoc
+ Skróty klawiszowe
Proszę wybrać poziom jakości dla pliku JPEG.
- Zapisz jako domyślny poziom jakości JPEG i nie pytaj ponownie
- Greenshot - jakość JPEG
+ OK
Podczas próby wydruku wystąpił błąd.
Wycentruj wydruk na stronie
Powiększ wydruk do rozmiaru papieru
Obróć wydruk odpowiednio do ułożenia strony
Pomniejsz wydruk do rozmiaru papieru
+ Ustawienia kolorów
Zapisz opcje jako domyślne i nie pytaj ponownie
+ Drukuj z odwóconymi kolorami
+ Ustawienia strony
+ Drukowanie w pełnych kolorach
+ Wymuś drukowanie w skali szarości
+ Wymuś drukowanie czarno-białe
Drukuj datę/czas u dołu strony
Greenshot - opcje drukowania
+ Ustaw jakość jako domyślną i nie pytaj już więcej
+ Jakość zrzutu
Zapisz bezpośrednio (używając ustawień dla pliku wyjściowego)
- Pokazuj okno ustawień jakości JPEG przy każdym zapisie obrazu
Pokazuj okno opcji wydruku przy każdej próbie wydruku obrazu
+ Wybieraj jakość przy każdym zapisie obrazu
Ustawienia aplikacji
Uruchom Greenshot podczas startu systemu
Zrzucanie ekranu
Zrzucaj wskaźnik myszy
Tryb interaktywnego zrzucania okna
+ Co ile dni sprawdzać aktualizacje (0 = nie sprawdzaj)
+ Konfiguracja
Kopiuj ścieżkę pliku do schowka przy każdym zapisie obrazu
Miejsce zrzutu ekranu
Kopiuj do schowka
@@ -145,37 +224,48 @@ Sprawdź możliwość zapisu w wybranej lokalizacji.
Wyślij e-mailem
Zapisz bezpośrednio (wg ustawień poniżej)
Zapisz jako (z oknem dialogowym)
+ Wybieraj miejsce dynamicznie
Wyślij do drukarki
+ Edytor
Szablon nazwy pliku
Ogólne
+ Przechwytywanie Internet Explorera
Jakość JPEG
- Ustawienia JPEG
Język
Wzorce symboliczne w zdefiniowanych szablonach zostaną zastąpione automatycznie:
-${YYYY} - rok, 4 cyfry
-${MM} - miesiąc, 2 cyfry
-${DD} - dzień, 2 cyfry
-${hh} - godzina, 2 cyfry
-${mm} - minuta, 2 cyfry
-${ss} - sekunda, 2 cyfry
-${NUM} - liczba zwiększana o 1 (autonumeracja), 6 cyfr
-${title} - tytuł okna
-${user} - zalogowany użytkownik
-${domain} - nazwa domeny
-${hostname} - nazwa komputera
+%YYYY% - rok, 4 cyfry
+%MM% - miesiąc, 2 cyfry
+%DD% - dzień, 2 cyfry
+%hh% - godzina, 2 cyfry
+%mm% - minuta, 2 cyfry
+%ss% - sekunda, 2 cyfry
+%NUM% - liczba zwiększana o 1 (autonumeracja), 6 cyfr
+%title% - tytuł okna
+%user% - zalogowany użytkownik
+%domain% - nazwa domeny
+%hostname% - nazwa komputera
Możliwe jest także dynamiczne tworzenie folderów - wystarczy użyć znaku odwrotnego ukośnika (\) do rozdzielenia nazw folderów i plików.
-Przykład: szablon ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+Przykład: szablon %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
utworzy w domyślnym miejscu zapisu folder dla bieżącego dnia, np. 2008-06-29, a nazwy plików ze zrzutami ekranu będą tworzone
na podstawie bieżącego czasu, np. 11-58-32 (plus rozszerzenie zdefiniowane w ustawieniach).
- Wyjście
+ Śieć i aktualizacje
+ Plik wyjściowy
Odtwarzaj dźwięk migawki aparatu
+ Wtyczki
+ Stworzone przez
+ Ścieżka do DLL
+ Nazwa
+ Wersja
Preferowane ustawienia pliku wyjściowego
Format obrazu
Drukarka
Opcje drukowania
+ Ustawienia jakości
+ Redukuj liczbę kolorów maksymalnie do 256
Zarejestruj skróty klawiaturowe
Pokazuj błysk flesza
+ Pokazuj powiadomienia
Miejsce zapisu
Ustawienia
Szablon używany do tworzenia nazw plików podczas zapisywania zrzutów ekranu
@@ -183,12 +273,23 @@ na podstawie bieżącego czasu, np. 11-58-32 (plus rozszerzenie zdefiniowane w u
Domyślny format pliku graficznego ze zrzutem ekranu
Określa, czy skróty klawiaturowe Print, Ctrl + Print, Alt + Print są zarezerwowane do globalnego użytku przez Greenshot od chwili jego uruchomienia aż do momentu zamknięcia.
Domyślne miejsce zapisywania zrzutów ekranu (pozostaw puste, aby zapis odbywał się na pulpit)
+ Używaj domyślnego proxy
Efekty
milisekund oczekiwania przed wykonaniem zrzutu ekranu
+ Styl obramowania okien
+ Przechwytywanie okna
+ Pokazuj przybliżenie
Kliknij prawym klawiszem myszy lub naciśnij klawisz Print.
+ Jest dostępna nowa wersja Greenshot! Chcesz pobrać Greenshot {0}?
+ Proszę czekać aż strona Internet Explorera zostanie przechwycona...
Ostrzeżenie
Nie udało się zarejestrować jednego lub kilku skrótów klawiaturowych. Z tego powodu używanie skrótów klawiaturowych Greenshota może nie być możliwe.
Przyczyną problemu może być wykorzystywanie tych samych skrótów klawiaturowych przez inną aplikację.
Proszę wyłączyć oprogramowanie korzystające z klawisza Print. Możliwe jest również zwyczajne korzystanie ze wszystkich funkcji Greenshota za pomocą menu kontekstowego ikony w obszarze powiadomień na pasku zadań.
+ Używaj własnego koloru
+ Bez przezroczystości
+ Automatycznie
+ Używaj domyślnego koloru
+ Tak jak wyświetlane
\ No newline at end of file
diff --git a/Greenshot/Languages/language-ro-RO.xml b/Greenshot/Languages/language-ro-RO.xml
index 5d198850c..de435b088 100644
--- a/Greenshot/Languages/language-ro-RO.xml
+++ b/Greenshot/Languages/language-ro-RO.xml
@@ -1,534 +1,534 @@
-
-
-
-
-
- Traducere în limba română - Radu Mogoș
-
-
- Greenshot - aplicația pentru capturi de ecran revoluționară
-
-
- Desenează dreptunghi (R)
-
-
- Salvează
-
-
- Preferințe...
-
-
- Locație stocare
-
-
- Setări
-
-
- Locația unde capturile sunt salvate de obicei (lasă nedefinit pentru a salva pe desktop)
-
-
- Limba
-
-
- Tipar fișier
-
-
- Limbă interfață Greenshot (necesită repornire)
-
-
- Model folosit pentru generarea numelor de fișiere când salvați capturile
-
-
- Format imagine
-
-
- Format imagine folosit de obicei
-
-
- Captează regiune
-
-
- Captează ultima regiune
-
-
- Ieșire
-
-
- Efecte
-
-
- Cîntă un sunet
-
-
- Arată blitz
-
-
- Eroare
-
-
- Nu pot salva fișier la {0}.
-Verificați vă rog dacă aveți drepturi de scriere în locația respectivă.
-
-
- Captează tot ecranul
-
-
- Taie
-
-
- Copie
-
-
- Lipește
-
-
- Despre Greenshot
-
-
- Copyright (C) 2007-2010 Thomas Braun, Jens Klingen, Robin Krom
-Greenshot nu vine cu ABSOLUT NICI O GARANȚIE. Acesta este un program gratuit si puteți să-l distribuiți sub anumite condiții.
-Detalii despre licența GNU General Public License:
-
-
- Nu pot deschide link.
-
-
- Nu pot salva captura, vă rog folosiți o altă locație.
-
-
- Pictograme din setul de icoane Fugue al lui Yusuke Kamiyamane (Creative Commons Attribution 3.0 license)
-
-
- Greenshot e hostat de sourceforge.net la
-
-
- Raportați bug-uri la
-
-
- Dacă vă place Greenshot, sunteți bineveniți să vă arătați suportul:
-
-
- Imagine salvată la {0}.
-
-
- Imagine stocată în clipboard.
-
-
- Salvează ca...
-
-
- Fișier
-
-
- Editare
-
-
- Obiect
-
-
- Desenează elipsă (E)
-
-
- Adaugă câmp de text (T)
-
-
- Șterge
-
-
- Selectează tot
-
-
- Copie imagine în clipboard
-
-
- Captează fereastră
-
-
- Duplică elementul selectat
-
-
- Ajutor
-
-
- Despre Greenshot
-
-
- Greenshot editor de imagini
-
-
- Setări Aplicație
-
-
- Setări salvare fișier preferate
-
-
- Nu folosi editorul de imagini
-
-
- Definește tastele pentru scurtături
-
-
- Definește dacă scurtăturile Prnt, Ctrl + Print, Alt + Prnt sunt rezervate să fie folosite de Greenshot la pornire, pînă când programul este oprit.
-
-
- Imprimarea a fost trimisă la '{0}'.
-
-
- Imprimă
-
-
- Ajutor Greenshot
-
-
- Setări JPEG
-
-
- Calitate JPEG
-
-
- Specifică calitatea JPEG de fiecare dată când o imagine JPEG este salvată.
-
-
- Calitage Greenshot JPEG
-
-
- Alegeți calitatea imaginii JPEG.
-
-
- Definește ca și calitate JPEG standard și nu mă mai întreba
-
-
- Culoare linie
-
-
- Culoare umplere
-
-
- Grosime linie
-
-
- Selecția de culori
-
-
- Aplică
-
-
- Transparent
-
-
- Culoare HTML
-
-
- Roșu
-
-
- Verde
-
-
- Albastru
-
-
- Alfa
-
-
- Culori utilizate recent
-
-
- Închide
-
-
- Atenție
-
-
- Una sau mai multe taste pentru scurtături nu a putut fi înregistrată. De aceea, s-ar putea să nu fie posibil să utilizați scurtăturile definite în Greenshot.
-Această problemă e probabil cauzată de alt program ce folosește aceleași scurtături.
-Vă rugăm să dezactivați aplicația ce folosește tasta Print. Puteți de asemenea folosi toate funcționalitățile Greenshot făcând click pe pictograma aplicației din tray.
-
-
- Deschide în editor imagini
-
-
- Trimite la imprimantă
-
-
- Salvează direct (folosind setările de mai jos)
-
-
- Copie în clipboard
-
-
- Desenează linie (L)
-
-
- Destinație captură
-
-
- Desenează săgeată (A)
-
-
- Cap săgeată
-
-
- Punct start
-
-
- Punct stop
-
-
- Ambele
-
-
- Niciunul
-
-
- Mod obfuscare
-
-
- Mod subliniere
-
-
- Greenshot deja rulează.
-
-
- Pornește Greenshot odată cu Windows
-
-
- Greenshot nu a putut salva datele în clipboard deoarece procesul {0} a blocat accesul.
-
-
- O eroare a intervenit în timp ce încercam imprimarea.
-
-
- Opțiuni imprimare Greenshot
-
-
- Centrează imprimarea pe pagină
-
-
- Mărește imaginea imprimată cât dimensiunea hîrtiei
-
-
- Rotește imaginea imprimată să se potrivească orientării paginii
-
-
- Micește imaginea imprimată cât dimensiunea hîrtiei
-
-
- Salvează opțiunile ca standard și nu mă mai întreba
-
-
- Arată dialogul cu opțiunile de imprimare de fiecare dată când imprimați
-
-
- Opțiuni imprimare
-
-
- Rezultat
-
-
- General
-
-
- Eroare în timpul accesării clipboard. Vă rog reîncercați.
-
-
- Îngroșat
-
-
- Italic
-
-
- Aranjează
-
-
- Mărime
-
-
- Pînă la început
-
-
- Sus un nivel
-
-
- Jos un nivel
-
-
- Pînă la capăt
-
-
- Preferințe rapide
-
-
- Eroare
-
-
- Ne pare rău, a intervenit o eroare.
-
-Partea bună este că ne puteți ajuta să scăpăm de ea adăugând un raport de bug.
-Vizitați url-ul dem ai jos, creați un nou raport de bug si copiați textul erorii în descriere.
-
-Vă rugăm adăugați informații folositoare și adăugați orice alte informații considerați că ne-ar putea ajuta să reproducem eroarea.
-Am aprecia dacă ați verifica și dacă nu cumva acest bug a fost raportat deja de altcineva. (Puteți folosi căutarea pentru a găsi ce s-a raportat deja.) Vă mulțumim :)
-
-
- Închide
-
-
- Copie cale fișier în clipboard de fiecare dată când o imagine este salvată.
-
-
- Copie calea în clipboard
-
-
- Următoarele variabile vor fi înlocuite automat:
-%YYYY% an, 4 cifre
-%MM% luna, 2 cifre
-%DD% ziua, 2 cifre
-%hh% ora, 2 cifre
-%mm% minut, 2cifre
-%ss% secundă, 2 cifre
-%NUM% număr incrementare, 6 cifre
-%title% Titlu Fereastra
-%user% Utilizator Windows
-%domain% Domeniu Windows
-%hostname% Nume PC
-
-Greenshot poate de asemenea crea directoare automat, folosiți simbolul slash (\) pentru a separa directoare și fișiere.
-Exemplu: Textul %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
-va genera un director pentru ziua curentă în locația de stocare standard, ex. 2008-06-29, iar numele fișierului de captură va conține
-timpul curent, ex. 11_58_32 (plus extensia fișierului definită în setări)
-
-
- Unealta de selecție (ESC)
-
-
- Salvează ca (afișează dialog)
-
-
- Salvează direct (folosind setările deja definite)
-
-
- Deschide director in Windows Explorer
-
-
- Data/Ora imprimării în partea de jos a paginii
-
-
- Evidențiază (H)
-
-
- Încețoșat
-
-
- Pixelat
-
-
- Evidențiază zona
-
-
- Evidențieză text
-
-
- Gri
-
-
- Mărește
-
-
- Mărime pixel
-
-
- Obfuscare (O)
-
-
- Rază încețoșare
-
-
- Luminozitate
-
-
- Previezualizare calitate
-
-
- Factor de mărire
-
-
- Umbră
-
-
- Umbră
-
-
- Confirmare
-
-
- Anulare
-
-
- Taie (C)
-
-
- Deschide imaginea din clipboard
-
-
- O eroare a avut loc în timpul salvării în clipboard.
-
-
- Nu pot salva fișierul de configurație al aplicației Greenshot. Verificați vă rog permisiile pentru '{0}'.
-
-
- Imprimantă
-
-
- Captură
-
-
- Captează cursor mouse
-
-
- Deschide imagine din fișier
-
-
- Fișierul "{0}" nu a putut fi deschis.
-
-
- Doriți să salvați captura?
-
-
- Salvați imaginea?
-
-
- Folosiți metoda interactivă de captură a ferestrei
-
-
- Captează fereastra chiar dacă e acoperită
-
-
- Captează conținut doar de către aplicațiile suportate
-
-
- E-Mail
-
-
- E-Mail
-
-
- Încarcă obiecte din fișier
-
-
- Salvează obiectele în fișier
-
-
- Milisecunde de așteptat înaintea capturii
-
-
- Click dreapta aici sau apăsați tasta Print.
-
-
- Ajutați Greenshot
-
-
+
+
+
+
+
+ Traducere în limba română - Radu Mogoș
+
+
+ Greenshot - aplicația pentru capturi de ecran revoluționară
+
+
+ Desenează dreptunghi (R)
+
+
+ Salvează
+
+
+ Preferințe...
+
+
+ Locație stocare
+
+
+ Setări
+
+
+ Locația unde capturile sunt salvate de obicei (lasă nedefinit pentru a salva pe desktop)
+
+
+ Limba
+
+
+ Tipar fișier
+
+
+ Limbă interfață Greenshot (necesită repornire)
+
+
+ Model folosit pentru generarea numelor de fișiere când salvați capturile
+
+
+ Format imagine
+
+
+ Format imagine folosit de obicei
+
+
+ Captează regiune
+
+
+ Captează ultima regiune
+
+
+ Ieșire
+
+
+ Efecte
+
+
+ Cîntă un sunet
+
+
+ Arată blitz
+
+
+ Eroare
+
+
+ Nu pot salva fișier la {0}.
+Verificați vă rog dacă aveți drepturi de scriere în locația respectivă.
+
+
+ Captează tot ecranul
+
+
+ Taie
+
+
+ Copie
+
+
+ Lipește
+
+
+ Despre Greenshot
+
+
+ Copyright (C) 2007-2010 Thomas Braun, Jens Klingen, Robin Krom
+Greenshot nu vine cu ABSOLUT NICI O GARANȚIE. Acesta este un program gratuit si puteți să-l distribuiți sub anumite condiții.
+Detalii despre licența GNU General Public License:
+
+
+ Nu pot deschide link.
+
+
+ Nu pot salva captura, vă rog folosiți o altă locație.
+
+
+ Pictograme din setul de icoane Fugue al lui Yusuke Kamiyamane (Creative Commons Attribution 3.0 license)
+
+
+ Greenshot e hostat de sourceforge.net la
+
+
+ Raportați bug-uri la
+
+
+ Dacă vă place Greenshot, sunteți bineveniți să vă arătați suportul:
+
+
+ Imagine salvată la {0}.
+
+
+ Imagine stocată în clipboard.
+
+
+ Salvează ca...
+
+
+ Fișier
+
+
+ Editare
+
+
+ Obiect
+
+
+ Desenează elipsă (E)
+
+
+ Adaugă câmp de text (T)
+
+
+ Șterge
+
+
+ Selectează tot
+
+
+ Copie imagine în clipboard
+
+
+ Captează fereastră
+
+
+ Duplică elementul selectat
+
+
+ Ajutor
+
+
+ Despre Greenshot
+
+
+ Greenshot editor de imagini
+
+
+ Setări Aplicație
+
+
+ Setări salvare fișier preferate
+
+
+ Nu folosi editorul de imagini
+
+
+ Definește tastele pentru scurtături
+
+
+ Definește dacă scurtăturile Prnt, Ctrl + Print, Alt + Prnt sunt rezervate să fie folosite de Greenshot la pornire, pînă când programul este oprit.
+
+
+ Imprimarea a fost trimisă la '{0}'.
+
+
+ Imprimă
+
+
+ Ajutor Greenshot
+
+
+ Setări JPEG
+
+
+ Calitate JPEG
+
+
+ Specifică calitatea JPEG de fiecare dată când o imagine JPEG este salvată.
+
+
+ Calitage Greenshot JPEG
+
+
+ Alegeți calitatea imaginii JPEG.
+
+
+ Definește ca și calitate JPEG standard și nu mă mai întreba
+
+
+ Culoare linie
+
+
+ Culoare umplere
+
+
+ Grosime linie
+
+
+ Selecția de culori
+
+
+ Aplică
+
+
+ Transparent
+
+
+ Culoare HTML
+
+
+ Roșu
+
+
+ Verde
+
+
+ Albastru
+
+
+ Alfa
+
+
+ Culori utilizate recent
+
+
+ Închide
+
+
+ Atenție
+
+
+ Una sau mai multe taste pentru scurtături nu a putut fi înregistrată. De aceea, s-ar putea să nu fie posibil să utilizați scurtăturile definite în Greenshot.
+Această problemă e probabil cauzată de alt program ce folosește aceleași scurtături.
+Vă rugăm să dezactivați aplicația ce folosește tasta Print. Puteți de asemenea folosi toate funcționalitățile Greenshot făcând click pe pictograma aplicației din tray.
+
+
+ Deschide în editor imagini
+
+
+ Trimite la imprimantă
+
+
+ Salvează direct (folosind setările de mai jos)
+
+
+ Copie în clipboard
+
+
+ Desenează linie (L)
+
+
+ Destinație captură
+
+
+ Desenează săgeată (A)
+
+
+ Cap săgeată
+
+
+ Punct start
+
+
+ Punct stop
+
+
+ Ambele
+
+
+ Niciunul
+
+
+ Mod obfuscare
+
+
+ Mod subliniere
+
+
+ Greenshot deja rulează.
+
+
+ Pornește Greenshot odată cu Windows
+
+
+ Greenshot nu a putut salva datele în clipboard deoarece procesul {0} a blocat accesul.
+
+
+ O eroare a intervenit în timp ce încercam imprimarea.
+
+
+ Opțiuni imprimare Greenshot
+
+
+ Centrează imprimarea pe pagină
+
+
+ Mărește imaginea imprimată cât dimensiunea hîrtiei
+
+
+ Rotește imaginea imprimată să se potrivească orientării paginii
+
+
+ Micește imaginea imprimată cât dimensiunea hîrtiei
+
+
+ Salvează opțiunile ca standard și nu mă mai întreba
+
+
+ Arată dialogul cu opțiunile de imprimare de fiecare dată când imprimați
+
+
+ Opțiuni imprimare
+
+
+ Rezultat
+
+
+ General
+
+
+ Eroare în timpul accesării clipboard. Vă rog reîncercați.
+
+
+ Îngroșat
+
+
+ Italic
+
+
+ Aranjează
+
+
+ Mărime
+
+
+ Pînă la început
+
+
+ Sus un nivel
+
+
+ Jos un nivel
+
+
+ Pînă la capăt
+
+
+ Preferințe rapide
+
+
+ Eroare
+
+
+ Ne pare rău, a intervenit o eroare.
+
+Partea bună este că ne puteți ajuta să scăpăm de ea adăugând un raport de bug.
+Vizitați url-ul dem ai jos, creați un nou raport de bug si copiați textul erorii în descriere.
+
+Vă rugăm adăugați informații folositoare și adăugați orice alte informații considerați că ne-ar putea ajuta să reproducem eroarea.
+Am aprecia dacă ați verifica și dacă nu cumva acest bug a fost raportat deja de altcineva. (Puteți folosi căutarea pentru a găsi ce s-a raportat deja.) Vă mulțumim :)
+
+
+ Închide
+
+
+ Copie cale fișier în clipboard de fiecare dată când o imagine este salvată.
+
+
+ Copie calea în clipboard
+
+
+ Următoarele variabile vor fi înlocuite automat:
+%YYYY% an, 4 cifre
+%MM% luna, 2 cifre
+%DD% ziua, 2 cifre
+%hh% ora, 2 cifre
+%mm% minut, 2cifre
+%ss% secundă, 2 cifre
+%NUM% număr incrementare, 6 cifre
+%title% Titlu Fereastra
+%user% Utilizator Windows
+%domain% Domeniu Windows
+%hostname% Nume PC
+
+Greenshot poate de asemenea crea directoare automat, folosiți simbolul slash (\) pentru a separa directoare și fișiere.
+Exemplu: Textul %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
+va genera un director pentru ziua curentă în locația de stocare standard, ex. 2008-06-29, iar numele fișierului de captură va conține
+timpul curent, ex. 11_58_32 (plus extensia fișierului definită în setări)
+
+
+ Unealta de selecție (ESC)
+
+
+ Salvează ca (afișează dialog)
+
+
+ Salvează direct (folosind setările deja definite)
+
+
+ Deschide director in Windows Explorer
+
+
+ Data/Ora imprimării în partea de jos a paginii
+
+
+ Evidențiază (H)
+
+
+ Încețoșat
+
+
+ Pixelat
+
+
+ Evidențiază zona
+
+
+ Evidențieză text
+
+
+ Gri
+
+
+ Mărește
+
+
+ Mărime pixel
+
+
+ Obfuscare (O)
+
+
+ Rază încețoșare
+
+
+ Luminozitate
+
+
+ Previezualizare calitate
+
+
+ Factor de mărire
+
+
+ Umbră
+
+
+ Umbră
+
+
+ Confirmare
+
+
+ Anulare
+
+
+ Taie (C)
+
+
+ Deschide imaginea din clipboard
+
+
+ O eroare a avut loc în timpul salvării în clipboard.
+
+
+ Nu pot salva fișierul de configurație al aplicației Greenshot. Verificați vă rog permisiile pentru '{0}'.
+
+
+ Imprimantă
+
+
+ Captură
+
+
+ Captează cursor mouse
+
+
+ Deschide imagine din fișier
+
+
+ Fișierul "{0}" nu a putut fi deschis.
+
+
+ Doriți să salvați captura?
+
+
+ Salvați imaginea?
+
+
+ Folosiți metoda interactivă de captură a ferestrei
+
+
+ Captează fereastra chiar dacă e acoperită
+
+
+ Captează conținut doar de către aplicațiile suportate
+
+
+ E-Mail
+
+
+ E-Mail
+
+
+ Încarcă obiecte din fișier
+
+
+ Salvează obiectele în fișier
+
+
+ Milisecunde de așteptat înaintea capturii
+
+
+ Click dreapta aici sau apăsați tasta Print.
+
+
+ Ajutați Greenshot
+
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-ru-RU.xml b/Greenshot/Languages/language-ru-RU.xml
index 91435281b..7506dae8b 100644
--- a/Greenshot/Languages/language-ru-RU.xml
+++ b/Greenshot/Languages/language-ru-RU.xml
@@ -266,6 +266,7 @@ ${hostname} Имя ПК
Регистрация горячих клавиш
Показывать вспышку
Показывать уведомления
+ Показать лупу
Место хранения
Настройки
Шаблон, используемый для создания имён файлов при сохранении скриншотов
@@ -291,4 +292,4 @@ ${hostname} Имя ПК
Использ. цвет по умолчанию
Как отображается
-
\ No newline at end of file
+
diff --git a/Greenshot/Languages/language-sk-SK.xml b/Greenshot/Languages/language-sk-SK.xml
index 8ca58b60c..dad49f07e 100644
--- a/Greenshot/Languages/language-sk-SK.xml
+++ b/Greenshot/Languages/language-sk-SK.xml
@@ -1,280 +1,280 @@
-
-
-
- Prosím oznámte chyby na
- Ak se vám Greenshot páči, uvítame vašu podporu:
- Greenshot je na sourceforge.net
- Ikony z Yusuke Kamiyamane's Fugue icon set (Creative Commons Attribution 3.0 license)
- Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
-Greenshot je ÚPLNE BEZ ZÁRUKY. Toto je FREE software, a môžete ho distribuovať za určitých podmienok.
-Podrobnosti o GNU General Public License:
- O Greenshote
- Greenshot - revolučná screenshot utilita
- Zavrieť
- Ospravedlňujeme sa za neočakávanú chybu.
-
-Dobrá správa je, že nám môžete pomôť zbaviť se jej podaním hlásenia o chybe.
-Prosím, navštívte nižšie uvedenú URL adresu, vytvorte nové hlásenie o chybe a vložte obsah z textovej oblasti do popisu.
-
-Prosím, pridajte zmysluplné zhrnutie a uveďte všetky informácie, které považujete za užitočné pre reprodukciu problému.
-Tiež by sme velmi ocenili, keby ste najskôr skontrolovali, či už neexistuje pre túto chybu tracker. (Môžete použiť vyhľadávanie.) Ďakujeme :)
- Chyba
- Zrušiť
- Neočakávaná chyba pri zápise do schránky.
- Greenshot nemôhol zapísať do schránky - proces {0} zablokoval prístup.
- Device Independend Bitmap (DIB)
- HTML
- HTML with inline images
- PNG
- Alpha
- Použiť
- Modrá
- Zelená
- HTML farba
- Naposledy použité farby
- Červená
- Výber farby
- Priehľadný
- Nemožno uložiť konfiguračný súbor Greenshotu. Prosím skontrolujte prístupové práva k '{0}'.
- O Greenshot
- Zachytiť oblasť
- Otvoriť obrázok zo schránky
- Zachytiť celú obrazovku
- všetko
- dole
- vľavo
- vpravo
- hore
- Zachytiť Internet Explorer
- Zachytiť Internet Explorer zo zoznamu
- Zachytiť predchádzajúcu oblasť
- Zachytiť aktívne okno
- Zachytiť okno zo zoznamu
- Podpora Greenshotu
- Ukončiť
- Nápoveda
- Otvoriť obrázok zo súboru
- Otvoriť posledné miesto uloženia
- Rýchle nastavenia
- Predvoľby...
- Chyba pri exporte do {0}. Prosím skúste to znova.
- Usporiadať
- Hlavička šípky
- Oba
- Koncový bod
- Žiaden
- Začiatočný bod
- Automatické orezanie
- Farba výplne
- Rádius rozmazania
- Tučné
- Orámovať
- Jas
- Zrušiť
- Chyba pri prístupe k schránke. Prosím skúste to znova.
- Zavrieť
- Chcete uložiť snímku?
- Uložiť obrázok?
- Potvrdiť
- Kopírovať obrázok do schránky
- Kopírovať cestu do schránky
- Kopírovať
- Orezať (C)
- Nástroj pre výber (ESC)
- Vystrihnúť
- Zmazať
- Nižšie o jednu úroveň
- Dole na koniec
- Nakresli šípku (A)
- Nakresli elipsu (E)
- Kreslenie voľnou rukou (F)
- Zvýraznenie (H)
- Nakresli čiaru (L)
- Nakresli obdĺžnik (R)
- Pridať textbox (T)
- Duplikuj vybraný prvok
- Upraviť
- Efekty
- E-Mail
- Súbor
- Veľkosť
- Farba čiary
- Stupne šedej
- Zvýrazniť oblasť
- V odtieňoch šedej
- Zväčšiť
- Režim zvýraznenia
- Zvýrazniť text
- Vrhať tieň
- Obrázok uložený do {0}.
- Vložiť okno
- Invertovať
- Kurzíva
- Načítať objekty zo súboru
- Faktor zväčšenia
- Zmenšiť editor podľa veľkosti snímky
- Rozostrenie (O)
- Rozmazať
- Režim rozostrenia
- Pixelizovať
- Objekt
- Otvor adresár v prieskumníku Windows
- Vložiť
- Veľkosť pixelu
- Ukážka kvality
- Tlač
- Znova {0}
- Obnovit veľkosť
- Otočiť proti smeru hodinových ručičiek
- Otočiť v smere hodinových ručičiek
- Uložiť
- Uložiť objekty do súboru
- Uložiť ako...
- Vybrať všetko
- Tlačová úloha odoslaná do '{0}'.
- Tieň
- Tieň
- Obrázek je uložený do schránky.
- Hrúbka čiary
- Greenshot editor obrázkov
- Potrhané okraje
- Naspäť {0}
- Vyššie o jednu úroveň
- Hore na začiatok
- MAPI client
- Outlook with HTML
- Outlook with text
- Chyba
- Greenshot je už spustený.
- Nedá sa uložiť súbor do {0}.
-Skontrolujte prosím možnosť zapisovať do vybraného umiestnenia.
- Súbor "{0}" nemožno otvoriť.
- Nedá sa otvoriť odkaz.
- Nedá sa uložiť snímka, prosím nájdite vhodné umiestnenie.
- Expert
- Vytvoriť 8-bit obrázok ak má snímka menej ako 256 farieb
- Kontrola dostupnosti nestabilných aktualizácií
- Formáty schránky
- Číslo pre ${NUM} v šablóne názvu súboru
- Viem čo robím!
- Šablóna pre tlač päty
- Zníženie nárokov na pamäť za cenu zníženia výkonnosti (neodporúča sa).
- Optimalizácia pre použitie so vzdialenou plochou
- Ak sa dá, znova použi už otvorený editor
- Potlačiť dialóg Uložiť pri zatváraní editoru
- Zobraz miniatúry okien v kontextovom menu (Vista a Windows 7)
- Exportované do: {0}
- Chyba pri exporte do {0}:
- Greenshot nápoveda
- Klávesové skratky
- Prosím, vyberte kvalitu pre váš JPEG obrázok.
- Uložiť ako predvolenú JPEG kvalitu a nepýtať sa znova
- Greenshot JPEG kvalita
- Ok
- Nastala chyba pri pokuse tlačiť.
- Zarovnať na stred
- Zväčšiť na veľkosť papiera
- Zmeniť orientáciu papiera
- Zmenšiť na veľkosť papiera
- Uložiť možnosti ako predvolené a viac sa nepýtať
- Tlačiť s invertovanými farbami
- Vynútiť tlač v odtieňoch šedej
- Tlač dátumu / času v dolnej časti stránky
- Možnosti tlače
- Uložiť ako predvolenú kvalitu a viackrát sa nepýtať
- Greenshot kvalita
- Uložiť priamo (pomocou preferovaného nastavenia výstupného súboru)
- Zobraziť dialóg JPEG kvality vždy, keď je obrázok ukladaný vo formáte JPEG
- Ukázať možnosti tlače vždy pred vytlačením obrázku
- Zobraziť dialóg kvality vždy pri ukladaní obrázku
- Nastavenie aplikácie
- Spustiť Greenshot pri štarte
- Spraviť snímku
- Zachytiť aj kurzor myši
- Interaktívny výber pri snímaní okien
- Interval kontroly dostupnosti aktualizácií v dňoch (0=nekontrolovať)
- Konfigurovať
- Kopírovať cestu k súboru do schránky pri každom ukladaní obrázku.
- Cieľ screenshotu
- Kopírovať do schránky
- Otvoriť v editore obrázkov
- E-Mail
- Uložiť priamo (pomocou nastavení nižšie)
- Uložiť ako (zobraz dialóg)
- Vyberte cieľ dynamicky
- Poslať do tlačiarne
- Editor
- Meno súboru - šablona
- Hlavné
- Snímanie Internet Explorera
- JPEG kavalita
- JPEG nastavenia
- Jazyk
- Následujúce symboly budú automaticky nahradené v definovanej šablóne:
-
-${YYYY} rok, 4 číslice
-${MM} mesiac, 2 číslice
-${DD} deň, 2 číslice
-${hh} hodina, 2 číslice
-${mm} minúta, 2 číslice
-${ss} sekunda, 2 číslice
-${NUM} počítadlo, 6 číslic
-${title} Titul okna
-${user} používateľ Windows
-${domain} doména Windows
-${hostname} meno PC
-
-Môžete tiež vytvárať adresáre Greenshot dynamicky.
-Stačí použiť spätné lomítko (\) na oddelenie podadresárov od názvov súborov.
-
-Príklad: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
-
-bude vytvárať priečinky pre aktuálny deň vo vašom predvolenom úložisku,napr. 2008-06-29,
-názov súboru bude založený na aktuálnom čase, napr. 11-58-32
-(+ je možné ďalšie rozšírenie definície podľa šablóny ako ju doplníme v Nastaveniach)
- Sieť a aktualizácie
- Výstup
- Prehrať zvuk fotoaparátu
- Zásuvné moduly
- Vytvoril
- DLL cesta
- Názov
- Verzia
- Preferované nastavenie výstupného súboru
- Formát obrázku
- Tlačiareň
- Možnosti tlače
- Nastavenia kvality
- Redukcia počtu farieb na max. 256 farieb
- Registrovať klávesové skratky
- Zobraziť záblesk
- Zobraziť upozornenie
- Úložné miesto
- Nastavenia
- Šablona použitá pre generovanie súborov pri ukladaní snímok
- Jazyk uživateľského rozhrania (vyžaduje reštart)
- Obrázok vo formáte použitý ako predvolený
- Definuje, či sú skratky PrnScr, Ctrl + PrnScr, Alt + PrnScr vyhradené pre použitie Greenshot počas behu programu.
- Miesto, kde sú screenshoty uložené vo východzom nastavení (nechajte prázdne pre uloženie do počítača)
- Použiť systémový proxy
- Efekty
- Koľko milisekúnd čakať pred vytvorením snímky
- Režim snímania zaoblených a aero okien
- Snímanie okna
- Tu kliknúť pravým tlačidlom myši alebo stlačte PrtScr.
- K dispozícii je novšia verzia Greenshot! Chcete stiahnuť Greenshot {0}?
- Prosím počkať kým sa nasníma stránka z Internet Explorera...
-
-( Ak vidíte toto hlásenie dlhšie a Internet Explorer je minimalizovaný
- treba ho obnoviť alebo maximalizovať. )
- Varovanie
- Jedna alebo viac klávesových skratiek nemohla byť zapísaná. Proto nemusia fungovať klávesové skratky Greenshot.
-Problém je pravdepodobne v dôsledku blokovania iným nástrojom, ktorý používa rovnaké klávesové skratky.
-Prosím deaktivujte iný software využívajúci PrintScreen tlačidlo. Môžete tiež využiť všetky funkcie Greenshot z kontextového menu tray ikony.
- Použiť vlastnú farbu
- Zachovaj priehľadnosť
- Automaticky
- Použiť predvolenú farbu
- Ako je zobrazené
-
+
+
+
+ Prosím oznámte chyby na
+ Ak se vám Greenshot páči, uvítame vašu podporu:
+ Greenshot je na sourceforge.net
+ Ikony z Yusuke Kamiyamane's Fugue icon set (Creative Commons Attribution 3.0 license)
+ Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
+Greenshot je ÚPLNE BEZ ZÁRUKY. Toto je FREE software, a môžete ho distribuovať za určitých podmienok.
+Podrobnosti o GNU General Public License:
+ O Greenshote
+ Greenshot - revolučná screenshot utilita
+ Zavrieť
+ Ospravedlňujeme sa za neočakávanú chybu.
+
+Dobrá správa je, že nám môžete pomôť zbaviť se jej podaním hlásenia o chybe.
+Prosím, navštívte nižšie uvedenú URL adresu, vytvorte nové hlásenie o chybe a vložte obsah z textovej oblasti do popisu.
+
+Prosím, pridajte zmysluplné zhrnutie a uveďte všetky informácie, které považujete za užitočné pre reprodukciu problému.
+Tiež by sme velmi ocenili, keby ste najskôr skontrolovali, či už neexistuje pre túto chybu tracker. (Môžete použiť vyhľadávanie.) Ďakujeme :)
+ Chyba
+ Zrušiť
+ Neočakávaná chyba pri zápise do schránky.
+ Greenshot nemôhol zapísať do schránky - proces {0} zablokoval prístup.
+ Device Independend Bitmap (DIB)
+ HTML
+ HTML with inline images
+ PNG
+ Alpha
+ Použiť
+ Modrá
+ Zelená
+ HTML farba
+ Naposledy použité farby
+ Červená
+ Výber farby
+ Priehľadný
+ Nemožno uložiť konfiguračný súbor Greenshotu. Prosím skontrolujte prístupové práva k '{0}'.
+ O Greenshot
+ Zachytiť oblasť
+ Otvoriť obrázok zo schránky
+ Zachytiť celú obrazovku
+ všetko
+ dole
+ vľavo
+ vpravo
+ hore
+ Zachytiť Internet Explorer
+ Zachytiť Internet Explorer zo zoznamu
+ Zachytiť predchádzajúcu oblasť
+ Zachytiť aktívne okno
+ Zachytiť okno zo zoznamu
+ Podpora Greenshotu
+ Ukončiť
+ Nápoveda
+ Otvoriť obrázok zo súboru
+ Otvoriť posledné miesto uloženia
+ Rýchle nastavenia
+ Predvoľby...
+ Chyba pri exporte do {0}. Prosím skúste to znova.
+ Usporiadať
+ Hlavička šípky
+ Oba
+ Koncový bod
+ Žiaden
+ Začiatočný bod
+ Automatické orezanie
+ Farba výplne
+ Rádius rozmazania
+ Tučné
+ Orámovať
+ Jas
+ Zrušiť
+ Chyba pri prístupe k schránke. Prosím skúste to znova.
+ Zavrieť
+ Chcete uložiť snímku?
+ Uložiť obrázok?
+ Potvrdiť
+ Kopírovať obrázok do schránky
+ Kopírovať cestu do schránky
+ Kopírovať
+ Orezať (C)
+ Nástroj pre výber (ESC)
+ Vystrihnúť
+ Zmazať
+ Nižšie o jednu úroveň
+ Dole na koniec
+ Nakresli šípku (A)
+ Nakresli elipsu (E)
+ Kreslenie voľnou rukou (F)
+ Zvýraznenie (H)
+ Nakresli čiaru (L)
+ Nakresli obdĺžnik (R)
+ Pridať textbox (T)
+ Duplikuj vybraný prvok
+ Upraviť
+ Efekty
+ E-Mail
+ Súbor
+ Veľkosť
+ Farba čiary
+ Stupne šedej
+ Zvýrazniť oblasť
+ V odtieňoch šedej
+ Zväčšiť
+ Režim zvýraznenia
+ Zvýrazniť text
+ Vrhať tieň
+ Obrázok uložený do {0}.
+ Vložiť okno
+ Invertovať
+ Kurzíva
+ Načítať objekty zo súboru
+ Faktor zväčšenia
+ Zmenšiť editor podľa veľkosti snímky
+ Rozostrenie (O)
+ Rozmazať
+ Režim rozostrenia
+ Pixelizovať
+ Objekt
+ Otvor adresár v prieskumníku Windows
+ Vložiť
+ Veľkosť pixelu
+ Ukážka kvality
+ Tlač
+ Znova {0}
+ Obnovit veľkosť
+ Otočiť proti smeru hodinových ručičiek
+ Otočiť v smere hodinových ručičiek
+ Uložiť
+ Uložiť objekty do súboru
+ Uložiť ako...
+ Vybrať všetko
+ Tlačová úloha odoslaná do '{0}'.
+ Tieň
+ Tieň
+ Obrázek je uložený do schránky.
+ Hrúbka čiary
+ Greenshot editor obrázkov
+ Potrhané okraje
+ Naspäť {0}
+ Vyššie o jednu úroveň
+ Hore na začiatok
+ MAPI client
+ Outlook with HTML
+ Outlook with text
+ Chyba
+ Greenshot je už spustený.
+ Nedá sa uložiť súbor do {0}.
+Skontrolujte prosím možnosť zapisovať do vybraného umiestnenia.
+ Súbor "{0}" nemožno otvoriť.
+ Nedá sa otvoriť odkaz.
+ Nedá sa uložiť snímka, prosím nájdite vhodné umiestnenie.
+ Expert
+ Vytvoriť 8-bit obrázok ak má snímka menej ako 256 farieb
+ Kontrola dostupnosti nestabilných aktualizácií
+ Formáty schránky
+ Číslo pre ${NUM} v šablóne názvu súboru
+ Viem čo robím!
+ Šablóna pre tlač päty
+ Zníženie nárokov na pamäť za cenu zníženia výkonnosti (neodporúča sa).
+ Optimalizácia pre použitie so vzdialenou plochou
+ Ak sa dá, znova použi už otvorený editor
+ Potlačiť dialóg Uložiť pri zatváraní editoru
+ Zobraz miniatúry okien v kontextovom menu (Vista a Windows 7)
+ Exportované do: {0}
+ Chyba pri exporte do {0}:
+ Greenshot nápoveda
+ Klávesové skratky
+ Prosím, vyberte kvalitu pre váš JPEG obrázok.
+ Uložiť ako predvolenú JPEG kvalitu a nepýtať sa znova
+ Greenshot JPEG kvalita
+ Ok
+ Nastala chyba pri pokuse tlačiť.
+ Zarovnať na stred
+ Zväčšiť na veľkosť papiera
+ Zmeniť orientáciu papiera
+ Zmenšiť na veľkosť papiera
+ Uložiť možnosti ako predvolené a viac sa nepýtať
+ Tlačiť s invertovanými farbami
+ Vynútiť tlač v odtieňoch šedej
+ Tlač dátumu / času v dolnej časti stránky
+ Možnosti tlače
+ Uložiť ako predvolenú kvalitu a viackrát sa nepýtať
+ Greenshot kvalita
+ Uložiť priamo (pomocou preferovaného nastavenia výstupného súboru)
+ Zobraziť dialóg JPEG kvality vždy, keď je obrázok ukladaný vo formáte JPEG
+ Ukázať možnosti tlače vždy pred vytlačením obrázku
+ Zobraziť dialóg kvality vždy pri ukladaní obrázku
+ Nastavenie aplikácie
+ Spustiť Greenshot pri štarte
+ Spraviť snímku
+ Zachytiť aj kurzor myši
+ Interaktívny výber pri snímaní okien
+ Interval kontroly dostupnosti aktualizácií v dňoch (0=nekontrolovať)
+ Konfigurovať
+ Kopírovať cestu k súboru do schránky pri každom ukladaní obrázku.
+ Cieľ screenshotu
+ Kopírovať do schránky
+ Otvoriť v editore obrázkov
+ E-Mail
+ Uložiť priamo (pomocou nastavení nižšie)
+ Uložiť ako (zobraz dialóg)
+ Vyberte cieľ dynamicky
+ Poslať do tlačiarne
+ Editor
+ Meno súboru - šablona
+ Hlavné
+ Snímanie Internet Explorera
+ JPEG kavalita
+ JPEG nastavenia
+ Jazyk
+ Následujúce symboly budú automaticky nahradené v definovanej šablóne:
+
+${YYYY} rok, 4 číslice
+${MM} mesiac, 2 číslice
+${DD} deň, 2 číslice
+${hh} hodina, 2 číslice
+${mm} minúta, 2 číslice
+${ss} sekunda, 2 číslice
+${NUM} počítadlo, 6 číslic
+${title} Titul okna
+${user} používateľ Windows
+${domain} doména Windows
+${hostname} meno PC
+
+Môžete tiež vytvárať adresáre Greenshot dynamicky.
+Stačí použiť spätné lomítko (\) na oddelenie podadresárov od názvov súborov.
+
+Príklad: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+
+bude vytvárať priečinky pre aktuálny deň vo vašom predvolenom úložisku,napr. 2008-06-29,
+názov súboru bude založený na aktuálnom čase, napr. 11-58-32
+(+ je možné ďalšie rozšírenie definície podľa šablóny ako ju doplníme v Nastaveniach)
+ Sieť a aktualizácie
+ Výstup
+ Prehrať zvuk fotoaparátu
+ Zásuvné moduly
+ Vytvoril
+ DLL cesta
+ Názov
+ Verzia
+ Preferované nastavenie výstupného súboru
+ Formát obrázku
+ Tlačiareň
+ Možnosti tlače
+ Nastavenia kvality
+ Redukcia počtu farieb na max. 256 farieb
+ Registrovať klávesové skratky
+ Zobraziť záblesk
+ Zobraziť upozornenie
+ Úložné miesto
+ Nastavenia
+ Šablona použitá pre generovanie súborov pri ukladaní snímok
+ Jazyk uživateľského rozhrania (vyžaduje reštart)
+ Obrázok vo formáte použitý ako predvolený
+ Definuje, či sú skratky PrnScr, Ctrl + PrnScr, Alt + PrnScr vyhradené pre použitie Greenshot počas behu programu.
+ Miesto, kde sú screenshoty uložené vo východzom nastavení (nechajte prázdne pre uloženie do počítača)
+ Použiť systémový proxy
+ Efekty
+ Koľko milisekúnd čakať pred vytvorením snímky
+ Režim snímania zaoblených a aero okien
+ Snímanie okna
+ Tu kliknúť pravým tlačidlom myši alebo stlačte PrtScr.
+ K dispozícii je novšia verzia Greenshot! Chcete stiahnuť Greenshot {0}?
+ Prosím počkať kým sa nasníma stránka z Internet Explorera...
+
+( Ak vidíte toto hlásenie dlhšie a Internet Explorer je minimalizovaný
+ treba ho obnoviť alebo maximalizovať. )
+ Varovanie
+ Jedna alebo viac klávesových skratiek nemohla byť zapísaná. Proto nemusia fungovať klávesové skratky Greenshot.
+Problém je pravdepodobne v dôsledku blokovania iným nástrojom, ktorý používa rovnaké klávesové skratky.
+Prosím deaktivujte iný software využívajúci PrintScreen tlačidlo. Môžete tiež využiť všetky funkcie Greenshot z kontextového menu tray ikony.
+ Použiť vlastnú farbu
+ Zachovaj priehľadnosť
+ Automaticky
+ Použiť predvolenú farbu
+ Ako je zobrazené
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-sr-RS.xml b/Greenshot/Languages/language-sr-RS.xml
index da71908db..ded34237a 100644
--- a/Greenshot/Languages/language-sr-RS.xml
+++ b/Greenshot/Languages/language-sr-RS.xml
@@ -1,265 +1,265 @@
-
-
-
- Пријавите грешке на:
- Ако вам се свиђа Гриншот, помозите нам:
- Гриншот покреће Сорсфорџ (sourceforge.net):
- Иконе су преузете из пакета „Fugue“ Јусуке Камијамане (лиценца Кријејтив комонс Ауторство 3.0)
- Ауторска права © 2007–2012 Томас Браун, Џенс Клинџен, Робин Кром
-Гриншот се издаје БЕЗ ИКАКВЕ ГАРАНЦИЈЕ. Он је бесплатан програм, који можете да делите под одређеним условима.
-Више информација о ГНУ-овој општој јавној лиценци:
- О програму
- Гриншот – револуционарни програм за сликање екрана
- Затвори
- Дошло је до неочекиване грешке.
-Добра вест је то да нам можете помоћи да је се решимо тако што ћете попунити извештај о грешци.
-Посетите доленаведену адресу, направите нови извештај о грешци и налепите садржај из текстуалног оквира на опис.
-Молимо вас да додате резиме и приложите било какве податке које сматрате корисним за отклањање грешке.
-Такође вас молимо да проверите да ли већ постоји слична грешка. За то користите претрагу. Хвала вам.
- Грешка
- Откажи
- Дошло је до неочекиване грешке при уписивању у оставу.
- Не могу да пишем у оставу јер је процес {0} забранио приступ.
- Device-Independent Bitmap (DIB)
- HTML
- HTML (са сликама)
- PNG
- Алфа:
- Примени
- Плава:
- Зелена:
- HTML боја
- Недавно коришћене боје
- Црвена:
- Бирач боја
- Провидно
- Не могу да сачувам датотеку са подешавањима. Проверите дозволе за приступ за „{0}“.
- О програму
- Област сликања
- Отвори слику из оставе
- Усликај цео екран
- све
- дно
- лево
- десно
- врх
- Усликај Интернет експлорер
- Усликај Интернет експлорер са списка
- Усликај последњу област
- Усликај прозор
- Усликај прозор са списка
- Подржите нас
- Изађи
- Помоћ
- Отвори слику из датотеке…
- Отвори последње место сликања
- Брзе поставке
- Поставке…
- Грешка при увозу „{0}“. Покушајте поново.
- Распореди
- Врхови стрелице
- Оба
- Крајња тачка
- Ништа
- Почетна тачка
- Аутоматско опсецање
- Пуне боје
- Замагљење радијуса
- Масно
- Ивице
- Осветљеност
- Откажи
- Грешка при приступању остави. Покушајте поново.
- Затвори
- Желите ли да сачувате снимак екрана?
- Чување слике
- Потврди
- Умножи слику
- Умножи путању
- Умножи
- Опсеци (C)
- Алатка за одабир (ESC)
- Исеци
- Обриши
- За један ниже
- Скроз надоле
- Нацртај стрелицу (A)
- Нацртај елипсу (E)
- Слободном руком (F)
- Истицање (H)
- Нацртај линију (L)
- Нацртај правоугаоник (R)
- Додај текст (T)
- Удвостручи изабрано
- Уређивање
- Ефекти
- Е-пошта
- Датотека
- Величина
- Боја линије
- Сиве нијансе
- Истакни област
- Сиве нијансе
- Увећај приказ
- Режим истицања
- Истакни текст
- Исцртај сенку
- Слика је сачувана у {0}.
- Убаци прозор
- Обрни боје
- Курзив
- Учитај објекте из датотеке…
- Фактор увећања
- Поклопи величину слике
- Замагљење (O)
- Замагли
- Режим затамњења
- Пикселизуј
- Објекат
- Отвори фасциклу у Виндоус експлореру
- Убаци
- Величина пиксела
- Преглед квалитета
- Одштампај
- Понови {0}
- Поништи величину
- Окрени улево
- Окрени удесно
- Сачувај
- Сачувај објекте у датотеку…
- Сачувај као…
- Изабери све
- Задужење за штампање је послато у „{0}“.
- Исцртај сенке
- Слика је смештена у оставу.
- Дебљина линије
- Уређивач слика
- Расцепи ивице
- Опозови {0}
- За један више
- Скроз нагоре
- MAPI клијент
- Аутлук са HTML-ом
- Аутлук са текстом
- Грешка
- Гриншот је већ укључен.
- Не могу да сачувам датотеку у {0}.
-Проверите да ли се на изабраном складишту може писати.
- Не могу да отворим датотеку „{0}“.
- Не могу да отворим везу „{0}“.
- Не могу да сачувам снимак екрана. Пронађите погодно место.
- Напредно
- Направи осмобитне слике које имају мање од 256 боја
- Провери нестабилне доградње
- Формати оставе:
- Број за ${NUM} у називима датотека:
- Знам шта радим!
- Подножје за штампу:
- Умањи отисак меморије, науштрб перформансама (не препоручује се)
- Оптимизуј за коришћење с удаљеним рачунарима
- Поново користи уређивач (ако је могуће)
- Потисни прозорче за чување по затварању уређивача
- Умањени прикази у приручном менију (Виста и 7)
- Извезено: {0}
- Дошло је до грешке при извозу у {0}:
- Помоћ
- Пречице
- Изаберите JPEG квалитет за слику.
- У реду
- Дошло је до грешке при штампању.
- Центрирај испис на страници
- Повећај испис тако да стане на папир
- Окрени испис према усмерењу странице
- Смањи испис тако да стане на папир
- Сачувај поставке као подразумеване и не питај поново
- Одштампај с обрнутим бојама
- Наметни штампање у сивим нијансама
- Датум/време штампања на дну странице
- Поставке штампања
- Сачувај као подразумевани квалитет и не питај поново
- Квалитет
- Сачувај директно (уз коришћење поставки излазних датотека)
- Прикажи поставке штампања при сваком штампању
- Прикажи поставке квалитета при сваком штампању
- Подешавања програма
- Покрени програм са системом
- Сликање
- Усликај показивач миша
- Интерактивно сликање прозора
- Период за проверу доградњи у данима (0 – искључено)
- Подеси…
- Умножи путању датотеке при сваком чувању
- Одредиште
- Умножи
- Отвори у уређивачу слика
- Е-пошта
- Сачувај директно (уз коришћење доњих поставки)
- Сачувај као (уз приказивање прозорчета)
- Динамички изабери одредиште
- Пошаљи штампачу
- Уређивач
- Образац за називе:
- Опште
- Сликање Интернет експлорера
- JPEG квалитет
- Језик:
- Следећи чувари места биће аутоматски замењени у наведеном обрасцу:
-${YYYY} година, 4 цифре
-${MM} година, 2 цифре
-${DD} дан, 2 цифре
-${hh} сат, 2 цифре
-${mm} минут, 2 цифре
-${ss} секунд, 2 цифре
-${NUM} увећавајући број, 6 цифара
-${title} наслов прозора
-${user} Виндоусов корисник
-${domain} Виндоусов домен
-${hostname} назив рачунара
-
-Гриншот може и да аутоматски прави фасцикле.
-Користите обрнуту косу црту (\) да раздвојите фасцикле и називе датотека.
-Примерице, образац ${DD}. ${MM}. ${YYYY}\${hh}.${mm}.${ss}
-створиће фасциклу за текући дан у подразумеваном складишту, нпр. 29. 6. 2008., а садржани назив слике биће 11_58_32 (уз екстензију коју сте наместили у подешавањима).
- Мрежа и доградње
- Излаз
- Пусти звук камере
- Прикључци
- Направио
- Путања DLL-а
- Назив
- Верзија
- Поставке излазних датотека
- Формат слике:
- Штампач
- Поставке штампања
- Поставке квалитета
- Смањи износ боја на највише 256
- Додели пречице
- Прикажи батеријску лампу
- Прикажи обавештења
- Место складишта:
- Подешавања
- Образац који се користи за стварање назива датотека при чувању слика.
- Језик корисничког окружења програма.
- Подразумевани формат слике.
- Одређује да ли су пречице Print, Ctrl + Print и Alt + Print заузете за друге програме при покретању Гриншота, па све до његовог искључивања.
- Подразумевано место за снимке екрана (оставите празно ради чувања на радној површини).
- Подразумевани мрежни посредник система
- Ефекти
- — број милисекунди пре сликања
- Режим сликања прозора
- Сликање прозора
- Кликните десни клик или притисните тастер {0}.
- Доступна је нова верзија програма. Желите ли да преузмете Гриншот {0}?
- Сачекајте док се страница у Интернет експлореру не слика…
- Упозорење
- Не могу да доделим пречицу „{0}“. Узрок томе је вероватно други програм који користи исту пречицу.
-
-Све могућности програма још увек раде директно из приручног менија у системској траци.
- користи прилагођену боју
- задржи провидност
- аутоматски
- подразумевана боја
- као што је приказано
-
+
+
+
+ Пријавите грешке на:
+ Ако вам се свиђа Гриншот, помозите нам:
+ Гриншот покреће Сорсфорџ (sourceforge.net):
+ Иконе су преузете из пакета „Fugue“ Јусуке Камијамане (лиценца Кријејтив комонс Ауторство 3.0)
+ Ауторска права © 2007–2012 Томас Браун, Џенс Клинџен, Робин Кром
+Гриншот се издаје БЕЗ ИКАКВЕ ГАРАНЦИЈЕ. Он је бесплатан програм, који можете да делите под одређеним условима.
+Више информација о ГНУ-овој општој јавној лиценци:
+ О програму
+ Гриншот – револуционарни програм за сликање екрана
+ Затвори
+ Дошло је до неочекиване грешке.
+Добра вест је то да нам можете помоћи да је се решимо тако што ћете попунити извештај о грешци.
+Посетите доленаведену адресу, направите нови извештај о грешци и налепите садржај из текстуалног оквира на опис.
+Молимо вас да додате резиме и приложите било какве податке које сматрате корисним за отклањање грешке.
+Такође вас молимо да проверите да ли већ постоји слична грешка. За то користите претрагу. Хвала вам.
+ Грешка
+ Откажи
+ Дошло је до неочекиване грешке при уписивању у оставу.
+ Не могу да пишем у оставу јер је процес {0} забранио приступ.
+ Device-Independent Bitmap (DIB)
+ HTML
+ HTML (са сликама)
+ PNG
+ Алфа:
+ Примени
+ Плава:
+ Зелена:
+ HTML боја
+ Недавно коришћене боје
+ Црвена:
+ Бирач боја
+ Провидно
+ Не могу да сачувам датотеку са подешавањима. Проверите дозволе за приступ за „{0}“.
+ О програму
+ Област сликања
+ Отвори слику из оставе
+ Усликај цео екран
+ све
+ дно
+ лево
+ десно
+ врх
+ Усликај Интернет експлорер
+ Усликај Интернет експлорер са списка
+ Усликај последњу област
+ Усликај прозор
+ Усликај прозор са списка
+ Подржите нас
+ Изађи
+ Помоћ
+ Отвори слику из датотеке…
+ Отвори последње место сликања
+ Брзе поставке
+ Поставке…
+ Грешка при увозу „{0}“. Покушајте поново.
+ Распореди
+ Врхови стрелице
+ Оба
+ Крајња тачка
+ Ништа
+ Почетна тачка
+ Аутоматско опсецање
+ Пуне боје
+ Замагљење радијуса
+ Масно
+ Ивице
+ Осветљеност
+ Откажи
+ Грешка при приступању остави. Покушајте поново.
+ Затвори
+ Желите ли да сачувате снимак екрана?
+ Чување слике
+ Потврди
+ Умножи слику
+ Умножи путању
+ Умножи
+ Опсеци (C)
+ Алатка за одабир (ESC)
+ Исеци
+ Обриши
+ За један ниже
+ Скроз надоле
+ Нацртај стрелицу (A)
+ Нацртај елипсу (E)
+ Слободном руком (F)
+ Истицање (H)
+ Нацртај линију (L)
+ Нацртај правоугаоник (R)
+ Додај текст (T)
+ Удвостручи изабрано
+ Уређивање
+ Ефекти
+ Е-пошта
+ Датотека
+ Величина
+ Боја линије
+ Сиве нијансе
+ Истакни област
+ Сиве нијансе
+ Увећај приказ
+ Режим истицања
+ Истакни текст
+ Исцртај сенку
+ Слика је сачувана у {0}.
+ Убаци прозор
+ Обрни боје
+ Курзив
+ Учитај објекте из датотеке…
+ Фактор увећања
+ Поклопи величину слике
+ Замагљење (O)
+ Замагли
+ Режим затамњења
+ Пикселизуј
+ Објекат
+ Отвори фасциклу у Виндоус експлореру
+ Убаци
+ Величина пиксела
+ Преглед квалитета
+ Одштампај
+ Понови {0}
+ Поништи величину
+ Окрени улево
+ Окрени удесно
+ Сачувај
+ Сачувај објекте у датотеку…
+ Сачувај као…
+ Изабери све
+ Задужење за штампање је послато у „{0}“.
+ Исцртај сенке
+ Слика је смештена у оставу.
+ Дебљина линије
+ Уређивач слика
+ Расцепи ивице
+ Опозови {0}
+ За један више
+ Скроз нагоре
+ MAPI клијент
+ Аутлук са HTML-ом
+ Аутлук са текстом
+ Грешка
+ Гриншот је већ укључен.
+ Не могу да сачувам датотеку у {0}.
+Проверите да ли се на изабраном складишту може писати.
+ Не могу да отворим датотеку „{0}“.
+ Не могу да отворим везу „{0}“.
+ Не могу да сачувам снимак екрана. Пронађите погодно место.
+ Напредно
+ Направи осмобитне слике које имају мање од 256 боја
+ Провери нестабилне доградње
+ Формати оставе:
+ Број за ${NUM} у називима датотека:
+ Знам шта радим!
+ Подножје за штампу:
+ Умањи отисак меморије, науштрб перформансама (не препоручује се)
+ Оптимизуј за коришћење с удаљеним рачунарима
+ Поново користи уређивач (ако је могуће)
+ Потисни прозорче за чување по затварању уређивача
+ Умањени прикази у приручном менију (Виста и 7)
+ Извезено: {0}
+ Дошло је до грешке при извозу у {0}:
+ Помоћ
+ Пречице
+ Изаберите JPEG квалитет за слику.
+ У реду
+ Дошло је до грешке при штампању.
+ Центрирај испис на страници
+ Повећај испис тако да стане на папир
+ Окрени испис према усмерењу странице
+ Смањи испис тако да стане на папир
+ Сачувај поставке као подразумеване и не питај поново
+ Одштампај с обрнутим бојама
+ Наметни штампање у сивим нијансама
+ Датум/време штампања на дну странице
+ Поставке штампања
+ Сачувај као подразумевани квалитет и не питај поново
+ Квалитет
+ Сачувај директно (уз коришћење поставки излазних датотека)
+ Прикажи поставке штампања при сваком штампању
+ Прикажи поставке квалитета при сваком штампању
+ Подешавања програма
+ Покрени програм са системом
+ Сликање
+ Усликај показивач миша
+ Интерактивно сликање прозора
+ Период за проверу доградњи у данима (0 – искључено)
+ Подеси…
+ Умножи путању датотеке при сваком чувању
+ Одредиште
+ Умножи
+ Отвори у уређивачу слика
+ Е-пошта
+ Сачувај директно (уз коришћење доњих поставки)
+ Сачувај као (уз приказивање прозорчета)
+ Динамички изабери одредиште
+ Пошаљи штампачу
+ Уређивач
+ Образац за називе:
+ Опште
+ Сликање Интернет експлорера
+ JPEG квалитет
+ Језик:
+ Следећи чувари места биће аутоматски замењени у наведеном обрасцу:
+${YYYY} година, 4 цифре
+${MM} година, 2 цифре
+${DD} дан, 2 цифре
+${hh} сат, 2 цифре
+${mm} минут, 2 цифре
+${ss} секунд, 2 цифре
+${NUM} увећавајући број, 6 цифара
+${title} наслов прозора
+${user} Виндоусов корисник
+${domain} Виндоусов домен
+${hostname} назив рачунара
+
+Гриншот може и да аутоматски прави фасцикле.
+Користите обрнуту косу црту (\) да раздвојите фасцикле и називе датотека.
+Примерице, образац ${DD}. ${MM}. ${YYYY}\${hh}.${mm}.${ss}
+створиће фасциклу за текући дан у подразумеваном складишту, нпр. 29. 6. 2008., а садржани назив слике биће 11_58_32 (уз екстензију коју сте наместили у подешавањима).
+ Мрежа и доградње
+ Излаз
+ Пусти звук камере
+ Прикључци
+ Направио
+ Путања DLL-а
+ Назив
+ Верзија
+ Поставке излазних датотека
+ Формат слике:
+ Штампач
+ Поставке штампања
+ Поставке квалитета
+ Смањи износ боја на највише 256
+ Додели пречице
+ Прикажи батеријску лампу
+ Прикажи обавештења
+ Место складишта:
+ Подешавања
+ Образац који се користи за стварање назива датотека при чувању слика.
+ Језик корисничког окружења програма.
+ Подразумевани формат слике.
+ Одређује да ли су пречице Print, Ctrl + Print и Alt + Print заузете за друге програме при покретању Гриншота, па све до његовог искључивања.
+ Подразумевано место за снимке екрана (оставите празно ради чувања на радној површини).
+ Подразумевани мрежни посредник система
+ Ефекти
+ — број милисекунди пре сликања
+ Режим сликања прозора
+ Сликање прозора
+ Кликните десни клик или притисните тастер {0}.
+ Доступна је нова верзија програма. Желите ли да преузмете Гриншот {0}?
+ Сачекајте док се страница у Интернет експлореру не слика…
+ Упозорење
+ Не могу да доделим пречицу „{0}“. Узрок томе је вероватно други програм који користи исту пречицу.
+
+Све могућности програма још увек раде директно из приручног менија у системској траци.
+ користи прилагођену боју
+ задржи провидност
+ аутоматски
+ подразумевана боја
+ као што је приказано
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-uk-UA.xml b/Greenshot/Languages/language-uk-UA.xml
index fbfa9d72a..9b8528a6d 100644
--- a/Greenshot/Languages/language-uk-UA.xml
+++ b/Greenshot/Languages/language-uk-UA.xml
@@ -1,293 +1,293 @@
-
-
-
- Про помилки повідомляйте на
- Якщо Вам подобається Greenshot, то можете підтримати нас:
- Greenshot is розташовується на sourceforge.net
- Набір іконок Fugue від Yusuke Kamiyamane (ліцензія Creative Commons Attribution 3.0)
- Авторство © 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
-Greenshot постачається АБСОЛЮТНО БЕЗ ҐАРАНТІЇ. Це вільне програмне забезпечення, Ви можете розповсюджувати його за певних умов.
-Подробиці Загальної Публічної Ліцензії GNU:
- Про Greenshot
- Greenshot – революційна утиліта для отримання знімків екрану
- Закрити
- Вибачте, виникла непередбачувана помилка.
-
-Гарна новина: Ви можете допомогти нам виправити програму, надіславши звіт про помилку.
-Будь ласка, створіть за посиланням новий звіт про помилку та скопіюйте вміст текстової області в опис.
-
-Будь ласка, додайте короткий опис та будь-яку іншу інформацію, що допоможе нам відтворити помилку.
-Також ми будемо вдячні Вам за перевірку наявності цієї помилки на нашому трекері. (Радимо використовувати пошук.) Дякуємо Вам :)
- Помилка
- Скасувати
- При записі в буфер обміну відбулась несподівана помилка.
- Greenshot не зміг записати дані у буфер обміну, доступ до якого заблокований процесом {0}.
- Неможливо знайти зображення у буфері обміну.
- Растрове зображення Windows
- Растрове зображення (DIB)
- HTML
- HTML з вбудованими зображеннями
- PNG
- Альфа
- Застосувати
- Синій
- Зелений
- Колір HTML
- Останні використані кольори
- Червоний
- Вибір кольору
- Прозорий
- Призначення {0} відхилило доступ Greenshot, можливо через відкрите діалогове вікно. Зайкрийте діалогове вікно та спробуйте знову.
- Доступ Greenshot відхилено
- Неможливо зберегти файл налаштувань Greenshot. Будь ласка, перевірте доступ до „{0}“.
- Про Greenshot
- Захоплення області
- Відкрити зображення з буферу обміну
- Захопити весь екран
- все
- знизу
- зліва
- справа
- згори
- Захопити Internet Explorer
- Захопити Internet Explorer зі списку
- Захоплення останньої області
- Захоплення вікна
- Захопити вікно зі списку
- Підтримати Greenshot
- Вихід
- Допомога
- Відкрити зображення з файла
- Відкрити місце збереження останнього знімку
- Швидкі параметри
- Параметри...
- Помилка експорту {0}. Будь ласка, спробуйте ще.
- Знизу
- По центру
- Горизонтальне вирівнювання
- По лівому краю
- По середині
- По правому краю
- Вгорі
- Вертикальне вирівнювання
- Впорядкувати
- Кінці стрілки
- З обох сторін
- Наприкінці
- Немає
- На початку
- Автоматичне обрізання
- Колір заливки
- Радіус розмиття
- Жирний
- Межа
- Яскравість
- Скасувати
- Помилка доступу до буферу обміну. Будь ласка, спробуйте ще.
- Закрити
- Зберегти знімок екрану?
- Зберегти зображення?
- Підтвердити
- Копіювати зображення у буфер обміну
- Копіювати шлях у буфер обміну
- Копіювати
- Обрізати (С)
- Інструмент вибору (Esc)
- Вирізати
- Видалити
- Вниз на один рівень
- На задній план
- Стрілка (Ф)
- Еліпс (У)
- Від руки (А)
- Підсвічування (Р)
- Лінія (Д)
- Прямокутник (К)
- Додати текст (Е)
- Тьмяність тіні
- Зсув тіні
- Параметри тіні
- Товщина тіні
- Дублювати вибраний елемент
- Змінити
- Ефекти
- Ел. пошта
- Файл
- Розмір
- Колір лінії
- Відтінки сірого
- Підсвічення області
- Відтінки сірого
- Збільшення
- Режим підсвічування
- Підсвічення тексту
- Тінь
- Зображення збережено в {0}.
- Вставити вікно
- Інверсія
- Курсив
- Завантажити об’єкти з файла
- Коефіцієнт збільшення
- Відповідає розміру захоплення
- Затемнення (Щ)
- Розмиття
- Режим затемнення
- Пікселізація
- Об’єкт
- Відкрити катлог у Провіднику Windows
- Вставити
- Розмір піксела
- Якість попереднього перегляду
- Роздрукувати
- Повторити {0}
- Скинути розмір
- відсотків
- пікселів
- Оберт проти годинникової стрілки (Ctrl + Б)
- Оберт за годинниковою стрілкою (Ctrl + Ю)
- Зберегти
- Зберегти об’єкти в файл
- Зберегти як...
- Виділити все
- Завдання друку надіслано на „{0}“.
- Тінь
- Зображення надіслано в буфер обміну.
- Товщина лінії
- Редактор зображень Greenshot
- Розірваний край
- Горизонтальна частота зубців
- Параметри розірваного краю
- Розмір зубця
- Вертикальна частота зубців
- Скасувати {0}
- Вгору на один рівень
- На передній план
- Клієнт MAPI
- Outlook з HTML
- Outlook з текстом
- Помилка
- Вже запущено примірник Greenshot.
- Неможливо зберегти файл в {0}.
-Будь ласка, перевірте доступність вибраної теки.
- Неможливо відкрити файл „{0}“.
- Неможливо відкрити посилання „{0}“.
- Неможливо зберегти знімок. Будь ласка, знайдіть відповідне місце.
- Експертні
- Створити 8-бітне зображення, якщо більш ніж 8-бітне має менше 256 кольорів
- Перевірити наявність нестабільних оновлень
- Формати буферу обміну
- Номер для ${NUM} у шаблон назви файла
- Я знаю що я роблю!
- Нижній колонтитул
- Зменшити споживання пам’яті, з погіршенням продуктивності (не рекомендовано).
- Зробити кілька оптимізацій для використання з віддалених стільниць
- За можливості повторно використовувати редактор
- Заборонити діалог збереження при закритті редактора
- Показувати вікно ескізів у контекстному меню (для Vista та Windows 7)
- Експортовано: {0}
- Відбулась помилка під час експорту до {0}:
- Довідка Greenshot
- Гарячі клавіши
- Будь ласка, виберіть JPEG-якість зображення.
- Гаразд
- Під час друку виникла помилка.
- Центрувати на сторінці
- Збільшити до розмірів сторінки
- Повернути відповідно до орієнтації сторінки
- Зменшити до розмірів сторінки
- Параметри кольору
- Зберегти ці параметри і не запитувати знову
- Друк з інвертованими кольорами
- Параметри макета сторінки
- Повноколірний друк
- Примусовий друк у відтінках сірого
- Примусовий чорно-білий друк
- Друкувати дату та час внизу сторінки
- Параметри друку Greenshot
- Зберегти як стандартну якість і не запитувати знову
- Якість Greenshot
- Безпосереднє збереження (з використанням наперед визначених параметрів)
- Показувати вікно параметрів друку при кожному роздрукуванні
- Вікно вибору якості при кожному збереженні зображення
- Параметри програми
- Запускати Greenshot при запуску системи
- Захоплення
- Захоплювати курсор миші
- Використовувати інтерактивний режим захоплення вікна
- Інтервал перевірки оновлення у днях (0=не перевіряти)
- Налаштувати
- Копіювати у буфер обміну шлях до файла при збереженні зображення
- Призначення
- Копіювати у буфер обміну
- Відкрити у редакторі зображень
- Ел. пошта
- Безпосереднє збереження (використовуючи параметри нижче)
- Зберегти як (відображення діалогу)
- Динамічний вибір призначення
- Роздрукувати
- Редактор
- Шаблон назви файла
- Загальні
- Захоплення Internet Explorer
- Якість JPEG
- Мова
- Наступні заповнювачі будуть автоматично замінені у визначеному шаблоні:
-${YYYY} рік, 4 цифри
-${MM} місяць, 2 цифри
-${DD} день, 2 цифри
-${hh} години, 2 цифри
-${mm} хвилини, 2 цифри
-${ss} секунди, 2 цифри
-${NUM} номер, що збільшується, 6 цифр
-${title} заголовок вікна
-${user} ім’я користувача Windows
-${domain} домен Windows
-${hostname} назва комп’ютера
-
-Ви також можете примусити Greenshot створювати динамічні каталоги, просто використовуючи символ похилої риски (\) як роздільник між теками та назвою файла.
-Наприклад, шаблон ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
-створюватиме у стандартній теці теку для поточного дня (наприклад, 2012-01-27), в якій будуть знімки з назвою файла, що базуватиметься на поточному часі (наприклад, 11_58_32) (плюс зазначене у параметрах розширення).
- Мережа та оновлення
- Виведення
- Відтворити звук камери
- Плагіни
- Створений
- Шлях до DLL
- Назва
- Версія
- Параметри кінцевого файла
- Формат зображення
- Принтер
- Параметри друку
- Параметри якості
- Зменшити максимальну кількість кольорів до 256
- Зареєструвати гарячі клавіші
- Показати спалах
- Показувати сповіщення
- Показувати лупу
- Тека для знімків
- Параметри
- Шаблон, що використовується для генерації назв файлів при збереженні знімків
- Мова інтерфейсу користувача
- Стандартний формат зображення
- Визначає резервацію поєднання клавіш Ctrl+PrtScr, Alt+PrtScr та клавіші PrtScr (PrintScreen) для глобального використання у Greenshot після запуску програми і до її закриття.
- Стандартна тека для збереження знімків (залиште порожнім для збереження на стільниці)
- Використовувати стандартний проксі системи
- Ефекти
- Затримка перед захопленням (мс)
- Режим захоплення вікна
- Захоплення вікна
- Притиск правою кнопкою миші або натиснути клавішу {0}.
- Доступна новіша версія Greenshot! Чи хочете Ви завантажити Greenshot {0}?
- Будь ласка, зачекайте поки захоплюється сторінка в Internet Explorer...
- Попередження
- Неможливо зареєструвати гарячі клавіші „{0}“. Можливо, вони вже використовуються іншою програмою! Ви можете змінити гарячі клавіші або вимкнути/змінити програму, що використовує такі ж комбінації клавіш.
-
-Всі функції Greenshot досі працюють безпосередньо з контекстного меню іконки у лотку без застосування гарячих клавіш.
- Використовувати користувацький колір
- Зберігати прозорість
- Автоматично
- Використовувати стандартний колір
- Як відображається
-
-
+
+
+
+ Про помилки повідомляйте на
+ Якщо Вам подобається Greenshot, то можете підтримати нас:
+ Greenshot is розташовується на sourceforge.net
+ Набір іконок Fugue від Yusuke Kamiyamane (ліцензія Creative Commons Attribution 3.0)
+ Авторство © 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
+Greenshot постачається АБСОЛЮТНО БЕЗ ҐАРАНТІЇ. Це вільне програмне забезпечення, Ви можете розповсюджувати його за певних умов.
+Подробиці Загальної Публічної Ліцензії GNU:
+ Про Greenshot
+ Greenshot – революційна утиліта для отримання знімків екрану
+ Закрити
+ Вибачте, виникла непередбачувана помилка.
+
+Гарна новина: Ви можете допомогти нам виправити програму, надіславши звіт про помилку.
+Будь ласка, створіть за посиланням новий звіт про помилку та скопіюйте вміст текстової області в опис.
+
+Будь ласка, додайте короткий опис та будь-яку іншу інформацію, що допоможе нам відтворити помилку.
+Також ми будемо вдячні Вам за перевірку наявності цієї помилки на нашому трекері. (Радимо використовувати пошук.) Дякуємо Вам :)
+ Помилка
+ Скасувати
+ При записі в буфер обміну відбулась несподівана помилка.
+ Greenshot не зміг записати дані у буфер обміну, доступ до якого заблокований процесом {0}.
+ Неможливо знайти зображення у буфері обміну.
+ Растрове зображення Windows
+ Растрове зображення (DIB)
+ HTML
+ HTML з вбудованими зображеннями
+ PNG
+ Альфа
+ Застосувати
+ Синій
+ Зелений
+ Колір HTML
+ Останні використані кольори
+ Червоний
+ Вибір кольору
+ Прозорий
+ Призначення {0} відхилило доступ Greenshot, можливо через відкрите діалогове вікно. Зайкрийте діалогове вікно та спробуйте знову.
+ Доступ Greenshot відхилено
+ Неможливо зберегти файл налаштувань Greenshot. Будь ласка, перевірте доступ до „{0}“.
+ Про Greenshot
+ Захоплення області
+ Відкрити зображення з буферу обміну
+ Захопити весь екран
+ все
+ знизу
+ зліва
+ справа
+ згори
+ Захопити Internet Explorer
+ Захопити Internet Explorer зі списку
+ Захоплення останньої області
+ Захоплення вікна
+ Захопити вікно зі списку
+ Підтримати Greenshot
+ Вихід
+ Допомога
+ Відкрити зображення з файла
+ Відкрити місце збереження останнього знімку
+ Швидкі параметри
+ Параметри...
+ Помилка експорту {0}. Будь ласка, спробуйте ще.
+ Знизу
+ По центру
+ Горизонтальне вирівнювання
+ По лівому краю
+ По середині
+ По правому краю
+ Вгорі
+ Вертикальне вирівнювання
+ Впорядкувати
+ Кінці стрілки
+ З обох сторін
+ Наприкінці
+ Немає
+ На початку
+ Автоматичне обрізання
+ Колір заливки
+ Радіус розмиття
+ Жирний
+ Межа
+ Яскравість
+ Скасувати
+ Помилка доступу до буферу обміну. Будь ласка, спробуйте ще.
+ Закрити
+ Зберегти знімок екрану?
+ Зберегти зображення?
+ Підтвердити
+ Копіювати зображення у буфер обміну
+ Копіювати шлях у буфер обміну
+ Копіювати
+ Обрізати (С)
+ Інструмент вибору (Esc)
+ Вирізати
+ Видалити
+ Вниз на один рівень
+ На задній план
+ Стрілка (Ф)
+ Еліпс (У)
+ Від руки (А)
+ Підсвічування (Р)
+ Лінія (Д)
+ Прямокутник (К)
+ Додати текст (Е)
+ Тьмяність тіні
+ Зсув тіні
+ Параметри тіні
+ Товщина тіні
+ Дублювати вибраний елемент
+ Змінити
+ Ефекти
+ Ел. пошта
+ Файл
+ Розмір
+ Колір лінії
+ Відтінки сірого
+ Підсвічення області
+ Відтінки сірого
+ Збільшення
+ Режим підсвічування
+ Підсвічення тексту
+ Тінь
+ Зображення збережено в {0}.
+ Вставити вікно
+ Інверсія
+ Курсив
+ Завантажити об’єкти з файла
+ Коефіцієнт збільшення
+ Відповідає розміру захоплення
+ Затемнення (Щ)
+ Розмиття
+ Режим затемнення
+ Пікселізація
+ Об’єкт
+ Відкрити катлог у Провіднику Windows
+ Вставити
+ Розмір піксела
+ Якість попереднього перегляду
+ Роздрукувати
+ Повторити {0}
+ Скинути розмір
+ відсотків
+ пікселів
+ Оберт проти годинникової стрілки (Ctrl + Б)
+ Оберт за годинниковою стрілкою (Ctrl + Ю)
+ Зберегти
+ Зберегти об’єкти в файл
+ Зберегти як...
+ Виділити все
+ Завдання друку надіслано на „{0}“.
+ Тінь
+ Зображення надіслано в буфер обміну.
+ Товщина лінії
+ Редактор зображень Greenshot
+ Розірваний край
+ Горизонтальна частота зубців
+ Параметри розірваного краю
+ Розмір зубця
+ Вертикальна частота зубців
+ Скасувати {0}
+ Вгору на один рівень
+ На передній план
+ Клієнт MAPI
+ Outlook з HTML
+ Outlook з текстом
+ Помилка
+ Вже запущено примірник Greenshot.
+ Неможливо зберегти файл в {0}.
+Будь ласка, перевірте доступність вибраної теки.
+ Неможливо відкрити файл „{0}“.
+ Неможливо відкрити посилання „{0}“.
+ Неможливо зберегти знімок. Будь ласка, знайдіть відповідне місце.
+ Експертні
+ Створити 8-бітне зображення, якщо більш ніж 8-бітне має менше 256 кольорів
+ Перевірити наявність нестабільних оновлень
+ Формати буферу обміну
+ Номер для ${NUM} у шаблон назви файла
+ Я знаю що я роблю!
+ Нижній колонтитул
+ Зменшити споживання пам’яті, з погіршенням продуктивності (не рекомендовано).
+ Зробити кілька оптимізацій для використання з віддалених стільниць
+ За можливості повторно використовувати редактор
+ Заборонити діалог збереження при закритті редактора
+ Показувати вікно ескізів у контекстному меню (для Vista та Windows 7)
+ Експортовано: {0}
+ Відбулась помилка під час експорту до {0}:
+ Довідка Greenshot
+ Гарячі клавіши
+ Будь ласка, виберіть JPEG-якість зображення.
+ Гаразд
+ Під час друку виникла помилка.
+ Центрувати на сторінці
+ Збільшити до розмірів сторінки
+ Повернути відповідно до орієнтації сторінки
+ Зменшити до розмірів сторінки
+ Параметри кольору
+ Зберегти ці параметри і не запитувати знову
+ Друк з інвертованими кольорами
+ Параметри макета сторінки
+ Повноколірний друк
+ Примусовий друк у відтінках сірого
+ Примусовий чорно-білий друк
+ Друкувати дату та час внизу сторінки
+ Параметри друку Greenshot
+ Зберегти як стандартну якість і не запитувати знову
+ Якість Greenshot
+ Безпосереднє збереження (з використанням наперед визначених параметрів)
+ Показувати вікно параметрів друку при кожному роздрукуванні
+ Вікно вибору якості при кожному збереженні зображення
+ Параметри програми
+ Запускати Greenshot при запуску системи
+ Захоплення
+ Захоплювати курсор миші
+ Використовувати інтерактивний режим захоплення вікна
+ Інтервал перевірки оновлення у днях (0=не перевіряти)
+ Налаштувати
+ Копіювати у буфер обміну шлях до файла при збереженні зображення
+ Призначення
+ Копіювати у буфер обміну
+ Відкрити у редакторі зображень
+ Ел. пошта
+ Безпосереднє збереження (використовуючи параметри нижче)
+ Зберегти як (відображення діалогу)
+ Динамічний вибір призначення
+ Роздрукувати
+ Редактор
+ Шаблон назви файла
+ Загальні
+ Захоплення Internet Explorer
+ Якість JPEG
+ Мова
+ Наступні заповнювачі будуть автоматично замінені у визначеному шаблоні:
+${YYYY} рік, 4 цифри
+${MM} місяць, 2 цифри
+${DD} день, 2 цифри
+${hh} години, 2 цифри
+${mm} хвилини, 2 цифри
+${ss} секунди, 2 цифри
+${NUM} номер, що збільшується, 6 цифр
+${title} заголовок вікна
+${user} ім’я користувача Windows
+${domain} домен Windows
+${hostname} назва комп’ютера
+
+Ви також можете примусити Greenshot створювати динамічні каталоги, просто використовуючи символ похилої риски (\) як роздільник між теками та назвою файла.
+Наприклад, шаблон ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+створюватиме у стандартній теці теку для поточного дня (наприклад, 2012-01-27), в якій будуть знімки з назвою файла, що базуватиметься на поточному часі (наприклад, 11_58_32) (плюс зазначене у параметрах розширення).
+ Мережа та оновлення
+ Виведення
+ Відтворити звук камери
+ Плагіни
+ Створений
+ Шлях до DLL
+ Назва
+ Версія
+ Параметри кінцевого файла
+ Формат зображення
+ Принтер
+ Параметри друку
+ Параметри якості
+ Зменшити максимальну кількість кольорів до 256
+ Зареєструвати гарячі клавіші
+ Показати спалах
+ Показувати сповіщення
+ Показувати лупу
+ Тека для знімків
+ Параметри
+ Шаблон, що використовується для генерації назв файлів при збереженні знімків
+ Мова інтерфейсу користувача
+ Стандартний формат зображення
+ Визначає резервацію поєднання клавіш Ctrl+PrtScr, Alt+PrtScr та клавіші PrtScr (PrintScreen) для глобального використання у Greenshot після запуску програми і до її закриття.
+ Стандартна тека для збереження знімків (залиште порожнім для збереження на стільниці)
+ Використовувати стандартний проксі системи
+ Ефекти
+ Затримка перед захопленням (мс)
+ Режим захоплення вікна
+ Захоплення вікна
+ Притиск правою кнопкою миші або натиснути клавішу {0}.
+ Доступна новіша версія Greenshot! Чи хочете Ви завантажити Greenshot {0}?
+ Будь ласка, зачекайте поки захоплюється сторінка в Internet Explorer...
+ Попередження
+ Неможливо зареєструвати гарячі клавіші „{0}“. Можливо, вони вже використовуються іншою програмою! Ви можете змінити гарячі клавіші або вимкнути/змінити програму, що використовує такі ж комбінації клавіш.
+
+Всі функції Greenshot досі працюють безпосередньо з контекстного меню іконки у лотку без застосування гарячих клавіш.
+ Використовувати користувацький колір
+ Зберігати прозорість
+ Автоматично
+ Використовувати стандартний колір
+ Як відображається
+
+
diff --git a/Greenshot/Languages/language-vi-VN.xml b/Greenshot/Languages/language-vi-VN.xml
index 1ffecc85c..6611abd16 100644
--- a/Greenshot/Languages/language-vi-VN.xml
+++ b/Greenshot/Languages/language-vi-VN.xml
@@ -1,192 +1,192 @@
-
-
-
- Địa chỉ gửi báo cáo lỗi:
- Hãy ủng hộ nếu bạn thấy Greenshot hữu dụng:
- Greenshot được tài trợ bởi sourceforge.net
- Dùng biểu tượng Fugue (Giấy phép Commons Attribution 3.0 license) :
- Bản quyền (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom
- Greenshot không đi kèm theo đảm bảo nào và được phân phối dưới giấy phép GNU General Public License.
- Giới thiệu Greenshot
- Greenshot - Công cụ chụp màn hình
- Đóng
- Xảy ra lỗi.
- Xin hãy báo cáo lỗi này tới người phát triển để chương trình hoàn thiện hơn.
- Đây là cách bạn đóng góp cho Greenshot cũng như cộng đồng mã mở.
- Lỗi
- Có lỗi khi chép ảnh vào clipboard.
- Greenshot không ghi được vào clipboard vì bị chặn bởi {0}.
- Alpha
- Áp dụng
- Xanh
- Xanh lục
- Màu HTML
- Màu đã chọn
- Đỏ
- Chọn màu
- Trong suốt
- Không lưu được thiết lập Greenshot. Hãy kiểm tra quyền truy cập tới {0}.
- Giới thiêu Greenshot
- Chọn vùng chụp
- Mở ảnh từ clipboard
- Chụp toàn màn hình
- Vùng chụp lần trước
- Chụp cửa sổ
- Hỗ trợ Greenshot
- Thoát
- Trợ giúp
- Mở tệp ảnh
- Thiết lập nhanh
- Thiết lập...
- Bố trí
- Mũi tên có đuôi
- Hai đầu
- Điểm cuối
- không
- Điểm đầu
- Tô đè
- Bán kính blur
- Chữ đậm
- Độ sáng
- Hủy
- Không truy cập được tới clipboard. Hãy thử lại.
- Đóng
- Lưu ảnh chụp?
- Xác nhận lưu ảnh
- Kiểm tra
- Chép ảnh vào clipboard
- Chép đuờng dẫn tới clipboard.
- Chép
- Cắt (C)
- Công cụ chọn (ESC)
- Cắt
- Xóa
- Xuống một tầng sau
- Mặt cuối cùng
- Vẽ mũi tên (A)
- Vẽ hình e-líp (E)
- Tô sáng (H)
- Vẽ đường thẳng (L)
- Vẽ hình chữ nhật (R)
- Chèn văn bản (T)
- Nhân bản phần tử đã chọn
- Biên soạn
- Email
- Tệp
- Cỡ
- Màu dòng kẻ
- Tô sáng vùng
- tô xám
- phóng to
- Chế độ tô sáng
- Tô sáng văn bản
- Cất thành công {0}.
- Chữ nghiêng
- Tải đối tượng từ tệp
- Tỉ lệ phóng đại
- Hiệu ứng blur (O)
- làm nhòe
- blur
- mosaic
- Đối tượng
- Hiển thị thư mục bằng Explorer
- Dán
- Cỡ điểm ảnh
- Chất lượng ảnh xem trước
- In
- Lưu
- Lưu đối tượng vào tệp
- Lưu thành tệp...
- Chọn tất cả
- Đã gửi yêu cầu in'{0}'.
- Đổ bóng
- Đổ bóng
- Đã chép ảnh vào clipboard.
- Độ dày của đường kẻ
- Trình soạn thảo ảnh Greenshot
- Lên mộttầng trước
- Màn hình trước
- Lỗi
- Greenshot đã đang chạy.
- Không thể lưu tệp {0}.
- Hãy kiểm tra quyền viết tới thư mục lưu.
- Không mở được tệp {0}
- Không thể mở liên kết
- Không thể lưu ảnh chụp. Hãy chọn nơi lưu khác.
- Trợ giúp Greenshot
- Hãy đặt chất lượng tệp JPEG
- Lưu thiết lập chất lượng JPEG mặc định và sẽ không hỏi lại.
- Greenshot - Thiết lập chất lượng JPEG
- Lỗi khi in
- Đặt ở giữa trang
- Phóng to vừa khít ảnh
- Quay ảnh theo hướng của trang
- Thu nhỏ ảnh theo cỡ giấy.
- Lưu vào thiết lập mặc định và không hỏi lại.
- In ngày/giờ vào chân trang
- Tùy chọn in Greenshot
- Lưu vào thư mục (dùng đường dẫn mặc định)
- Hiển thị hộp thọat đặt chất lượng ảnh JPEG khi lưu.
- Luôn hiển thị hộp thoại in khi in ảnh.
- Thiết lập chương trình
- Đăng ký Greenshot chạy khởi động Windows.
- Chụp
- Chụp con trỏ (chuột)
- Chụp màn hình ở chế độ không-hỏi
- Khi lưu ảnh, luôn đường dẫn chép ảnh tới clipboard
- Thao tác sau khi chụp màn hình
- Chép vào clipboard
- Mở trình soạn thảo ảnh
- Email
- Lưu mặc định (Sử dụng thiết lập ở dưới)
- Lưu dưới dạng (hiện hộp thoại)
- In
- Dạng tên tệp
- Thông thường
- Chất lượng JPEG
- Thiết lập JPEG
- Ngôn ngữ hiển thị
- Định dạng tên tệp như sau名称のパターンには以下のプレースホルダーが使用できます。
-
- %YYYY% năm, hai chữ số
- %MM% tháng, hai chữ số
- %DD% ngày, hai chữ số
- %hh% giờ, hai chữ số
- %mm% phút, hai chữ số
- %ss% giây, hai chữ số
- %NUM% đánh số, 6 chữ số
- %title% Tên cửa sổ
- %user% Tên người dùng
- %domain% Tên miền Windows
- %hostname% Tên PC
-
- Có thể chỉ định tên thư mục trong mẫu tên tệp.
- Hãy dùng ký tự (\) để ngăn cách.
-
- Ví dụ: %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
- Sẽ tạo thư mục 2011-06-14 và lưu ảnh với tên là thời gian dạng 23-59-59,
- tiếp đó là đuôi tệp.
- Xuất
- Tiếng cửa sập
- Thiết lập mặc định xuất file
- Định dạng ảnh
- Máy in
- Tùy chọn in
- Đăng ký phím tắt
- Dùng hiệu ứng đèn
- Nơi lưu
- Thiết lập
- Dạng tên file khi lưu ảnh
- Ngôn ngữ giao diện (cần khởi động lại Greenshot sau khi thay đổi)
- Định dạng ảnh mặc định
- Greenshot sẽ dùng các phím Prnt, Ctrl + Print, Alt + Prnt từ khi khởi động tới khi kết thúc.
- Vị trí mặc định lưu ảnh chụp màn hình (Để trống nếu lưu vào desktop)
- Hiệu ứng
- Mili giây (thời gian trễ lấy ảnh)
- Nhấp chuột phải, hoặc nhấn phím Print Screen.
- Cảnh cáo
- Có phím tắt đã được đăng ký trùng. Kiểm tra (ví dụ phím Print Screen)
- xem các phần mềm khác có sử dụng các phím tắt của Greenshot hay không.
- Ngoài ra, có thể điều khiển Greenshot bằng cách nhấp chuột phải và biểu tưởng ở phía phải dưới màn hình.
-
+
+
+
+ Địa chỉ gửi báo cáo lỗi:
+ Hãy ủng hộ nếu bạn thấy Greenshot hữu dụng:
+ Greenshot được tài trợ bởi sourceforge.net
+ Dùng biểu tượng Fugue (Giấy phép Commons Attribution 3.0 license) :
+ Bản quyền (C) 2007-2012 Thomas Braun, Jens Klingen, Robin Krom
+ Greenshot không đi kèm theo đảm bảo nào và được phân phối dưới giấy phép GNU General Public License.
+ Giới thiệu Greenshot
+ Greenshot - Công cụ chụp màn hình
+ Đóng
+ Xảy ra lỗi.
+ Xin hãy báo cáo lỗi này tới người phát triển để chương trình hoàn thiện hơn.
+ Đây là cách bạn đóng góp cho Greenshot cũng như cộng đồng mã mở.
+ Lỗi
+ Có lỗi khi chép ảnh vào clipboard.
+ Greenshot không ghi được vào clipboard vì bị chặn bởi {0}.
+ Alpha
+ Áp dụng
+ Xanh
+ Xanh lục
+ Màu HTML
+ Màu đã chọn
+ Đỏ
+ Chọn màu
+ Trong suốt
+ Không lưu được thiết lập Greenshot. Hãy kiểm tra quyền truy cập tới {0}.
+ Giới thiêu Greenshot
+ Chọn vùng chụp
+ Mở ảnh từ clipboard
+ Chụp toàn màn hình
+ Vùng chụp lần trước
+ Chụp cửa sổ
+ Hỗ trợ Greenshot
+ Thoát
+ Trợ giúp
+ Mở tệp ảnh
+ Thiết lập nhanh
+ Thiết lập...
+ Bố trí
+ Mũi tên có đuôi
+ Hai đầu
+ Điểm cuối
+ không
+ Điểm đầu
+ Tô đè
+ Bán kính blur
+ Chữ đậm
+ Độ sáng
+ Hủy
+ Không truy cập được tới clipboard. Hãy thử lại.
+ Đóng
+ Lưu ảnh chụp?
+ Xác nhận lưu ảnh
+ Kiểm tra
+ Chép ảnh vào clipboard
+ Chép đuờng dẫn tới clipboard.
+ Chép
+ Cắt (C)
+ Công cụ chọn (ESC)
+ Cắt
+ Xóa
+ Xuống một tầng sau
+ Mặt cuối cùng
+ Vẽ mũi tên (A)
+ Vẽ hình e-líp (E)
+ Tô sáng (H)
+ Vẽ đường thẳng (L)
+ Vẽ hình chữ nhật (R)
+ Chèn văn bản (T)
+ Nhân bản phần tử đã chọn
+ Biên soạn
+ Email
+ Tệp
+ Cỡ
+ Màu dòng kẻ
+ Tô sáng vùng
+ tô xám
+ phóng to
+ Chế độ tô sáng
+ Tô sáng văn bản
+ Cất thành công {0}.
+ Chữ nghiêng
+ Tải đối tượng từ tệp
+ Tỉ lệ phóng đại
+ Hiệu ứng blur (O)
+ làm nhòe
+ blur
+ mosaic
+ Đối tượng
+ Hiển thị thư mục bằng Explorer
+ Dán
+ Cỡ điểm ảnh
+ Chất lượng ảnh xem trước
+ In
+ Lưu
+ Lưu đối tượng vào tệp
+ Lưu thành tệp...
+ Chọn tất cả
+ Đã gửi yêu cầu in'{0}'.
+ Đổ bóng
+ Đổ bóng
+ Đã chép ảnh vào clipboard.
+ Độ dày của đường kẻ
+ Trình soạn thảo ảnh Greenshot
+ Lên mộttầng trước
+ Màn hình trước
+ Lỗi
+ Greenshot đã đang chạy.
+ Không thể lưu tệp {0}.
+ Hãy kiểm tra quyền viết tới thư mục lưu.
+ Không mở được tệp {0}
+ Không thể mở liên kết
+ Không thể lưu ảnh chụp. Hãy chọn nơi lưu khác.
+ Trợ giúp Greenshot
+ Hãy đặt chất lượng tệp JPEG
+ Lưu thiết lập chất lượng JPEG mặc định và sẽ không hỏi lại.
+ Greenshot - Thiết lập chất lượng JPEG
+ Lỗi khi in
+ Đặt ở giữa trang
+ Phóng to vừa khít ảnh
+ Quay ảnh theo hướng của trang
+ Thu nhỏ ảnh theo cỡ giấy.
+ Lưu vào thiết lập mặc định và không hỏi lại.
+ In ngày/giờ vào chân trang
+ Tùy chọn in Greenshot
+ Lưu vào thư mục (dùng đường dẫn mặc định)
+ Hiển thị hộp thọat đặt chất lượng ảnh JPEG khi lưu.
+ Luôn hiển thị hộp thoại in khi in ảnh.
+ Thiết lập chương trình
+ Đăng ký Greenshot chạy khởi động Windows.
+ Chụp
+ Chụp con trỏ (chuột)
+ Chụp màn hình ở chế độ không-hỏi
+ Khi lưu ảnh, luôn đường dẫn chép ảnh tới clipboard
+ Thao tác sau khi chụp màn hình
+ Chép vào clipboard
+ Mở trình soạn thảo ảnh
+ Email
+ Lưu mặc định (Sử dụng thiết lập ở dưới)
+ Lưu dưới dạng (hiện hộp thoại)
+ In
+ Dạng tên tệp
+ Thông thường
+ Chất lượng JPEG
+ Thiết lập JPEG
+ Ngôn ngữ hiển thị
+ Định dạng tên tệp như sau名称のパターンには以下のプレースホルダーが使用できます。
+
+ %YYYY% năm, hai chữ số
+ %MM% tháng, hai chữ số
+ %DD% ngày, hai chữ số
+ %hh% giờ, hai chữ số
+ %mm% phút, hai chữ số
+ %ss% giây, hai chữ số
+ %NUM% đánh số, 6 chữ số
+ %title% Tên cửa sổ
+ %user% Tên người dùng
+ %domain% Tên miền Windows
+ %hostname% Tên PC
+
+ Có thể chỉ định tên thư mục trong mẫu tên tệp.
+ Hãy dùng ký tự (\) để ngăn cách.
+
+ Ví dụ: %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
+ Sẽ tạo thư mục 2011-06-14 và lưu ảnh với tên là thời gian dạng 23-59-59,
+ tiếp đó là đuôi tệp.
+ Xuất
+ Tiếng cửa sập
+ Thiết lập mặc định xuất file
+ Định dạng ảnh
+ Máy in
+ Tùy chọn in
+ Đăng ký phím tắt
+ Dùng hiệu ứng đèn
+ Nơi lưu
+ Thiết lập
+ Dạng tên file khi lưu ảnh
+ Ngôn ngữ giao diện (cần khởi động lại Greenshot sau khi thay đổi)
+ Định dạng ảnh mặc định
+ Greenshot sẽ dùng các phím Prnt, Ctrl + Print, Alt + Prnt từ khi khởi động tới khi kết thúc.
+ Vị trí mặc định lưu ảnh chụp màn hình (Để trống nếu lưu vào desktop)
+ Hiệu ứng
+ Mili giây (thời gian trễ lấy ảnh)
+ Nhấp chuột phải, hoặc nhấn phím Print Screen.
+ Cảnh cáo
+ Có phím tắt đã được đăng ký trùng. Kiểm tra (ví dụ phím Print Screen)
+ xem các phần mềm khác có sử dụng các phím tắt của Greenshot hay không.
+ Ngoài ra, có thể điều khiển Greenshot bằng cách nhấp chuột phải và biểu tưởng ở phía phải dưới màn hình.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-website-en-US.xml b/Greenshot/Languages/language-website-en-US.xml
index 6cb85ca9f..1eb773f8b 100644
--- a/Greenshot/Languages/language-website-en-US.xml
+++ b/Greenshot/Languages/language-website-en-US.xml
@@ -1,19 +1,19 @@
-
-
-
- Downloads
- Greenshot - a free screenshot tool optimized for productivity
- Greenshot is free and open source
- If you find that Greenshot saves you a lot of time and/or money, you are very welcome to <a href="/support/">support the development</a> of this screenshot software.
- Greenshot was published under <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, i.e. this software can be downloaded and used free of charge, even in a commercial environment.
- Want to see more?
- Of course there is more that Greenshot can do for you. Have a look at some <a title="Screenshots of Greenshot in action" href="/screenshots/">screenshots</a> of Greenshot in action or try the <a title="Download the latest stable version of Greenshot" href="/downloads/">latest release</a>.
- What is Greenshot????
- Quickly create screenshots of a selected region, window or fullscreen; you can even capture complete (scrolling) web pages from Internet Explorer.
- Easily annotate, highlight or obfuscate parts of the screenshot.
- Greenshot is a light-weight screenshot software tool for Windows with the following key features:
- ...and a lot more options simplyfying creation of and work with screenshots every day.
- Export the screenshot in various ways: save to file, send to printer, copy to clipboard, attach to e-mail, send Office programs or upload to photo sites like Flickr or Picasa, and others.
- Being easy to understand and configurable, Greenshot is an efficient tool for project managers, software developers, technical writers, testers and anyone else creating screenshots.
-
+
+
+
+ Downloads
+ Greenshot - a free screenshot tool optimized for productivity
+ Greenshot is free and open source
+ If you find that Greenshot saves you a lot of time and/or money, you are very welcome to <a href="/support/">support the development</a> of this screenshot software.
+ Greenshot was published under <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, i.e. this software can be downloaded and used free of charge, even in a commercial environment.
+ Want to see more?
+ Of course there is more that Greenshot can do for you. Have a look at some <a title="Screenshots of Greenshot in action" href="/screenshots/">screenshots</a> of Greenshot in action or try the <a title="Download the latest stable version of Greenshot" href="/downloads/">latest release</a>.
+ What is Greenshot????
+ Quickly create screenshots of a selected region, window or fullscreen; you can even capture complete (scrolling) web pages from Internet Explorer.
+ Easily annotate, highlight or obfuscate parts of the screenshot.
+ Greenshot is a light-weight screenshot software tool for Windows with the following key features:
+ ...and a lot more options simplyfying creation of and work with screenshots every day.
+ Export the screenshot in various ways: save to file, send to printer, copy to clipboard, attach to e-mail, send Office programs or upload to photo sites like Flickr or Picasa, and others.
+ Being easy to understand and configurable, Greenshot is an efficient tool for project managers, software developers, technical writers, testers and anyone else creating screenshots.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-website-es-ES.xml b/Greenshot/Languages/language-website-es-ES.xml
index e2f1380cc..f50a92a1f 100644
--- a/Greenshot/Languages/language-website-es-ES.xml
+++ b/Greenshot/Languages/language-website-es-ES.xml
@@ -1,19 +1,19 @@
-
-
-
- Descargas
- Greenshot - herramienta libre de captura de pantalla, optimizada para una mayor productividad
- Greenshot es código libre y abierto
- Si Greenshot te ahorra tiempo y/o dinero, puedes <a href="/support/">apoyar el desarrollo</a> de esta aplicación de captura de pantallas.
- Greenshot se publica bajo licencia <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>. Esta aplicación se puede descargar y utilizar de forma gratuita, incluso en un entorno comercial.
- ¿Quieres ver más?
- Por supuesto hay mucho más que Greenshot puede hacer. Echa un vistazo a algunas <a href="/screenshots/">capturas de pantalla</a> de Greenshot en acción o prueba la <a href="/downloads/">última versión</a>.
- ¿Qué es Greenshot?
- Creación rápida de capturas de una región seleccionado, una ventana o toda la pantalla; se puede incluso capturar (desplazando) páginas completas de Internet Explorer.
- Anotación, resalte y ocultación de partes de la captura de pantalla fácilmente.
- Greenshot es una herramienta ligera de captura de pantalla para Windows con las características esenciales:
- ... y muchas más opciones para simplificar el día a día en la creación y el trabajo con capturas de pantalla.
- Exportar la captura de pantalla de diversas maneras: guardar en archivo, imprimir, copiar al portapapeles, adjuntar a un correo electrónico, enviar a programa de Office o subir a sitios de fotos como Flickr o Picasa, entre otros.
- Al ser fácil de entender y configurar, Greenshot es una herramienta eficaz para gestores de proyecto, desarrolladores de software, escritores técnicos, evaluadores y cualquier persona que necesite capturas de pantalla.
-
+
+
+
+ Descargas
+ Greenshot - herramienta libre de captura de pantalla, optimizada para una mayor productividad
+ Greenshot es código libre y abierto
+ Si Greenshot te ahorra tiempo y/o dinero, puedes <a href="/support/">apoyar el desarrollo</a> de esta aplicación de captura de pantallas.
+ Greenshot se publica bajo licencia <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>. Esta aplicación se puede descargar y utilizar de forma gratuita, incluso en un entorno comercial.
+ ¿Quieres ver más?
+ Por supuesto hay mucho más que Greenshot puede hacer. Echa un vistazo a algunas <a href="/screenshots/">capturas de pantalla</a> de Greenshot en acción o prueba la <a href="/downloads/">última versión</a>.
+ ¿Qué es Greenshot?
+ Creación rápida de capturas de una región seleccionado, una ventana o toda la pantalla; se puede incluso capturar (desplazando) páginas completas de Internet Explorer.
+ Anotación, resalte y ocultación de partes de la captura de pantalla fácilmente.
+ Greenshot es una herramienta ligera de captura de pantalla para Windows con las características esenciales:
+ ... y muchas más opciones para simplificar el día a día en la creación y el trabajo con capturas de pantalla.
+ Exportar la captura de pantalla de diversas maneras: guardar en archivo, imprimir, copiar al portapapeles, adjuntar a un correo electrónico, enviar a programa de Office o subir a sitios de fotos como Flickr o Picasa, entre otros.
+ Al ser fácil de entender y configurar, Greenshot es una herramienta eficaz para gestores de proyecto, desarrolladores de software, escritores técnicos, evaluadores y cualquier persona que necesite capturas de pantalla.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-website-fr-FR.xml b/Greenshot/Languages/language-website-fr-FR.xml
index 54943cced..2da7d16f5 100644
--- a/Greenshot/Languages/language-website-fr-FR.xml
+++ b/Greenshot/Languages/language-website-fr-FR.xml
@@ -1,19 +1,19 @@
-
-
-
- Téléchargement
- Greenshot - Un outil de capture d’écran gratuit pour une productivité optimale
- Greenshot est gratuit et «Open Source».
- Si vous trouvez que Greenshot vous permet de faire des économies de temps et d’argent, vous êtes les bienvenus si vous nous apportez <a href="/support/">votre support dans le développement</a> de ce logiciel de capture d’écran.
- Greenshot a été publié sous <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, à savoir que ce logiciel peut être utilisé gratuitement, même dans un environnement commercial.
- Voulez-vous en savoir plus?
- Bien entendu Greenshot peut en faire beaucoup plus pour vous. Prenez la peine de regarder quelques <a href="/screenshots/">captures d’écran</a> de Greenshot en action ou essayer <a title="Download the latest stable version of Greenshot" href="/downloads/">la dernière mise à niveau</a>.
- Qu’est ce que Greenshot?
- Créer rapidement des captures d'une zone, d'une fenêtre ou d’un écran complet ; Il est même possible de capturer des pages web complètes (défilement) dans Internet Explorer.
- Annoter, surligner, assombrir ou brouiller facilement des parties de la capture.
- Greenshot est un logiciel de capture d’écran léger pour Windows avec les fonctionnalités majeures suivantes:
- ...et bien d'autres options qui permettent de simplifier le travail de création ou de gestion journaliers des captures d’écran.
- Exporter la capture de multiples façons: sauvegarde vers un fichier, impression, copie dans le presse-papier, joindre à un courriel, envoi vers des programmes Office ou envoi vers des sites de photos comme Flickr ou Picasa, et d’autres encore.
- Simple et facile à configurer, Greenshot est un outil efficace pour des responsables de projet, développeurs de logiciel, Concepteurs de manuels techniques, testeurs ou autres personnes créant des captures d’écran.
-
+
+
+
+ Téléchargement
+ Greenshot - Un outil de capture d’écran gratuit pour une productivité optimale
+ Greenshot est gratuit et «Open Source».
+ Si vous trouvez que Greenshot vous permet de faire des économies de temps et d’argent, vous êtes les bienvenus si vous nous apportez <a href="/support/">votre support dans le développement</a> de ce logiciel de capture d’écran.
+ Greenshot a été publié sous <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, à savoir que ce logiciel peut être utilisé gratuitement, même dans un environnement commercial.
+ Voulez-vous en savoir plus?
+ Bien entendu Greenshot peut en faire beaucoup plus pour vous. Prenez la peine de regarder quelques <a href="/screenshots/">captures d’écran</a> de Greenshot en action ou essayer <a title="Download the latest stable version of Greenshot" href="/downloads/">la dernière mise à niveau</a>.
+ Qu’est ce que Greenshot?
+ Créer rapidement des captures d'une zone, d'une fenêtre ou d’un écran complet ; Il est même possible de capturer des pages web complètes (défilement) dans Internet Explorer.
+ Annoter, surligner, assombrir ou brouiller facilement des parties de la capture.
+ Greenshot est un logiciel de capture d’écran léger pour Windows avec les fonctionnalités majeures suivantes:
+ ...et bien d'autres options qui permettent de simplifier le travail de création ou de gestion journaliers des captures d’écran.
+ Exporter la capture de multiples façons: sauvegarde vers un fichier, impression, copie dans le presse-papier, joindre à un courriel, envoi vers des programmes Office ou envoi vers des sites de photos comme Flickr ou Picasa, et d’autres encore.
+ Simple et facile à configurer, Greenshot est un outil efficace pour des responsables de projet, développeurs de logiciel, Concepteurs de manuels techniques, testeurs ou autres personnes créant des captures d’écran.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-website-it-IT.xml b/Greenshot/Languages/language-website-it-IT.xml
index 31f1b1dfb..4db0441b5 100644
--- a/Greenshot/Languages/language-website-it-IT.xml
+++ b/Greenshot/Languages/language-website-it-IT.xml
@@ -1,19 +1,19 @@
-
-
-
- Download
- Greenshot - strumento di cattura gratis ottimizzato per la produttività
- Greenshot è gratuito e open source
- Se si scopre che Greenshot risparmiare un sacco di tempo e / o denaro, è possibile <a href="/support/">sostenere lo sviluppo</a> di questa strumento di cattura.
- Greenshot è pubblicato sotto licenza <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>. Questo software può essere scaricato e utilizzato gratuitamente, anche in un ambiente commerciale.
- Vuoi saperne di più?
- Naturalmente c'è molto di più che si può fare per Greenshot. Check out alcuni <a href="/screenshots/">screenshot</a> di Greenshot in azione o provare la versione <a href="/downloads/">più recente</a>.
- Greenshot - Che cosa è questo?
- Rapidamente rendere le immagini di uno schermo selezionata regione, finestra o completo schermo. È possibile anche catturare le pagine web da Internet Explorer completi (scorrimento).
- Annotare, evidenziare o nascondere parti di screenshot è facilmente.
- Greenshot è uno strumento di cattura schermo per Windows con leggeri caratteristiche essenziali:
- ... e molte altre opzioni per creare e lavorare con le immagini ogni giorno.
- Esportazione screenshot in vari modi: salvare in un file, stampa, copia negli appunti, attaccare a un messaggio, inviare ai programmi di Office o caricare su siti di foto come Flickr e Picasa, tra gli altri.
- Essere facile da capire e configurare, Greenshot è uno strumento efficace per i project manager, sviluppatori di software, redattori tecnici, collaudatori e chiunque altro la creazione di screenshot.
-
+
+
+
+ Download
+ Greenshot - strumento di cattura gratis ottimizzato per la produttività
+ Greenshot è gratuito e open source
+ Se si scopre che Greenshot risparmiare un sacco di tempo e / o denaro, è possibile <a href="/support/">sostenere lo sviluppo</a> di questa strumento di cattura.
+ Greenshot è pubblicato sotto licenza <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>. Questo software può essere scaricato e utilizzato gratuitamente, anche in un ambiente commerciale.
+ Vuoi saperne di più?
+ Naturalmente c'è molto di più che si può fare per Greenshot. Check out alcuni <a href="/screenshots/">screenshot</a> di Greenshot in azione o provare la versione <a href="/downloads/">più recente</a>.
+ Greenshot - Che cosa è questo?
+ Rapidamente rendere le immagini di uno schermo selezionata regione, finestra o completo schermo. È possibile anche catturare le pagine web da Internet Explorer completi (scorrimento).
+ Annotare, evidenziare o nascondere parti di screenshot è facilmente.
+ Greenshot è uno strumento di cattura schermo per Windows con leggeri caratteristiche essenziali:
+ ... e molte altre opzioni per creare e lavorare con le immagini ogni giorno.
+ Esportazione screenshot in vari modi: salvare in un file, stampa, copia negli appunti, attaccare a un messaggio, inviare ai programmi di Office o caricare su siti di foto come Flickr e Picasa, tra gli altri.
+ Essere facile da capire e configurare, Greenshot è uno strumento efficace per i project manager, sviluppatori di software, redattori tecnici, collaudatori e chiunque altro la creazione di screenshot.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-website-uk-UA.xml b/Greenshot/Languages/language-website-uk-UA.xml
index e8ec70767..c710c0eb7 100644
--- a/Greenshot/Languages/language-website-uk-UA.xml
+++ b/Greenshot/Languages/language-website-uk-UA.xml
@@ -1,19 +1,19 @@
-
-
-
- Завантаження
- Greenshot — безкоштовний інструмент для створення знімків екрану, оптимізований для покращення продуктивності
- Greenshot безкоштовний і з відкритим кодом
- Якщо Вам здається, що Greenshot зберігає чимало Вашого часу та/або грошей, Ви можете <a href="/support/">підтримати розробку</a> цього програмного забезпечення для створення знімків екрану.
- Greenshot розповсюджується відповідно до <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, тобто це програмне забезпечення можна вільно завантажувати та використовувати навіть з комерційною метою.
- Хочете побачити більше?
- Звісно, Greenshot може зробити для Вас набагато більше. Подивіться кілька <a href="/screenshots/">знімків</a> Greenshot у дії та спробуйте <a href="/downloads/">останній реліз</a>.
- Що таке Greenshot?
- Швидке створення знімків вибраної області, вікна або всього екрану; Ви навіть можете захоплювати всю (з прокручуванням) Інтернет-сторінку в Internet Explorer.
- Легке коментування, підсвічування або виділення частин знімку.
- Greenshot — це невеличка програма для створення знімків екрану для Windows з такими основними можливостями:
- ...та чимало інших можливостей, що спрощують свторення та обробку знімків.
- Кілька варіантів експорту знімків: збереження в файл, друк, копіювання в буфер обміну, долучення до електронного листа, надсилання до офісних програм або вивантаження на фото-хостинги штибу Flickr або Picasa тощо.
- Будучи зручним в налаштуванні та розумінні, Greenshot є ефективним інструментом для менеджерів проектів, розробників програмного забезепечення, технарів-письменників, тестерів та будь-кого іншого, кому потрібно створювати знімки.
-
+
+
+
+ Завантаження
+ Greenshot — безкоштовний інструмент для створення знімків екрану, оптимізований для покращення продуктивності
+ Greenshot безкоштовний і з відкритим кодом
+ Якщо Вам здається, що Greenshot зберігає чимало Вашого часу та/або грошей, Ви можете <a href="/support/">підтримати розробку</a> цього програмного забезпечення для створення знімків екрану.
+ Greenshot розповсюджується відповідно до <a href="http://uk.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, тобто це програмне забезпечення можна вільно завантажувати та використовувати навіть з комерційною метою.
+ Хочете побачити більше?
+ Звісно, Greenshot може зробити для Вас набагато більше. Подивіться кілька <a title="Знімки Greenshot у дії" href="/screenshots/">знімків</a> Greenshot у дії та спробуйте <a title="Завантажити найновішу стабільну версію Greenshot" href="/downloads/">останній реліз</a>.
+ Що таке Greenshot???
+ Швидке створення знімків вибраної області, вікна або всього екрану; Ви навіть можете захоплювати всю (з прокручуванням) Інтернет-сторінку в Internet Explorer.
+ Легке коментування, підсвічування або виділення частин знімку.
+ Greenshot — це невеличка програма для створення знімків екрану для Windows з такими основними можливостями:
+ ...та чимало інших можливостей, що спрощують свторення та обробку знімків.
+ Кілька варіантів експорту знімків: збереження в файл, друк, копіювання в буфер обміну, долучення до електронного листа, надсилання до офісних програм або вивантаження на фото-хостинги штибу Flickr або Picasa тощо.
+ Будучи зручним в налаштуванні та розумінні, Greenshot є ефективним інструментом для менеджерів проектів, розробників програмного забезепечення, технарів-письменників, тестерів та будь-кого іншого, кому потрібно створювати знімки.
+
\ No newline at end of file
diff --git a/Greenshot/Languages/language-zh-TW.xml b/Greenshot/Languages/language-zh-TW.xml
index 2647e167e..18fa1b69b 100644
--- a/Greenshot/Languages/language-zh-TW.xml
+++ b/Greenshot/Languages/language-zh-TW.xml
@@ -1,22 +1,22 @@
-
+
- 如果發現任何錯誤, 請回報到以下網址
+ 請回報錯誤到以下網址
如果您喜歡 Greenshot,歡迎您支持我們:
Greenshot 的主機在 sourceforge.net 網址是
- 圖片來源: Yusuke Kamiyamane's Fugue icon set (Creative Commons Attribution 3.0 授權)
+ 圖片來源: Yusuke Kamiyamane's Fugue 圖示集 (Creative Commons Attribution 3.0 授權)
Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
-Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您可以在 GNU 通用公共授權下任意散佈本軟體。
-關於 GNU 通用公共授權詳細資料:
+Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體,您可以在 GNU General Public License 下任意散佈本軟體。
+關於GNU General Public License 詳細資料:
關於 Greenshot
- Greenshot - 革命性的截圖工具
+ Greenshot - 革命性的螢幕截圖工具
關閉
很抱歉,發生未預期錯誤。
您可以藉由填寫錯誤回報來協助我們修正錯誤。
-請點擊以下的連結, 新增一個錯誤報告並將下面文字方塊中的資訊貼到報告的內容中,並請稍微敘述錯誤發生時的情況。
+請訪問以下的連結,新增一個錯誤報告並將下方文字方塊中的資訊貼到報告的內容中,並請稍微敘述錯誤發生時的情況。
-另外, 我們強烈建議您在站內搜尋一下是否已經有人回報此錯誤。
+另外,我們強烈建議您在站內搜尋一下是否已經有人回報此錯誤。
感謝您 :)
錯誤
取消
@@ -39,10 +39,10 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
透明
目的地 {0} 拒絕 Greenshot 存取,可能已開啟對話方塊。 關閉對話方塊並重試。
拒絕 Greenshot 存取
- 無法儲存 Greenshot 的組態檔,請檢查 '{0}' 的存取權限。
+ 無法儲存 Greenshot 的組態檔,請檢查「{0}」的存取權限。
關於 Greenshot
擷取區域
- 從剪貼簿載入圖片
+ 從剪貼簿開啟圖片
擷取全螢幕
全部
下
@@ -59,9 +59,9 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
說明
從檔案開啟圖片
開啟上次擷取位置
- 快速設定
+ 快速喜好設定
喜好設定...
- 匯出到 {0} 時錯誤。 請重試。
+ 匯出到 {0} 時錯誤,請重試。
靠下
垂直置中
水平對齊
@@ -77,7 +77,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
無
起點
自動裁剪
- 填滿顏色
+ 填色
模糊半徑
粗體
框線
@@ -91,7 +91,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
複製圖片到剪貼簿
複製路徑到剪貼簿
複製
- 裁切 (C)
+ 裁剪 (C)
選取工具 (ESC)
剪下
刪除
@@ -100,12 +100,12 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
繪製箭頭 (A)
繪製橢圓 (E)
自由繪製 (F)
- 醒目標示 (H)
+ 標示 (H)
繪製直線 (L)
繪製矩形 (R)
- 加入文字 (T)
+ 加入文字方塊 (T)
陰影黑暗
- 陰影位移
+ 陰影偏移
陰影設定
陰影厚度
複製選取的元素
@@ -114,7 +114,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
電子郵件
檔案
大小
- 線段色彩
+ 直線色彩
灰階
標示區域
灰階
@@ -139,39 +139,39 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
像素大小
預覽品質
列印
- 復原 {0}
+ 重做 {0}
重設大小
百分比
像素
- 逆時針旋轉
- 順時針旋轉
+ 逆時針旋轉 (Ctrl + ,)
+ 順時針旋轉 (Ctrl + .)
儲存
儲存物件到檔案
另存新檔...
全選
- 已使用 '{0}' 來進行列印工作。
+ 列印工作已傳送到「{0}」。
陰影
- 圖片已儲存到剪貼簿.
- 線段粗細
+ 圖片已儲存到剪貼簿。
+ 直線粗細
Greenshot 圖片編輯器
撕裂邊緣
- 水平撕裂範圍
+ 水平鋸齒範圍
撕裂邊緣設定
- 撕裂大小
- 垂直撕裂範圍
+ 鋸齒大小
+ 垂直鋸齒範圍
復原 {0}
上移一層
移到最上層
MAPI 用戶端
- 使用 HTML 的 Outlook
- 使用文字的 Outlook
+ Outlook 使用 HTML
+ Outlook 使用文字
錯誤
Greenshot 已經在執行。
無法儲存檔案到 {0}。
請檢查選取的存放位置可以寫入。
- 無法開啟檔案 "{0}"。
- 無法開啟連結 '{0}'。
- 無法儲存螢幕擷取,請尋找適合的位置。
+ 無法開啟檔案「{0}」。
+ 無法開啟連結「{0}」。
+ 無法儲存螢幕擷圖,請尋找適合的位置。
專家
在 > 8 位元圖像時,如果色彩小於 256 則建立 8 位元圖像
檢查 Beta 版更新
@@ -179,70 +179,74 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
檔案名稱樣式中 ${NUM} 的數字
我明白我所做的動作!
印表機頁尾樣式
- 最小化記憶體頁尾列印,但降低效能 (不建議)。
+ 最小化記憶體佔用空間,但降低效能 (不建議)。
進行使用遠端桌面的一些最佳化
盡可能重複使用編輯器
關閉編輯器時略過儲存對話方塊
- 在內容功能表顯示視窗縮圖 (針對 Vista 和 windows 7)
+ 在內容功能表顯示視窗縮圖 (針對 Vista 和 Windows 7)
匯出到: {0}
匯出到 {0} 時發生錯誤:
Greenshot 說明
熱鍵
- 請選擇您想要的 JPEG 圖片品質。
+ 請選擇圖片的 JPEG品質。
確定
嘗試列印時發生錯誤。
列印在紙張的正中央
- 放大輸出以符合紙張大小
- 旋轉圖片
- 縮小輸出以符合紙張大小
+ 放大列印輸出以符合紙張大小
+ 旋轉列印輸出為頁面方向
+ 縮小列印輸出以符合紙張大小
+ 色彩設定
儲存選項為預設值並不再詢問
反向色彩列印
+ 頁面配置設定
+ 全彩列印
強制灰階列印
+ 強制黑白列印
在頁尾列印日期 / 時間
Greenshot 列印選項
儲存為預設品質並不再詢問
Greenshot 品質
- 直接儲存 (使用慣用的檔案輸出設定)
+ 直接儲存 (使用慣用的輸出檔案設定)
每次列印圖片時顯示列印選項對話方塊
每次儲存圖片時顯示品質對話方塊
應用程式設定
- 開機自動執行 Greenshot
+ 開機啟動 Greenshot
擷取
擷取滑鼠指標
使用互動式視窗擷取模式
- 檢查更新間隔天數 (0=不檢查)
+ 檢查更新間隔天數 (0 = 不檢查)
組態
每次儲存圖片時都將路徑複製到剪貼簿
目的地
複製到剪貼簿
- 用圖片編輯器開啟
+ 在圖片編輯器開啟
電子郵件
直接儲存 (使用以下設定)
另存新檔 (顯示對話方塊)
動態選取目的地
傳送到印表機
編輯器
- 檔名格式
+ 檔案名稱樣式
一般
Internet Explorer 擷取
JPEG 品質
語言
- 您可以使用以下的格式來指定檔名, 兩個%括起來的地方會被取代為日期、時間等:
-${YYYY} 年, 4個數字
-${MM} 月, 2個數字
-${DD} 日, 2個數字
-${hh} 時, 2個數字
-${mm} 分, 2個數字
-${ss} 秒, 2個數字
-${NUM} 自動編號, 6個數字
-${title} 抓取視窗的標題
+ 在樣式定義中以下預留位置將自動取代:
+${YYYY} 年,4 位數字
+${MM} 月,2 位數字
+${DD} 日,2 位數字
+${hh} 時,2 位數字
+${mm} 分,2 位數字
+${ss} 秒,2 位數字
+${NUM} 自動編號,6 位數字
+${title} 視窗標題
${user} Windows 使用者名稱
-${domain} Windows 網域名稱
+${domain} Windows 網域名稱
${hostname} 電腦名稱
-您也可以讓 Greenshot 自動產生資料夾, 只要用把右斜線( \ )放在資料夾名稱和檔名的中間就可以了
-例: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
-這樣寫的話, Greenshot 會在預設儲存路徑下建立一個以今天日期為名稱的資料夾(如 2008-06-29), 然後在這個資料夾下儲存圖片檔, 檔名為目前的時間(如 11-58-32)再加上圖片的副檔名
+您也可以讓 Greenshot 動態建立資料夾,只要使用右斜線 ( \ ) 分隔資料夾和檔案名稱。
+例如: 樣式 ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
+將在預設存放位置產生目前日期的資料夾,例如: 2013-05-01,包含螢幕截圖的檔案名稱將根據目前時間,例如: 11_58_32 (再加上設定中定義的附檔名)
網路和更新
輸出
播放快門聲
@@ -256,7 +260,7 @@ ${hostname} 電腦名稱
印表機
列印設定
品質設定
- 降低色彩數為最大的 256
+ 降低色彩數為最大的 256 色
註冊熱鍵
顯示閃光
顯示通知
@@ -272,11 +276,12 @@ ${hostname} 電腦名稱
擷取之前等待的時間 (毫秒)
視窗擷取模式
視窗擷取
+ 顯示放大鏡
右鍵按一下這裡或是按下 {0} 鍵。
Greenshot 的新版本可以使用! 您要下載 Greenshot {0} 嗎?
擷取 Internet Explorer 中頁面時請稍候...
警告
- 無法註冊熱鍵 "{0}"。 這個問題可能是另一個工具要求使用相同的熱鍵。 您可以變更熱鍵設定或停用/變更軟體使用熱鍵。
+ 無法註冊熱鍵「{0}」。 這個問題可能是另一個工具要求使用相同的熱鍵。 您可以變更熱鍵設定或停用/變更軟體使用熱鍵。
Greenshot 所有功能仍然可以直接從通知區圖示的內容功能表動作而不需熱鍵。
使用自訂色彩
diff --git a/Greenshot/Languages/plugin-translations-readme.txt b/Greenshot/Languages/plugin-translations-readme.txt
index c6b3bb2f0..1864a9965 100644
--- a/Greenshot/Languages/plugin-translations-readme.txt
+++ b/Greenshot/Languages/plugin-translations-readme.txt
@@ -1,10 +1,10 @@
-Looking for language files for translatabe plugins?
-Please refer to these:
-
- * http://greenshot.svn.sourceforge.net/svnroot/greenshot/trunk/GreenshotConfluencePlugin/Languages/
- * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/GreenshotImgurPlugin/Languages/
- * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/GreenshotJiraPlugin/Languages/
- * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/Greenshot-OCR-Plugin/Languages/
-
- Thanks a lot :)
-
+Looking for language files for translatabe plugins?
+Please refer to these:
+
+ * http://greenshot.svn.sourceforge.net/svnroot/greenshot/trunk/GreenshotConfluencePlugin/Languages/
+ * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/GreenshotImgurPlugin/Languages/
+ * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/GreenshotJiraPlugin/Languages/
+ * http://greenshot.svn.sourceforge.net/viewvc/greenshot/trunk/Greenshot-OCR-Plugin/Languages/
+
+ Thanks a lot :)
+
diff --git a/Greenshot/Processors/TitleFixProcessor.cs b/Greenshot/Processors/TitleFixProcessor.cs
index 557abb70f..2c7ccd22a 100644
--- a/Greenshot/Processors/TitleFixProcessor.cs
+++ b/Greenshot/Processors/TitleFixProcessor.cs
@@ -53,9 +53,6 @@ namespace Greenshot.Processors {
}
config.IsDirty = true;
}
- if(config.IsDirty) {
- IniConfig.Save();
- }
}
public override string Designation {
diff --git a/Greenshot/releases/additional_files/readme.template.txt b/Greenshot/releases/additional_files/readme.template.txt
index 3ea7fd658..0d43ac128 100644
--- a/Greenshot/releases/additional_files/readme.template.txt
+++ b/Greenshot/releases/additional_files/readme.template.txt
@@ -2,7 +2,41 @@ Greenshot: A screenshot tool optimized for productivity. Save a screenshot or a
CHANGE LOG:
-1.1.4 build $WCREV$ Release
+1.1.6 build $WCREV$ Bugfix Release
+
+Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
+* Bug #1515: Changed the settings GUI to clearly show that the interactive Window capture mode doesn't use the windows capture mode settings.
+* Bug #1517: export to Microsoft Word always goes to the last active Word instance.
+* Bug #1525/#1486: Greenshot looses configuration settings. (At least we hope this is resolved)
+* Bug #1528: export to Microsoft Excel isn't stored in file, which results in a "red cross" when opening on a different or MUCH later on the same computer.
+* Bug #1544: EntryPointNotFoundException when using higlight area or blur
+* Bug #1546: Exception in the editor when using multiple destination, among which the editor, and a picker (e.g. Word) is shown.
+* Not reported: Canceling Imgur authorization or upload caused an NullPointerReference
+
+Features:
+* Added EXIF orientation support when copying images from the clipboard
+* Feature #596: Added commandline option "/inidirectory " to specify the location of the greenshot.ini, this can e.g. be used for multi-profiles...
+* Removed reading the greenshot.ini if it was changed manually outside of Greenshot while it is running, this should increase stability. People should now exit Greenshot before modifying this file manually.
+
+Improvements:
+* Printouts are now rotated counter-clockwise instead of clockwise, for most people this should be preferable (#1552)
+
+1.1.5 build 2643 Bugfix Release
+
+Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
+* Bug #1510: Under Windows Vista when trying to apply a drop-shadow or a torn-edge effect a GDIPlus error occurs.
+* Bug #1512/#1514: Will not print color
+* Not reported: Annotations where not visible when exporting to Office destinations after writing in the Greenshot format.
+* Not reported: Removed the update check in Greenshot for PortableApps
+
+Languages:
+* New translation: Estonian
+* Updated translations: Russian, Polish and Italian
+* New installer translation: Ukrainian
+* New plugin translations: Polish
+
+
+1.1.4 build 2622 Release
Features added:
* General: Added zoom when capturing with a option in the settings for disabling the zoom. (this can also be done via the "z" key while capturing.)
@@ -16,11 +50,6 @@ Features added:
* Plug-in: Added Photobucket plugin
Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
-* Bug #1484, #1494: External Command plug-in issues. e.g. when clicking edit in the External Command plug-in settings, than cancel, and than edit again an error occured.
-* Bug #1499: Stability improvements for when Greenshot tries to open the explorer.exe
-* Bug #1500: Error while dragging an obfuscation
-* Fixed some additional unreported issues
-* Bug #1504: InvalidCastException when using the brightness-filter
* Bug #1327, #1401 & #1410 : On Windows XP Firefox/java captures are mainly black. This fix should also work with other OS versions and applications.
* Bug #1340: Fixed issue with opening a screenshow from the clipboard which was created in a remote desktop
* Bug #1375, #1396 & #1397: Exporting captures to Microsoft Office applications give problems when the Office application shows a dialog, this is fixed by displaying a retry dialog with info.
@@ -38,6 +67,10 @@ Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and
* Bug #1444: Colors were disappearing when "Create an 8-bit image if colors are less than 256 while having a > 8 bits image" was turned on
* Bug #1462: Auto-filename generation cropping title text after period
* Bug #1481: when pasting elements from one editor into another the element could end up outside the visible area
+* Bug #1484, #1494: External Command plug-in issues. e.g. when clicking edit in the External Command plug-in settings, than cancel, and than edit again an error occured.
+* Bug #1499: Stability improvements for when Greenshot tries to open the explorer.exe
+* Bug #1500: Error while dragging an obfuscation
+* Bug #1504: InvalidCastException when using the brightness-filter
* Reported in forum: Fixed a problem with the OCR, it sometimes didn't work. See: http://sourceforge.net/p/greenshot/discussion/676082/thread/31a08c8c
* Not reported: Flickr configuration for the Family, Friend & Public wasn't stored.
* Not reported: If Greenshot is linked in a Windows startup folder, the "Start with startup" checkbox wasn't checked.
diff --git a/Greenshot/releases/appinfo.ini.template b/Greenshot/releases/appinfo.ini.template
index 1189db6b3..08098dba6 100644
--- a/Greenshot/releases/appinfo.ini.template
+++ b/Greenshot/releases/appinfo.ini.template
@@ -21,8 +21,8 @@ CommercialUse=true
EULAVersion=true
[Version]
-PackageVersion=1.1.4.$WCREV$
-DisplayVersion=1.1.4.$WCREV$
+PackageVersion=1.1.6.$WCREV$
+DisplayVersion=1.1.6.$WCREV$
[SpecialPaths]
Plugins=NONE
diff --git a/Greenshot/releases/build.bat b/Greenshot/releases/build.bat
index 8fe15dfb9..03ab9c2b4 100644
--- a/Greenshot/releases/build.bat
+++ b/Greenshot/releases/build.bat
@@ -1,4 +1,27 @@
@echo off
+echo File preparations
+echo Getting current Version
+cd ..
+tools\TortoiseSVN\SubWCRev.exe ..\ releases\additional_files\readme.template.txt releases\additional_files\readme.txt
+tools\TortoiseSVN\SubWCRev.exe ..\ releases\innosetup\setup.iss releases\innosetup\setup-SVN.iss
+tools\TortoiseSVN\SubWCRev.exe ..\ releases\package_zip.bat releases\package_zip-SVN.bat
+tools\TortoiseSVN\SubWCRev.exe ..\ releases\appinfo.ini.template releases\portable\App\AppInfo\appinfo.ini
+tools\TortoiseSVN\SubWCRev.exe ..\ AssemblyInfo.cs.template AssemblyInfo.cs
+rem Plugins
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotBoxPlugin ..\GreenshotBoxPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotBoxPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotConfluencePlugin ..\GreenshotConfluencePlugin\Properties\AssemblyInfo.cs.template ..\GreenshotConfluencePlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotDropboxPlugin ..\GreenshotDropboxPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotDropboxPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotExternalCommandPlugin ..\GreenshotExternalCommandPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotExternalCommandPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotFlickrPlugin ..\GreenshotFlickrPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotFlickrPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotImgurPlugin ..\GreenshotImgurPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotImgurPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotJiraPlugin ..\GreenshotJiraPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotJiraPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotOCRPlugin ..\GreenshotOCRPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotOCRPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotOfficePlugin ..\GreenshotOfficePlugin\Properties\AssemblyInfo.cs.template ..\GreenshotOfficePlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPhotobucketPlugin ..\GreenshotPhotobucketPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPhotobucketPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPicasaPlugin ..\GreenshotPicasaPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPicasaPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPlugin ..\GreenshotPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPlugin\Properties\AssemblyInfo.cs
+tools\TortoiseSVN\SubWCRev.exe ..\PluginExample ..\PluginExample\Properties\AssemblyInfo.cs.template ..\PluginExample\Properties\AssemblyInfo.cs
+cd releases
echo Starting Greenshot BUILD
\Windows\Microsoft.NET\Framework\v3.5\MSBuild ..\Greenshot.sln /t:Clean;Build /p:Configuration=Release /p:Platform="Any CPU" > build.log
if %ERRORLEVEL% GEQ 1 (
@@ -6,13 +29,7 @@ echo An error occured, please check the build log!
pause
exit -1
)
-echo File preparations
cd ..
-echo Getting current Version
-tools\TortoiseSVN\SubWCRev.exe ..\ releases\additional_files\readme.template.txt releases\additional_files\readme.txt
-tools\TortoiseSVN\SubWCRev.exe ..\ releases\innosetup\setup.iss releases\innosetup\setup-SVN.iss
-tools\TortoiseSVN\SubWCRev.exe ..\ releases\package_zip.bat releases\package_zip-SVN.bat
-tools\TortoiseSVN\SubWCRev.exe ..\ releases\appinfo.ini.template releases\portable\App\AppInfo\appinfo.ini
cd bin\Release
del *.log
echo Making MD5
diff --git a/Greenshot/releases/innosetup/scripts/isxdl/isxdl.iss b/Greenshot/releases/innosetup/scripts/isxdl/isxdl.iss
index 7e8866153..513ba5f85 100644
--- a/Greenshot/releases/innosetup/scripts/isxdl/isxdl.iss
+++ b/Greenshot/releases/innosetup/scripts/isxdl/isxdl.iss
@@ -2,11 +2,13 @@
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
[Code]
+//replace PAnsiChar with PChar on non-unicode Inno Setup
procedure isxdl_AddFile(URL, Filename: PAnsiChar);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
+//replace PAnsiChar with PChar on non-unicode Inno Setup
function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
-external 'isxdl_SetOption@files:isxdl.dll stdcall';
\ No newline at end of file
+external 'isxdl_SetOption@files:isxdl.dll stdcall';
diff --git a/Greenshot/releases/innosetup/scripts/products.iss b/Greenshot/releases/innosetup/scripts/products.iss
index 5465c9dea..6beaa2e62 100644
--- a/Greenshot/releases/innosetup/scripts/products.iss
+++ b/Greenshot/releases/innosetup/scripts/products.iss
@@ -1,43 +1,35 @@
-#include "..\scripts\isxdl\isxdl.iss"
+#include "isxdl\isxdl.iss"
[CustomMessages]
DependenciesDir=MyProgramDependencies
en.depdownload_msg=The following applications are required before setup can continue:%n%n%1%nDownload and install now?
de.depdownload_msg=Die folgenden Programme werden bentigt bevor das Setup fortfahren kann:%n%n%1%nJetzt downloaden und installieren?
-nl.depdownload_msg=Die volgende programmas zijn nodig voor dat de setup door kan gaan:%n%n%1%nNu downloaden en installeren?
en.depdownload_memo_title=Download dependencies
de.depdownload_memo_title=Abhngigkeiten downloaden
-nl.depdownload_memo_title=Afhankelijkheiden downloaden
en.depinstall_memo_title=Install dependencies
de.depinstall_memo_title=Abhngigkeiten installieren
-nl.depinstall_memo_title=Afhankelijkheiden installeren
en.depinstall_title=Installing dependencies
de.depinstall_title=Installiere Abhngigkeiten
-nl.depinstall_title=Installeer afhankelijkheiden
en.depinstall_description=Please wait while Setup installs dependencies on your computer.
de.depinstall_description=Warten Sie bitte whrend Abhngigkeiten auf Ihrem Computer installiert wird.
-nl.depinstall_description=Wachten AUB terwijl de afhankelijkheiden op uw computer geinstalleerd worden.
en.depinstall_status=Installing %1...
de.depinstall_status=Installiere %1...
-nl.depinstall_status=Installeer %1...
en.depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
de.depinstall_missing=%1 muss installiert werden bevor das Setup fortfahren kann. Bitte installieren Sie %1 und starten Sie das Setup erneut.
-nl.depinstall_missing=%1 moet geinstalleerd worden voordat de setup door kan gaan. Installeer AUB %1 en start de setup nogmals.
en.depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
de.depinstall_error=Ein Fehler ist whrend der Installation der Abghngigkeiten aufgetreten. Bitte starten Sie den Computer neu und fhren Sie das Setup erneut aus oder installieren Sie die folgenden Abhngigkeiten per Hand:%n
-nl.depinstall_error=Er is een fout tijdens de installatie van de afhankelijkheiden opgetreden. Start uw computer door en laat de setup nog een keer lopen of installeer de volgende afhankelijkheiden met de hand:%n
-en.isxdl_langfile=english.ini
+en.isxdl_langfile=
de.isxdl_langfile=german2.ini
-nl.isxdl_langfile=english.ini
+
[Files]
Source: "scripts\isxdl\german2.ini"; Flags: dontcopy
@@ -48,94 +40,157 @@ type
File: String;
Title: String;
Parameters: String;
+ InstallClean : boolean;
+ MustRebootAfter : boolean;
end;
-
+
+ InstallResult = (InstallSuccessful, InstallRebootRequired, InstallError);
+
var
installMemo, downloadMemo, downloadMessage: string;
products: array of TProduct;
+ delayedReboot: boolean;
DependencyPage: TOutputProgressWizardPage;
-
-procedure AddProduct(FileName, Parameters, Title, Size, URL: string);
+
+procedure AddProduct(FileName, Parameters, Title, Size, URL: string; InstallClean : boolean; MustRebootAfter : boolean);
var
path: string;
i: Integer;
begin
installMemo := installMemo + '%1' + Title + #13;
-
+
path := ExpandConstant('{src}{\}') + CustomMessage('DependenciesDir') + '\' + FileName;
if not FileExists(path) then begin
path := ExpandConstant('{tmp}{\}') + FileName;
-
+
isxdl_AddFile(URL, path);
-
+
downloadMemo := downloadMemo + '%1' + Title + #13;
- downloadMessage := downloadMessage + ' ' + Title + ' (' + Size + ')' + #13;
+ downloadMessage := downloadMessage + ' ' + Title + ' (' + Size + ')' + #13;
end;
-
+
i := GetArrayLength(products);
SetArrayLength(products, i + 1);
products[i].File := path;
products[i].Title := Title;
products[i].Parameters := Parameters;
+ products[i].InstallClean := InstallClean;
+ products[i].MustRebootAfter := MustRebootAfter;
end;
-function InstallProducts: Boolean;
+function SmartExec(prod : TProduct; var ResultCode : Integer) : boolean;
+begin
+ if (LowerCase(Copy(prod.File,Length(prod.File)-2,3)) = 'exe') then begin
+ Result := Exec(prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
+ end else begin
+ Result := ShellExec('', prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
+ end;
+end;
+
+function PendingReboot : boolean;
+var names: String;
+begin
+ if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
+ Result := true;
+ end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> '')) then begin
+ Result := true;
+ end else begin
+ Result := false;
+ end;
+end;
+
+function InstallProducts: InstallResult;
var
ResultCode, i, productCount, finishCount: Integer;
begin
- Result := true;
+ Result := InstallSuccessful;
productCount := GetArrayLength(products);
-
+
if productCount > 0 then begin
DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description'));
DependencyPage.Show;
-
+
for i := 0 to productCount - 1 do begin
+ if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
+ Result := InstallRebootRequired;
+ break;
+ end;
+
DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
DependencyPage.SetProgress(i, productCount);
-
- if Exec(products[i].File, products[i].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin
- //success; ResultCode contains the exit code
- if ResultCode = 0 then
- finishCount := finishCount + 1
- else begin
- Result := false;
+
+ if SmartExec(products[i], ResultCode) then begin
+ //setup executed; ResultCode contains the exit code
+ //MsgBox(products[i].Title + ' install executed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
+ if (products[i].MustRebootAfter) then begin
+ //delay reboot after install if we installed the last dependency anyways
+ if (i = productCount - 1) then begin
+ delayedReboot := true;
+ end else begin
+ Result := InstallRebootRequired;
+ end;
+ break;
+ end else if (ResultCode = 0) then begin
+ finishCount := finishCount + 1;
+ end else if (ResultCode = 3010) then begin
+ //ResultCode 3010: A restart is required to complete the installation. This message indicates success.
+ delayedReboot := true;
+ finishCount := finishCount + 1;
+ end else begin
+ Result := InstallError;
break;
end;
end else begin
- //failure; ResultCode contains the error code
- Result := false;
+ //MsgBox(products[i].Title + ' install failed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
+ Result := InstallError;
break;
end;
end;
-
+
//only leave not installed products for error message
for i := 0 to productCount - finishCount - 1 do begin
products[i] := products[i+finishCount];
end;
SetArrayLength(products, productCount - finishCount);
-
+
DependencyPage.Hide;
end;
end;
-function PrepareToInstall(var NeedsRestart: Boolean): String;
+function PrepareToInstall(var NeedsRestart: boolean): String;
var
i: Integer;
s: string;
begin
- if not InstallProducts() then begin
- s := CustomMessage('depinstall_error');
-
- for i := 0 to GetArrayLength(products) - 1 do begin
- s := s + #13 + ' ' + products[i].Title;
- end;
-
- Result := s;
+ delayedReboot := false;
+
+ case InstallProducts() of
+ InstallError: begin
+ s := CustomMessage('depinstall_error');
+
+ for i := 0 to GetArrayLength(products) - 1 do begin
+ s := s + #13 + ' ' + products[i].Title;
+ end;
+
+ Result := s;
+ end;
+ InstallRebootRequired: begin
+ Result := products[0].Title;
+ NeedsRestart := true;
+
+ //write into the registry that the installer needs to be executed again after restart
+ RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
+ end;
end;
end;
+function NeedRestart : boolean;
+begin
+ if (delayedReboot) then
+ Result := true;
+end;
+
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
var
s: string;
@@ -146,27 +201,26 @@ begin
s := s + CustomMessage('depinstall_memo_title') + ':' + NewLine + FmtMessage(installMemo, [Space]) + NewLine;
s := s + MemoDirInfo + NewLine + NewLine + MemoGroupInfo
-
+
if MemoTasksInfo <> '' then
s := s + NewLine + NewLine + MemoTasksInfo;
Result := s
end;
-function ProductNextButtonClick(CurPageID: Integer): Boolean;
+function NextButtonClick(CurPageID: Integer): boolean;
begin
Result := true;
if CurPageID = wpReady then begin
-
if downloadMemo <> '' then begin
//change isxdl language only if it is not english because isxdl default language is already english
- if ActiveLanguage() <> 'en' then begin
+ if (ActiveLanguage() <> 'en') then begin
ExtractTemporaryFile(CustomMessage('isxdl_langfile'));
isxdl_SetOption('language', ExpandConstant('{tmp}{\}') + CustomMessage('isxdl_langfile'));
end;
//isxdl_SetOption('title', FmtMessage(SetupMessage(msgSetupWindowTitle), [CustomMessage('appname')]));
-
+
if SuppressibleMsgBox(FmtMessage(CustomMessage('depdownload_msg'), [downloadMessage]), mbConfirmation, MB_YESNO, IDYES) = IDNO then
Result := false
else if isxdl_DownloadFiles(StrToInt(ExpandConstant('{wizardhwnd}'))) = 0 then
@@ -175,23 +229,39 @@ begin
end;
end;
-function IsX64: Boolean;
+function IsX86: boolean;
+begin
+ Result := (ProcessorArchitecture = paX86) or (ProcessorArchitecture = paUnknown);
+end;
+
+function IsX64: boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
end;
-function IsIA64: Boolean;
+function IsIA64: boolean;
begin
Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64);
end;
-function GetURL(x86, x64, ia64: String): String;
+function GetString(x86, x64, ia64: String): String;
begin
- if IsX64() and (x64 <> '') then
+ if IsX64() and (x64 <> '') then begin
Result := x64;
- if IsIA64() and (ia64 <> '') then
+ end else if IsIA64() and (ia64 <> '') then begin
Result := ia64;
-
- if Result = '' then
+ end else begin
Result := x86;
+ end;
+end;
+
+function GetArchitectureString(): String;
+begin
+ if IsX64() then begin
+ Result := '_x64';
+ end else if IsIA64() then begin
+ Result := '_ia64';
+ end else begin
+ Result := '';
+ end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss
index 68cbf2b37..4f1fe7490 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11.iss
@@ -5,21 +5,21 @@
[CustomMessages]
dotnetfx11_title=.NET Framework 1.1
-dotnetfx11_size=23.1 MB
+en.dotnetfx11_size=23.1 MB
+de.dotnetfx11_size=23,1 MB
-[Code]
+
+[Code]
const
dotnetfx11_url = 'http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe';
procedure dotnetfx11();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'Install', version);
- if version <> 1 then
+ if (IsX86() and not netfxinstalled(NetFx11, '')) then
AddProduct('dotnetfx11.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('dotnetfx11_title'),
CustomMessage('dotnetfx11_size'),
- dotnetfx11_url);
+ dotnetfx11_url,
+ false, false);
end;
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss
index b14cc0286..656e301be 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11lp.iss
@@ -11,17 +11,14 @@ de.dotnetfx11lp_url=http://download.microsoft.com/download/6/8/2/6821e687-526a-4
[Code]
procedure dotnetfx11lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322\' + CustomMessage('dotnetfx11lp_lcid'), 'Install', version);
-
- if version <> 1 then
- AddProduct(ExpandConstant('dotnetfx11_langpack.exe'),
+ if (ActiveLanguage() <> 'en') then begin
+ if (IsX86() and not netfxinstalled(NetFx11, CustomMessage('dotnetfx11lp_lcid'))) then
+ AddProduct('dotnetfx11' + ActiveLanguage() + '.exe',
'/q:a /c:"inst.exe /qb /l"',
CustomMessage('dotnetfx11lp_title'),
CustomMessage('dotnetfx11lp_size'),
- CustomMessage('dotnetfx11lp_url'));
+ CustomMessage('dotnetfx11lp_url'),
+ false, false);
end;
end;
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss
index 4e8f4b214..de8296247 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx11sp1.iss
@@ -5,21 +5,21 @@
[CustomMessages]
dotnetfx11sp1_title=.NET Framework 1.1 Service Pack 1
-dotnetfx11sp1_size=10.5 MB
+en.dotnetfx11sp1_size=10.5 MB
+de.dotnetfx11sp1_size=10,5 MB
-[Code]
+
+[Code]
const
dotnetfx11sp1_url = 'http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe';
procedure dotnetfx11sp1();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'SP', version);
- if version < 1 then
- AddProduct('dotnetfx11sp1.exe',
+ if (IsX86() and (netfxspversion(NetFx11, '') < 1)) then
+ AddProduct('dotnetfx11sp1.exe',
'/q',
CustomMessage('dotnetfx11sp1_title'),
CustomMessage('dotnetfx11sp1_size'),
- dotnetfx11sp1_url);
+ dotnetfx11sp1_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss
index cf139710c..d6deb7576 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20.iss
@@ -1,7 +1,7 @@
// requires Windows 2000 Service Pack 3, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP Service Pack 2
// requires internet explorer 5.0.1 or higher
// requires windows installer 2.0 on windows 98, ME
-// requires windows installer 3.1 on windows 2000 or higher
+// requires Windows Installer 3.1 on windows 2000 or higher
// http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
[CustomMessages]
@@ -9,22 +9,20 @@ dotnetfx20_title=.NET Framework 2.0
dotnetfx20_size=23 MB
-[Code]
+
+[Code]
const
dotnetfx20_url = 'http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe';
dotnetfx20_url_x64 = 'http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe';
dotnetfx20_url_ia64 = 'http://download.microsoft.com/download/f/8/6/f86148a4-e8f7-4d08-a484-b4107f238728/NetFx64.exe';
procedure dotnetfx20();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'Install', version);
- if version <> 1 then begin
- AddProduct('dotnetfx20.exe',
- '/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20 /c:"install /qb /l"',
+ if (not netfxinstalled(NetFx20, '')) then
+ AddProduct('dotnetfx20' + GetArchitectureString() + '.exe',
+ '/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20_title'),
CustomMessage('dotnetfx20_size'),
- GetURL(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64));
- end;
+ GetString(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64),
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss
index 792ea544e..a9b16ef9a 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20lp.iss
@@ -2,39 +2,27 @@
[CustomMessages]
de.dotnetfx20lp_title=.NET Framework 2.0 Sprachpaket: Deutsch
-nl.dotnetfx20lp_title=
-en.dotnetfx20lp_title=
-dotnetfx20lp_size=1,8 MB
+de.dotnetfx20lp_size=1,8 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
-dotnetfx20lp_lcid=1031
-
-nl.dotnetfx20lp_url=
-nl.dotnetfx20lp_url_x64=
-nl.dotnetfx20lp_url_ia64=
-
-en.dotnetfx20lp_url=
-en.dotnetfx20lp_url_x64=
-en.dotnetfx20lp_url_ia64=
+de.dotnetfx20lp_lcid=1031
de.dotnetfx20lp_url=http://download.microsoft.com/download/2/9/7/29768238-56c3-4ea6-abba-4c5246f2bc81/langpack.exe
de.dotnetfx20lp_url_x64=http://download.microsoft.com/download/2/e/f/2ef250ba-a868-4074-a4c9-249004866f87/langpack.exe
de.dotnetfx20lp_url_ia64=http://download.microsoft.com/download/8/9/8/898c5670-5e74-41c4-82fc-68dd837af627/langpack.exe
+
[Code]
procedure dotnetfx20lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20lp_lcid'), 'Install', version);
-
- if version <> 1 then
- AddProduct(ExpandConstant('dotnetfx20_langpack.exe'),
- '/q:a /c:"install /qb /l"',
+ if (ActiveLanguage() <> 'en') then begin
+ if (not netfxinstalled(NetFx20, CustomMessage('dotnetfx20lp_lcid'))) then
+ AddProduct('dotnetfx20' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
+ '/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20lp_title'),
CustomMessage('dotnetfx20lp_size'),
- GetURL(CustomMessage('dotnetfx20lp_url'), CustomMessage('dotnetfx20lp_url_x64'), CustomMessage('dotnetfx20lp_url_ia64')));
+ CustomMessage('dotnetfx20lp_url' + GetArchitectureString()),
+ false, false);
end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss
index 3820444a4..5140c7ce6 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1.iss
@@ -5,23 +5,23 @@
[CustomMessages]
dotnetfx20sp1_title=.NET Framework 2.0 Service Pack 1
-dotnetfx20sp1_size=23.6 MB
+en.dotnetfx20sp1_size=23.6 MB
+de.dotnetfx20sp1_size=23,6 MB
-[Code]
+
+[Code]
const
dotnetfx20sp1_url = 'http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe';
dotnetfx20sp1_url_x64 = 'http://download.microsoft.com/download/9/8/6/98610406-c2b7-45a4-bdc3-9db1b1c5f7e2/NetFx20SP1_x64.exe';
dotnetfx20sp1_url_ia64 = 'http://download.microsoft.com/download/c/9/7/c97d534b-8a55-495d-ab06-ad56f4b7f155/NetFx20SP1_ia64.exe';
procedure dotnetfx20sp1();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version);
- if version < 1 then
- AddProduct('dotnetfx20sp1.exe',
- '/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20sp1 /c:"install /qb /l /msipassthru MSI_PROP_BEGIN" REBOOT=Suppress "MSI_PROP_END"',
+ if (netfxspversion(NetFx20, '') < 1) then
+ AddProduct('dotnetfx20sp1' + GetArchitectureString() + '.exe',
+ '/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp1_title'),
CustomMessage('dotnetfx20sp1_size'),
- GetURL(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64));
+ GetString(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64),
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss
index 69f9beeae..3ba9ec92f 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp1lp.iss
@@ -1,40 +1,28 @@
//http://www.microsoft.com/downloads/details.aspx?FamilyID=1cc39ffe-a2aa-4548-91b3-855a2de99304
[CustomMessages]
-nl.dotnetfx20sp1lp_title=.NET Framework 2.0 SP1 Taalpakket: Nederlands
de.dotnetfx20sp1lp_title=.NET Framework 2.0 SP1 Sprachpaket: Deutsch
-en.dotnetfx20sp1lp_title=
-dotnetfx20sp1lp_size=3,4 MB
+de.dotnetfx20sp1lp_size=3,4 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
-dotnetfx20sp1lp_lcid=1031
-
-nl.dotnetfx20sp1lp_url=http://download.microsoft.com/download/1/5/d/15de28a3-f1d1-459f-9583-d168cfa05e3f/NetFx20SP1_x86nl.exe
-nl.dotnetfx20sp1lp_url_x64=
-nl.dotnetfx20sp1lp_url_ia64=
-
-en.dotnetfx20sp1lp_url=
-en.dotnetfx20sp1lp_url_x64=
-en.dotnetfx20sp1lp_url_ia64=
+de.dotnetfx20sp1lp_lcid=1031
de.dotnetfx20sp1lp_url=http://download.microsoft.com/download/8/a/a/8aab7e6a-5e58-4e83-be99-f5fb49fe811e/NetFx20SP1_x86de.exe
de.dotnetfx20sp1lp_url_x64=http://download.microsoft.com/download/1/4/2/1425872f-c564-4ab2-8c9e-344afdaecd44/NetFx20SP1_x64de.exe
de.dotnetfx20sp1lp_url_ia64=http://download.microsoft.com/download/a/0/b/a0bef431-19d8-433c-9f42-6e2824a8cb90/NetFx20SP1_ia64de.exe
+
[Code]
procedure dotnetfx20sp1lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp1lp_lcid'), 'SP', version);
-
- if version < 1 then
- AddProduct(ExpandConstant('dotnetfx20sp1_langpack.exe'),
- '/q:a /c:"install /qb /l"',
+ if (ActiveLanguage() <> 'en') then begin
+ if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp1lp_lcid')) < 1) then
+ AddProduct('dotnetfx20sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
+ '/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp1lp_title'),
CustomMessage('dotnetfx20sp1lp_size'),
- GetURL(CustomMessage('dotnetfx20sp1lp_url'), CustomMessage('dotnetfx20sp1lp_url_x64'), CustomMessage('dotnetfx20sp1lp_url_ia64')));
+ CustomMessage('dotnetfx20sp1lp_url' + GetArchitectureString()),
+ false, false);
end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss
index 77c92ed19..2d5b45dde 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2.iss
@@ -3,23 +3,23 @@
[CustomMessages]
dotnetfx20sp2_title=.NET Framework 2.0 Service Pack 2
-dotnetfx20sp2_size=24 MB - 52 MB
+en.dotnetfx20sp2_size=24 MB - 52 MB
+de.dotnetfx20sp2_size=24 MB - 52 MB
-[Code]
+
+[Code]
const
dotnetfx20sp2_url = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe';
dotnetfx20sp2_url_x64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe';
dotnetfx20sp2_url_ia64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_ia64.exe';
procedure dotnetfx20sp2();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version);
- if version < 2 then
- AddProduct('dotnetfx20sp2.exe',
- '/lang:enu /qb /norestart',
+ if (netfxspversion(NetFx20, '') < 2) then
+ AddProduct('dotnetfx20sp2' + GetArchitectureString() + '.exe',
+ '/passive /norestart /lang:ENU',
CustomMessage('dotnetfx20sp2_title'),
CustomMessage('dotnetfx20sp2_size'),
- GetURL(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64));
+ GetString(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64),
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss
index ec428ffd6..86771bdca 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx20sp2lp.iss
@@ -1,22 +1,12 @@
//http://www.microsoft.com/downloads/details.aspx?FamilyID=c69789e0-a4fa-4b2e-a6b5-3b3695825992
[CustomMessages]
-nl.dotnetfx20sp2lp_title=.NET Framework 2.0 SP2 Taalpakket: Nederlands
de.dotnetfx20sp2lp_title=.NET Framework 2.0 SP2 Sprachpaket: Deutsch
-en.dotnetfx20sp2lp_title=
-dotnetfx20sp2lp_size=3,4 MB
+de.dotnetfx20sp2lp_size=3,4 MB
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
-dotnetfx20sp2lp_lcid=1031
-
-en.dotnetfx20sp2lp_url=
-en.dotnetfx20sp2lp_url_x64=
-en.dotnetfx20sp2lp_url_ia64=
-
-nl.dotnetfx20sp2lp_url=http://download.microsoft.com/download/7/a/5/7a5ca52b-08ac-40f5-9a6d-6cce78b1db28/NetFx20SP2_x86nl.exe
-nl.dotnetfx20sp2lp_url_x64=
-nl.dotnetfx20sp2lp_url_ia64=
+de.dotnetfx20sp2lp_lcid=1031
de.dotnetfx20sp2lp_url=http://download.microsoft.com/download/0/b/1/0b175c8e-34bd-46c0-bfcd-af8d33770c58/netfx20sp2_x86de.exe
de.dotnetfx20sp2lp_url_x64=http://download.microsoft.com/download/4/e/c/4ec67a11-879d-4550-9c25-fd9ab4261b46/netfx20sp2_x64de.exe
@@ -25,17 +15,14 @@ de.dotnetfx20sp2lp_url_ia64=http://download.microsoft.com/download/a/3/3/a3349a2
[Code]
procedure dotnetfx20sp2lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp2lp_lcid'), 'SP', version);
-
- if version < 2 then
- AddProduct(ExpandConstant('dotnetfx20sp2_langpack.exe'),
- '/lang:enu /qb /norestart"',
+ if (ActiveLanguage() <> 'en') then begin
+ if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp2lp_lcid')) < 2) then
+ AddProduct('dotnetfx20sp2' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
+ '/lang:enu /passive /norestart"',
CustomMessage('dotnetfx20sp2lp_title'),
CustomMessage('dotnetfx20sp2lp_size'),
- GetURL(CustomMessage('dotnetfx20sp2lp_url'), CustomMessage('dotnetfx20sp2lp_url_x64'), CustomMessage('dotnetfx20sp2lp_url_ia64')));
+ CustomMessage('dotnetfx20sp2lp_url' + GetArchitectureString()),
+ false, false);
end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss
index 5c9b6bcbb..ed757b2fd 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35.iss
@@ -1,5 +1,5 @@
// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
-// requires windows installer 3.1
+// requires Windows Installer 3.1
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
// http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6
@@ -8,19 +8,18 @@ dotnetfx35_title=.NET Framework 3.5
dotnetfx35_size=3 MB - 197 MB
+
[Code]
const
dotnetfx35_url = 'http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe';
procedure dotnetfx35();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', version);
- if version <> 1 then
- AddProduct('dotnetfx35.exe',
- '/lang:enu /qb /norestart',
+ if (netfxinstalled(NetFx35, '') = false) then
+ AddProduct('dotnetfx35' + GetArchitectureString() + '.exe',
+ '/lang:enu /passive /norestart',
CustomMessage('dotnetfx35_title'),
CustomMessage('dotnetfx35_size'),
- dotnetfx35_url);
+ dotnetfx35_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss
index 016679a88..38a036c54 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35lp.iss
@@ -11,17 +11,14 @@ de.dotnetfx35lp_url=http://download.microsoft.com/download/d/1/e/d1e617c3-c7f4-4
[Code]
procedure dotnetfx35lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35lp_lcid'), 'Install', version);
-
- if version <> 1 then
- AddProduct('dotnetfx35_langpack.exe',
- '/lang:enu /qb /norestart',
+ if (ActiveLanguage() <> 'en') then begin
+ if (not netfxinstalled(NetFx35, CustomMessage('dotnetfx35lp_lcid'))) then
+ AddProduct('dotnetfx35' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
+ '/lang:enu /passive /norestart',
CustomMessage('dotnetfx35lp_title'),
CustomMessage('dotnetfx35lp_size'),
- CustomMessage('dotnetfx35lp_url'));
+ CustomMessage('dotnetfx35lp_url'),
+ false, false);
end;
end;
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss
index d131af4b5..3574d51c4 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1.iss
@@ -1,26 +1,26 @@
// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
-// requires windows installer 3.1
+// requires Windows Installer 3.1
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
// http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
[CustomMessages]
dotnetfx35sp1_title=.NET Framework 3.5 Service Pack 1
-dotnetfx35sp1_size=3 MB - 232 MB
+en.dotnetfx35sp1_size=3 MB - 232 MB
+de.dotnetfx35sp1_size=3 MB - 232 MB
-[Code]
+
+[Code]
const
dotnetfx35sp1_url = 'http://download.microsoft.com/download/0/6/1/061f001c-8752-4600-a198-53214c69b51f/dotnetfx35setup.exe';
procedure dotnetfx35sp1();
-var
- version: cardinal;
begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'SP', version);
- if version < 1 then
- AddProduct('dotnetfx35sp1.exe',
- '/lang:enu /qb /norestart',
+ if (netfxspversion(NetFx35, '') < 1) then
+ AddProduct('dotnetfx35sp1' + GetArchitectureString() + '.exe',
+ '/lang:enu /passive /norestart',
CustomMessage('dotnetfx35sp1_title'),
CustomMessage('dotnetfx35sp1_size'),
- dotnetfx35sp1_url);
+ dotnetfx35sp1_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss
index e62fb17d9..518cd22ed 100644
--- a/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx35sp1lp.iss
@@ -11,17 +11,14 @@ de.dotnetfx35sp1lp_url=http://download.microsoft.com/download/d/7/2/d728b7b9-454
[Code]
procedure dotnetfx35sp1lp();
-var
- version: cardinal;
begin
- if ActiveLanguage() <> 'en' then begin
- RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35sp1lp_lcid'), 'SP', version);
-
- if version < 1 then
- AddProduct('dotnetfx35sp1_langpack.exe',
- '/lang:enu /qb /norestart',
+ if (ActiveLanguage() <> 'en') then begin
+ if (netfxspversion(NetFx35, CustomMessage('dotnetfx35sp1lp_lcid')) < 1) then
+ AddProduct('dotnetfx35sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
+ '/lang:enu /passive /norestart',
CustomMessage('dotnetfx35sp1lp_title'),
CustomMessage('dotnetfx35sp1lp_size'),
- CustomMessage('dotnetfx35sp1lp_url'));
+ CustomMessage('dotnetfx35sp1lp_url'),
+ false, false);
end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx40client.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx40client.iss
new file mode 100644
index 000000000..05058a99e
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx40client.iss
@@ -0,0 +1,30 @@
+// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
+// requires Windows Installer 3.1
+// requires Internet Explorer 5.01
+// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
+// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab
+
+[CustomMessages]
+dotnetfx40client_title=.NET Framework 4.0 Client
+
+dotnetfx40client_size=3 MB - 197 MB
+
+;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
+en.dotnetfx40client_lcid=''
+de.dotnetfx40client_lcid='/lcid 1031 '
+
+
+[Code]
+const
+ dotnetfx40client_url = 'http://download.microsoft.com/download/7/B/6/7B629E05-399A-4A92-B5BC-484C74B5124B/dotNetFx40_Client_setup.exe';
+
+procedure dotnetfx40client();
+begin
+ if (not netfxinstalled(NetFx40Client, '')) then
+ AddProduct('dotNetFx40_Client_setup.exe',
+ CustomMessage('dotnetfx40client_lcid') + '/passive /norestart',
+ CustomMessage('dotnetfx40client_title'),
+ CustomMessage('dotnetfx40client_size'),
+ dotnetfx40client_url,
+ false, false);
+end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfx40full.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfx40full.iss
new file mode 100644
index 000000000..c0d752812
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfx40full.iss
@@ -0,0 +1,30 @@
+// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
+// requires Windows Installer 3.1
+// requires Internet Explorer 5.01
+// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
+// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
+
+[CustomMessages]
+dotnetfx40full_title=.NET Framework 4.0 Full
+
+dotnetfx40full_size=3 MB - 197 MB
+
+;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
+en.dotnetfx40full_lcid=''
+de.dotnetfx40full_lcid='/lcid 1031 '
+
+
+[Code]
+const
+ dotnetfx40full_url = 'http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe';
+
+procedure dotnetfx40full();
+begin
+ if (not netfxinstalled(NetFx40Full, '')) then
+ AddProduct('dotNetFx40_Full_setup.exe',
+ CustomMessage('dotnetfx40full_lcid') + '/q /passive /norestart',
+ CustomMessage('dotnetfx40full_title'),
+ CustomMessage('dotnetfx40full_size'),
+ dotnetfx40full_url,
+ false, false);
+end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/dotnetfxversion.iss b/Greenshot/releases/innosetup/scripts/products/dotnetfxversion.iss
new file mode 100644
index 000000000..25c3433f6
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/dotnetfxversion.iss
@@ -0,0 +1,69 @@
+[Code]
+type
+ NetFXType = (NetFx10, NetFx11, NetFx20, NetFx30, NetFx35, NetFx40Client, NetFx40Full);
+
+const
+ netfx11plus_reg = 'Software\Microsoft\NET Framework Setup\NDP\';
+
+function netfxinstalled(version: NetFXType; lcid: string): boolean;
+var
+ regVersion: cardinal;
+ regVersionString: string;
+begin
+ if (lcid <> '') then
+ lcid := '\' + lcid;
+
+ if (version = NetFx10) then begin
+ RegQueryStringValue(HKLM, 'Software\Microsoft\.NETFramework\Policy\v1.0\3705', 'Install', regVersionString);
+ Result := regVersionString <> '';
+ end else begin
+ case version of
+ NetFx11:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'Install', regVersion);
+ NetFx20:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'Install', regVersion);
+ NetFx30:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0\Setup' + lcid, 'InstallSuccess', regVersion);
+ NetFx35:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'Install', regVersion);
+ NetFx40Client:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Install', regVersion);
+ NetFx40Full:
+ RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Install', regVersion);
+ end;
+ Result := (regVersion <> 0);
+ end;
+end;
+
+function netfxspversion(version: NetFXType; lcid: string): integer;
+var
+ regVersion: cardinal;
+begin
+ if (lcid <> '') then
+ lcid := '\' + lcid;
+
+ case version of
+ NetFx10:
+ //not supported
+ regVersion := -1;
+ NetFx11:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'SP', regVersion)) then
+ regVersion := -1;
+ NetFx20:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'SP', regVersion)) then
+ regVersion := -1;
+ NetFx30:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0' + lcid, 'SP', regVersion)) then
+ regVersion := -1;
+ NetFx35:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'SP', regVersion)) then
+ regVersion := -1;
+ NetFx40Client:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Servicing', regVersion)) then
+ regVersion := -1;
+ NetFx40Full:
+ if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Servicing', regVersion)) then
+ regVersion := -1;
+ end;
+ Result := regVersion;
+end;
diff --git a/Greenshot/releases/innosetup/scripts/products/fileversion.iss b/Greenshot/releases/innosetup/scripts/products/fileversion.iss
index e747383b9..672486237 100644
--- a/Greenshot/releases/innosetup/scripts/products/fileversion.iss
+++ b/Greenshot/releases/innosetup/scripts/products/fileversion.iss
@@ -5,10 +5,10 @@ var
begin
version := IntToStr(word(VersionMS shr 16));
version := version + '.' + IntToStr(word(VersionMS and not $ffff0000));
-
+
version := version + '.' + IntToStr(word(VersionLS shr 16));
version := version + '.' + IntToStr(word(VersionLS and not $ffff0000));
-
+
Result := version;
end;
@@ -20,4 +20,4 @@ begin
Result := GetFullVersion(versionMS, versionLS)
else
Result := '0';
-end;
\ No newline at end of file
+end;
diff --git a/Greenshot/releases/innosetup/scripts/products/ie6.iss b/Greenshot/releases/innosetup/scripts/products/ie6.iss
index 97ba00e46..99486c23e 100644
--- a/Greenshot/releases/innosetup/scripts/products/ie6.iss
+++ b/Greenshot/releases/innosetup/scripts/products/ie6.iss
@@ -5,7 +5,9 @@
[CustomMessages]
ie6_title=Internet Explorer 6
-ie6_size=1 MB - 77.5 MB
+en.ie6_size=1 MB - 77.5 MB
+de.ie6_size=1 MB - 77,5 MB
+
[Code]
const
@@ -16,10 +18,11 @@ var
version: string;
begin
RegQueryStringValue(HKLM, 'Software\Microsoft\Internet Explorer', 'Version', version);
- if version < MinVersion then
+ if (compareversion(version, MinVersion) < 0) then
AddProduct('ie6.exe',
'/q:a /C:"setup /QNT"',
CustomMessage('ie6_title'),
CustomMessage('ie6_size'),
- ie6_url);
+ ie6_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/iis.iss b/Greenshot/releases/innosetup/scripts/products/iis.iss
index 0e8beee40..6a8f973ae 100644
--- a/Greenshot/releases/innosetup/scripts/products/iis.iss
+++ b/Greenshot/releases/innosetup/scripts/products/iis.iss
@@ -5,7 +5,7 @@ iis_title=Internet Information Services (IIS)
[Code]
function iis(): boolean;
begin
- if not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security') then
+ if (not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security')) then
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [CustomMessage('iis_title')]), mbError, MB_OK)
else
Result := true;
diff --git a/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss b/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss
index 8a99a7e3e..682a3d98b 100644
--- a/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss
+++ b/Greenshot/releases/innosetup/scripts/products/jet4sp8.iss
@@ -3,7 +3,9 @@
[CustomMessages]
jet4sp8_title=Jet 4
-jet4sp8_size=3.7 MB
+en.jet4sp8_size=3.7 MB
+de.jet4sp8_size=3,7 MB
+
[Code]
const
@@ -12,10 +14,11 @@ const
procedure jet4sp8(MinVersion: string);
begin
//check for Jet4 Service Pack 8 installation
- if fileversion(ExpandConstant('{sys}{\}msjet40.dll')) < MinVersion then
+ if (compareversion(fileversion(ExpandConstant('{sys}{\}msjet40.dll')), MinVersion) < 0) then
AddProduct('jet4sp8.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('jet4sp8_title'),
CustomMessage('jet4sp8_size'),
- jet4sp8_url);
+ jet4sp8_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/kb835732.iss b/Greenshot/releases/innosetup/scripts/products/kb835732.iss
index 6416e146e..af0ea162d 100644
--- a/Greenshot/releases/innosetup/scripts/products/kb835732.iss
+++ b/Greenshot/releases/innosetup/scripts/products/kb835732.iss
@@ -5,9 +5,10 @@
[CustomMessages]
en.kb835732_title=Windows 2000 Security Update (KB835732)
de.kb835732_title=Windows 2000 Sicherheitsupdate (KB835732)
-nl.kb835732_title=Windows 2000 Veiligheidsupdate (KB835732)
-kb835732_size=6.8 MB
+en.kb835732_size=6.8 MB
+de.kb835732_size=6,8 MB
+
[Code]
const
@@ -15,12 +16,13 @@ const
procedure kb835732();
begin
- if (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4)) then begin
- if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist') then
+ if (exactwinversion(5, 0) and (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4))) then begin
+ if (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist')) then
AddProduct('kb835732.exe',
'/q:a /c:"install /q"',
CustomMessage('kb835732_title'),
CustomMessage('kb835732_size'),
- kb835732_url);
+ kb835732_url,
+ false, false);
end;
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/mdac28.iss b/Greenshot/releases/innosetup/scripts/products/mdac28.iss
index cf703cd16..dfd3191d9 100644
--- a/Greenshot/releases/innosetup/scripts/products/mdac28.iss
+++ b/Greenshot/releases/innosetup/scripts/products/mdac28.iss
@@ -1,7 +1,9 @@
[CustomMessages]
mdac28_title=Microsoft Data Access Components 2.8
-mdac28_size=5.4 MB
+en.mdac28_size=5.4 MB
+de.mdac28_size=5,4 MB
+
[Code]
const
@@ -13,10 +15,11 @@ var
begin
//check for MDAC installation
RegQueryStringValue(HKLM, 'Software\Microsoft\DataAccess', 'FullInstallVer', version);
- if version < MinVersion then
+ if (compareversion(version, MinVersion) < 0) then
AddProduct('mdac28.exe',
'/q:a /c:"install /qb /l"',
CustomMessage('mdac28_title'),
CustomMessage('mdac28_size'),
- mdac28_url);
+ mdac28_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/msi20.iss b/Greenshot/releases/innosetup/scripts/products/msi20.iss
index 8bd8c1688..a66965a65 100644
--- a/Greenshot/releases/innosetup/scripts/products/msi20.iss
+++ b/Greenshot/releases/innosetup/scripts/products/msi20.iss
@@ -1,7 +1,8 @@
[CustomMessages]
msi20_title=Windows Installer 2.0
-msi20_size=1.7 MB
+en.msi20_size=1.7 MB
+de.msi20_size=1,7 MB
[Code]
@@ -11,10 +12,11 @@ const
procedure msi20(MinVersion: string);
begin
// Check for required Windows Installer 2.0 on Windows 98 and ME
- if maxwinversion(4, 9) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then
+ if (IsX86() and maxwinversion(4, 9) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
AddProduct('msi20.exe',
'/q:a /c:"msiinst /delayrebootq"',
CustomMessage('msi20_title'),
CustomMessage('msi20_size'),
- msi20_url);
+ msi20_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/msi31.iss b/Greenshot/releases/innosetup/scripts/products/msi31.iss
index e68fdeb0c..13efb89ec 100644
--- a/Greenshot/releases/innosetup/scripts/products/msi31.iss
+++ b/Greenshot/releases/innosetup/scripts/products/msi31.iss
@@ -1,7 +1,9 @@
[CustomMessages]
msi31_title=Windows Installer 3.1
-msi31_size=2.5 MB
+en.msi31_size=2.5 MB
+de.msi31_size=2,5 MB
+
[Code]
const
@@ -10,10 +12,11 @@ const
procedure msi31(MinVersion: string);
begin
// Check for required Windows Installer 3.0 on Windows 2000 or higher
- if minwinversion(5, 0) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then
+ if (IsX86() and minwinversion(5, 0) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
AddProduct('msi31.exe',
- '/qb /norestart',
+ '/passive /norestart',
CustomMessage('msi31_title'),
CustomMessage('msi31_size'),
- msi31_url);
+ msi31_url,
+ false, false);
end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/msi45.iss b/Greenshot/releases/innosetup/scripts/products/msi45.iss
new file mode 100644
index 000000000..8ed7932fb
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/msi45.iss
@@ -0,0 +1,45 @@
+[CustomMessages]
+msi45_title=Windows Installer 4.5
+
+en.msi45win60_size=1.7 MB
+de.msi45win60_size=1,7 MB
+
+en.msi45win52_size=3.0 MB
+de.msi45win52_size=3,0 MB
+
+en.msi45win51_size=3.2 MB
+de.msi45win51_size=3,2 MB
+
+
+[Code]
+const
+ msi45win60_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/Windows6.0-KB942288-v2-x86.msu';
+ msi45win52_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsServer2003-KB942288-v4-x86.exe';
+ msi45win51_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe';
+
+procedure msi45(MinVersion: string);
+begin
+ if (IsX86() and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then begin
+ if minwinversion(6, 0) then
+ AddProduct('msi45_60.msu',
+ '/quiet /norestart',
+ CustomMessage('msi45_title'),
+ CustomMessage('msi45win60_size'),
+ msi45win60_url,
+ false, false)
+ else if minwinversion(5, 2) then
+ AddProduct('msi45_52.exe',
+ '/quiet /norestart',
+ CustomMessage('msi45_title'),
+ CustomMessage('msi45win52_size'),
+ msi45win52_url,
+ false, false)
+ else if minwinversion(5, 1) then
+ AddProduct('msi45_51.exe',
+ '/quiet /norestart',
+ CustomMessage('msi45_title'),
+ CustomMessage('msi45win51_size'),
+ msi45win51_url,
+ false, false);
+ end;
+end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/sql2005express.iss b/Greenshot/releases/innosetup/scripts/products/sql2005express.iss
index b0af614bb..9a6f626aa 100644
--- a/Greenshot/releases/innosetup/scripts/products/sql2005express.iss
+++ b/Greenshot/releases/innosetup/scripts/products/sql2005express.iss
@@ -1,32 +1,42 @@
-// requires Windows 2000 Service Pack 4, Windows Server 2003 Service Pack 1, Windows XP Service Pack 2
-// SQL Express 2005 Service Pack 1+ should be installed for SQL Express 2005 to work on Vista
-// requires windows installer 3.1
-// http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41
+// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
+// requires Microsoft .NET Framework 2.0 or later
+// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
+// http://www.microsoft.com/download/en/details.aspx?id=15291
[CustomMessages]
-sql2005express_title=SQL Server 2005 Express
+sql2005express_title=SQL Server 2005 Express SP3
-en.sql2005express_size=57.7 MB
-de.sql2005express_size=57,7 MB
+en.sql2005express_size=38.1 MB
+de.sql2005express_size=38,1 MB
+
+en.sql2005express_size_x64=58.1 MB
+de.sql2005express_size_x64=58,1 MB
[Code]
const
- sql2005express_url = 'http://download.microsoft.com/download/f/1/0/f10c4f60-630e-4153-bd53-c3010e4c513b/SQLEXPR.EXE';
+ sql2005express_url = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR32_NLA.EXE';
+ sql2005express_url_x64 = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR_NLA.EXE';
procedure sql2005express();
var
- version: cardinal;
+ version: string;
begin
//CHECK NOT FINISHED YET
//RTM: 9.00.1399.06
//Service Pack 1: 9.1.2047.00
//Service Pack 2: 9.2.3042.00
- RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version);
- if version <> 1 then
- AddProduct('sql2005express.exe',
- '/qb',
- CustomMessage('sql2005express_title'),
- CustomMessage('sql2005express_size'),
- sql2005express_url);
+ // Newer detection method required for SP3 and x64
+ //Service Pack 3: 9.00.4035.00
+ //RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version);
+ RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
+ if (version < '9.00.4035') then begin
+ if (not isIA64()) then
+ AddProduct('sql2005express' + GetArchitectureString() + '.exe',
+ '/qb ADDLOCAL=ALL INSTANCENAME=SQLEXPRESS',
+ CustomMessage('sql2005express_title'),
+ CustomMessage('sql2005express_size' + GetArchitectureString()),
+ GetString(sql2005express_url, sql2005express_url_x64, ''),
+ false, false);
+ end;
end;
diff --git a/Greenshot/releases/innosetup/scripts/products/sql2008express.iss b/Greenshot/releases/innosetup/scripts/products/sql2008express.iss
new file mode 100644
index 000000000..154d1fd5c
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/sql2008express.iss
@@ -0,0 +1,39 @@
+// requires Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
+// requires Microsoft .NET Framework 3.5 SP 1 or later
+// requires Windows Installer 4.5 or later
+// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
+// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
+// http://www.microsoft.com/download/en/details.aspx?id=3743
+
+[CustomMessages]
+sql2008expressr2_title=SQL Server 2008 Express R2
+
+en.sql2008expressr2_size=58.2 MB
+de.sql2008expressr2_size=58,2 MB
+
+en.sql2008expressr2_size_x64=74.1 MB
+de.sql2008expressr2_size_x64=74,1 MB
+
+
+[Code]
+const
+ sql2008expressr2_url = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR32_x86_ENU.exe';
+ sql2008expressr2_url_x64 = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR_x64_ENU.exe';
+
+procedure sql2008express();
+var
+ version: string;
+begin
+ // This check does not take into account that a full version of SQL Server could be installed,
+ // making Express unnecessary.
+ RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
+ if (compareversion(version, '10.5') < 0) then begin
+ if (not isIA64()) then
+ AddProduct('sql2008expressr2' + GetArchitectureString() + '.exe',
+ '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=All /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="builtin\administrators"',
+ CustomMessage('sql2008expressr2_title'),
+ CustomMessage('sql2008expressr2_size' + GetArchitectureString()),
+ GetString(sql2008expressr2_url, sql2008expressr2_url_x64, ''),
+ false, false);
+ end;
+end;
diff --git a/Greenshot/releases/innosetup/scripts/products/sqlcompact35sp2.iss b/Greenshot/releases/innosetup/scripts/products/sqlcompact35sp2.iss
new file mode 100644
index 000000000..74762ae3a
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/sqlcompact35sp2.iss
@@ -0,0 +1,21 @@
+[CustomMessages]
+sqlcompact35sp2_title=SQL Server Compact 3.5 Service Pack 2
+
+en.sqlcompact35sp2_size=5.3 MB
+de.sqlcompact35sp2_size=5,3 MB
+
+
+[Code]
+const
+ sqlcompact35sp2_url = 'http://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe';
+
+procedure sqlcompact35sp2();
+begin
+ if (isX86() and not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5')) then
+ AddProduct('sqlcompact35sp2.msi',
+ '/qb',
+ CustomMessage('sqlcompact35sp2_title'),
+ CustomMessage('sqlcompact35sp2_size'),
+ sqlcompact35sp2_url,
+ false, false);
+end;
diff --git a/Greenshot/releases/innosetup/scripts/products/stringversion.iss b/Greenshot/releases/innosetup/scripts/products/stringversion.iss
new file mode 100644
index 000000000..7ee85821e
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/stringversion.iss
@@ -0,0 +1,52 @@
+function stringtoversion(var temp: String): Integer;
+var
+ part: String;
+ pos1: Integer;
+
+begin
+ if (Length(temp) = 0) then begin
+ Result := -1;
+ Exit;
+ end;
+
+ pos1 := Pos('.', temp);
+ if (pos1 = 0) then begin
+ Result := StrToInt(temp);
+ temp := '';
+ end else begin
+ part := Copy(temp, 1, pos1 - 1);
+ temp := Copy(temp, pos1 + 1, Length(temp));
+ Result := StrToInt(part);
+ end;
+end;
+
+function compareinnerversion(var x, y: String): Integer;
+var
+ num1, num2: Integer;
+
+begin
+ num1 := stringtoversion(x);
+ num2 := stringtoversion(y);
+ if (num1 = -1) or (num2 = -1) then begin
+ Result := 0;
+ Exit;
+ end;
+
+ if (num1 < num2) then begin
+ Result := -1;
+ end else if (num1 > num2) then begin
+ Result := 1;
+ end else begin
+ Result := compareinnerversion(x, y);
+ end;
+end;
+
+function compareversion(versionA, versionB: String): Integer;
+var
+ temp1, temp2: String;
+
+begin
+ temp1 := versionA;
+ temp2 := versionB;
+ Result := compareinnerversion(temp1, temp2);
+end;
diff --git a/Greenshot/releases/innosetup/scripts/products/vcredist2010.iss b/Greenshot/releases/innosetup/scripts/products/vcredist2010.iss
new file mode 100644
index 000000000..5732fff76
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/vcredist2010.iss
@@ -0,0 +1,42 @@
+// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
+// requires Windows Installer 3.1 or later
+// requires Internet Explorer 5.01 or later
+// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
+
+[CustomMessages]
+vcredist2010_title=Visual C++ 2010 Redistributable
+
+en.vcredist2010_size=4.8 MB
+de.vcredist2010_size=4,8 MB
+
+en.vcredist2010_size_x64=5.5 MB
+de.vcredist2010_size_x64=5,5 MB
+
+en.vcredist2010_size_ia64=2.2 MB
+de.vcredist2010_size_ia64=2,2 MB
+
+;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
+en.vcredist2010_lcid=''
+de.vcredist2010_lcid='/lcid 1031 '
+
+
+[Code]
+const
+ vcredist2010_url = 'http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe';
+ vcredist2010_url_x64 = 'http://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe';
+ vcredist2010_url_ia64 = 'http://download.microsoft.com/download/3/3/A/33A75193-2CBC-424E-A886-287551FF1EB5/vcredist_IA64.exe';
+
+procedure vcredist2010();
+var
+ version: cardinal;
+begin
+ RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\' + GetString('x86', 'x64', 'ia64'), 'Install', version);
+
+ if (version <> 1) then
+ AddProduct('vcredist2010' + GetArchitectureString() + '.exe',
+ CustomMessage('vcredist2010_lcid') + '/passive /norestart',
+ CustomMessage('vcredist2010_title'),
+ CustomMessage('vcredist2010_size' + GetArchitectureString()),
+ GetString(vcredist2010_url, vcredist2010_url_x64, vcredist2010_url_ia64),
+ false, false);
+end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/wic.iss b/Greenshot/releases/innosetup/scripts/products/wic.iss
new file mode 100644
index 000000000..7dd9ed060
--- /dev/null
+++ b/Greenshot/releases/innosetup/scripts/products/wic.iss
@@ -0,0 +1,55 @@
+//requires Windows Server 2003, Windows Server 2003 R2 Datacenter Edition (32-Bit x86), Windows Server 2003 R2 Enterprise Edition (32-Bit x86), Windows Server 2003 R2 Standard Edition (32-bit x86), Windows XP Service Pack 2
+
+[CustomMessages]
+wic_title=Windows Imaging Component
+
+en.wic_size=1.2 MB
+de.wic_size=1,2 MB
+
+
+[Code]
+const
+ wic_url = 'http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_';
+ wic_url_x64 = 'http://download.microsoft.com/download/6/4/5/645fed5f-a6e7-44d9-9d10-fe83348796b0/wic_x64';
+
+function GetConvertedLanguageID(): string;
+begin
+ case ActiveLanguage() of
+ 'en': //English
+ Result := 'enu';
+ 'zh': //Chinese
+ Result := 'chs';
+ 'de': //German
+ Result := 'deu';
+ 'es': //Spanish
+ Result := 'esn';
+ 'fr': //French
+ Result := 'fra';
+ 'it': //Italian
+ Result := 'ita';
+ 'ja': //Japanese
+ Result := 'jpn';
+ 'nl': //Dutch
+ Result := 'nld';
+ 'pt': //Portuguese
+ Result := 'ptb';
+ 'ru': //Russian
+ Result := 'rus';
+ end;
+end;
+
+procedure wic();
+begin
+ if (not isIA64()) then begin
+ //only needed on Windows XP SP2 or Windows Server 2003
+ if ((exactwinversion(5, 1) and exactwinspversion(5, 1, 2)) or (exactwinversion(5, 2))) then begin
+ if (not FileExists(GetEnv('windir') + '\system32\windowscodecs.dll')) then
+ AddProduct('wic' + GetArchitectureString() + '_' + GetConvertedLanguageID() + '.exe',
+ '/q',
+ CustomMessage('wic_title'),
+ CustomMessage('wic_size'),
+ GetString(wic_url, wic_url_x64, '') + GetConvertedLanguageID() + '.exe',
+ false, false);
+ end;
+ end;
+end;
\ No newline at end of file
diff --git a/Greenshot/releases/innosetup/scripts/products/winversion.iss b/Greenshot/releases/innosetup/scripts/products/winversion.iss
index 7d3d122b6..655f7f560 100644
--- a/Greenshot/releases/innosetup/scripts/products/winversion.iss
+++ b/Greenshot/releases/innosetup/scripts/products/winversion.iss
@@ -1,7 +1,7 @@
[Code]
var
WindowsVersion: TWindowsVersion;
-
+
procedure initwinversion();
begin
GetWindowsVersionEx(WindowsVersion);
diff --git a/Greenshot/releases/innosetup/setup - 4.0.iss b/Greenshot/releases/innosetup/setup - 4.0.iss
new file mode 100644
index 000000000..1f26f8d99
--- /dev/null
+++ b/Greenshot/releases/innosetup/setup - 4.0.iss
@@ -0,0 +1,582 @@
+#define ExeName "Greenshot"
+#define Version "2.0.0.$WCREV$"
+
+[Files]
+Source: ..\..\bin\Release\Greenshot.exe; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
+Source: ..\..\bin\Release\GreenshotPlugin.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
+Source: ..\..\bin\Release\Greenshot.exe.config; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
+Source: ..\..\bin\Release\checksum.MD5; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
+;Source: ..\greenshot-defaults.ini; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion
+Source: ..\additional_files\installer.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
+Source: ..\additional_files\license.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
+Source: ..\additional_files\readme.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
+
+; Core language files
+Source: ..\..\Languages\*nl-NL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*en-US*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*de-DE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
+
+; Additional language files
+Source: ..\..\Languages\*ar-SY*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\arSY; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*cs-CZ*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\csCZ; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*da-DK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\daDK; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*de-x-franconia*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\dexfranconia; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*el-GR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\elGR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*es-ES*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\esES; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*fa-IR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\faIR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*fi-FI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\fiFI; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*fr-FR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frFR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*fr-QC*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frQC; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*he-IL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\heIL; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*hu-HU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\huHU; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*id-ID*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\idID; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*it-IT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\itIT; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*ja-JP*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\jaJP; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*ko-KR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\koKR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*lt-LT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ltLT; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*my-MM*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\myMM; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*nn-NO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\nnNO; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*pl-PL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\plPL; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*pt-BR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptBR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*pt-PT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptPT; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*ro-RO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\roRO; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*ru-RU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ruRU; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*sk-SK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\skSK; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*sl-SI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\slSI; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*sr-RS*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\srRS; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*sv-SE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\svSE; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*tr-TR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\trTR; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*uk-UA*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ukUA; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*vi-VN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\viVN; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*zh-CN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhCN; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*zh-TW*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhTW; Flags: overwritereadonly ignoreversion replacesameversion;
+
+;Office Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotOfficePlugin\GreenshotOfficePlugin.gsp; DestDir: {app}\Plugins\GreenshotOfficePlugin; Components: plugins\office; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotOfficePlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOfficePlugin; Components: plugins\office; Flags: overwritereadonly ignoreversion replacesameversion;
+;OCR Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRPlugin.gsp; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotOCRPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly ignoreversion replacesameversion;
+;JIRA Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotJiraPlugin\GreenshotJiraPlugin.gsp; DestDir: {app}\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotJiraPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly ignoreversion replacesameversion;
+;Imgur Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotImgurPlugin\GreenshotImgurPlugin.gsp; DestDir: {app}\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotImgurPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly ignoreversion replacesameversion;
+;Box Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotBoxPlugin\GreenshotBoxPlugin.gsp; DestDir: {app}\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly ignoreversion replacesameversion;
+;DropBox Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotDropBoxPlugin\GreenshotDropboxPlugin.gsp; DestDir: {app}\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotDropBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly ignoreversion replacesameversion;
+;Flickr Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotFlickrPlugin\GreenshotFlickrPlugin.gsp; DestDir: {app}\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotFlickrPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly ignoreversion replacesameversion;
+;Photobucket Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotPhotobucketPlugin\GreenshotPhotobucketPlugin.gsp; DestDir: {app}\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotPhotobucketPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly ignoreversion replacesameversion;
+;Picasa Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotPicasaPlugin\GreenshotPicasaPlugin.gsp; DestDir: {app}\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotPicasaPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly ignoreversion replacesameversion;
+;Confluence Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotConfluencePlugin\GreenshotConfluencePlugin.gsp; DestDir: {app}\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotConfluencePlugin\*; DestDir: {app}\Languages\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly ignoreversion replacesameversion;
+;ExternalCommand Plugin
+Source: ..\..\bin\Release\Plugins\GreenshotExternalCommandPlugin\GreenshotExternalCommandPlugin.gsp; DestDir: {app}\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Languages\Plugins\GreenshotExternalCommandPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly ignoreversion replacesameversion;
+;Network Import Plugin
+;Source: ..\..\bin\Release\Plugins\GreenshotNetworkImportPlugin\*; DestDir: {app}\Plugins\GreenshotNetworkImportPlugin; Components: plugins\networkimport; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+[Setup]
+; changes associations is used when the installer installs new extensions, it clears the explorer icon cache
+ChangesAssociations=yes
+AppId={#ExeName}
+AppName={#ExeName}
+AppMutex=F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08
+AppPublisher={#ExeName}
+AppPublisherURL=http://getgreenshot.org
+AppSupportURL=http://getgreenshot.org
+AppUpdatesURL=http://getgreenshot.org
+AppVerName={#ExeName} {#Version}
+AppVersion={#Version}
+ArchitecturesInstallIn64BitMode=x64
+Compression=lzma2/ultra64
+SolidCompression=yes
+DefaultDirName={code:DefDirRoot}\{#ExeName}
+DefaultGroupName={#ExeName}
+InfoBeforeFile=..\additional_files\readme.txt
+LicenseFile=..\additional_files\license.txt
+LanguageDetectionMethod=uilanguage
+MinVersion=0,5.01.2600
+OutputBaseFilename={#ExeName}-INSTALLER-{#Version}-UNSTABLE
+OutputDir=..\
+PrivilegesRequired=none
+SetupIconFile=..\..\icons\applicationIcon\icon.ico
+UninstallDisplayIcon={app}\{#ExeName}.exe
+Uninstallable=true
+VersionInfoCompany={#ExeName}
+VersionInfoProductName={#ExeName}
+VersionInfoTextVersion={#Version}
+VersionInfoVersion={#Version}
+; Reference a bitmap, max size 164x314
+WizardImageFile=installer-large.bmp
+; Reference a bitmap, max size 55x58
+WizardSmallImageFile=installer-small.bmp
+[Registry]
+; Delete all startup entries, so we don't have leftover values
+Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
+Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
+Root: HKCU32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
+Root: HKLM32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
+; Create the startup entries if requested to do so
+; HKEY_LOCAL_USER - for current user only
+Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: users-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: IsRegularUser
+; HKEY_LOCAL_MACHINE - for all users
+Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: users-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: not IsRegularUser
+; Register our own filetype for admin
+Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
+Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
+Root: HKLM; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
+Root: HKLM; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
+; Register our own filetype for normal user
+Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
+Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
+Root: HKCU; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
+Root: HKCU; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: IsRegularUser
+[Icons]
+Name: {group}\{#ExeName}; Filename: {app}\{#ExeName}.exe; WorkingDir: {app}
+Name: {group}\Uninstall {#ExeName}; Filename: {uninstallexe}; WorkingDir: {app}; AppUserModelID: "{#ExeName}.{#ExeName}"
+Name: {group}\Readme.txt; Filename: {app}\readme.txt; WorkingDir: {app}
+Name: {group}\License.txt; Filename: {app}\license.txt; WorkingDir: {app}
+[Languages]
+Name: en; MessagesFile: compiler:Default.isl
+Name: cn; MessagesFile: compiler:Languages\ChineseSimplified.isl
+Name: de; MessagesFile: compiler:Languages\German.isl
+Name: es; MessagesFile: compiler:Languages\Spanish.isl
+Name: fi; MessagesFile: compiler:Languages\Finnish.isl
+Name: fr; MessagesFile: compiler:Languages\French.isl
+Name: nl; MessagesFile: compiler:Languages\Dutch.isl
+Name: nn; MessagesFile: compiler:Languages\NorwegianNynorsk.isl
+Name: sr; MessagesFile: compiler:Languages\SerbianCyrillic.isl
+
+[Tasks]
+Name: startup; Description: {cm:startup}
+
+[CustomMessages]
+
+de.confluence=Confluence Plug-in
+de.default=Standard installation
+en.office=Microsoft Office Plug-in
+de.externalcommand=Öffne mit ein externem Kommando Plug-in
+de.imgur=Imgur Plug-in (Siehe: http://imgur.com)
+de.jira=Jira Plug-in
+de.language=Zusätzliche Sprachen
+de.ocr=OCR Plug-in (benötigt Microsoft Office Document Imaging (MODI))
+de.optimize=Optimierung der Leistung, kann etwas dauern.
+de.startgreenshot={#ExeName} starten
+de.startup={#ExeName} starten wenn Windows hochfährt
+
+en.confluence=Confluence plug-in
+en.default=Default installation
+en.office=Microsoft Office plug-in
+en.externalcommand=Open with external command plug-in
+en.imgur=Imgur plug-in (See: http://imgur.com)
+en.jira=Jira plug-in
+en.language=Additional languages
+en.ocr=OCR plug-in (needs Microsoft Office Document Imaging (MODI))
+en.optimize=Optimizing performance, this may take a while.
+en.startgreenshot=Start {#ExeName}
+en.startup=Start {#ExeName} with Windows start
+
+es.confluence=Extensión para Confluence
+es.default=${default}
+es.externalcommand=Extensión para abrir con programas externos
+es.imgur=Extensión para Imgur (Ver http://imgur.com)
+es.jira=Extensión para Jira
+es.language=Idiomas adicionales
+es.ocr=Extensión para OCR (necesita Microsoft Office Document Imaging (MODI))
+es.optimize=Optimizando rendimiento; por favor, espera.
+es.startgreenshot=Lanzar {#ExeName}
+es.startup=Lanzar {#ExeName} al iniciarse Windows
+
+fi.confluence=Confluence-liitännäinen
+fi.default=${default}
+fi.office=Microsoft-Office-liitännäinen
+fi.externalcommand=Avaa Ulkoinen komento-liitännäisellä
+fi.imgur=Imgur-liitännäinen (Katso: http://imgur.com)
+fi.jira=Jira-liitännäinen
+fi.language=Lisäkielet
+fi.ocr=OCR-liitännäinen (Tarvitaan: Microsoft Office Document Imaging (MODI))
+fi.optimize=Optimoidaan suorituskykyä, tämä voi kestää hetken.
+fi.startgreenshot=Käynnistä {#ExeName}
+fi.startup=Käynnistä {#ExeName} Windowsin käynnistyessä
+
+fr.confluence=Greffon Confluence
+fr.default=${default}
+fr.office=Greffon Microsoft Office
+fr.externalcommand=Ouvrir avec le greffon de commande externe
+fr.imgur=Greffon Imgur (Voir: http://imgur.com)
+fr.jira=Greffon Jira
+fr.language=Langues additionnelles
+fr.ocr=Greffon OCR (nécessite Document Imaging de Microsoft Office [MODI])
+fr.optimize=Optimisation des performances, Ceci peut prendre un certain temps.
+fr.startgreenshot=Démarrer {#ExeName}
+fr.startup=Lancer {#ExeName} au démarrage de Windows
+
+nl.confluence=Confluence plug-in
+nl.default=Default installation
+nl.office=Microsoft Office plug-in
+nl.externalcommand=Open met externes commando plug-in
+nl.imgur=Imgur plug-in (Zie: http://imgur.com)
+nl.jira=Jira plug-in
+nl.language=Extra talen
+nl.ocr=OCR plug-in (heeft Microsoft Office Document Imaging (MODI) nodig)
+nl.optimize=Prestaties verbeteren, kan even duren.
+nl.startgreenshot=Start {#ExeName}
+nl.startup=Start {#ExeName} wanneer Windows opstart
+
+nn.confluence=Confluence-tillegg
+nn.default=Default installation
+nn.office=Microsoft Office Tillegg
+nn.externalcommand=Tillegg for å opne med ekstern kommando
+nn.imgur=Imgur-tillegg (sjå http://imgur.com)
+nn.jira=Jira-tillegg
+nn.language=Andre språk
+nn.ocr=OCR-tillegg (krev Microsoft Office Document Imaging (MODI))
+nn.optimize=Optimaliserar ytelse, dette kan ta litt tid...
+nn.startgreenshot=Start {#ExeName}
+nn.startup=Start {#ExeName} når Windows startar
+
+sr.confluence=Прикључак за Конфлуенс
+sr.default=${default}
+sr.externalcommand=Отвори са прикључком за спољне наредбе
+sr.imgur=Прикључак за Имиџер (http://imgur.com)
+sr.jira=Прикључак за Џиру
+sr.language=Додатни језици
+sr.ocr=OCR прикључак (захтева Microsoft Office Document Imaging (MODI))
+sr.optimize=Оптимизујем перформансе…
+sr.startgreenshot=Покрени Гриншот
+sr.startup=Покрени програм са системом
+
+cn.confluence=Confluence插件
+cn.default=${default}
+cn.externalcommand=使用外部命令打开插件
+cn.imgur=Imgur插件( (请访问: http://imgur.com))
+cn.jira=Jira插件
+cn.language=其它语言
+cn.ocr=OCR插件(需要Microsoft Office Document Imaging (MODI)的支持)
+cn.optimize=正在优化性能,这可能需要一点时间。
+cn.startgreenshot=启动{#ExeName}
+cn.startup=让{#ExeName}随Windows一起启动
+
+
+[Types]
+Name: "default"; Description: "{cm:default}"
+Name: "full"; Description: "{code:FullInstall}"
+Name: "compact"; Description: "{code:CompactInstall}"
+Name: "custom"; Description: "{code:CustomInstall}"; Flags: iscustom
+
+[Components]
+Name: "greenshot"; Description: "Greenshot"; Types: default full compact custom; Flags: fixed
+Name: "plugins\office"; Description: {cm:office}; Types: default full custom; Flags: disablenouninstallwarning
+Name: "plugins\ocr"; Description: {cm:ocr}; Types: default full custom; Flags: disablenouninstallwarning
+Name: "plugins\jira"; Description: {cm:jira}; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\imgur"; Description: {cm:imgur}; Types: default full custom; Flags: disablenouninstallwarning
+Name: "plugins\confluence"; Description: {cm:confluence}; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\externalcommand"; Description: {cm:externalcommand}; Types: default full custom; Flags: disablenouninstallwarning
+;Name: "plugins\networkimport"; Description: "Network Import Plugin"; Types: full
+Name: "plugins\box"; Description: "Box Plugin"; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\dropbox"; Description: "Dropbox Plugin"; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\flickr"; Description: "Flickr Plugin"; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\picasa"; Description: "Picasa Plugin"; Types: full custom; Flags: disablenouninstallwarning
+Name: "plugins\photobucket"; Description: "Photobucket Plugin"; Types: full custom; Flags: disablenouninstallwarning
+Name: "languages"; Description: {cm:language}; Types: full custom; Flags: disablenouninstallwarning
+Name: "languages\arSY"; Description: "العربية"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
+Name: "languages\csCZ"; Description: "Ceština"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\daDK"; Description: "Dansk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\dexfranconia"; Description: "Frängisch (Deutsch)"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\elGR"; Description: "ελληνικά"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('4')
+Name: "languages\esES"; Description: "Español"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\faIR"; Description: "پارسی"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
+Name: "languages\fiFI"; Description: "Suomi"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\frFR"; Description: "Français"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\frQC"; Description: "Français - Québec"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\heIL"; Description: "עִבְרִית"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('c')
+Name: "languages\huHU"; Description: "Magyar"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
+Name: "languages\idID"; Description: "Bahasa Indonesia"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\itIT"; Description: "Italiano"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\jaJP"; Description: "日本語"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('7')
+Name: "languages\koKR"; Description: "한국의"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
+Name: "languages\ltLT"; Description: "Lietuvių"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
+Name: "languages\myMM"; Description: "မြန်မာစာ"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('b')
+Name: "languages\nnNO"; Description: "Nynorsk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\plPL"; Description: "Polski"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
+Name: "languages\ptBR"; Description: "Português do Brasil"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\ptPT"; Description: "Português de Portugal"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\ruRU"; Description: "Pусский"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
+Name: "languages\roRO"; Description: "Română"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
+Name: "languages\skSK"; Description: "Slovenčina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
+Name: "languages\slSI"; Description: "Slovenščina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
+Name: "languages\srRS"; Description: "Српски"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
+Name: "languages\svSE"; Description: "Svenska"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\trTR"; Description: "Türk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('6')
+Name: "languages\ukUA"; Description: "Українська"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
+Name: "languages\viVN"; Description: "Việt"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('e')
+Name: "languages\zhCN"; Description: "简体中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('a')
+Name: "languages\zhTW"; Description: "繁體中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('9')
+[Code]
+// Do we have a regular user trying to install this?
+function IsRegularUser(): Boolean;
+begin
+ Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
+end;
+
+// The following code is used to select the installation path, this is localappdata if non poweruser
+function DefDirRoot(Param: String): String;
+begin
+ if IsRegularUser then
+ Result := ExpandConstant('{localappdata}')
+ else
+ Result := ExpandConstant('{pf}')
+end;
+
+
+function FullInstall(Param : String) : String;
+begin
+ result := SetupMessage(msgFullInstallation);
+end;
+
+function CustomInstall(Param : String) : String;
+begin
+ result := SetupMessage(msgCustomInstallation);
+end;
+
+function CompactInstall(Param : String) : String;
+begin
+ result := SetupMessage(msgCompactInstallation);
+end;
+/////////////////////////////////////////////////////////////////////
+// The following uninstall code was found at:
+// http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version
+// and than modified to work in a 32/64 bit environment
+/////////////////////////////////////////////////////////////////////
+function GetUninstallStrings(): array of String;
+var
+ sUnInstPath: String;
+ sUnInstallString: String;
+ asUninstallStrings : array of String;
+ index : Integer;
+begin
+ sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
+ sUnInstallString := '';
+ index := 0;
+
+ // Retrieve uninstall string from HKLM32 or HKCU32
+ if RegQueryStringValue(HKLM32, sUnInstPath, 'UninstallString', sUnInstallString) then
+ begin
+ SetArrayLength(asUninstallStrings, index + 1);
+ asUninstallStrings[index] := sUnInstallString;
+ index := index +1;
+ end;
+
+ if RegQueryStringValue(HKCU32, sUnInstPath, 'UninstallString', sUnInstallString) then
+ begin
+ SetArrayLength(asUninstallStrings, index + 1);
+ asUninstallStrings[index] := sUnInstallString;
+ index := index +1;
+ end;
+
+ // Only for Windows with 64 bit support: Retrieve uninstall string from HKLM64 or HKCU64
+ if IsWin64 then
+ begin
+ if RegQueryStringValue(HKLM64, sUnInstPath, 'UninstallString', sUnInstallString) then
+ begin
+ SetArrayLength(asUninstallStrings, index + 1);
+ asUninstallStrings[index] := sUnInstallString;
+ index := index +1;
+ end;
+
+ if RegQueryStringValue(HKCU64, sUnInstPath, 'UninstallString', sUnInstallString) then
+ begin
+ SetArrayLength(asUninstallStrings, index + 1);
+ asUninstallStrings[index] := sUnInstallString;
+ index := index +1;
+ end;
+ end;
+ Result := asUninstallStrings;
+end;
+
+/////////////////////////////////////////////////////////////////////
+procedure UnInstallOldVersions();
+var
+ sUnInstallString: String;
+ index: Integer;
+ isUninstallMade: Boolean;
+ iResultCode : Integer;
+ asUninstallStrings : array of String;
+begin
+ isUninstallMade := false;
+ asUninstallStrings := GetUninstallStrings();
+ for index := 0 to (GetArrayLength(asUninstallStrings) -1) do
+ begin
+ sUnInstallString := RemoveQuotes(asUninstallStrings[index]);
+ if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
+ isUninstallMade := true;
+ end;
+
+ // Wait a few seconds to prevent installation issues, otherwise files are removed in one process while the other tries to link to them
+ if (isUninstallMade) then
+ Sleep(2000);
+end;
+
+/////////////////////////////////////////////////////////////////////
+procedure CurStepChanged(CurStep: TSetupStep);
+begin
+ if (CurStep=ssInstall) then
+ begin
+ UnInstallOldVersions();
+ end;
+end;
+/////////////////////////////////////////////////////////////////////
+// End of unstall code
+/////////////////////////////////////////////////////////////////////
+
+// Build a list of greenshot parameters from the supplied installer parameters
+function GetParamsForGS(argument: String): String;
+var
+ i: Integer;
+ parametersString: String;
+ currentParameter: String;
+ foundStart: Boolean;
+ foundNoRun: Boolean;
+ foundLanguage: Boolean;
+begin
+ foundNoRun := false;
+ foundLanguage := false;
+ foundStart := false;
+ for i:= 0 to ParamCount() do begin
+ currentParameter := ParamStr(i);
+
+ // check if norun is supplied
+ if Lowercase(currentParameter) = '/norun' then begin
+ foundNoRun := true;
+ continue;
+ end;
+
+ if foundStart then begin
+ parametersString := parametersString + ' ' + currentParameter;
+ foundStart := false;
+ end
+ else begin
+ if Lowercase(currentParameter) = '/language' then begin
+ foundStart := true;
+ foundLanguage := true;
+ parametersString := parametersString + ' ' + currentParameter;
+ end;
+ end;
+ end;
+ if not foundLanguage then begin
+ parametersString := parametersString + ' /language ' + ExpandConstant('{language}');
+ end;
+ if foundNoRun then begin
+ parametersString := parametersString + ' /norun';
+ end;
+ // For debugging comment out the following
+ //MsgBox(parametersString, mbInformation, MB_OK);
+
+ Result := parametersString;
+end;
+
+// Check if language group is installed
+function hasLanguageGroup(argument: String): Boolean;
+var
+ keyValue: String;
+ returnValue: Boolean;
+begin
+ returnValue := true;
+ if (RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Nls\Language Groups', argument, keyValue)) then begin
+ if Length(keyValue) = 0 then begin
+ returnValue := false;
+ end;
+ end;
+ Result := returnValue;
+end;
+
+function hasDotNet(version: string; service: cardinal): Boolean;
+// Indicates whether the specified version and service pack of the .NET Framework is installed.
+//
+// version -- Specify one of these strings for the required .NET Framework version:
+// 'v1.1.4322' .NET Framework 1.1
+// 'v2.0.50727' .NET Framework 2.0
+// 'v3.0' .NET Framework 3.0
+// 'v3.5' .NET Framework 3.5
+// 'v4\Client' .NET Framework 4.0 Client Profile
+// 'v4\Full' .NET Framework 4.0 Full Installation
+//
+// service -- Specify any non-negative integer for the required service pack level:
+// 0 No service packs required
+// 1, 2, etc. Service pack 1, 2, etc. required
+var
+ key: string;
+ install, serviceCount: cardinal;
+ success: boolean;
+begin
+ key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
+ // .NET 3.0 uses value InstallSuccess in subkey Setup
+ if Pos('v3.0', version) = 1 then begin
+ success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
+ end else begin
+ success := RegQueryDWordValue(HKLM, key, 'Install', install);
+ end;
+ // .NET 4.0 uses value Servicing instead of SP
+ if Pos('v4', version) = 1 then begin
+ success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
+ end else begin
+ success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
+ end;
+ result := success and (install = 1) and (serviceCount >= service);
+end;
+
+function hasDotNet40() : boolean;
+begin
+ Result := hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0);
+end;
+
+function getNGENPath(argument: String) : String;
+var
+ installPath: string;
+begin
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Client', 'InstallPath', installPath) then begin
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Full', 'InstallPath', installPath) then begin
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
+ // 3.5 doesn't have NGEN and is using the .net 2.0 installation
+ installPath := ExpandConstant('{dotnet20}');
+ end;
+ end;
+ end;
+ end;
+ Result := installPath;
+end;
+
+// Initialize the setup
+function InitializeSetup(): Boolean;
+begin
+ // Only check for 2.0 and install if we don't have .net 3.5 or higher
+ if not hasDotNet40() then
+ begin
+ end;
+ Result := true;
+end;
+[Run]
+Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\{#ExeName}.exe"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
+Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\GreenshotPlugin.dll"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
+Filename: "{app}\{#ExeName}.exe"; Description: "{cm:startgreenshot}"; Parameters: "{code:GetParamsForGS}"; WorkingDir: "{app}"; Flags: nowait postinstall runasoriginaluser
+Filename: "http://getgreenshot.org/thank-you/?language={language}&version={#Version}"; Flags: shellexec runasoriginaluser
+
+[InstallDelete]
+Name: {app}; Type: filesandordirs;
+
+[UninstallRun]
+Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\{#ExeName}.exe"""; StatusMsg: "Cleanup"; Flags: runhidden
+Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\GreenshotPlugin.dll"""; StatusMsg: "Cleanup"; Flags: runhidden
diff --git a/Greenshot/releases/innosetup/setup.iss b/Greenshot/releases/innosetup/setup.iss
index 90a4b4d9c..f8d31706f 100644
--- a/Greenshot/releases/innosetup/setup.iss
+++ b/Greenshot/releases/innosetup/setup.iss
@@ -1,16 +1,16 @@
#define ExeName "Greenshot"
-#define Version "1.1.4.$WCREV$"
+#define Version "1.1.6.$WCREV$"
-; Include the scripts to install .NET Framework 2.0
+; Include the scripts to install .NET Framework
; See http://www.codeproject.com/KB/install/dotnetfx_innosetup_instal.aspx
#include "scripts\products.iss"
+#include "scripts\products\stringversion.iss"
#include "scripts\products\winversion.iss"
#include "scripts\products\fileversion.iss"
#include "scripts\products\msi20.iss"
#include "scripts\products\msi31.iss"
-#include "scripts\products\dotnetfx20.iss"
-#include "scripts\products\dotnetfx20sp1.iss"
-#include "scripts\products\dotnetfx20sp2.iss"
+#include "scripts\products\dotnetfxversion.iss"
+#include "scripts\products\dotnetfx35sp1.iss"
[Files]
Source: ..\..\bin\Release\Greenshot.exe; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
@@ -36,6 +36,7 @@ Source: ..\..\Languages\*da-DK*; Excludes: "*installer*,*website*"; DestDir: {ap
Source: ..\..\Languages\*de-x-franconia*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\dexfranconia; Flags: overwritereadonly ignoreversion replacesameversion;
Source: ..\..\Languages\*el-GR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\elGR; Flags: overwritereadonly ignoreversion replacesameversion;
Source: ..\..\Languages\*es-ES*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\esES; Flags: overwritereadonly ignoreversion replacesameversion;
+Source: ..\..\Languages\*et-EE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\etEE; Flags: overwritereadonly ignoreversion replacesameversion;
Source: ..\..\Languages\*fa-IR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\faIR; Flags: overwritereadonly ignoreversion replacesameversion;
Source: ..\..\Languages\*fi-FI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\fiFI; Flags: overwritereadonly ignoreversion replacesameversion;
Source: ..\..\Languages\*fr-FR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frFR; Flags: overwritereadonly ignoreversion replacesameversion;
@@ -68,6 +69,7 @@ Source: ..\..\bin\Release\Plugins\GreenshotOfficePlugin\GreenshotOfficePlugin.gs
;OCR Plugin
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRPlugin.gsp; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
+Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe.config; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
Source: ..\..\bin\Release\Languages\Plugins\GreenshotOCRPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly ignoreversion replacesameversion;
;JIRA Plugin
Source: ..\..\bin\Release\Plugins\GreenshotJiraPlugin\GreenshotJiraPlugin.gsp; DestDir: {app}\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
@@ -149,11 +151,7 @@ Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: "
Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
Root: HKLM; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
Root: HKLM; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
-; Register our own filetype for normal user
-Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
-Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
-Root: HKCU; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
-Root: HKCU; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: IsRegularUser
+
[Icons]
Name: {group}\{#ExeName}; Filename: {app}\{#ExeName}.exe; WorkingDir: {app}
Name: {group}\Uninstall {#ExeName}; Filename: {uninstallexe}; WorkingDir: {app}; AppUserModelID: "{#ExeName}.{#ExeName}"
@@ -169,6 +167,7 @@ Name: fr; MessagesFile: compiler:Languages\French.isl
Name: nl; MessagesFile: compiler:Languages\Dutch.isl
Name: nn; MessagesFile: compiler:Languages\NorwegianNynorsk.isl
Name: sr; MessagesFile: compiler:Languages\SerbianCyrillic.isl
+Name: uk; MessagesFile: compiler:Languages\Ukrainian.isl
[Tasks]
Name: startup; Description: {cm:startup}
@@ -269,6 +268,17 @@ sr.optimize=Оптимизујем перформансе…
sr.startgreenshot=Покрени Гриншот
sr.startup=Покрени програм са системом
+uk.confluence=Плагін Confluence
+uk.default=${default}
+uk.externalcommand=Відкрити з плагіном зовнішніх команд
+uk.imgur=Плагін Imgur (див.: http://imgur.com)
+uk.jira=Плагін Jira
+uk.language=Додаткові мови
+uk.ocr=Плагін OCR (потребує Microsoft Office Document Imaging (MODI))
+uk.optimize=Оптимізація продуктивності, це може забрати час.
+uk.startgreenshot=Запустити {#ExeName}
+uk.startup=Запускати {#ExeName} під час запуску Windows
+
cn.confluence=Confluence插件
cn.default=${default}
cn.externalcommand=使用外部命令打开插件
@@ -308,6 +318,7 @@ Name: "languages\daDK"; Description: "Dansk"; Types: full custom; Flags: disable
Name: "languages\dexfranconia"; Description: "Frängisch (Deutsch)"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
Name: "languages\elGR"; Description: "ελληνικά"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('4')
Name: "languages\esES"; Description: "Español"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
+Name: "languages\etEE"; Description: "Eesti"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
Name: "languages\faIR"; Description: "پارسی"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
Name: "languages\fiFI"; Description: "Suomi"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
Name: "languages\frFR"; Description: "Français"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
@@ -512,73 +523,25 @@ begin
Result := returnValue;
end;
-function hasDotNet(version: string; service: cardinal): Boolean;
-// Indicates whether the specified version and service pack of the .NET Framework is installed.
-//
-// version -- Specify one of these strings for the required .NET Framework version:
-// 'v1.1.4322' .NET Framework 1.1
-// 'v2.0.50727' .NET Framework 2.0
-// 'v3.0' .NET Framework 3.0
-// 'v3.5' .NET Framework 3.5
-// 'v4\Client' .NET Framework 4.0 Client Profile
-// 'v4\Full' .NET Framework 4.0 Full Installation
-//
-// service -- Specify any non-negative integer for the required service pack level:
-// 0 No service packs required
-// 1, 2, etc. Service pack 1, 2, etc. required
-var
- key: string;
- install, serviceCount: cardinal;
- success: boolean;
+function hasDotNet() : boolean;
begin
- key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
- // .NET 3.0 uses value InstallSuccess in subkey Setup
- if Pos('v3.0', version) = 1 then begin
- success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
- end else begin
- success := RegQueryDWordValue(HKLM, key, 'Install', install);
- end;
- // .NET 4.0 uses value Servicing instead of SP
- if Pos('v4', version) = 1 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
- end else begin
- success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
- end;
- result := success and (install = 1) and (serviceCount >= service);
-end;
-
-function hasDotNet20() : boolean;
-begin
- Result := hasDotNet('v2.0.50727',0);
-end;
-
-function hasDotNet40() : boolean;
-begin
- Result := hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0);
+ // .NET 4.5 = 4.0 full (with a "Release" key, but this is not interresting!)
+ Result := netfxinstalled(NetFX20, '') or netfxinstalled(NetFX30, '') or netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Client, '') or netfxinstalled(NetFX40Full, '');
end;
function hasDotNet35FullOrHigher() : boolean;
begin
- Result := hasDotNet('v3.5',0) or hasDotNet('v4\Full',0) or hasDotNet('4.5\Full',0);
-end;
-
-function hasDotNet35OrHigher() : boolean;
-begin
- Result := hasDotNet('v3.5',0) or hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0) or hasDotNet('4.5\Client',0) or hasDotNet('4.5\Full',0);
+ Result := netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Full, '');
end;
function getNGENPath(argument: String) : String;
var
installPath: string;
begin
- if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Client', 'InstallPath', installPath) then begin
- if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Full', 'InstallPath', installPath) then begin
- if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
- if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
- // 3.5 doesn't have NGEN and is using the .net 2.0 installation
- installPath := ExpandConstant('{dotnet20}');
- end;
- end;
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
+ if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
+ // 3.5 doesn't have NGEN and is using the .net 2.0 installation
+ installPath := ExpandConstant('{dotnet20}');
end;
end;
Result := installPath;
@@ -587,24 +550,15 @@ end;
// Initialize the setup
function InitializeSetup(): Boolean;
begin
- // Only check for 2.0 and install if we don't have .net 3.5 or higher
- if not hasDotNet35OrHigher() then
+ // Check for .NET and install 3.5 if we don't have it
+ if not hasDotNet() then
begin
- // Enhance installer otherwise .NET installations won't work
+ // Enhance installer, if needed, otherwise .NET installations won't work
msi20('2.0');
msi31('3.0');
- //install .netfx 2.0 sp2 if possible; if not sp1 if possible; if not .netfx 2.0
- if minwinversion(5, 1) then begin
- dotnetfx20sp2();
- end else begin
- if minwinversion(5, 0) and minwinspversion(5, 0, 4) then begin
- // kb835732();
- dotnetfx20sp1();
- end else begin
- dotnetfx20();
- end;
- end;
+ //install .net 3.5
+ dotnetfx35sp1();
end;
Result := true;
end;
diff --git a/Greenshot/releases/package_zip.bat b/Greenshot/releases/package_zip.bat
index 03a0efeb6..4343a2657 100644
--- a/Greenshot/releases/package_zip.bat
+++ b/Greenshot/releases/package_zip.bat
@@ -23,6 +23,6 @@ del /s *.bak
del /s *installer*.xml
del /s *website*.xml
del /s *template.txt
-..\..\tools\7zip\7za.exe a -x!.SVN -r ..\Greenshot-NO-INSTALLER-1.1.4.$WCREV$.zip *
+..\..\tools\7zip\7za.exe a -x!.SVN -r ..\Greenshot-NO-INSTALLER-1.1.6.$WCREV$.zip *
cd ..
rmdir /s /q NO-INSTALLER
diff --git a/Greenshot/tools/FileVerifier++/COPYING.TXT b/Greenshot/tools/FileVerifier++/COPYING.TXT
deleted file mode 100644
index b8602677e..000000000
--- a/Greenshot/tools/FileVerifier++/COPYING.TXT
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/Greenshot/tools/FileVerifier++/Modules/md.dll b/Greenshot/tools/FileVerifier++/Modules/md.dll
deleted file mode 100644
index 37cf0bf9e..000000000
Binary files a/Greenshot/tools/FileVerifier++/Modules/md.dll and /dev/null differ
diff --git a/Greenshot/tools/FileVerifier++/Modules/sha.dll b/Greenshot/tools/FileVerifier++/Modules/sha.dll
deleted file mode 100644
index 7ccc0de79..000000000
Binary files a/Greenshot/tools/FileVerifier++/Modules/sha.dll and /dev/null differ
diff --git a/Greenshot/tools/FileVerifier++/fvc.exe b/Greenshot/tools/FileVerifier++/fvc.exe
deleted file mode 100644
index 3fc96e592..000000000
Binary files a/Greenshot/tools/FileVerifier++/fvc.exe and /dev/null differ
diff --git a/Greenshot/tools/FileVerifier++/libexpatw.dll b/Greenshot/tools/FileVerifier++/libexpatw.dll
deleted file mode 100644
index 03f970273..000000000
Binary files a/Greenshot/tools/FileVerifier++/libexpatw.dll and /dev/null differ
diff --git a/Greenshot/tools/FileVerifier++/mingwm10.dll b/Greenshot/tools/FileVerifier++/mingwm10.dll
deleted file mode 100644
index 572f88860..000000000
Binary files a/Greenshot/tools/FileVerifier++/mingwm10.dll and /dev/null differ
diff --git a/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini b/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini
index ff6dbb680..694557244 100644
--- a/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini
+++ b/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini
@@ -8,7 +8,7 @@ AppID=PortableApps.comInstaller
Publisher=PortableApps.com
Homepage=PortableApps.com/go/PortableApps.comInstaller
Category=Development
-Description=Create PortableApps.com Format installers for portable apps
+Description=PortableApps.com Format installer creator
Language=Multilingual
[License]
@@ -18,8 +18,8 @@ Freeware=true
CommercialUse=true
[Version]
-PackageVersion=3.0.5.0
-DisplayVersion=3.0.5
+PackageVersion=3.0.6.0
+DisplayVersion=3.0.6
[Control]
Icons=1
diff --git a/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi b/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi
index 2de8cff02..a6e80f7f3 100644
--- a/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi
+++ b/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi
@@ -1,4 +1,4 @@
-;Copyright 2007-2012 John T. Haller of PortableApps.com
+;Copyright 2007-2013 John T. Haller of PortableApps.com
;Website: http://PortableApps.com/
;This software is OSI Certified Open Source Software.
@@ -24,8 +24,8 @@
;as published at PortableApps.com/development. It may also be used with commercial
;software by contacting PortableApps.com.
-!define PORTABLEAPPSINSTALLERVERSION "3.0.5.0"
-!define PORTABLEAPPS.COMFORMATVERSION "3.0.5"
+!define PORTABLEAPPSINSTALLERVERSION "3.0.6.0"
+!define PORTABLEAPPS.COMFORMATVERSION "3.0.6"
!if ${__FILE__} == "PortableApps.comInstallerPlugin.nsi"
!include PortableApps.comInstallerPluginConfig.nsh
@@ -279,6 +279,7 @@ Var MINIMIZEINSTALLER
Var DOWNLOADEDFILE
Var DOWNLOADALREADYEXISTED
Var SECONDDOWNLOADATTEMPT
+ Var DownloadURLActual
!endif
Var INTERNALEULAVERSION
Var InstallingStatusString
@@ -908,6 +909,7 @@ FunctionEnd
${If} $DOWNLOADALREADYEXISTED == "true"
StrCpy $DOWNLOADEDFILE "$EXEDIR\${DownloadFileName}"
${Else}
+ StrCpy $DownloadURLActual ${DownloadURL}
DownloadTheFile:
CreateDirectory `$PLUGINSDIR\Downloaded`
SetDetailsPrint both
@@ -922,9 +924,9 @@ FunctionEnd
Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
${If} $(downloading) != ""
- inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE $(downloading) $(downloadconnecting) $(downloadsecond) $(downloadminute) $(downloadhour) $(downloadplural) "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s $(downloadremaining))" "${DownloadURL}" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
+ inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE $(downloading) $(downloadconnecting) $(downloadsecond) $(downloadminute) $(downloadhour) $(downloadplural) "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s $(downloadremaining))" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
${Else}
- inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE "Downloading %s..." "Connecting..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s remaining)" "${DownloadURL}" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
+ inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE "Downloading %s..." "Connecting..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s remaining)" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
${EndIf}
SetDetailsPrint both
DetailPrint $InstallingStatusString
@@ -961,13 +963,22 @@ FunctionEnd
${EndIf}
!endif
${Else}
+ Delete "$INTERNET_CACHE\${DownloadFileName}"
+ Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
+ StrCpy $0 $DownloadURLActual
+
+ ;Use backup PA.c download server if necessary
+ ${WordFind} "$DownloadURLActual" "http://download2.portableapps.com" "#" $R0
+ ${If} $R0 == 1
+ ${WordReplace} "$DownloadURLActual" "http://download2.portableapps.com" "http://download.portableapps.com" "+" $DownloadURLActual
+ Goto DownloadTheFile
+ ${EndIf}
+
${If} $SECONDDOWNLOADATTEMPT != true
${AndIf} $DOWNLOADRESULT != "Cancelled"
StrCpy $SECONDDOWNLOADATTEMPT true
Goto DownloadTheFile
${EndIf}
- Delete "$INTERNET_CACHE\${DownloadFileName}"
- Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
SetDetailsPrint textonly
DetailPrint ""
SetDetailsPrint listonly
diff --git a/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi b/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi
index aef2f70a5..6432f87a6 100644
--- a/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi
+++ b/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi
@@ -1,4 +1,4 @@
-;Copyright (C) 2006-2012 John T. Haller
+;Copyright (C) 2006-2013 John T. Haller
;Website: http://PortableApps.com/Installer
@@ -20,9 +20,9 @@
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
!define APPNAME "PortableApps.com Installer"
-!define VER "3.0.5.0"
+!define VER "3.0.6.0"
!define WEBSITE "PortableApps.com/Installer"
-!define FRIENDLYVER "3.0.5"
+!define FRIENDLYVER "3.0.6"
!define PORTABLEAPPS.COMFORMATVERSION "3.0"
;=== Program Details
diff --git a/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe b/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe
index 872c545e5..ce6cb438a 100644
Binary files a/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe and b/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe differ
diff --git a/Greenshot/tools/TortoiseSVN/CyrusSASL License.txt b/Greenshot/tools/TortoiseSVN/CyrusSASL License.txt
deleted file mode 100644
index e65eccc23..000000000
--- a/Greenshot/tools/TortoiseSVN/CyrusSASL License.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-/* CMU libsasl
- * Tim Martin
- * Rob Earhart
- * Rob Siemborski
- */
-/*
- * Copyright (c) 1998-2003 Carnegie Mellon University. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The name "Carnegie Mellon University" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For permission or any other legal
- * details, please contact
- * Office of Technology Transfer
- * Carnegie Mellon University
- * 5000 Forbes Avenue
- * Pittsburgh, PA 15213-3890
- * (412) 268-4387, fax: (412) 268-7395
- * tech-transfer@andrew.cmu.edu
- *
- * 4. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by Computing Services
- * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
- *
- * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
- * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
diff --git a/Greenshot/tools/TortoiseSVN/OpenSSL License.txt b/Greenshot/tools/TortoiseSVN/OpenSSL License.txt
deleted file mode 100644
index fc99aac29..000000000
--- a/Greenshot/tools/TortoiseSVN/OpenSSL License.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core@openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
diff --git a/Greenshot/tools/TortoiseSVN/SubWCRev.exe b/Greenshot/tools/TortoiseSVN/SubWCRev.exe
deleted file mode 100644
index 06a6bba03..000000000
Binary files a/Greenshot/tools/TortoiseSVN/SubWCRev.exe and /dev/null differ
diff --git a/Greenshot/tools/TortoiseSVN/Subversion license.txt b/Greenshot/tools/TortoiseSVN/Subversion license.txt
deleted file mode 100644
index 6b0f0fe25..000000000
--- a/Greenshot/tools/TortoiseSVN/Subversion license.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ================================================================
- * Copyright (c) 2000-2009 CollabNet. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by
- * CollabNet (http://www.Collab.Net/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The hosted project names must not be used to endorse or promote
- * products derived from this software without prior written
- * permission. For written permission, please contact info@collab.net.
- *
- * 5. Products derived from this software may not use the "Tigris" name
- * nor may "Tigris" appear in their names without prior written
- * permission of CollabNet.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of CollabNet.
- */
diff --git a/Greenshot/tools/TortoiseSVN/TortoiseSVN License.txt b/Greenshot/tools/TortoiseSVN/TortoiseSVN License.txt
deleted file mode 100644
index 36488d586..000000000
--- a/Greenshot/tools/TortoiseSVN/TortoiseSVN License.txt
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/Greenshot/tools/TortoiseSVN/intl3_tsvn.dll b/Greenshot/tools/TortoiseSVN/intl3_tsvn.dll
deleted file mode 100644
index 68b4fe785..000000000
Binary files a/Greenshot/tools/TortoiseSVN/intl3_tsvn.dll and /dev/null differ
diff --git a/Greenshot/tools/TortoiseSVN/libapr_tsvn.dll b/Greenshot/tools/TortoiseSVN/libapr_tsvn.dll
deleted file mode 100644
index ed48ac1ae..000000000
Binary files a/Greenshot/tools/TortoiseSVN/libapr_tsvn.dll and /dev/null differ
diff --git a/Greenshot/tools/TortoiseSVN/libaprutil_tsvn.dll b/Greenshot/tools/TortoiseSVN/libaprutil_tsvn.dll
deleted file mode 100644
index 79d44a1e7..000000000
Binary files a/Greenshot/tools/TortoiseSVN/libaprutil_tsvn.dll and /dev/null differ
diff --git a/Greenshot/tools/innosetup/Languages/ChineseSimplified.isl b/Greenshot/tools/innosetup/Languages/ChineseSimplified.isl
index 9d87537cb..9cf26394d 100644
--- a/Greenshot/tools/innosetup/Languages/ChineseSimplified.isl
+++ b/Greenshot/tools/innosetup/Languages/ChineseSimplified.isl
@@ -1,336 +1,336 @@
-; *** Inno Setup version 5.5.0+ Chinese (Simplified) messages ***
-; by Mack Zhang (hua_wuxin@21cn.com)
-;
-; To download user-contributed translations of this file, go to:
-; http://www.jrsoftware.org/files/istrans/
-;
-; Note: When translating this text, do not add periods (.) to the end of
-; messages that didn't have them already, because on those messages Inno
-; Setup adds the periods automatically (appending a period would result in
-; two periods being displayed).
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=<4E2D><6587><7B80><4F53>
-LanguageID=$0804
-LanguageCodePage=936
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-DialogFontName=
-DialogFontSize=9
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; *** Application titles
-SetupAppTitle=װ
-SetupWindowTitle=װ - %1
-UninstallAppTitle=ж
-UninstallAppFullTitle=%1 ж
-
-; *** Misc. common
-InformationTitle=Ϣ
-ConfirmTitle=ȷ
-ErrorTitle=
-
-; *** SetupLdr messages
-SetupLdrStartupMessage=װĵϰװ %1ȷҪ
-LdrCannotCreateTemp=ʱļװֹ
-LdrCannotExecTemp=ʱļеļװֹ
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%n %2%3
-SetupFileMissing=װļȱļ %1ȡ°汾
-SetupFileCorrupt=װļȡ°汾
-SetupFileCorruptOrWrongVer=װļ뱾װİ汾ݡȡ°汾
-InvalidParameter=һIJݵУ%n%n%1
-SetupAlreadyRunning=װѾС
-WindowsVersionNotSupported=֧ĵе Windows 汾
-WindowsServicePackRequired=Ҫ %1 Service Pack %2 µİ汾
-NotOnThisPlatform= %1 С
-OnlyOnThisPlatform= %1 С
-OnlyOnTheseArchitectures=ֻܰװΪдܹƵ Windows 汾У%n%n%1
-MissingWOW64APIs=ǰ Windows 汾ûаִ 64 λװĺҪ⣬밲װ Service Pack %1
-WinVersionTooLowError=Ҫ %1 v%2 ߰汾
-WinVersionTooHighError=ܰװ %1 v%2 ߰汾ϡ
-AdminPrivilegesRequired=װʱԹԱݵ¼
-PowerUserPrivilegesRequired=װʱԹԱ Power Users Աݵ¼
-SetupAppRunningError=װ %1 С%n%nرʵȻȷȡ˳
-UninstallAppRunningError=ж %1 С%n%nرʵȻȷȡ˳
-
-; *** Misc. errors
-ErrorCreatingDir=װļС%1
-ErrorTooManyFilesInDir=ļС%1дļΪ̫ļ
-
-; *** Setup common messages
-ExitSetupTitle=˳װ
-ExitSetupMessage=װδɡ˳ᰲװ%n%nʱаװɰװ%n%n˳װ
-AboutSetupMenuItem=ڰװ(&A)
-AboutSetupTitle=ڰװ
-AboutSetupMessage=%1 汾 %2%n%3%n%n%1 ҳ%n%4
-AboutSetupNote=
-TranslatorNote=
-
-; *** Buttons
-ButtonBack=< һ(&B)
-ButtonNext=һ(&N) >
-ButtonInstall=װ(&I)
-ButtonOK=ȷ
-ButtonCancel=ȡ
-ButtonYes=(&Y)
-ButtonYesToAll=ȫ(&A)
-ButtonNo=(&N)
-ButtonNoToAll=ȫ(&O)
-ButtonFinish=(&F)
-ButtonBrowse=(&B)
-ButtonWizardBrowse=(&R)
-ButtonNewFolder=ļ(&M)
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=ѡװ
-SelectLanguageLabel=ѡװڼҪʹõԣ
-
-; *** Common wizard text
-ClickNext=һȡ˳װ
-BeveledLabel=
-BrowseDialogTitle=ļ
-BrowseDialogLabel=ѡһļУȻȷ
-NewFolderName=½ļ
-
-; *** "Welcome" wizard page
-WelcomeLabel1=ӭʹ [name] װ
-WelcomeLabel2=װĵϰװ [name/ver]%n%nڼ֮ǰرӦó
-
-; *** "Password" wizard page
-WizardPassword=
-PasswordLabel1=װ뱣
-PasswordLabel3=룬ȻһһִСд
-PasswordEditLabel=(&P)
-IncorrectPassword=벻ȷԡ
-
-; *** "License Agreement" wizard page
-WizardLicense=Э
-LicenseLabel=ڼ֮ǰĶҪϢ
-LicenseLabel3=ĶЭ顣ڼװ֮ǰܴЭ
-LicenseAccepted=ҽЭ(&A)
-LicenseNotAccepted=ҲЭ(&D)
-
-; *** "Information" wizard pages
-WizardInfoBefore=Ϣ
-InfoBeforeLabel=ڼ֮ǰĶҪϢ
-InfoBeforeClickLabel=üװ뵥һ
-WizardInfoAfter=Ϣ
-InfoAfterLabel=ڼ֮ǰĶҪϢ
-InfoAfterClickLabel=üװ뵥һ
-
-; *** "User Information" wizard page
-WizardUserInfo=ûϢ
-UserInfoDesc=Ϣ
-UserInfoName=û(&U)
-UserInfoOrg=֯(&O)
-UserInfoSerial=к(&S)
-UserInfoNameRequired=û
-
-; *** "Select Destination Location" wizard page
-WizardSelectDir=ѡĿλ
-SelectDirDesc= [name] װ
-SelectDirLabel3=װ [name] װļС
-SelectDirBrowseLabel=ҪһҪѡͬļУ뵥
-DiskSpaceMBLabel=Ҫ [mb] MB Ŀд̿ռ䡣
-CannotInstallToNetworkDrive=װ
-CannotInstallToUNCPath=װ UNC ·
-InvalidPath=̷·磺%n%nC:\APP%n%n UNC ·ʽ%n%n\\server\share
-InvalidDrive=ѡ UNC ڻɷʡѡ
-DiskSpaceWarningTitle=û㹻Ĵ̿ռ
-DiskSpaceWarning=װҪ %1 KB ʣռ䣬ѡֻ %2 KB á%n%nȻҪ
-DirNameTooLong=ļƻ·̫
-InvalidDirName=ļЧ
-BadDirName32=ļƲַܰ%n%n%1
-DirExistsTitle=ļѴ
-DirExists=ļУ%n%n%1%n%nѴڡȷҪװļ
-DirDoesntExistTitle=ļв
-DirDoesntExist=ļУ%n%n%1%n%nڡļ
-
-; *** "Select Components" wizard page
-WizardSelectComponents=ѡ
-SelectComponentsDesc=ҪװЩ
-SelectComponentsLabel2=ѡҪװ㲻밲װúһ
-FullInstallation=װ
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=లװ
-CustomInstallation=ưװ
-NoUninstallWarningTitle=Ѵ
-NoUninstallWarning=װѾװ%n%n%1%n%nȡѡжЩ%n%nװ
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=ǰѡҪ [mb] MB ̿ռ䡣
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=ѡ
-SelectTasksDesc=ҪִЩ
-SelectTasksLabel2=ѡڰװ [name] ڼ䰲װҪִеĸȻһ
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=ѡʼ˵ļ
-SelectStartMenuFolderDesc=ѳݷʽŵ
-SelectStartMenuFolderLabel3=װ¿ʼ˵ļдݷʽ
-SelectStartMenuFolderBrowseLabel=һһҪѡͬļУ
-MustEnterGroupName=ļ
-GroupNameTooLong=ļƻ·̫
-InvalidGroupName=ļЧ
-BadGroupName=ļƲַܰ%n%n%1
-NoProgramGroupCheck2=ʼ˵ļ(&D)
-
-; *** "Ready to Install" wizard page
-WizardReady=װ
-ReadyLabel1=װʼװ [name]
-ReadyLabel2a=װװҪ鿴߸һ
-ReadyLabel2b=װװ
-ReadyMemoUserInfo=ûϢ
-ReadyMemoDir=Ŀλã
-ReadyMemoType=װͣ
-ReadyMemoComponents=ѡ
-ReadyMemoGroup=ʼ˵ļУ
-ReadyMemoTasks=
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=װ
-PreparingDesc=װװ [name]
-PreviousInstallNotCompleted=ǰİװ/жδɡҪɰװ%n%n֮аװ [name] İװ
-CannotContinue=װܼȡ˳
-ApplicationsFound=װҪ±ӦóռõļԶرЩӦó
-ApplicationsFound2=װҪ±ӦóռõļԶرЩӦóװɺװ᳢ЩӦó
-CloseApplications=ԶرӦó(&A)
-DontCloseApplications=ԶرӦó(&D)
-
-; *** "Installing" wizard page
-WizardInstalling=ڰװ
-InstallingLabel=ļаװ [name]Եȡ
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel= [name] װ
-FinishedLabelNoIcons=װ [name] İװ
-FinishedLabel=װ [name] İװͨѡѰװͼӦó
-ClickFinish=ɡ˳װ
-FinishedRestartLabel=Ϊ [name] İװװԡҪ
-FinishedRestartMessage=Ϊ [name] İװװԡ%n%nҪ
-ShowReadmeCheck=ǣҪ鿴ļ
-YesRadio=ǣ(&Y)
-NoRadio=Ժ(&N)
-; used for example as 'Run MyProg.exe'
-RunEntryExec= %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec=鿴 %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=װҪһ
-SelectDiskLabel2= %1 ȷ%n%nڳʾļļҲôϵļȷ·
-PathLabel=·(&P)
-FileNotInDir2=ļ%1ڡ%2СȷĴ̻ѡļС
-SelectDirectoryLabel=ָһ̵λá
-
-; *** Installation phase messages
-SetupAborted=װδɡ%n%nⲢаװ
-EntryAbortRetryIgnore=ԡ³ԣԡװֹȡװ
-
-; *** Installation status messages
-StatusClosingApplications=ڹرӦó
-StatusCreateDirs=ڴļС
-StatusExtractFiles=ȡļ
-StatusCreateIcons=ڴݷʽ
-StatusCreateIniEntries=ڴ INI Ŀ
-StatusCreateRegistryEntries=ڴעĿ
-StatusRegisterFiles=עļ
-StatusSavingUninstall=ڱжϢ
-StatusRunProgram=ɰװ
-StatusRestartingApplications=Ӧó
-StatusRollback=ڻعġ
-
-; *** Misc. errors
-ErrorInternal2=ڲ%1
-ErrorFunctionFailedNoCode=%1 ʧ
-ErrorFunctionFailed=%1 ʧܡ %2
-ErrorFunctionFailedWithMessage=%1 ʧܡ %2%n%3
-ErrorExecutingProgram=ִļ%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=עʱ%n%1\%2
-ErrorRegCreateKey=עʱ%n%1\%2
-ErrorRegWriteKey=дעʱ%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=ļ%1д INI Ŀʱ
-
-; *** File copying errors
-FileAbortRetryIgnore=ԡ³ԣԡļƼֹȡװ
-FileAbortRetryIgnore2=ԡ³ԣԡװƼֹȡװ
-SourceIsCorrupted=Դļ
-SourceDoesntExist=Դļ%1
-ExistingFileReadOnly=ļΪֻ%n%nԡƳֻԲԣԡļֹȡװ
-ErrorReadingExistingDest=ȡļʱ
-FileExists=ļѴڡ%n%nҪ
-ExistingFileNewer=ļȰװҪװĻ¡㱣ļ%n%nļ
-ErrorChangingAttr=ļʱ
-ErrorCreatingTemp=Ŀļдļʱ
-ErrorReadingSource=ȡԴļʱ
-ErrorCopying=ļʱ
-ErrorReplacingExistingFile=滻ļʱ
-ErrorRestartReplace=滻ʧܣ
-ErrorRenamingTemp=Ŀļеļʱ
-ErrorRegisterServer=ע DLL/OCX%1
-ErrorRegSvr32Failed=RegSvr32 ʧܡֵ%1
-ErrorRegisterTypeLib=עͿ⣺%1
-
-; *** Post-installation errors
-ErrorOpeningReadme=ļʱ
-ErrorRestartingComputer=װԡֶ
-
-; *** Uninstaller messages
-UninstallNotFound=ļ%1ڡжء
-UninstallOpenError=ļ%1ܴж
-UninstallUnsupportedVer=ж־ļ%1ĸʽܱ˰汾жʶ𡣲ж
-UninstallUnknownEntry=ж־һδ֪Ŀ (%1)
-ConfirmUninstall=ǷȷҪȫɾ %1
-UninstallOnlyOnWin64=˰װֻ 64 λ Windows жء
-OnlyAdminCanUninstall=˰װֻɾ߱ԱȨûжء
-UninstallStatusLabel=ɾ %1Եȡ
-UninstalledAll=%1 ѳɹɾ
-UninstalledMost=%1 жɡ%n%nijЩĿɾֶɾ
-UninstalledAndNeedsRestart=Ҫ %1 жأԡ%n%nҪ
-UninstallDataCorrupted=ļ%1ж
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=ɾļ
-ConfirmDeleteSharedFile2=йļٱκγʹáҪɾùļ%n%nгʹøļѱɾЩС㲻ȷѡ¸ļϵͳκΣ
-SharedFileNameLabel=ļ
-SharedFileLocationLabel=λã
-WizardUninstalling=ж״̬
-StatusUninstalling=ж %1
-
-; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=ڰװ %1
-ShutdownBlockReasonUninstallingApp=ж %1
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1 汾 %2
-AdditionalIcons=ͼ꣺
-CreateDesktopIcon=ͼ(&D)
-CreateQuickLaunchIcon=ͼ(&Q)
-ProgramOnTheWeb=%1 վ
-UninstallProgram=ж %1
-LaunchProgram= %1
-AssocFileExtension= %1 %2 ļչ(&A)
-AssocingFileExtension=ڽ %1 %2 ļչ
-AutoStartProgramGroupDescription=
-AutoStartProgram=Զ %1
-AddonHostProgramNotFound=ѡļҲ %1%n%nǷȻ
+; *** Inno Setup version 5.5.0+ Chinese (Simplified) messages ***
+; by Mack Zhang (hua_wuxin@21cn.com)
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/files/istrans/
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+; The following three entries are very important. Be sure to read and
+; understand the '[LangOptions] section' topic in the help file.
+LanguageName=<4E2D><6587><7B80><4F53>
+LanguageID=$0804
+LanguageCodePage=936
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+DialogFontName=
+DialogFontSize=9
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;TitleFontName=Arial
+;TitleFontSize=29
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=װ
+SetupWindowTitle=װ - %1
+UninstallAppTitle=ж
+UninstallAppFullTitle=%1 ж
+
+; *** Misc. common
+InformationTitle=Ϣ
+ConfirmTitle=ȷ
+ErrorTitle=
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=װĵϰװ %1ȷҪ
+LdrCannotCreateTemp=ʱļװֹ
+LdrCannotExecTemp=ʱļеļװֹ
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%n %2%3
+SetupFileMissing=װļȱļ %1ȡ°汾
+SetupFileCorrupt=װļȡ°汾
+SetupFileCorruptOrWrongVer=װļ뱾װİ汾ݡȡ°汾
+InvalidParameter=һIJݵУ%n%n%1
+SetupAlreadyRunning=װѾС
+WindowsVersionNotSupported=֧ĵе Windows 汾
+WindowsServicePackRequired=Ҫ %1 Service Pack %2 µİ汾
+NotOnThisPlatform= %1 С
+OnlyOnThisPlatform= %1 С
+OnlyOnTheseArchitectures=ֻܰװΪдܹƵ Windows 汾У%n%n%1
+MissingWOW64APIs=ǰ Windows 汾ûаִ 64 λװĺҪ⣬밲װ Service Pack %1
+WinVersionTooLowError=Ҫ %1 v%2 ߰汾
+WinVersionTooHighError=ܰװ %1 v%2 ߰汾ϡ
+AdminPrivilegesRequired=װʱԹԱݵ¼
+PowerUserPrivilegesRequired=װʱԹԱ Power Users Աݵ¼
+SetupAppRunningError=װ %1 С%n%nرʵȻȷȡ˳
+UninstallAppRunningError=ж %1 С%n%nرʵȻȷȡ˳
+
+; *** Misc. errors
+ErrorCreatingDir=װļС%1
+ErrorTooManyFilesInDir=ļС%1дļΪ̫ļ
+
+; *** Setup common messages
+ExitSetupTitle=˳װ
+ExitSetupMessage=װδɡ˳ᰲװ%n%nʱаװɰװ%n%n˳װ
+AboutSetupMenuItem=ڰװ(&A)
+AboutSetupTitle=ڰװ
+AboutSetupMessage=%1 汾 %2%n%3%n%n%1 ҳ%n%4
+AboutSetupNote=
+TranslatorNote=
+
+; *** Buttons
+ButtonBack=< һ(&B)
+ButtonNext=һ(&N) >
+ButtonInstall=װ(&I)
+ButtonOK=ȷ
+ButtonCancel=ȡ
+ButtonYes=(&Y)
+ButtonYesToAll=ȫ(&A)
+ButtonNo=(&N)
+ButtonNoToAll=ȫ(&O)
+ButtonFinish=(&F)
+ButtonBrowse=(&B)
+ButtonWizardBrowse=(&R)
+ButtonNewFolder=ļ(&M)
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=ѡװ
+SelectLanguageLabel=ѡװڼҪʹõԣ
+
+; *** Common wizard text
+ClickNext=һȡ˳װ
+BeveledLabel=
+BrowseDialogTitle=ļ
+BrowseDialogLabel=ѡһļУȻȷ
+NewFolderName=½ļ
+
+; *** "Welcome" wizard page
+WelcomeLabel1=ӭʹ [name] װ
+WelcomeLabel2=װĵϰװ [name/ver]%n%nڼ֮ǰرӦó
+
+; *** "Password" wizard page
+WizardPassword=
+PasswordLabel1=װ뱣
+PasswordLabel3=룬ȻһһִСд
+PasswordEditLabel=(&P)
+IncorrectPassword=벻ȷԡ
+
+; *** "License Agreement" wizard page
+WizardLicense=Э
+LicenseLabel=ڼ֮ǰĶҪϢ
+LicenseLabel3=ĶЭ顣ڼװ֮ǰܴЭ
+LicenseAccepted=ҽЭ(&A)
+LicenseNotAccepted=ҲЭ(&D)
+
+; *** "Information" wizard pages
+WizardInfoBefore=Ϣ
+InfoBeforeLabel=ڼ֮ǰĶҪϢ
+InfoBeforeClickLabel=üװ뵥һ
+WizardInfoAfter=Ϣ
+InfoAfterLabel=ڼ֮ǰĶҪϢ
+InfoAfterClickLabel=üװ뵥һ
+
+; *** "User Information" wizard page
+WizardUserInfo=ûϢ
+UserInfoDesc=Ϣ
+UserInfoName=û(&U)
+UserInfoOrg=֯(&O)
+UserInfoSerial=к(&S)
+UserInfoNameRequired=û
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=ѡĿλ
+SelectDirDesc= [name] װ
+SelectDirLabel3=װ [name] װļС
+SelectDirBrowseLabel=ҪһҪѡͬļУ뵥
+DiskSpaceMBLabel=Ҫ [mb] MB Ŀд̿ռ䡣
+CannotInstallToNetworkDrive=װ
+CannotInstallToUNCPath=װ UNC ·
+InvalidPath=̷·磺%n%nC:\APP%n%n UNC ·ʽ%n%n\\server\share
+InvalidDrive=ѡ UNC ڻɷʡѡ
+DiskSpaceWarningTitle=û㹻Ĵ̿ռ
+DiskSpaceWarning=װҪ %1 KB ʣռ䣬ѡֻ %2 KB á%n%nȻҪ
+DirNameTooLong=ļƻ·̫
+InvalidDirName=ļЧ
+BadDirName32=ļƲַܰ%n%n%1
+DirExistsTitle=ļѴ
+DirExists=ļУ%n%n%1%n%nѴڡȷҪװļ
+DirDoesntExistTitle=ļв
+DirDoesntExist=ļУ%n%n%1%n%nڡļ
+
+; *** "Select Components" wizard page
+WizardSelectComponents=ѡ
+SelectComponentsDesc=ҪװЩ
+SelectComponentsLabel2=ѡҪװ㲻밲װúһ
+FullInstallation=װ
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=లװ
+CustomInstallation=ưװ
+NoUninstallWarningTitle=Ѵ
+NoUninstallWarning=װѾװ%n%n%1%n%nȡѡжЩ%n%nװ
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=ǰѡҪ [mb] MB ̿ռ䡣
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=ѡ
+SelectTasksDesc=ҪִЩ
+SelectTasksLabel2=ѡڰװ [name] ڼ䰲װҪִеĸȻһ
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=ѡʼ˵ļ
+SelectStartMenuFolderDesc=ѳݷʽŵ
+SelectStartMenuFolderLabel3=װ¿ʼ˵ļдݷʽ
+SelectStartMenuFolderBrowseLabel=һһҪѡͬļУ
+MustEnterGroupName=ļ
+GroupNameTooLong=ļƻ·̫
+InvalidGroupName=ļЧ
+BadGroupName=ļƲַܰ%n%n%1
+NoProgramGroupCheck2=ʼ˵ļ(&D)
+
+; *** "Ready to Install" wizard page
+WizardReady=װ
+ReadyLabel1=װʼװ [name]
+ReadyLabel2a=װװҪ鿴߸һ
+ReadyLabel2b=װװ
+ReadyMemoUserInfo=ûϢ
+ReadyMemoDir=Ŀλã
+ReadyMemoType=װͣ
+ReadyMemoComponents=ѡ
+ReadyMemoGroup=ʼ˵ļУ
+ReadyMemoTasks=
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=װ
+PreparingDesc=װװ [name]
+PreviousInstallNotCompleted=ǰİװ/жδɡҪɰװ%n%n֮аװ [name] İװ
+CannotContinue=װܼȡ˳
+ApplicationsFound=װҪ±ӦóռõļԶرЩӦó
+ApplicationsFound2=װҪ±ӦóռõļԶرЩӦóװɺװ᳢ЩӦó
+CloseApplications=ԶرӦó(&A)
+DontCloseApplications=ԶرӦó(&D)
+
+; *** "Installing" wizard page
+WizardInstalling=ڰװ
+InstallingLabel=ļаװ [name]Եȡ
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel= [name] װ
+FinishedLabelNoIcons=װ [name] İװ
+FinishedLabel=װ [name] İװͨѡѰװͼӦó
+ClickFinish=ɡ˳װ
+FinishedRestartLabel=Ϊ [name] İװװԡҪ
+FinishedRestartMessage=Ϊ [name] İװװԡ%n%nҪ
+ShowReadmeCheck=ǣҪ鿴ļ
+YesRadio=ǣ(&Y)
+NoRadio=Ժ(&N)
+; used for example as 'Run MyProg.exe'
+RunEntryExec= %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=鿴 %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=װҪһ
+SelectDiskLabel2= %1 ȷ%n%nڳʾļļҲôϵļȷ·
+PathLabel=·(&P)
+FileNotInDir2=ļ%1ڡ%2СȷĴ̻ѡļС
+SelectDirectoryLabel=ָһ̵λá
+
+; *** Installation phase messages
+SetupAborted=װδɡ%n%nⲢаװ
+EntryAbortRetryIgnore=ԡ³ԣԡװֹȡװ
+
+; *** Installation status messages
+StatusClosingApplications=ڹرӦó
+StatusCreateDirs=ڴļС
+StatusExtractFiles=ȡļ
+StatusCreateIcons=ڴݷʽ
+StatusCreateIniEntries=ڴ INI Ŀ
+StatusCreateRegistryEntries=ڴעĿ
+StatusRegisterFiles=עļ
+StatusSavingUninstall=ڱжϢ
+StatusRunProgram=ɰװ
+StatusRestartingApplications=Ӧó
+StatusRollback=ڻعġ
+
+; *** Misc. errors
+ErrorInternal2=ڲ%1
+ErrorFunctionFailedNoCode=%1 ʧ
+ErrorFunctionFailed=%1 ʧܡ %2
+ErrorFunctionFailedWithMessage=%1 ʧܡ %2%n%3
+ErrorExecutingProgram=ִļ%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=עʱ%n%1\%2
+ErrorRegCreateKey=עʱ%n%1\%2
+ErrorRegWriteKey=дעʱ%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=ļ%1д INI Ŀʱ
+
+; *** File copying errors
+FileAbortRetryIgnore=ԡ³ԣԡļƼֹȡװ
+FileAbortRetryIgnore2=ԡ³ԣԡװƼֹȡװ
+SourceIsCorrupted=Դļ
+SourceDoesntExist=Դļ%1
+ExistingFileReadOnly=ļΪֻ%n%nԡƳֻԲԣԡļֹȡװ
+ErrorReadingExistingDest=ȡļʱ
+FileExists=ļѴڡ%n%nҪ
+ExistingFileNewer=ļȰװҪװĻ¡㱣ļ%n%nļ
+ErrorChangingAttr=ļʱ
+ErrorCreatingTemp=Ŀļдļʱ
+ErrorReadingSource=ȡԴļʱ
+ErrorCopying=ļʱ
+ErrorReplacingExistingFile=滻ļʱ
+ErrorRestartReplace=滻ʧܣ
+ErrorRenamingTemp=Ŀļеļʱ
+ErrorRegisterServer=ע DLL/OCX%1
+ErrorRegSvr32Failed=RegSvr32 ʧܡֵ%1
+ErrorRegisterTypeLib=עͿ⣺%1
+
+; *** Post-installation errors
+ErrorOpeningReadme=ļʱ
+ErrorRestartingComputer=װԡֶ
+
+; *** Uninstaller messages
+UninstallNotFound=ļ%1ڡжء
+UninstallOpenError=ļ%1ܴж
+UninstallUnsupportedVer=ж־ļ%1ĸʽܱ˰汾жʶ𡣲ж
+UninstallUnknownEntry=ж־һδ֪Ŀ (%1)
+ConfirmUninstall=ǷȷҪȫɾ %1
+UninstallOnlyOnWin64=˰װֻ 64 λ Windows жء
+OnlyAdminCanUninstall=˰װֻɾ߱ԱȨûжء
+UninstallStatusLabel=ɾ %1Եȡ
+UninstalledAll=%1 ѳɹɾ
+UninstalledMost=%1 жɡ%n%nijЩĿɾֶɾ
+UninstalledAndNeedsRestart=Ҫ %1 жأԡ%n%nҪ
+UninstallDataCorrupted=ļ%1ж
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=ɾļ
+ConfirmDeleteSharedFile2=йļٱκγʹáҪɾùļ%n%nгʹøļѱɾЩС㲻ȷѡ¸ļϵͳκΣ
+SharedFileNameLabel=ļ
+SharedFileLocationLabel=λã
+WizardUninstalling=ж״̬
+StatusUninstalling=ж %1
+
+; *** Shutdown block reasons
+ShutdownBlockReasonInstallingApp=ڰװ %1
+ShutdownBlockReasonUninstallingApp=ж %1
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 汾 %2
+AdditionalIcons=ͼ꣺
+CreateDesktopIcon=ͼ(&D)
+CreateQuickLaunchIcon=ͼ(&Q)
+ProgramOnTheWeb=%1 վ
+UninstallProgram=ж %1
+LaunchProgram= %1
+AssocFileExtension= %1 %2 ļչ(&A)
+AssocingFileExtension=ڽ %1 %2 ļչ
+AutoStartProgramGroupDescription=
+AutoStartProgram=Զ %1
+AddonHostProgramNotFound=ѡļҲ %1%n%nǷȻ
diff --git a/Greenshot/tools/innosetup/Languages/NorwegianNynorsk.isl b/Greenshot/tools/innosetup/Languages/NorwegianNynorsk.isl
index 7d95db41f..325c5a2b8 100644
--- a/Greenshot/tools/innosetup/Languages/NorwegianNynorsk.isl
+++ b/Greenshot/tools/innosetup/Languages/NorwegianNynorsk.isl
@@ -1,301 +1,301 @@
-; *** Inno Setup version 4.0.5+ Norsk, nynorsk messages ***
-;
-; Translated by/omsett av: Magnar Myrtveit
-;
-; To download user-contributed translations of this file, go to:
-; http://www.jrsoftware.org/is3rdparty.php
-;
-; Note: When translating this text, do not add periods (.) to the end of
-; messages that didn't have them already, because on those messages Inno
-; Setup adds the periods automatically (appending a period would result in
-; two periods being displayed).
-;
-; $jrsoftware: issrc/Files/Default.isl,v 1.32 2003/06/18 19:24:07 jr Exp $
-
-[LangOptions]
-LanguageName=Norsk, nynorsk
-LanguageID=$0409
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=MS Shell Dlg
-;DialogFontSize=8
-;DialogFontStandardHeight=13
-;TitleFontName=Arial
-;TitleFontSize=29
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-DialogFontName=MS Shell Dlg
-DialogFontSize=8
-DialogFontStandardHeight=13
-TitleFontName=Arial
-TitleFontSize=29
-WelcomeFontName=Verdana
-WelcomeFontSize=12
-CopyrightFontName=Arial
-CopyrightFontSize=8
-[Messages]
-
-; *** Application titles
-SetupAppTitle=Installasjon
-SetupWindowTitle=Installering - %1
-UninstallAppTitle=Avinstallasjon
-UninstallAppFullTitle=Avinstallering - %1
-
-; *** Misc. common
-InformationTitle=Informasjon
-ConfirmTitle=Godta
-ErrorTitle=Feil
-
-; *** SetupLdr messages
-SetupLdrStartupMessage=Dette vil installera %1. Vil du halda fram?
-LdrCannotCreateTemp=Kan ikkje laga midlertidig fil. Installasjonen er avbroten
-LdrCannotExecTemp=Kan ikkje kyra fila i den midlertidige katalogen. Installasjonen er avbroten
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%nFeil %2: %3
-SetupFileMissing=Fila %1 finst ikkje i installasjonskatalogen. Ver venleg og fiks problemet eller f tak i ein ny kopi av programmet.
-SetupFileCorrupt=Installasjonsfila er ydelagt. Ver venleg og f tak i ein ny kopi av programmet.
-SetupFileCorruptOrWrongVer=Installasjonsfilane er ydelagde, eller ikkje kompatible med dette installasjonsprogrammet.Ver venleg og fiks problemet eller f tak i ein ny kopi av programmet.
-NotOnThisPlatform=Dette programmet kyrer ikkje p %1.
-OnlyOnThisPlatform=Dette programmet kyrer berre p %1.
-WinVersionTooLowError=Dette programmet krev %1 versjon %2 eller nyare.
-WinVersionTooHighError=Dette programmet kan ikkje bli installert p %1 versjon %2 eller nyare.
-AdminPrivilegesRequired=Du m vera logga inn som administrator nr du installerer dette programmet.
-PowerUserPrivilegesRequired=Du m vera logga inn som administrator eller ha administrator-rettar nr du installerer dette programmet.
-SetupAppRunningError=Installasjonen har oppdaga at %1 kyrer.%n%nVer venleg og lukk det no, og trykk OK for halda fram, eller Avbryt for avslutta.
-UninstallAppRunningError=Avinstallasjonen har oppdaga at %1 kyrer.%n%nVer venleg og lukk det no, og trykk OK for halda fram, eller Avbryt for avslutta.
-
-; *** Misc. errors
-ErrorCreatingDir=Installasjonsprogrammet kunne ikkje laga katalogen "%1"
-ErrorTooManyFilesInDir=Kunne ikkje laga ei fil i mappa "%1" fordi den inneheld for mange filar
-
-; *** Setup common messages
-ExitSetupTitle=Avslutt installasjonen
-ExitSetupMessage=Installasjonen er ikkje ferdig. Viss du avsluttar no, vil ikkje programmet bli installert.%n%nDu kan kyra installasjonen p nytt seinare for fullfra installsajonen.%n%nVil du avslutta installasjonen?
-AboutSetupMenuItem=&Om installasjonsprogrammet...
-AboutSetupTitle=Om installasjonsprogrammet
-AboutSetupMessage=%1 versjon %2%n%3%n%n%1 heimeside:%n%4
-AboutSetupNote=
-
-; *** Buttons
-ButtonBack=< &Tilbake
-ButtonNext=&Neste >
-ButtonInstall=&Installer
-ButtonOK=OK
-ButtonCancel=Avbryt
-ButtonYes=&Ja
-ButtonYesToAll=Ja til &alle
-ButtonNo=&Nei
-ButtonNoToAll=N&ei til alle
-ButtonFinish=&Ferdig
-ButtonBrowse=&Bla gjennom...
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=Vel installasjonssprk
-SelectLanguageLabel=Vel sprket som skal brukast under installasjonen:
-
-; *** Common wizard text
-ClickNext=Trykk Neste for halda fram, eller Avbryt for avslutta installasjonen.
-BeveledLabel=
-
-; *** "Welcome" wizard page
-WelcomeLabel1=Velkomen til installasjonen av [name]
-WelcomeLabel2=Dette vil installera [name/ver] p di datamaskin.%n%nDet er anbefalt at du lukkar alle andre program fr du fortset.
-
-; *** "Password" wizard page
-WizardPassword=Passord
-PasswordLabel1=Denne installasjonen er passordbeskytta.
-PasswordLabel3=Ver venleg og skriv inn passordet, og trykk Neste for halda fram. Store og sm bokstavar blir behandla ulikt.
-PasswordEditLabel=&Passord:
-IncorrectPassword=Passordet du skreiv inn er feil. Ver venleg og prv igjen.
-
-; *** "License Agreement" wizard page
-WizardLicense=Lisensvilkr
-LicenseLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
-LicenseLabel3=Ver venleg og les dei fylgjande lisensvilkra. Du m godta innehaldet i denne avtalen fr du fortset installasjonen.
-LicenseAccepted=Eg &godtar avtalen
-LicenseNotAccepted=Eg godtar &ikkje avtalen
-
-; *** "Information" wizard pages
-WizardInfoBefore=Informasjon
-InfoBeforeLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
-InfoBeforeClickLabel=Nr du er klar til halda fram med installasjonen, trykk Neste.
-WizardInfoAfter=Informasjon
-InfoAfterLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
-InfoAfterClickLabel=Nr du er klar til fullfra installasjonen, trykk Neste.
-
-; *** "User Information" wizard page
-WizardUserInfo=Brukarinformasjon
-UserInfoDesc=Ver venleg og skriv inn din informasjon.
-UserInfoName=&Brukarnamn:
-UserInfoOrg=&Organisasjon:
-UserInfoSerial=&Serienummer:
-UserInfoNameRequired=Du m skriva inn eit namn.
-
-; *** "Select Destination Directory" wizard page
-WizardSelectDir=Vel mlmappe
-SelectDirDesc=Kvar skal [name] bli installert?
-SelectDirLabel=Vel mappa der du vil at [name] skal bli installert, og trykk Neste.
-DiskSpaceMBLabel=Programmet krev minst [mb] MB diskplass.
-ToUNCPathname=Kan ikkje installera til ei UNC-bane. Viss du prver installera i eit nettverk, m du skriva inn nettverksmlstasjonen.
-InvalidPath=Du m skriva inn ei full bane med stasjonsbokstav; for eksempel:%n%nC:\APP%n%neller ei UNC-bane som:%n%n\\server\share
-InvalidDrive=Den valte stasjonen eller UNC-delinga finst ikkje, eller er ikkje tilgjengeleg. Ver venleg og vel ein annan.
-DiskSpaceWarningTitle=Ikkje nok diskplass
-DiskSpaceWarning=Installasjonsprogrammet krev minst %1 KB ledig plass for installera, men den valte stasjonen har berre %2 KB ledig.%n%nVil du halda fram likevel?
-BadDirName32=Katalognamn kan ikkje innehalda nokon av dei fylgjande teikna:%n%n%1
-DirExistsTitle=Katalogen finst
-DirExists=Katalogen:%n%n%1%n%nfinst allereie. Vil du installera til denne katalogen likevel?
-DirDoesntExistTitle=Katalogen finst ikkje
-DirDoesntExist=Katalogen:%n%n%1%n%nfinst ikkje. Vil du at katalogen skal bli laga?
-
-; *** "Select Components" wizard page
-WizardSelectComponents=Vel komponentar
-SelectComponentsDesc=Kva komponentar skal installerast?
-SelectComponentsLabel2=Vel dei komponentane du vil installera; vel vekk dei komponentane du ikkje vil installera. Trykk Neste nr du er klar til halda fram.
-FullInstallation=Full installasjon
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Kompakt installasjon
-CustomInstallation=Eigendefinert installasjon
-NoUninstallWarningTitle=Komponentane finst
-NoUninstallWarning=Installasjonen har oppdaga at desse komponentane allereie er installerte p datamaskina:%n%n%1%n%nDesse komponentane blir ikkje avinstallerte sjlv om du vel dei vekk.%n%nVil du halda fram likevel?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceMBLabel=Valte alternativ krev minst [mb] MB ledig diskplass.
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Vel tilleggsoppgver
-SelectTasksDesc=Kva tilleggsoppgver skal utfrast?
-SelectTasksLabel2=Vel dei tilleggsoppgvene som skal utfrast mens [name] blir installert, trykk deretter Neste.
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Vel mappe i Start-menyen
-SelectStartMenuFolderDesc=Kvar skal snarvegane plasserast?
-SelectStartMenuFolderLabel=Vel mappa i Start-menyen der du vil at snarvegane skal bli plasserte. Trykk deretter Neste.
-NoIconsCheck=&Ikkje lag ikon
-MustEnterGroupName=Du m skriva inn eit katalognamn.
-BadGroupName=Katalognamn kan ikkje innehalda nokon av dei fylgjande teikna:%n%n%1
-NoProgramGroupCheck2=&Ikkje lag mappe i Start-menyen
-
-; *** "Ready to Install" wizard page
-WizardReady=Klar til installera
-ReadyLabel1=Installasjonsprogrammet er no klart til starta installasjonen av [name] p di datamaskin.
-ReadyLabel2a=Trykk Installer for halda fram med installasjonen, eller trykk Tilbake viss du vil sj p eller endra instillingane.
-ReadyLabel2b=Trykk Installer for halda fram med installasjonen.
-ReadyMemoUserInfo=Brukarinformasjon:
-ReadyMemoDir=Mlmappe:
-ReadyMemoType=Installasjonstype:
-ReadyMemoComponents=Valte komponentar:
-ReadyMemoGroup=Mappe i Start-menyen:
-ReadyMemoTasks=Tilleggsoppgver:
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=Frebur installasjonen
-PreparingDesc=Installasjonsprogrammet frebur installasjonen av [name] p di datamaskin.
-PreviousInstallNotCompleted=Installasjonen/fjerninga av eit tidlegare program blei ikkje fullfrt. Du m starta maskina p nytt for fullfra den installasjonen.%n%nEtter omstarten m du kyra installasjonsprogrammet p nytt for fullfra installasjonen av [name].
-CannotContinue=Installasjonsprogrammet kan ikkje halda fram. Ver venleg og trykk Avbryt for avslutta.
-
-; *** "Installing" wizard page
-WizardInstalling=Installerer
-InstallingLabel=Ver venleg og vent mens [name] blir installert p di datamaskin.
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Fullfrer installasjonsvegvisaren for [name]
-FinishedLabelNoIcons=Installasjonen av [name] er fullfrt.
-FinishedLabel=Installasjonen av [name] er fullfrt. Du kan starta programmet ved trykka p eit av dei installerte ikona.
-ClickFinish=Trykk Ferdig for avslutta installasjonen.
-FinishedRestartLabel=For fullfra installasjonen av [name], m maskina bli starta p nytt. Vil du starta p nytt no?
-FinishedRestartMessage=For fullfra installasjonen av [name], m maskina bli starta p nytt.%n%nVil du starta p nytt no?
-ShowReadmeCheck=Ja, eg vil sj LESMEG-fila
-YesRadio=&Ja, start maskina p nytt no
-NoRadio=&Nei, eg vil starta p nytt seinare
-; used for example as 'Run MyProg.exe'
-RunEntryExec=Kyr %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec=Vis %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Installasjonen treng den neste disketten
-SelectDirectory=Vel katalog
-SelectDiskLabel2=Ver venleg og set inn diskett %1 og trykk OK.%n%nViss filane finst i ein annan katalog enn den vist nedom, skriv inn riktig bane eller trykk Bla gjennom...
-PathLabel=&Bane:
-FileNotInDir2=Finn ikkje fila "%1" i "%2". Ver venleg og set inn riktig diskett eller vel ein annan katalog.
-SelectDirectoryLabel=Ver venleg og skriv inn plasseringa til den neste disketten.
-
-; *** Installation phase messages
-SetupAborted=Installasjonen blei ikkje fullfrt.%n%nVer venleg og fiks problemet og kyr installasjonen p nytt.
-EntryAbortRetryIgnore=Tykkk Prv p nytt for prva p nytt, Ignorr for halda fram, eller Avbryt for avslutta installasjonen.
-
-; *** Installation status messages
-StatusCreateDirs=Oppretter katalogar...
-StatusExtractFiles=Pakkar ut filar...
-StatusCreateIcons=Oppretter program-ikon...
-StatusCreateIniEntries=Oppretter INI-instillingar...
-StatusCreateRegistryEntries=Opprettter register-instillingar...
-StatusRegisterFiles=Registrerer filar...
-StatusSavingUninstall=Lagrar avinstallasjonsinformasjon...
-StatusRunProgram=Fullfrer installasjonen...
-StatusRollback=Tilbakestiller endringar...
-
-; *** Misc. errors
-ErrorInternal2=Intern feil: %1
-ErrorFunctionFailedNoCode=%1 gjekk gale
-ErrorFunctionFailed=%1 gjekk gale; kode %2
-ErrorFunctionFailedWithMessage=%1 gjekk gale; kode %2.%n%3
-ErrorExecutingProgram=Kunne ikkje kyre fila:%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=Feil under opning av registernkkel:%n%1\%2
-ErrorRegCreateKey=Feil under oppretting av registernkkel:%n%1\%2
-ErrorRegWriteKey=Feil under skriving til registernkkel:%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=Feil under oppretting av innstillingar i fila "%1".
-
-; *** File copying errors
-FileAbortRetryIgnore=Trykk Prv p nytt for prva p nytt, Ignorr for hoppa over denne fila (ikkje anbefalt), eller Avbryt for avslutta installasjonen.
-FileAbortRetryIgnore2=Trykk Prv p nytt for prva p nytt, Ignorr for halda fram (ikkje anbefalt), eller Avbryt for avslutta installasjonen.
-SourceIsCorrupted=Kjeldefila er ydelagt
-SourceDoesntExist=Kjeldefila "%1" finst ikkje
-ExistingFileReadOnly=Den eksisterande fila er skrivebeskytta.%n%nTrykk Prv p nytt for fjerna skrivebeskyttinga og prva p nytt, Ignorr for hoppa over denne fila, eller Avbryt for avslutta installasjonen.
-ErrorReadingExistingDest=Ein feil oppstod under lesing av den eksisterande fila:
-FileExists=Fila finst allereie.%n%nVil du at installasjonsprogrammet skal skriva over den?
-ExistingFileNewer=Den eksisterande fila er nyare enn den installasjonen prver installera. Det er anbefalt at du beheld den eksisterande fila.%n%nVil du behalda den eksisterande fila?
-ErrorChangingAttr=Ein feil oppstod under forsk p endra attributtar i den eksisterande fila:
-ErrorCreatingTemp=Ein feil oppstod under forsk p oppretta ei fil i mlmappa:
-ErrorReadingSource=Ein feil oppstod under forsk p lesa kjeldefila:
-ErrorCopying=Ein feil oppstod under forsk p kopiera fila:
-ErrorReplacingExistingFile=Ein feil oppstod under forsk p erstatta den eksisterande fila:
-ErrorRestartReplace=RestartReplace gjekk gale:
-ErrorRenamingTemp=Ein feil oppstod under forsk p gje nytt namnt til ei fil i mlmappa:
-ErrorRegisterServer=Kunne ikkje registrera DLL/OCX: %1
-ErrorRegisterServerMissingExport=DllRegisterServer-eksportering blei ikkje funne
-ErrorRegisterTypeLib=Kunne ikkje registrera typebiblioteket: %1
-
-; *** Post-installation errors
-ErrorOpeningReadme=Ein feil oppstod under forsk p opna LESMEG-fila.
-ErrorRestartingComputer=Installasjonsprogrammet kunne ikkje starta maskina p nytt. Ver venleg og gjer dette manuelt.
-
-; *** Uninstaller messages
-UninstallNotFound=Kan ikkje avinstallera. Fila "%1" finst ikkje.
-UninstallOpenError=Kan ikkje avinstallera. Fila "%1" kunne ikkje opnast.
-UninstallUnsupportedVer=Kan ikkje avinstallera. Avinstallasjonsloggfila "%1" er i eit format som denne versjonen av avinstallasjonsprogrammet ikkje forstr
-UninstallUnknownEntry=Ein ukjend parameter (%1) blei funne i avinstallasjonsloggen
-ConfirmUninstall=Er du sikker p at du vil fjerna %1 og alle tilhyrande komponentar?
-OnlyAdminCanUninstall=Denne installasjonen kan berre avinstallerast av ein brukar med administrator-rettar.
-UninstallStatusLabel=Ver venleg og vent mens %1 blir fjerna fr di datamaskin.
-UninstalledAll=Fjerninga av %1 var vellukka.
-UninstalledMost=Avinstalleringa av %1 er fullfrt.%n%nNokre element kunne ikkje bli sletta. Desse kan slettast manuelt.
-UninstalledAndNeedsRestart=For fullfra avinstallasjonen av %1, m datamaskina startast p nytt.%n%nVil du starta p nytt no?
-UninstallDataCorrupted=Kan ikkje avinstallera. "%1"-fila er ydelagd.
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=Fjerna delt fil?
-ConfirmDeleteSharedFile2=Systemet indikerer at den fylgjande delte fila ikkje blir brukt av nokon program. Vil du at avinstallasjonsprogrammet skal fjerna denne delte fila?%n%nViss nokre program framleis brukar denne fila, og den blir fjerna, kan du risikere at dei ikkje verkar som dei skal. Viss du er usikker, vel Nei. la denne fila vera p systemet vil ikkje gjera nokon skade.
-SharedFileNameLabel=Filnamn:
-SharedFileLocationLabel=Plassering:
-WizardUninstalling=Avinstallasjons-status
-StatusUninstalling=Avinstallerer %1...
-
+; *** Inno Setup version 4.0.5+ Norsk, nynorsk messages ***
+;
+; Translated by/omsett av: Magnar Myrtveit
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/is3rdparty.php
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+;
+; $jrsoftware: issrc/Files/Default.isl,v 1.32 2003/06/18 19:24:07 jr Exp $
+
+[LangOptions]
+LanguageName=Norsk, nynorsk
+LanguageID=$0409
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+;DialogFontName=MS Shell Dlg
+;DialogFontSize=8
+;DialogFontStandardHeight=13
+;TitleFontName=Arial
+;TitleFontSize=29
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+DialogFontName=MS Shell Dlg
+DialogFontSize=8
+DialogFontStandardHeight=13
+TitleFontName=Arial
+TitleFontSize=29
+WelcomeFontName=Verdana
+WelcomeFontSize=12
+CopyrightFontName=Arial
+CopyrightFontSize=8
+[Messages]
+
+; *** Application titles
+SetupAppTitle=Installasjon
+SetupWindowTitle=Installering - %1
+UninstallAppTitle=Avinstallasjon
+UninstallAppFullTitle=Avinstallering - %1
+
+; *** Misc. common
+InformationTitle=Informasjon
+ConfirmTitle=Godta
+ErrorTitle=Feil
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=Dette vil installera %1. Vil du halda fram?
+LdrCannotCreateTemp=Kan ikkje laga midlertidig fil. Installasjonen er avbroten
+LdrCannotExecTemp=Kan ikkje kyra fila i den midlertidige katalogen. Installasjonen er avbroten
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nFeil %2: %3
+SetupFileMissing=Fila %1 finst ikkje i installasjonskatalogen. Ver venleg og fiks problemet eller f tak i ein ny kopi av programmet.
+SetupFileCorrupt=Installasjonsfila er ydelagt. Ver venleg og f tak i ein ny kopi av programmet.
+SetupFileCorruptOrWrongVer=Installasjonsfilane er ydelagde, eller ikkje kompatible med dette installasjonsprogrammet.Ver venleg og fiks problemet eller f tak i ein ny kopi av programmet.
+NotOnThisPlatform=Dette programmet kyrer ikkje p %1.
+OnlyOnThisPlatform=Dette programmet kyrer berre p %1.
+WinVersionTooLowError=Dette programmet krev %1 versjon %2 eller nyare.
+WinVersionTooHighError=Dette programmet kan ikkje bli installert p %1 versjon %2 eller nyare.
+AdminPrivilegesRequired=Du m vera logga inn som administrator nr du installerer dette programmet.
+PowerUserPrivilegesRequired=Du m vera logga inn som administrator eller ha administrator-rettar nr du installerer dette programmet.
+SetupAppRunningError=Installasjonen har oppdaga at %1 kyrer.%n%nVer venleg og lukk det no, og trykk OK for halda fram, eller Avbryt for avslutta.
+UninstallAppRunningError=Avinstallasjonen har oppdaga at %1 kyrer.%n%nVer venleg og lukk det no, og trykk OK for halda fram, eller Avbryt for avslutta.
+
+; *** Misc. errors
+ErrorCreatingDir=Installasjonsprogrammet kunne ikkje laga katalogen "%1"
+ErrorTooManyFilesInDir=Kunne ikkje laga ei fil i mappa "%1" fordi den inneheld for mange filar
+
+; *** Setup common messages
+ExitSetupTitle=Avslutt installasjonen
+ExitSetupMessage=Installasjonen er ikkje ferdig. Viss du avsluttar no, vil ikkje programmet bli installert.%n%nDu kan kyra installasjonen p nytt seinare for fullfra installsajonen.%n%nVil du avslutta installasjonen?
+AboutSetupMenuItem=&Om installasjonsprogrammet...
+AboutSetupTitle=Om installasjonsprogrammet
+AboutSetupMessage=%1 versjon %2%n%3%n%n%1 heimeside:%n%4
+AboutSetupNote=
+
+; *** Buttons
+ButtonBack=< &Tilbake
+ButtonNext=&Neste >
+ButtonInstall=&Installer
+ButtonOK=OK
+ButtonCancel=Avbryt
+ButtonYes=&Ja
+ButtonYesToAll=Ja til &alle
+ButtonNo=&Nei
+ButtonNoToAll=N&ei til alle
+ButtonFinish=&Ferdig
+ButtonBrowse=&Bla gjennom...
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=Vel installasjonssprk
+SelectLanguageLabel=Vel sprket som skal brukast under installasjonen:
+
+; *** Common wizard text
+ClickNext=Trykk Neste for halda fram, eller Avbryt for avslutta installasjonen.
+BeveledLabel=
+
+; *** "Welcome" wizard page
+WelcomeLabel1=Velkomen til installasjonen av [name]
+WelcomeLabel2=Dette vil installera [name/ver] p di datamaskin.%n%nDet er anbefalt at du lukkar alle andre program fr du fortset.
+
+; *** "Password" wizard page
+WizardPassword=Passord
+PasswordLabel1=Denne installasjonen er passordbeskytta.
+PasswordLabel3=Ver venleg og skriv inn passordet, og trykk Neste for halda fram. Store og sm bokstavar blir behandla ulikt.
+PasswordEditLabel=&Passord:
+IncorrectPassword=Passordet du skreiv inn er feil. Ver venleg og prv igjen.
+
+; *** "License Agreement" wizard page
+WizardLicense=Lisensvilkr
+LicenseLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
+LicenseLabel3=Ver venleg og les dei fylgjande lisensvilkra. Du m godta innehaldet i denne avtalen fr du fortset installasjonen.
+LicenseAccepted=Eg &godtar avtalen
+LicenseNotAccepted=Eg godtar &ikkje avtalen
+
+; *** "Information" wizard pages
+WizardInfoBefore=Informasjon
+InfoBeforeLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
+InfoBeforeClickLabel=Nr du er klar til halda fram med installasjonen, trykk Neste.
+WizardInfoAfter=Informasjon
+InfoAfterLabel=Ver venleg og les den fylgjande viktige informasjonen fr du fortset.
+InfoAfterClickLabel=Nr du er klar til fullfra installasjonen, trykk Neste.
+
+; *** "User Information" wizard page
+WizardUserInfo=Brukarinformasjon
+UserInfoDesc=Ver venleg og skriv inn din informasjon.
+UserInfoName=&Brukarnamn:
+UserInfoOrg=&Organisasjon:
+UserInfoSerial=&Serienummer:
+UserInfoNameRequired=Du m skriva inn eit namn.
+
+; *** "Select Destination Directory" wizard page
+WizardSelectDir=Vel mlmappe
+SelectDirDesc=Kvar skal [name] bli installert?
+SelectDirLabel=Vel mappa der du vil at [name] skal bli installert, og trykk Neste.
+DiskSpaceMBLabel=Programmet krev minst [mb] MB diskplass.
+ToUNCPathname=Kan ikkje installera til ei UNC-bane. Viss du prver installera i eit nettverk, m du skriva inn nettverksmlstasjonen.
+InvalidPath=Du m skriva inn ei full bane med stasjonsbokstav; for eksempel:%n%nC:\APP%n%neller ei UNC-bane som:%n%n\\server\share
+InvalidDrive=Den valte stasjonen eller UNC-delinga finst ikkje, eller er ikkje tilgjengeleg. Ver venleg og vel ein annan.
+DiskSpaceWarningTitle=Ikkje nok diskplass
+DiskSpaceWarning=Installasjonsprogrammet krev minst %1 KB ledig plass for installera, men den valte stasjonen har berre %2 KB ledig.%n%nVil du halda fram likevel?
+BadDirName32=Katalognamn kan ikkje innehalda nokon av dei fylgjande teikna:%n%n%1
+DirExistsTitle=Katalogen finst
+DirExists=Katalogen:%n%n%1%n%nfinst allereie. Vil du installera til denne katalogen likevel?
+DirDoesntExistTitle=Katalogen finst ikkje
+DirDoesntExist=Katalogen:%n%n%1%n%nfinst ikkje. Vil du at katalogen skal bli laga?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Vel komponentar
+SelectComponentsDesc=Kva komponentar skal installerast?
+SelectComponentsLabel2=Vel dei komponentane du vil installera; vel vekk dei komponentane du ikkje vil installera. Trykk Neste nr du er klar til halda fram.
+FullInstallation=Full installasjon
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=Kompakt installasjon
+CustomInstallation=Eigendefinert installasjon
+NoUninstallWarningTitle=Komponentane finst
+NoUninstallWarning=Installasjonen har oppdaga at desse komponentane allereie er installerte p datamaskina:%n%n%1%n%nDesse komponentane blir ikkje avinstallerte sjlv om du vel dei vekk.%n%nVil du halda fram likevel?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=Valte alternativ krev minst [mb] MB ledig diskplass.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Vel tilleggsoppgver
+SelectTasksDesc=Kva tilleggsoppgver skal utfrast?
+SelectTasksLabel2=Vel dei tilleggsoppgvene som skal utfrast mens [name] blir installert, trykk deretter Neste.
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=Vel mappe i Start-menyen
+SelectStartMenuFolderDesc=Kvar skal snarvegane plasserast?
+SelectStartMenuFolderLabel=Vel mappa i Start-menyen der du vil at snarvegane skal bli plasserte. Trykk deretter Neste.
+NoIconsCheck=&Ikkje lag ikon
+MustEnterGroupName=Du m skriva inn eit katalognamn.
+BadGroupName=Katalognamn kan ikkje innehalda nokon av dei fylgjande teikna:%n%n%1
+NoProgramGroupCheck2=&Ikkje lag mappe i Start-menyen
+
+; *** "Ready to Install" wizard page
+WizardReady=Klar til installera
+ReadyLabel1=Installasjonsprogrammet er no klart til starta installasjonen av [name] p di datamaskin.
+ReadyLabel2a=Trykk Installer for halda fram med installasjonen, eller trykk Tilbake viss du vil sj p eller endra instillingane.
+ReadyLabel2b=Trykk Installer for halda fram med installasjonen.
+ReadyMemoUserInfo=Brukarinformasjon:
+ReadyMemoDir=Mlmappe:
+ReadyMemoType=Installasjonstype:
+ReadyMemoComponents=Valte komponentar:
+ReadyMemoGroup=Mappe i Start-menyen:
+ReadyMemoTasks=Tilleggsoppgver:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=Frebur installasjonen
+PreparingDesc=Installasjonsprogrammet frebur installasjonen av [name] p di datamaskin.
+PreviousInstallNotCompleted=Installasjonen/fjerninga av eit tidlegare program blei ikkje fullfrt. Du m starta maskina p nytt for fullfra den installasjonen.%n%nEtter omstarten m du kyra installasjonsprogrammet p nytt for fullfra installasjonen av [name].
+CannotContinue=Installasjonsprogrammet kan ikkje halda fram. Ver venleg og trykk Avbryt for avslutta.
+
+; *** "Installing" wizard page
+WizardInstalling=Installerer
+InstallingLabel=Ver venleg og vent mens [name] blir installert p di datamaskin.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=Fullfrer installasjonsvegvisaren for [name]
+FinishedLabelNoIcons=Installasjonen av [name] er fullfrt.
+FinishedLabel=Installasjonen av [name] er fullfrt. Du kan starta programmet ved trykka p eit av dei installerte ikona.
+ClickFinish=Trykk Ferdig for avslutta installasjonen.
+FinishedRestartLabel=For fullfra installasjonen av [name], m maskina bli starta p nytt. Vil du starta p nytt no?
+FinishedRestartMessage=For fullfra installasjonen av [name], m maskina bli starta p nytt.%n%nVil du starta p nytt no?
+ShowReadmeCheck=Ja, eg vil sj LESMEG-fila
+YesRadio=&Ja, start maskina p nytt no
+NoRadio=&Nei, eg vil starta p nytt seinare
+; used for example as 'Run MyProg.exe'
+RunEntryExec=Kyr %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=Vis %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=Installasjonen treng den neste disketten
+SelectDirectory=Vel katalog
+SelectDiskLabel2=Ver venleg og set inn diskett %1 og trykk OK.%n%nViss filane finst i ein annan katalog enn den vist nedom, skriv inn riktig bane eller trykk Bla gjennom...
+PathLabel=&Bane:
+FileNotInDir2=Finn ikkje fila "%1" i "%2". Ver venleg og set inn riktig diskett eller vel ein annan katalog.
+SelectDirectoryLabel=Ver venleg og skriv inn plasseringa til den neste disketten.
+
+; *** Installation phase messages
+SetupAborted=Installasjonen blei ikkje fullfrt.%n%nVer venleg og fiks problemet og kyr installasjonen p nytt.
+EntryAbortRetryIgnore=Tykkk Prv p nytt for prva p nytt, Ignorr for halda fram, eller Avbryt for avslutta installasjonen.
+
+; *** Installation status messages
+StatusCreateDirs=Oppretter katalogar...
+StatusExtractFiles=Pakkar ut filar...
+StatusCreateIcons=Oppretter program-ikon...
+StatusCreateIniEntries=Oppretter INI-instillingar...
+StatusCreateRegistryEntries=Opprettter register-instillingar...
+StatusRegisterFiles=Registrerer filar...
+StatusSavingUninstall=Lagrar avinstallasjonsinformasjon...
+StatusRunProgram=Fullfrer installasjonen...
+StatusRollback=Tilbakestiller endringar...
+
+; *** Misc. errors
+ErrorInternal2=Intern feil: %1
+ErrorFunctionFailedNoCode=%1 gjekk gale
+ErrorFunctionFailed=%1 gjekk gale; kode %2
+ErrorFunctionFailedWithMessage=%1 gjekk gale; kode %2.%n%3
+ErrorExecutingProgram=Kunne ikkje kyre fila:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=Feil under opning av registernkkel:%n%1\%2
+ErrorRegCreateKey=Feil under oppretting av registernkkel:%n%1\%2
+ErrorRegWriteKey=Feil under skriving til registernkkel:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=Feil under oppretting av innstillingar i fila "%1".
+
+; *** File copying errors
+FileAbortRetryIgnore=Trykk Prv p nytt for prva p nytt, Ignorr for hoppa over denne fila (ikkje anbefalt), eller Avbryt for avslutta installasjonen.
+FileAbortRetryIgnore2=Trykk Prv p nytt for prva p nytt, Ignorr for halda fram (ikkje anbefalt), eller Avbryt for avslutta installasjonen.
+SourceIsCorrupted=Kjeldefila er ydelagt
+SourceDoesntExist=Kjeldefila "%1" finst ikkje
+ExistingFileReadOnly=Den eksisterande fila er skrivebeskytta.%n%nTrykk Prv p nytt for fjerna skrivebeskyttinga og prva p nytt, Ignorr for hoppa over denne fila, eller Avbryt for avslutta installasjonen.
+ErrorReadingExistingDest=Ein feil oppstod under lesing av den eksisterande fila:
+FileExists=Fila finst allereie.%n%nVil du at installasjonsprogrammet skal skriva over den?
+ExistingFileNewer=Den eksisterande fila er nyare enn den installasjonen prver installera. Det er anbefalt at du beheld den eksisterande fila.%n%nVil du behalda den eksisterande fila?
+ErrorChangingAttr=Ein feil oppstod under forsk p endra attributtar i den eksisterande fila:
+ErrorCreatingTemp=Ein feil oppstod under forsk p oppretta ei fil i mlmappa:
+ErrorReadingSource=Ein feil oppstod under forsk p lesa kjeldefila:
+ErrorCopying=Ein feil oppstod under forsk p kopiera fila:
+ErrorReplacingExistingFile=Ein feil oppstod under forsk p erstatta den eksisterande fila:
+ErrorRestartReplace=RestartReplace gjekk gale:
+ErrorRenamingTemp=Ein feil oppstod under forsk p gje nytt namnt til ei fil i mlmappa:
+ErrorRegisterServer=Kunne ikkje registrera DLL/OCX: %1
+ErrorRegisterServerMissingExport=DllRegisterServer-eksportering blei ikkje funne
+ErrorRegisterTypeLib=Kunne ikkje registrera typebiblioteket: %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=Ein feil oppstod under forsk p opna LESMEG-fila.
+ErrorRestartingComputer=Installasjonsprogrammet kunne ikkje starta maskina p nytt. Ver venleg og gjer dette manuelt.
+
+; *** Uninstaller messages
+UninstallNotFound=Kan ikkje avinstallera. Fila "%1" finst ikkje.
+UninstallOpenError=Kan ikkje avinstallera. Fila "%1" kunne ikkje opnast.
+UninstallUnsupportedVer=Kan ikkje avinstallera. Avinstallasjonsloggfila "%1" er i eit format som denne versjonen av avinstallasjonsprogrammet ikkje forstr
+UninstallUnknownEntry=Ein ukjend parameter (%1) blei funne i avinstallasjonsloggen
+ConfirmUninstall=Er du sikker p at du vil fjerna %1 og alle tilhyrande komponentar?
+OnlyAdminCanUninstall=Denne installasjonen kan berre avinstallerast av ein brukar med administrator-rettar.
+UninstallStatusLabel=Ver venleg og vent mens %1 blir fjerna fr di datamaskin.
+UninstalledAll=Fjerninga av %1 var vellukka.
+UninstalledMost=Avinstalleringa av %1 er fullfrt.%n%nNokre element kunne ikkje bli sletta. Desse kan slettast manuelt.
+UninstalledAndNeedsRestart=For fullfra avinstallasjonen av %1, m datamaskina startast p nytt.%n%nVil du starta p nytt no?
+UninstallDataCorrupted=Kan ikkje avinstallera. "%1"-fila er ydelagd.
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=Fjerna delt fil?
+ConfirmDeleteSharedFile2=Systemet indikerer at den fylgjande delte fila ikkje blir brukt av nokon program. Vil du at avinstallasjonsprogrammet skal fjerna denne delte fila?%n%nViss nokre program framleis brukar denne fila, og den blir fjerna, kan du risikere at dei ikkje verkar som dei skal. Viss du er usikker, vel Nei. la denne fila vera p systemet vil ikkje gjera nokon skade.
+SharedFileNameLabel=Filnamn:
+SharedFileLocationLabel=Plassering:
+WizardUninstalling=Avinstallasjons-status
+StatusUninstalling=Avinstallerer %1...
+
diff --git a/GreenshotBoxPlugin/BoxConfiguration.cs b/GreenshotBoxPlugin/BoxConfiguration.cs
index 16ea3c448..f0a91a408 100644
--- a/GreenshotBoxPlugin/BoxConfiguration.cs
+++ b/GreenshotBoxPlugin/BoxConfiguration.cs
@@ -37,6 +37,9 @@ namespace GreenshotBoxPlugin {
[IniProperty("AfterUploadLinkToClipBoard", Description = "After upload send Box link to clipboard.", DefaultValue = "true")]
public bool AfterUploadLinkToClipBoard;
+ [IniProperty("UseSharedLink", Description = "Use the shared link, instead of the private, on the clipboard", DefaultValue = "True")]
+ public bool UseSharedLink;
+
[IniProperty("BoxToken", Description = "Token.", DefaultValue = "")]
public string BoxToken;
diff --git a/GreenshotBoxPlugin/BoxCredentials.cs b/GreenshotBoxPlugin/BoxCredentials.cs
index 33453ca6a..d232689c3 100644
--- a/GreenshotBoxPlugin/BoxCredentials.cs
+++ b/GreenshotBoxPlugin/BoxCredentials.cs
@@ -26,6 +26,7 @@ namespace GreenshotBoxPlugin {
/// Copy this file to BoxCredentials.private.cs and fill in valid credentials. (Or empty strings, but of course you won't be able to use the plugin then.)
///
public static class BoxCredentials {
- public static string API_KEY = empty;
+ public static string ClientId = string.Empty;
+ public static string ClientSecret = string.Empty;
}
}
\ No newline at end of file
diff --git a/GreenshotBoxPlugin/BoxEntities.cs b/GreenshotBoxPlugin/BoxEntities.cs
new file mode 100644
index 000000000..d3e3b7769
--- /dev/null
+++ b/GreenshotBoxPlugin/BoxEntities.cs
@@ -0,0 +1,59 @@
+/*
+ * Greenshot - a free and open source screenshot tool
+ * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom, Francis Noel
+ *
+ * For more information see: http://getgreenshot.org/
+ * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
+ *
+ * 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 1 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 System.Collections.Generic;
+using System.Runtime.Serialization;
+
+namespace GreenshotBoxPlugin {
+ [DataContract]
+ public class Authorization {
+ [DataMember(Name = "access_token")]
+ public string AccessToken { get; set; }
+ [DataMember(Name = "expires_in")]
+ public int ExpiresIn { get; set; }
+ [DataMember(Name = "refresh_token")]
+ public string RefreshToken { get; set; }
+ [DataMember(Name = "token_type")]
+ public string TokenType { get; set; }
+ }
+ [DataContract]
+ public class SharedLink {
+ [DataMember(Name = "url")]
+ public string Url { get; set; }
+ [DataMember(Name = "download_url")]
+ public string DownloadUrl { get; set; }
+ }
+
+ [DataContract]
+ public class FileEntry {
+ [DataMember(Name = "id")]
+ public string Id { get; set; }
+ [DataMember(Name = "name")]
+ public string Name { get; set; }
+ [DataMember(Name = "shared_link")]
+ public SharedLink SharedLink { get; set; }
+ }
+
+ [DataContract]
+ public class Upload {
+ [DataMember(Name = "entries")]
+ public List Entries { get; set; }
+ }
+}
diff --git a/GreenshotBoxPlugin/BoxPlugin.cs b/GreenshotBoxPlugin/BoxPlugin.cs
index 0f61db4a3..b755c3f4a 100644
--- a/GreenshotBoxPlugin/BoxPlugin.cs
+++ b/GreenshotBoxPlugin/BoxPlugin.cs
@@ -144,7 +144,7 @@ namespace GreenshotBoxPlugin {
return url;
} catch (Exception ex) {
LOG.Error("Error uploading.", ex);
- MessageBox.Show(Language.GetString("box", LangKey.upload_failure) + " " + ex.ToString());
+ MessageBox.Show(Language.GetString("box", LangKey.upload_failure) + " " + ex.Message);
return null;
}
}
diff --git a/GreenshotBoxPlugin/BoxUtils.cs b/GreenshotBoxPlugin/BoxUtils.cs
index 8d60de27a..04ec6a2bd 100644
--- a/GreenshotBoxPlugin/BoxUtils.cs
+++ b/GreenshotBoxPlugin/BoxUtils.cs
@@ -22,67 +22,114 @@ using System;
using System.Collections.Generic;
using System.Drawing;
using System.Net;
-using System.Xml;
+using System.Text;
using Greenshot.IniFile;
using GreenshotPlugin.Controls;
using GreenshotPlugin.Core;
+using System.Runtime.Serialization.Json;
+using System.IO;
namespace GreenshotBoxPlugin {
+
///
/// Description of ImgurUtils.
///
- public class BoxUtils {
+ public static class BoxUtils {
private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(BoxUtils));
- private static BoxConfiguration config = IniConfig.GetIniSection();
-
- private BoxUtils() {
- }
-
- private static string ParseTicket(string response) {
- try {
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(response);
- XmlNodeList nodes = doc.GetElementsByTagName("ticket");
- if(nodes.Count > 0) {
- return nodes.Item(0).InnerText;
- }
- } catch (Exception ex) {
- LOG.Error("Error parsing Box Response.", ex);
- }
- return null;
- }
+ private static readonly BoxConfiguration Config = IniConfig.GetIniSection();
+ private const string RedirectUri = "https://app.box.com/home/";
+ private const string UploadFileUri = "https://upload.box.com/api/2.0/files/content";
+ private const string AuthorizeUri = "https://www.box.com/api/oauth2/authorize";
+ private const string TokenUri = "https://www.box.com/api/oauth2/token";
+ private const string FilesUri = "https://www.box.com/api/2.0/files/{0}";
private static bool Authorize() {
- string ticketUrl = string.Format("https://www.box.com/api/1.0/rest?action=get_ticket&api_key={0}", BoxCredentials.API_KEY);
- string ticketXML = NetworkHelper.GetAsString(new Uri(ticketUrl));
- string ticket = ParseTicket(ticketXML);
- string authorizeUrl = string.Format("https://www.box.com/api/1.0/auth/{0}", ticket);
- OAuthLoginForm loginForm = new OAuthLoginForm("Box Authorize", new Size(1060,600), authorizeUrl, "http://getgreenshot.org");
+ string authorizeUrl = string.Format("{0}?client_id={1}&response_type=code&state=dropboxplugin&redirect_uri={2}", AuthorizeUri, BoxCredentials.ClientId, RedirectUri);
+
+ OAuthLoginForm loginForm = new OAuthLoginForm("Box Authorize", new Size(1060, 600), authorizeUrl, RedirectUri);
loginForm.ShowDialog();
- if (loginForm.isOk) {
- if (loginForm.CallbackParameters != null && loginForm.CallbackParameters.ContainsKey("auth_token")) {
- config.BoxToken = loginForm.CallbackParameters["auth_token"];
- IniConfig.Save();
- return true;
- }
+ if (!loginForm.isOk) {
+ return false;
}
- return false;
+ var callbackParameters = loginForm.CallbackParameters;
+ if (callbackParameters == null || !callbackParameters.ContainsKey("code")) {
+ return false;
+ }
+
+ string authorizationResponse = PostAndReturn(new Uri(TokenUri), string.Format("grant_type=authorization_code&code={0}&client_id={1}&client_secret={2}", callbackParameters["code"], BoxCredentials.ClientId, BoxCredentials.ClientSecret));
+ var authorization = JSONSerializer.Deserialize(authorizationResponse);
+
+ Config.BoxToken = authorization.AccessToken;
+ IniConfig.Save();
+ return true;
}
-
///
- /// Upload file by post
+ /// Download a url response as string
///
- ///
- ///
- /// response
- public static string HttpUploadFile(string url, Dictionary parameters) {
+ /// An Uri to specify the download location
+ /// string with the file content
+ public static string PostAndReturn(Uri url, string postMessage) {
HttpWebRequest webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
webRequest.Method = "POST";
webRequest.KeepAlive = true;
webRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;
+ webRequest.ContentType = "application/x-www-form-urlencoded";
+ byte[] data = Encoding.UTF8.GetBytes(postMessage.ToString());
+ using (var requestStream = webRequest.GetRequestStream()) {
+ requestStream.Write(data, 0, data.Length);
+ }
+ return NetworkHelper.GetResponse(webRequest);
+ }
+
+ ///
+ /// Upload parameters by post
+ ///
+ ///
+ ///
+ /// response
+ public static string HttpPost(string url, IDictionary parameters) {
+ var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
+ webRequest.Method = "POST";
+ webRequest.KeepAlive = true;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
NetworkHelper.WriteMultipartFormData(webRequest, parameters);
-
+
+ return NetworkHelper.GetResponse(webRequest);
+ }
+
+ ///
+ /// Upload file by PUT
+ ///
+ ///
+ ///
+ /// response
+ public static string HttpPut(string url, string content) {
+ var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
+ webRequest.Method = "PUT";
+ webRequest.KeepAlive = true;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
+ byte[] data = Encoding.UTF8.GetBytes(content);
+ using (var requestStream = webRequest.GetRequestStream()) {
+ requestStream.Write(data, 0, data.Length);
+ }
+ return NetworkHelper.GetResponse(webRequest);
+ }
+
+
+ ///
+ /// Get REST request
+ ///
+ ///
+ /// response
+ public static string HttpGet(string url) {
+ var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
+ webRequest.Method = "GET";
+ webRequest.KeepAlive = true;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
return NetworkHelper.GetResponse(webRequest);
}
@@ -90,43 +137,102 @@ namespace GreenshotBoxPlugin {
/// Do the actual upload to Box
/// For more details on the available parameters, see: http://developers.box.net/w/page/12923951/ApiFunction_Upload%20and%20Download
///
- /// byte[] with image data
+ /// Image for box upload
+ /// Title of box upload
+ /// Filename of box upload
/// url to uploaded image
public static string UploadToBox(SurfaceContainer image, string title, string filename) {
- string folderId = "0";
- if (string.IsNullOrEmpty(config.BoxToken)) {
- if (!Authorize()) {
- return null;
- }
- }
-
- string strUrl = string.Format("https://upload.box.net/api/1.0/upload/{0}/{1}?file_name={2}&new_copy=1", config.BoxToken, folderId, filename);
-
- Dictionary parameters = new Dictionary();
- parameters.Add("share", "1");
- parameters.Add("new_file", image);
-
- string response = HttpUploadFile(strUrl, parameters);
- // Check if the token is wrong
- if ("wrong auth token".Equals(response)) {
- config.BoxToken = null;
- IniConfig.Save();
- return UploadToBox(image, title, filename);
- }
- LOG.DebugFormat("Box response: {0}", response);
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(response);
- XmlNodeList nodes = doc.GetElementsByTagName("status");
- if(nodes.Count > 0) {
- if ("upload_ok".Equals(nodes.Item(0).InnerText)) {
- nodes = doc.GetElementsByTagName("file");
- if (nodes.Count > 0) {
- long id = long.Parse(nodes.Item(0).Attributes["id"].Value);
- return string.Format("http://www.box.com/files/0/f/0/1/f_{0}", id);
+ while (true) {
+ const string folderId = "0";
+ if (string.IsNullOrEmpty(Config.BoxToken)) {
+ if (!Authorize()) {
+ return null;
}
}
+
+ IDictionary parameters = new Dictionary();
+ parameters.Add("filename", image);
+ parameters.Add("parent_id", folderId);
+
+ var response = "";
+ try {
+ response = HttpPost(UploadFileUri, parameters);
+ } catch (WebException ex) {
+ if (ex.Status == WebExceptionStatus.ProtocolError) {
+ Config.BoxToken = null;
+ continue;
+ }
+ }
+
+ LOG.DebugFormat("Box response: {0}", response);
+
+ // Check if the token is wrong
+ if ("wrong auth token".Equals(response)) {
+ Config.BoxToken = null;
+ IniConfig.Save();
+ continue;
+ }
+ var upload = JSONSerializer.Deserialize(response);
+ if (upload == null || upload.Entries == null || upload.Entries.Count == 0) return null;
+
+ if (Config.UseSharedLink) {
+ string filesResponse = HttpPut(string.Format(FilesUri, upload.Entries[0].Id), "{\"shared_link\": {\"access\": \"open\"}}");
+ var file = JSONSerializer.Deserialize(filesResponse);
+ return file.SharedLink.Url;
+ }
+ return string.Format("http://www.box.com/files/0/f/0/1/f_{0}", upload.Entries[0].Id);
+ }
+ }
+ }
+ ///
+ /// A simple helper class for the DataContractJsonSerializer
+ ///
+ public static class JSONSerializer {
+ ///
+ /// Helper method to serialize object to JSON
+ ///
+ /// JSON object
+ /// string
+ public static string Serialize(object jsonObject) {
+ var serializer = new DataContractJsonSerializer(jsonObject.GetType());
+ using (MemoryStream stream = new MemoryStream()) {
+ serializer.WriteObject(stream, jsonObject);
+ return Encoding.UTF8.GetString(stream.ToArray());
+ }
+ }
+
+ ///
+ /// Helper method to parse JSON to object
+ ///
+ ///
+ ///
+ ///
+ public static T Deserialize(string jsonString) {
+ var deserializer = new DataContractJsonSerializer(typeof(T));
+ using (MemoryStream stream = new MemoryStream()) {
+ byte[] content = Encoding.UTF8.GetBytes(jsonString);
+ stream.Write(content, 0, content.Length);
+ stream.Seek(0, SeekOrigin.Begin);
+ return (T)deserializer.ReadObject(stream);
+ }
+ }
+
+ ///
+ /// Helper method to parse JSON to object
+ ///
+ ///
+ ///
+ ///
+ public static T DeserializeWithDirectory(string jsonString) {
+ DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings();
+ settings.UseSimpleDictionaryFormat = true;
+ var deserializer = new DataContractJsonSerializer(typeof(T), settings);
+ using (MemoryStream stream = new MemoryStream()) {
+ byte[] content = Encoding.UTF8.GetBytes(jsonString);
+ stream.Write(content, 0, content.Length);
+ stream.Seek(0, SeekOrigin.Begin);
+ return (T)deserializer.ReadObject(stream);
}
- return null;
}
}
}
diff --git a/GreenshotBoxPlugin/GreenshotBoxPlugin.csproj b/GreenshotBoxPlugin/GreenshotBoxPlugin.csproj
index 917c9d4ec..a2301296b 100644
--- a/GreenshotBoxPlugin/GreenshotBoxPlugin.csproj
+++ b/GreenshotBoxPlugin/GreenshotBoxPlugin.csproj
@@ -23,6 +23,7 @@
+
@@ -30,6 +31,7 @@
+
@@ -71,10 +73,9 @@ mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
-copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
+copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
+
if exist "$(ProjectDir)BoxCredentials.private.cs" (
rename "$(ProjectDir)BoxCredentials.cs" "BoxCredentials.orig.cs"
rename "$(ProjectDir)BoxCredentials.private.cs" "BoxCredentials.cs"
diff --git a/GreenshotBoxPlugin/Languages/language_Boxplugin-cs-CZ.xml b/GreenshotBoxPlugin/Languages/language_Boxplugin-cs-CZ.xml
index cdd666573..855606bba 100644
--- a/GreenshotBoxPlugin/Languages/language_Boxplugin-cs-CZ.xml
+++ b/GreenshotBoxPlugin/Languages/language_Boxplugin-cs-CZ.xml
@@ -1,24 +1,24 @@
-
-
-
- Zrušit
- Komunikace s Box. Počkejte prosím...
- Konfigurovat
- Jste si jistý, že chcete odstranit obrázek {0} z Box?
- Odstranit Box {0}
- Historie
- Po odeslání
- Odkaz do schránky
- Otevřít historii
- Ověření Token
- Výchozí velikost
- Formát obrázku
- OK
- Nastavení
- Prosím ověřit dostupnost aplikace Box. Nastavení přístupu.
- Odeslat
- Při odesílání do Box došlo k chybě:
- Odeslat do Box
- Obrázek úspěšně odeslán do Box!
-
+
+
+
+ Zrušit
+ Komunikace s Box. Počkejte prosím...
+ Konfigurovat
+ Jste si jistý, že chcete odstranit obrázek {0} z Box?
+ Odstranit Box {0}
+ Historie
+ Po odeslání
+ Odkaz do schránky
+ Otevřít historii
+ Ověření Token
+ Výchozí velikost
+ Formát obrázku
+ OK
+ Nastavení
+ Prosím ověřit dostupnost aplikace Box. Nastavení přístupu.
+ Odeslat
+ Při odesílání do Box došlo k chybě:
+ Odeslat do Box
+ Obrázek úspěšně odeslán do Box!
+
\ No newline at end of file
diff --git a/GreenshotBoxPlugin/Languages/language_Boxplugin-id-ID.xml b/GreenshotBoxPlugin/Languages/language_Boxplugin-id-ID.xml
new file mode 100644
index 000000000..350b948ee
--- /dev/null
+++ b/GreenshotBoxPlugin/Languages/language_Boxplugin-id-ID.xml
@@ -0,0 +1,14 @@
+
+
+
+ Menyambungkan ke Box. Tunggu sebentar...
+ Konfigurasi Box
+ Setelah Diunggah
+ Sambung ke papanklip
+ Format gambar
+ Setelan Box
+ Kesalahan terjadi ketika mengunggah ke Box:
+ Unggah ke Box
+ Gambar telah berhasil diunggah ke Box!
+
+
\ No newline at end of file
diff --git a/GreenshotBoxPlugin/Languages/language_Boxplugin-pl-PL.xml b/GreenshotBoxPlugin/Languages/language_Boxplugin-pl-PL.xml
new file mode 100644
index 000000000..d0a6833ef
--- /dev/null
+++ b/GreenshotBoxPlugin/Languages/language_Boxplugin-pl-PL.xml
@@ -0,0 +1,14 @@
+
+
+
+ Trwa komunikacja z Box. Proszę czekać...
+ Konfiguruj Box
+ Po wysłaniu
+ Link do schowka
+ Format obrazu
+ Ustawienia Box
+ Wystąpił błąd przy wysyłaniu do Box:
+ Wyślij do Box
+ Wysyłanie obrazu do Box powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotBoxPlugin/Languages/language_Boxplugin-ru-RU.xml b/GreenshotBoxPlugin/Languages/language_Boxplugin-ru-RU.xml
index 8765634f2..ae9e33d94 100644
--- a/GreenshotBoxPlugin/Languages/language_Boxplugin-ru-RU.xml
+++ b/GreenshotBoxPlugin/Languages/language_Boxplugin-ru-RU.xml
@@ -1,5 +1,5 @@
-
+
Обмен данными с Box. Подождите...
Настройка Box
diff --git a/GreenshotBoxPlugin/Languages/language_Boxplugin-zh-TW.xml b/GreenshotBoxPlugin/Languages/language_Boxplugin-zh-TW.xml
index 9b0f98e47..c8f9a2d61 100644
--- a/GreenshotBoxPlugin/Languages/language_Boxplugin-zh-TW.xml
+++ b/GreenshotBoxPlugin/Languages/language_Boxplugin-zh-TW.xml
@@ -1,14 +1,14 @@
-
-
-
- 正在與 Box 通訊,請稍候...
- 組態 Box
- 上傳後
- 連結到剪貼簿
- 圖片格式
- Box 設定
- 上傳到 Box 時發生錯誤:
- 上傳到 Box
- 上傳圖片到 Box 成功!
-
+
+
+
+ 正在與 Box 通訊,請稍候...
+ 組態 Box
+ 上傳後
+ 連結到剪貼簿
+ 圖片格式
+ Box 設定
+ 上傳到 Box 時發生錯誤:
+ 上傳到 Box
+ 上傳圖片到 Box 成功!
+
\ No newline at end of file
diff --git a/GreenshotBoxPlugin/Properties/AssemblyInfo.cs.template b/GreenshotBoxPlugin/Properties/AssemblyInfo.cs.template
index 419a6fc88..68cefdd30 100644
--- a/GreenshotBoxPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotBoxPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotConfluencePlugin/GreenshotConfluencePlugin.csproj b/GreenshotConfluencePlugin/GreenshotConfluencePlugin.csproj
index 5d47ac629..7cf13e5bb 100644
--- a/GreenshotConfluencePlugin/GreenshotConfluencePlugin.csproj
+++ b/GreenshotConfluencePlugin/GreenshotConfluencePlugin.csproj
@@ -138,7 +138,6 @@
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
diff --git a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-cs-CZ.xml b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-cs-CZ.xml
index e466bdd2d..fd8b03878 100644
--- a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-cs-CZ.xml
+++ b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-cs-CZ.xml
@@ -1,29 +1,29 @@
-
-
-
- Prohlížet stránky
- Zrušit
- Kopírovat Wikimarkup do schránky
- Název souboru
- Zahrnout soukromého prostoru do hledání a prohlížení
- Heslo
- Časový limit
- Url
- Uživatel
- Data z Confluence se načítají, čekejte prosím ...
- Došlo k potížím během přihlášení: {0}
- Prosím zadejte vaše přihlašovací údaje k službě Confluence
- OK
- Otevřít stránky pro nahrání
- Otevřít stránky
- Nastavení Confluence
- Hledat
- Hledat stránky
- Hledat text
- Nahrát
- Nahrání obrázku do Confluence se nezdařilo:
- Nahrát formát
- Nahrát do Confluence
- Úspěšné nahrání obrázku do Confluence!
-
+
+
+
+ Prohlížet stránky
+ Zrušit
+ Kopírovat Wikimarkup do schránky
+ Název souboru
+ Zahrnout soukromého prostoru do hledání a prohlížení
+ Heslo
+ Časový limit
+ Url
+ Uživatel
+ Data z Confluence se načítají, čekejte prosím ...
+ Došlo k potížím během přihlášení: {0}
+ Prosím zadejte vaše přihlašovací údaje k službě Confluence
+ OK
+ Otevřít stránky pro nahrání
+ Otevřít stránky
+ Nastavení Confluence
+ Hledat
+ Hledat stránky
+ Hledat text
+ Nahrát
+ Nahrání obrázku do Confluence se nezdařilo:
+ Nahrát formát
+ Nahrát do Confluence
+ Úspěšné nahrání obrázku do Confluence!
+
\ No newline at end of file
diff --git a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-id-ID.xml b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-id-ID.xml
new file mode 100644
index 000000000..393d22787
--- /dev/null
+++ b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-id-ID.xml
@@ -0,0 +1,30 @@
+
+
+
+ Telusuri halaman
+ Batal
+ Mentransfer data ke Confluence, tunggu sebentar...
+ Kopi Wikimarkup ke papanklip
+ Nama berkas
+ Sertakan personal space dalam pencarian dan penelusuran
+ Sandi
+ Waktu habis
+ Url
+ Pengguna
+ Data Confluence sedang dimuat, tunggu sebentar...
+ Ada masalah ketika login: {0}
+ Harap masukkan login Confluence anda
+ Oke
+ Buka halaman setelah diunggah
+ Buka halaman
+ Setelan Confluence
+ Cari
+ Cari halaman
+ Cari teks
+ Unggah
+ Kesalahan terjadi ketika mengunggah ke Confluence:
+ Format unggah
+ Unggah ke Confluence
+ Gambar telah berhasil diunggah ke Confluence!
+
+
\ No newline at end of file
diff --git a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-pl-PL.xml b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-pl-PL.xml
new file mode 100644
index 000000000..49252c918
--- /dev/null
+++ b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-pl-PL.xml
@@ -0,0 +1,31 @@
+
+
+
+ Przeglądaj strony
+ Anuluj
+ Trwa komunikacja z Confluence. Proszę czekać...
+ Kopiuj Wikimarkup do schowka
+ Nazwa pliku
+ Dołącz własne spacje przy wyszukiwaniu i przeglądaniu
+ Hasło
+ Czas
+ URL
+ Użytkownik
+ Informacje z Confluence są wczytywane, proszę czekać...
+ Wystąpił problem podczas logowania: {0}
+ Wprowadź swoje dane logowania
+ OK
+ Otwórz stronę po wysłaniu
+ Otwórz strony
+ Ustawienia Confluence
+
+ Szukaj
+ Szukaj strony
+ Szukaj tekst
+ Wyślij
+ Wystąpił błąd przy wysyłaniu do Confluence:
+ Format wysyłania
+ Wyślij do Confluence
+ Wysyłanie obrazu do Confluence powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-zh-TW.xml b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-zh-TW.xml
index 916e39245..26d018dee 100644
--- a/GreenshotConfluencePlugin/Languages/language_confluenceplugin-zh-TW.xml
+++ b/GreenshotConfluencePlugin/Languages/language_confluenceplugin-zh-TW.xml
@@ -1,30 +1,30 @@
-
-
-
- 瀏覽頁面
- 取消
- 正在與 Confluence 通訊,請稍候...
- 複製 Wikimarkup 到剪貼簿
- 檔案名稱
- 搜尋和瀏覽包含無效的空格
- 密碼
- 逾時
- URL
- 使用者
- 正在載入 Confluence 資料,請稍候...
- 登入期間發生問題: {0}
- 請輸入您的 Confluence 登入資料
- 確定
- 上傳後開啟頁面
- 開啟頁面
- Confluence 設定
- 搜尋
- 搜尋頁面
- 搜尋文字
- 上傳
- 上傳到 Confluence 時發生錯誤:
- 上傳格式
- 上傳到 Confluence
- 上傳圖片到 Confluence 成功!
-
+
+
+
+ 瀏覽頁面
+ 取消
+ 正在與 Confluence 通訊,請稍候...
+ 複製 Wikimarkup 到剪貼簿
+ 檔案名稱
+ 搜尋和瀏覽包含無效的空格
+ 密碼
+ 逾時
+ URL
+ 使用者
+ 正在載入 Confluence 資料,請稍候...
+ 登入期間發生問題: {0}
+ 請輸入您的 Confluence 登入資料
+ 確定
+ 上傳後開啟頁面
+ 開啟頁面
+ Confluence 設定
+ 搜尋
+ 搜尋頁面
+ 搜尋文字
+ 上傳
+ 上傳到 Confluence 時發生錯誤:
+ 上傳格式
+ 上傳到 Confluence
+ 上傳圖片到 Confluence 成功!
+
\ No newline at end of file
diff --git a/GreenshotConfluencePlugin/Properties/AssemblyInfo.cs.template b/GreenshotConfluencePlugin/Properties/AssemblyInfo.cs.template
index 18b2ede5e..786a70b8b 100644
--- a/GreenshotConfluencePlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotConfluencePlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
\ No newline at end of file
diff --git a/GreenshotDropboxPlugin/DropboxPlugin.cs b/GreenshotDropboxPlugin/DropboxPlugin.cs
index 1cd482464..074d734e4 100644
--- a/GreenshotDropboxPlugin/DropboxPlugin.cs
+++ b/GreenshotDropboxPlugin/DropboxPlugin.cs
@@ -143,7 +143,7 @@ namespace GreenshotDropboxPlugin {
return true;
} catch (Exception e) {
LOG.Error(e);
- MessageBox.Show(Language.GetString("dropbox", LangKey.upload_failure) + " " + e.ToString());
+ MessageBox.Show(Language.GetString("dropbox", LangKey.upload_failure) + " " + e.Message);
return false;
}
}
diff --git a/GreenshotDropboxPlugin/GreenshotDropboxPlugin.csproj b/GreenshotDropboxPlugin/GreenshotDropboxPlugin.csproj
index 4f34676ea..937b09d2b 100644
--- a/GreenshotDropboxPlugin/GreenshotDropboxPlugin.csproj
+++ b/GreenshotDropboxPlugin/GreenshotDropboxPlugin.csproj
@@ -69,8 +69,7 @@ copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
+
if exist "$(ProjectDir)DropBoxCredentials.private.cs" (
rename "$(ProjectDir)DropBoxCredentials.cs" "DropBoxCredentials.orig.cs"
rename "$(ProjectDir)DropBoxCredentials.private.cs" "DropBoxCredentials.cs"
diff --git a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-cs-CZ.xml b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-cs-CZ.xml
index 5f0dcd81e..00a5acef0 100644
--- a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-cs-CZ.xml
+++ b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-cs-CZ.xml
@@ -1,25 +1,25 @@
-
-
-
- Použijte prosím webové stránky dropbox k přihlášení a poskytněte programu Greenshot přístup k službě dropbox, dokončete stisknutím OK.
- Ověřit
- Zrušit
- Probíhá komunikace s Dropbox. Počkejte prosím...
- Konfigurovat
- Jste si jistý, že chcete odstranit obrázek {0} z Dropbox?
- Odstranit Dropbox {0}
- Historie
- Po odeslání
- Odkaz do schránky
- Otevřít historii
- Ověření Token
- Formát obrázku
- OK
- Nastavení Dropbox
- Prosím ověřit dostupnost aplikace Dropbox. Otevřít obrazovku pro nastavení snímku.
- Odeslat
- Při odesílání do Dropbox došlo k chybě:
- Odeslat do Dropbox
- Obrázek úspěšně odslán do Dropbox!
-
+
+
+
+ Použijte prosím webové stránky dropbox k přihlášení a poskytněte programu Greenshot přístup k službě dropbox, dokončete stisknutím OK.
+ Ověřit
+ Zrušit
+ Probíhá komunikace s Dropbox. Počkejte prosím...
+ Konfigurovat
+ Jste si jistý, že chcete odstranit obrázek {0} z Dropbox?
+ Odstranit Dropbox {0}
+ Historie
+ Po odeslání
+ Odkaz do schránky
+ Otevřít historii
+ Ověření Token
+ Formát obrázku
+ OK
+ Nastavení Dropbox
+ Prosím ověřit dostupnost aplikace Dropbox. Otevřít obrazovku pro nastavení snímku.
+ Odeslat
+ Při odesílání do Dropbox došlo k chybě:
+ Odeslat do Dropbox
+ Obrázek úspěšně odslán do Dropbox!
+
\ No newline at end of file
diff --git a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-id-ID.xml b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-id-ID.xml
new file mode 100644
index 000000000..9485440b5
--- /dev/null
+++ b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-id-ID.xml
@@ -0,0 +1,15 @@
+
+
+
+ Menyambungkan ke Dropbox. Tunggu sebentar...
+ Konfigurasi Dropbox
+ Setelah mengunggah
+ Sambung ke papanklip
+ Buka riwayat
+ Format gambar
+ Setelan Dropbox
+ Kesalahan terjadi ketik mengunggah ke Dropbox:
+ Unggah ke Dropbox
+ Sukses mengunggah gambar ke Dropbox!
+
+
\ No newline at end of file
diff --git a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-pl-PL.xml b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-pl-PL.xml
new file mode 100644
index 000000000..493cccd49
--- /dev/null
+++ b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-pl-PL.xml
@@ -0,0 +1,15 @@
+
+
+
+ Trwa komunikacja z Dropbox. Proszę czekać...
+ Konfiguruj Dropbox
+ Po wysłaniu
+ Link do schowka
+ Otwórz historię
+ Format obrazu
+ Ustawienia Dropbox
+ Wystąpił błąd przy wysyłaniu do Dropbox:
+ Wyślij do Dropbox
+ Wysyłanie obrazu do Dropbox powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-zh-TW.xml b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-zh-TW.xml
index b3767b223..a62a84cf1 100644
--- a/GreenshotDropboxPlugin/Languages/language_dropboxplugin-zh-TW.xml
+++ b/GreenshotDropboxPlugin/Languages/language_dropboxplugin-zh-TW.xml
@@ -1,15 +1,15 @@
-
-
-
- 正在與 Dropbox 通訊,請稍候...
- 組態 Dropbox
- 上傳後
- 連結到剪貼簿
- 開啟歷程記錄
- 圖片格式
- Dropbox 設定
- 上傳到 Dropbox 時發生錯誤:
- 上傳到 Dropbox
- 上傳圖片到 Dropbox 成功!
-
+
+
+
+ 正在與 Dropbox 通訊,請稍候...
+ 組態 Dropbox
+ 上傳後
+ 連結到剪貼簿
+ 開啟歷程記錄
+ 圖片格式
+ Dropbox 設定
+ 上傳到 Dropbox 時發生錯誤:
+ 上傳到 Dropbox
+ 上傳圖片到 Dropbox 成功!
+
\ No newline at end of file
diff --git a/GreenshotDropboxPlugin/Properties/AssemblyInfo.cs.template b/GreenshotDropboxPlugin/Properties/AssemblyInfo.cs.template
index b42ce24d4..69aa34640 100644
--- a/GreenshotDropboxPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotDropboxPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs b/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs
index b73a07a8e..463c77b79 100644
--- a/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs
+++ b/GreenshotExternalCommandPlugin/ExternalCommandDestination.cs
@@ -108,12 +108,18 @@ namespace ExternalCommand {
private int CallExternalCommand(string commando, string fullPath, out string output) {
try {
return CallExternalCommand(commando, fullPath, null, out output);
- } catch (Win32Exception ex) {
+ } catch (Win32Exception w32ex) {
try {
return CallExternalCommand(commando, fullPath, "runas", out output);
} catch {
- throw ex;
+ w32ex.Data.Add("commandline", config.commandlines[presetCommand]);
+ w32ex.Data.Add("arguments", config.arguments[presetCommand]);
+ throw w32ex;
}
+ } catch (Exception ex) {
+ ex.Data.Add("commandline", config.commandlines[presetCommand]);
+ ex.Data.Add("arguments", config.arguments[presetCommand]);
+ throw;
}
}
diff --git a/GreenshotExternalCommandPlugin/GreenshotExternalCommandPlugin.csproj b/GreenshotExternalCommandPlugin/GreenshotExternalCommandPlugin.csproj
index 08dab60e7..35ef63cfd 100644
--- a/GreenshotExternalCommandPlugin/GreenshotExternalCommandPlugin.csproj
+++ b/GreenshotExternalCommandPlugin/GreenshotExternalCommandPlugin.csproj
@@ -49,9 +49,6 @@
-
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
{5B924697-4DCD-4F98-85F1-105CB84B7341}
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-cs-CZ.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-cs-CZ.xml
index 7cade6479..e48f874d1 100644
--- a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-cs-CZ.xml
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-cs-CZ.xml
@@ -1,35 +1,35 @@
-
-
-
-
- Nakonfigurovat externí příkazy
-
-
- Externí příkaz Nastavení
-
-
- Konfigurace příkazu
-
-
- Nový
-
-
- Odstranit
-
-
- Úpravy
-
-
- Jméno
-
-
- Příkaz
-
-
- Argumenty
-
-
- {0} je název vašeho snímku
-
-
+
+
+
+
+ Nakonfigurovat externí příkazy
+
+
+ Externí příkaz Nastavení
+
+
+ Konfigurace příkazu
+
+
+ Nový
+
+
+ Odstranit
+
+
+ Úpravy
+
+
+ Jméno
+
+
+ Příkaz
+
+
+ Argumenty
+
+
+ {0} je název vašeho snímku
+
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-id-ID.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-id-ID.xml
new file mode 100644
index 000000000..cfd34aed5
--- /dev/null
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-id-ID.xml
@@ -0,0 +1,15 @@
+
+
+
+ Konfigurasi perintah eksternal
+ Argumen
+ Perintah
+ {0} adalah nama berkas dari tangkapan anda
+ Nama
+ Hapus
+ Konfigursi perintah
+ Edit
+ Baru
+ Setelan perintah eksternal
+
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-it-IT.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-it-IT.xml
index 90f3ca2a8..3c0b77f87 100644
--- a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-it-IT.xml
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-it-IT.xml
@@ -1,35 +1,15 @@
-
-
-
- Configurazione comandi esterni external commands
-
-
- Impostazioni comandi esterni
-
-
- Configurazione comando
-
-
- Nuovo
-
-
- Elimina
-
-
- Modifica
-
-
- Nome
-
-
- Comando
-
-
- Parametri
-
-
- {0} è il nome file della vostra immagine
-
-
+
+
+ Configurazione comandi esterni
+ Parametri
+ Comando
+ {0} è il nome file della vostra immagine
+ Nome
+ Elimina
+ Configurazione comando
+ Modifica
+ Nuovo
+ Impostazioni comandi esterni
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-pl-PL.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-pl-PL.xml
new file mode 100644
index 000000000..40195d762
--- /dev/null
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-pl-PL.xml
@@ -0,0 +1,15 @@
+
+
+
+ Konfiguruj zewnętrzne komendy
+ Parametry
+ Komenda
+ {0} oznacza nazwę pliku zrzutu ekranu
+ Nazwa
+ Usuń
+ Ustawienia komendy
+ Edytuj
+ Nowy
+ Ustawienia zewnętrznych komend
+
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-ru-RU.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-ru-RU.xml
index 2b7c0f0c9..8f3c52b10 100644
--- a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-ru-RU.xml
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-ru-RU.xml
@@ -1,35 +1,15 @@
-
-
-
- Настройка внешних команд
-
-
- Параметры внешней команды
-
-
- Настройка команды
-
-
- Новая
-
-
- Удалить
-
-
- Изменить
-
-
- Имя
-
-
- Команда
-
-
- Аргументы
-
-
- {0} это имя файла вашего скриншота
-
-
+
+
+ Настройка внешних команд
+ Аргументы
+ Команда
+ {0} это имя файла вашего скриншота
+ Имя
+ Удалить
+ Настройка команды
+ Изменить
+ Новая
+ Параметры внешней команды
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-zh-TW.xml b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-zh-TW.xml
index 81ef0455e..380acc223 100644
--- a/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-zh-TW.xml
+++ b/GreenshotExternalCommandPlugin/Languages/language_externalcommandplugin-zh-TW.xml
@@ -1,15 +1,15 @@
-
-
-
- 組態外部命令
- 引數
- 命令
- {0} 是螢幕擷圖的檔案名稱
- 名稱
- 刪除
- 組態命令
- 編輯
- 新增
- 外部命令設定
-
+
+
+
+ 組態外部命令
+ 引數
+ 命令
+ {0} 是螢幕擷圖的檔案名稱
+ 名稱
+ 刪除
+ 組態命令
+ 編輯
+ 新增
+ 外部命令設定
+
\ No newline at end of file
diff --git a/GreenshotExternalCommandPlugin/Properties/AssemblyInfo.cs.template b/GreenshotExternalCommandPlugin/Properties/AssemblyInfo.cs.template
index 08d093bd7..eb95cb101 100644
--- a/GreenshotExternalCommandPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotExternalCommandPlugin/Properties/AssemblyInfo.cs.template
@@ -50,4 +50,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotFlickrPlugin/FlickrConfiguration.cs b/GreenshotFlickrPlugin/FlickrConfiguration.cs
index f2673fe3e..bec6d92ec 100644
--- a/GreenshotFlickrPlugin/FlickrConfiguration.cs
+++ b/GreenshotFlickrPlugin/FlickrConfiguration.cs
@@ -56,6 +56,9 @@ namespace GreenshotFlickrPlugin {
[IniProperty("AfterUploadLinkToClipBoard", Description = "After upload send flickr link to clipboard.", DefaultValue = "true")]
public bool AfterUploadLinkToClipBoard;
+
+ [IniProperty("UsePageLink", Description = "Use pagelink instead of direct link on the clipboard", DefaultValue = "False")]
+ public bool UsePageLink;
[IniProperty("FlickrToken", Description = "The Flickr token", Encrypted = true, ExcludeIfNull = true)]
public string FlickrToken;
diff --git a/GreenshotFlickrPlugin/FlickrDestination.cs b/GreenshotFlickrPlugin/FlickrDestination.cs
index 05a38df0c..8f594c3a2 100644
--- a/GreenshotFlickrPlugin/FlickrDestination.cs
+++ b/GreenshotFlickrPlugin/FlickrDestination.cs
@@ -54,7 +54,12 @@ namespace GreenshotFlickrPlugin {
public override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) {
ExportInformation exportInformation = new ExportInformation(this.Designation, this.Description);
- plugin.Upload(captureDetails, surface, exportInformation);
+ string uploadURL = null;
+ bool uploaded = plugin.Upload(captureDetails, surface, out uploadURL);
+ if (uploaded) {
+ exportInformation.ExportMade = true;
+ exportInformation.Uri = uploadURL;
+ }
ProcessExport(exportInformation, surface);
return exportInformation;
}
diff --git a/GreenshotFlickrPlugin/FlickrPlugin.cs b/GreenshotFlickrPlugin/FlickrPlugin.cs
index 740105b5d..ffc61304c 100644
--- a/GreenshotFlickrPlugin/FlickrPlugin.cs
+++ b/GreenshotFlickrPlugin/FlickrPlugin.cs
@@ -123,8 +123,9 @@ namespace GreenshotFlickrPlugin
config.ShowConfigDialog();
}
- public void Upload(ICaptureDetails captureDetails, ISurface surface, ExportInformation exportInformation) {
+ public bool Upload(ICaptureDetails captureDetails, ISurface surface, out String uploadUrl) {
SurfaceOutputSettings outputSettings = new SurfaceOutputSettings(config.UploadFormat, config.UploadJpegQuality, false);
+ uploadUrl = null;
try {
string flickrUrl = null;
new PleaseWaitForm().ShowAndWait(Attributes.Name, Language.GetString("flickr", LangKey.communication_wait),
@@ -135,18 +136,19 @@ namespace GreenshotFlickrPlugin
);
if (flickrUrl == null) {
- exportInformation.ExportMade = false;
- return;
+ return false;
}
- exportInformation.ExportMade = true;
- exportInformation.Uri = flickrUrl;
+ uploadUrl = flickrUrl;
if (config.AfterUploadLinkToClipBoard) {
ClipboardHelper.SetClipboardData(flickrUrl);
}
+ return true;
} catch (Exception e) {
+ LOG.Error("Error uploading.", e);
MessageBox.Show(Language.GetString("flickr", LangKey.upload_failure) + " " + e.Message);
}
+ return false;
}
}
}
diff --git a/GreenshotFlickrPlugin/FlickrUtils.cs b/GreenshotFlickrPlugin/FlickrUtils.cs
index 9df5c0384..7aee95244 100644
--- a/GreenshotFlickrPlugin/FlickrUtils.cs
+++ b/GreenshotFlickrPlugin/FlickrUtils.cs
@@ -68,21 +68,20 @@ namespace GreenshotFlickrPlugin {
}
try {
IDictionary signedParameters = new Dictionary();
- signedParameters.Add("content_type","2"); // Screenshot
- signedParameters.Add("tags","Greenshot");
- signedParameters.Add("is_public", config.IsPublic?"1":"0");
- signedParameters.Add("is_friend", config.IsFriend?"1":"0");
- signedParameters.Add("is_family", config.IsFamily?"1":"0");
+ signedParameters.Add("content_type", "2"); // Screenshot
+ signedParameters.Add("tags", "Greenshot");
+ signedParameters.Add("is_public", config.IsPublic ? "1" : "0");
+ signedParameters.Add("is_friend", config.IsFriend ? "1" : "0");
+ signedParameters.Add("is_family", config.IsFamily ? "1" : "0");
signedParameters.Add("safety_level", string.Format("{0}", (int)config.SafetyLevel));
- signedParameters.Add("hidden", config.HiddenFromSearch?"1":"2");
+ signedParameters.Add("hidden", config.HiddenFromSearch ? "1" : "2");
IDictionary otherParameters = new Dictionary();
otherParameters.Add("photo", new SurfaceContainer(surfaceToUpload, outputSettings, filename));
string response = oAuth.MakeOAuthRequest(HTTPMethod.POST, "http://api.flickr.com/services/upload/", signedParameters, otherParameters, null);
string photoId = GetPhotoId(response);
// Get Photo Info
- signedParameters = new Dictionary();
- signedParameters.Add("photo_id", photoId);
+ signedParameters = new Dictionary { { "photo_id", photoId } };
string photoInfo = oAuth.MakeOAuthRequest(HTTPMethod.POST, "http://api.flickr.com/services/rest/?method=flickr.photos.getInfo", signedParameters, null, null);
return GetUrl(photoInfo);
} catch (Exception ex) {
@@ -102,9 +101,26 @@ namespace GreenshotFlickrPlugin {
try {
XmlDocument doc = new XmlDocument();
doc.LoadXml(response);
- XmlNodeList nodes = doc.GetElementsByTagName("url");
- if(nodes.Count > 0) {
- return nodes.Item(0).InnerText;
+ if (config.UsePageLink) {
+ XmlNodeList nodes = doc.GetElementsByTagName("url");
+ if (nodes.Count > 0) {
+ return nodes.Item(0).InnerText;
+ }
+ } else {
+ XmlNodeList nodes = doc.GetElementsByTagName("photo");
+ if (nodes.Count > 0) {
+ var item = nodes.Item(0);
+ if (item != null) {
+ if (item.Attributes != null) {
+ string farmId = item.Attributes["farm"].Value;
+ string serverId = item.Attributes["server"].Value;
+ string photoId = item.Attributes["id"].Value;
+ string secret = item.Attributes["secret"].Value;
+ return string.Format("http://farm{0}.staticflickr.com/{1}/{2}_{3}.jpg", farmId, serverId, photoId, secret);
+ }
+ }
+
+ }
}
} catch (Exception ex) {
LOG.Error("Error parsing Flickr Response.", ex);
@@ -117,7 +133,7 @@ namespace GreenshotFlickrPlugin {
XmlDocument doc = new XmlDocument();
doc.LoadXml(response);
XmlNodeList nodes = doc.GetElementsByTagName("photoid");
- if(nodes.Count > 0) {
+ if (nodes.Count > 0) {
return nodes.Item(0).InnerText;
}
} catch (Exception ex) {
diff --git a/GreenshotFlickrPlugin/GreenshotFlickrPlugin.csproj b/GreenshotFlickrPlugin/GreenshotFlickrPlugin.csproj
index 81237ccdd..ce9547f7d 100644
--- a/GreenshotFlickrPlugin/GreenshotFlickrPlugin.csproj
+++ b/GreenshotFlickrPlugin/GreenshotFlickrPlugin.csproj
@@ -72,8 +72,7 @@ copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
+
if exist "$(ProjectDir)FlickrCredentials.private.cs" (
rename "$(ProjectDir)FlickrCredentials.cs" "FlickrCredentials.orig.cs"
rename "$(ProjectDir)FlickrCredentials.private.cs" "FlickrCredentials.cs"
diff --git a/GreenshotFlickrPlugin/Languages/language_flickrplugin-cs-CZ.xml b/GreenshotFlickrPlugin/Languages/language_flickrplugin-cs-CZ.xml
index fefe146ee..edf244e5f 100644
--- a/GreenshotFlickrPlugin/Languages/language_flickrplugin-cs-CZ.xml
+++ b/GreenshotFlickrPlugin/Languages/language_flickrplugin-cs-CZ.xml
@@ -1,31 +1,31 @@
-
-
-
- Ověřit
- Zrušit
- Komunikace s Flickr. Počkejte prosím...
- Konfigurovat
- Jste si jistý, že chcete odstranit obrázek {0} z Flickr?
- Odstranit Flickr {0}
- Rodina
- Flickr historie
- Přátelé
- Historie
- Po odeslání
- Odkaz do schránky
- Otevřít historii
- Ověření Token
- Výchozí velikost
- Skrýt formulář hledání
- Úroveň bezpečnosti
- Formát obrázku
- OK
- Veřejné
- Nastavení Flickr
- Prosím ověřit aplikaci Flickr. Otevřít nastavení obrazovky. ???
- Odeslat
- Při odesílání do Flicker došlo k chybě:
- Odeslat do Flickr
- Úspěšně odeslaný obrázek do Flickr!
-
+
+
+
+ Ověřit
+ Zrušit
+ Komunikace s Flickr. Počkejte prosím...
+ Konfigurovat
+ Jste si jistý, že chcete odstranit obrázek {0} z Flickr?
+ Odstranit Flickr {0}
+ Rodina
+ Flickr historie
+ Přátelé
+ Historie
+ Po odeslání
+ Odkaz do schránky
+ Otevřít historii
+ Ověření Token
+ Výchozí velikost
+ Skrýt formulář hledání
+ Úroveň bezpečnosti
+ Formát obrázku
+ OK
+ Veřejné
+ Nastavení Flickr
+ Prosím ověřit aplikaci Flickr. Otevřít nastavení obrazovky. ???
+ Odeslat
+ Při odesílání do Flicker došlo k chybě:
+ Odeslat do Flickr
+ Úspěšně odeslaný obrázek do Flickr!
+
\ No newline at end of file
diff --git a/GreenshotFlickrPlugin/Languages/language_flickrplugin-en-US.xml b/GreenshotFlickrPlugin/Languages/language_flickrplugin-en-US.xml
index 448920b39..ec8408d4e 100644
--- a/GreenshotFlickrPlugin/Languages/language_flickrplugin-en-US.xml
+++ b/GreenshotFlickrPlugin/Languages/language_flickrplugin-en-US.xml
@@ -41,7 +41,7 @@
Family
- Fiend
+ Friend
\ No newline at end of file
diff --git a/GreenshotFlickrPlugin/Languages/language_flickrplugin-id-ID.xml b/GreenshotFlickrPlugin/Languages/language_flickrplugin-id-ID.xml
new file mode 100644
index 000000000..28f29e51f
--- /dev/null
+++ b/GreenshotFlickrPlugin/Languages/language_flickrplugin-id-ID.xml
@@ -0,0 +1,19 @@
+
+
+
+ Menyambung ke Flickr. Tunggu sebentar...
+ Konfigurasi Flickr
+ Keluarga
+ Teman
+ Sesudah mengunggah
+ Sambung ke papanklip
+ Pencarian form tersembunyi
+ Tingkat keamanan
+ Format gambar
+ Umum
+ Setelan Flickr
+ Kesalahan terjadi ketika mengunggah ke Flickr:
+ Unggah ke Flickr
+ Berhasil mengunggah gambar ke Flickr!
+
+
\ No newline at end of file
diff --git a/GreenshotFlickrPlugin/Languages/language_flickrplugin-pl-PL.xml b/GreenshotFlickrPlugin/Languages/language_flickrplugin-pl-PL.xml
new file mode 100644
index 000000000..e97537658
--- /dev/null
+++ b/GreenshotFlickrPlugin/Languages/language_flickrplugin-pl-PL.xml
@@ -0,0 +1,19 @@
+
+
+
+ Trwa komunikacja z Flickr. Proszę czekać...
+ Konfiguruj Flickr
+ Rodzina
+ Przyjaciele
+ Po wysłaniu
+ Link do schowka
+ Ukrywaj z wyszukiwarki
+ Poziom bezpieczeństwa
+ Format obrazów
+ Publiczny
+ Ustawienia Flickr
+ Wystąpił błąd przy wysyłaniu doFlickr:
+ Wyślij do Flickr
+ Wysyłanie obrazu do Flickr powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotFlickrPlugin/Languages/language_flickrplugin-zh-TW.xml b/GreenshotFlickrPlugin/Languages/language_flickrplugin-zh-TW.xml
index b14932e4b..9386c7063 100644
--- a/GreenshotFlickrPlugin/Languages/language_flickrplugin-zh-TW.xml
+++ b/GreenshotFlickrPlugin/Languages/language_flickrplugin-zh-TW.xml
@@ -1,19 +1,19 @@
-
-
-
- 正在與 Flickr 通訊,請稍候...
- 組態 Flickr
- 家庭
- 尋找
- 上傳後
- 連結到剪貼簿
- 從搜尋隱藏
- 安全性等級
- 圖片格式
- 公開
- Flickr 設定
- 上傳到 Flickr 時發生錯誤:
- 上傳到 Flickr
- 上傳圖片到 Flickr 成功!
-
+
+
+
+ 正在與 Flickr 通訊,請稍候...
+ 組態 Flickr
+ 家庭
+ 尋找
+ 上傳後
+ 連結到剪貼簿
+ 從搜尋隱藏
+ 安全性等級
+ 圖片格式
+ 公開
+ Flickr 設定
+ 上傳到 Flickr 時發生錯誤:
+ 上傳到 Flickr
+ 上傳圖片到 Flickr 成功!
+
\ No newline at end of file
diff --git a/GreenshotFlickrPlugin/Properties/AssemblyInfo.cs.template b/GreenshotFlickrPlugin/Properties/AssemblyInfo.cs.template
index 7e01b9dcf..d81e0fd09 100644
--- a/GreenshotFlickrPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotFlickrPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotImgurPlugin/GreenshotImgurPlugin.csproj b/GreenshotImgurPlugin/GreenshotImgurPlugin.csproj
index 5c72f9225..57a1ddd85 100644
--- a/GreenshotImgurPlugin/GreenshotImgurPlugin.csproj
+++ b/GreenshotImgurPlugin/GreenshotImgurPlugin.csproj
@@ -78,8 +78,7 @@
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
+
if exist "$(ProjectDir)ImgurCredentials.private.cs" (
rename "$(ProjectDir)ImgurCredentials.cs" "ImgurCredentials.orig.cs"
rename "$(ProjectDir)ImgurCredentials.private.cs" "ImgurCredentials.cs"
diff --git a/GreenshotImgurPlugin/ImgurCredentials.cs b/GreenshotImgurPlugin/ImgurCredentials.cs
index 56359b195..060476f2f 100644
--- a/GreenshotImgurPlugin/ImgurCredentials.cs
+++ b/GreenshotImgurPlugin/ImgurCredentials.cs
@@ -1,31 +1,31 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 .
- */
-
-namespace GreenshotImgurPlugin {
- ///
- /// This class is merely a placeholder for the file keeping the API key and secret for imgur integration.
- /// Copy this file to ImgurCredentials.private.cs and fill in valid credentials. (Or empty strings, but of course you won't be able to use the Imgur plugin then.)
- ///
- public static class ImgurCredentials {
- public static string CONSUMER_KEY = empty;
- public static string CONSUMER_SECRET = empty;
- }
+/*
+ * Greenshot - a free and open source screenshot tool
+ * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
+ *
+ * For more information see: http://getgreenshot.org/
+ * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
+ *
+ * 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 1 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 .
+ */
+
+namespace GreenshotImgurPlugin {
+ ///
+ /// This class is merely a placeholder for the file keeping the API key and secret for imgur integration.
+ /// Copy this file to ImgurCredentials.private.cs and fill in valid credentials. (Or empty strings, but of course you won't be able to use the Imgur plugin then.)
+ ///
+ public static class ImgurCredentials {
+ public static string CONSUMER_KEY = empty;
+ public static string CONSUMER_SECRET = empty;
+ }
}
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/ImgurPlugin.cs b/GreenshotImgurPlugin/ImgurPlugin.cs
index e07878c12..30ebb7bd7 100644
--- a/GreenshotImgurPlugin/ImgurPlugin.cs
+++ b/GreenshotImgurPlugin/ImgurPlugin.cs
@@ -174,38 +174,42 @@ namespace GreenshotImgurPlugin {
try {
string filename = Path.GetFileName(FilenameHelper.GetFilename(config.UploadFormat, captureDetails));
ImgurInfo imgurInfo = null;
-
+
// Run upload in the background
- new PleaseWaitForm().ShowAndWait(Attributes.Name, Language.GetString("imgur", LangKey.communication_wait),
+ new PleaseWaitForm().ShowAndWait("Imgur plug-in", Language.GetString("imgur", LangKey.communication_wait),
delegate() {
imgurInfo = ImgurUtils.UploadToImgur(surfaceToUpload, outputSettings, captureDetails.Title, filename);
- LOG.InfoFormat("Storing imgur upload for hash {0} and delete hash {1}", imgurInfo.Hash, imgurInfo.DeleteHash);
- config.ImgurUploadHistory.Add(imgurInfo.Hash, imgurInfo.DeleteHash);
- config.runtimeImgurHistory.Add(imgurInfo.Hash, imgurInfo);
- CheckHistory();
+ if (imgurInfo != null && config.AnonymousAccess) {
+ LOG.InfoFormat("Storing imgur upload for hash {0} and delete hash {1}", imgurInfo.Hash, imgurInfo.DeleteHash);
+ config.ImgurUploadHistory.Add(imgurInfo.Hash, imgurInfo.DeleteHash);
+ config.runtimeImgurHistory.Add(imgurInfo.Hash, imgurInfo);
+ CheckHistory();
+ }
}
);
- // TODO: Optimize a second call for export
- using (Image tmpImage = surfaceToUpload.GetImageForExport()) {
- imgurInfo.Image = ImageHelper.CreateThumbnail(tmpImage, 90, 90);
- }
- IniConfig.Save();
- uploadURL = null;
- try {
- if (config.UsePageLink) {
- uploadURL = imgurInfo.Page;
- ClipboardHelper.SetClipboardData(imgurInfo.Page);
- } else {
- uploadURL = imgurInfo.Original;
- ClipboardHelper.SetClipboardData(imgurInfo.Original);
+ if (imgurInfo != null) {
+ // TODO: Optimize a second call for export
+ using (Image tmpImage = surfaceToUpload.GetImageForExport()) {
+ imgurInfo.Image = ImageHelper.CreateThumbnail(tmpImage, 90, 90);
}
- } catch (Exception ex) {
- LOG.Error("Can't write to clipboard: ", ex);
+ IniConfig.Save();
+ try {
+ if (config.UsePageLink) {
+ uploadURL = imgurInfo.Page;
+ ClipboardHelper.SetClipboardData(imgurInfo.Page);
+ } else {
+ uploadURL = imgurInfo.Original;
+ ClipboardHelper.SetClipboardData(imgurInfo.Original);
+ }
+ } catch (Exception ex) {
+ LOG.Error("Can't write to clipboard: ", ex);
+ uploadURL = null;
+ }
+ return true;
}
- return true;
} catch (Exception e) {
- LOG.Error(e);
+ LOG.Error("Error uploading.", e);
MessageBox.Show(Language.GetString("imgur", LangKey.upload_failure) + " " + e.Message);
}
uploadURL = null;
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-cs-CZ.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-cs-CZ.xml
index 07020ce21..2b7a62e83 100644
--- a/GreenshotImgurPlugin/Languages/language_imgurplugin-cs-CZ.xml
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-cs-CZ.xml
@@ -1,21 +1,21 @@
-
-
-
- Použít anonymní přístup
- Zrušit
- Jste si jisti, že chcete smazat místní historii Imgur?
- Komunikace s Imgur. Prosím čekejte ...
- Nastavení
- Jste si jisti, že chcete smazat obrázek {0} z Imgur?
- Odstranit Imgur {0}
- Historie
- Formát obrázku
- Url
- OK
- Nastavení Imgur
- Došlo k chybě při nahrávání na Imgur:
- Nahrát na Imgur
- Obrázek byl úspěšně odeslán na Imgur!
- Použijte odkaz na stránku namísto odkaz na obrázek do schránky
-
+
+
+
+ Použít anonymní přístup
+ Zrušit
+ Jste si jisti, že chcete smazat místní historii Imgur?
+ Komunikace s Imgur. Prosím čekejte ...
+ Nastavení
+ Jste si jisti, že chcete smazat obrázek {0} z Imgur?
+ Odstranit Imgur {0}
+ Historie
+ Formát obrázku
+ Url
+ OK
+ Nastavení Imgur
+ Došlo k chybě při nahrávání na Imgur:
+ Nahrát na Imgur
+ Obrázek byl úspěšně odeslán na Imgur!
+ Použijte odkaz na stránku namísto odkaz na obrázek do schránky
+
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-id-ID.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-id-ID.xml
new file mode 100644
index 000000000..c73051357
--- /dev/null
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-id-ID.xml
@@ -0,0 +1,21 @@
+
+
+
+ Gunakan akses anonim
+ Batal
+ Apakah anda benar-benar ingin menghapus riwayat lokal Imgur?
+ Menyambungkan ke Imgur. Tunggu sebentar...
+ Pengaturan
+ Apakah anda benar-benar ingin menghapus gambar {0} dari Imgur?
+ Hapus Imgur {0}
+ Riwayat
+ Format gambar
+ Url
+ Oke
+ Setelan Imgur
+ Kesalahan terjadi ketika mengunggah ke Imgur:
+ Unggah ke Imgur
+ Gambar berhasil diunggah ke Imgur!
+ Gunakan link laman daripada link gambar di papanklip
+
+
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-pl-PL.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-pl-PL.xml
new file mode 100644
index 000000000..7db3a2118
--- /dev/null
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-pl-PL.xml
@@ -0,0 +1,21 @@
+
+
+
+ Używaj jako niezalogowany
+ Anuluj
+ Na pewno chcesz usunąć historię lokalną Imgur?
+ Trwa komunikacja z Imgur. Proszę czekać...
+ Konfiguruj
+ Na pewno chcesz usunąć obraz {0} z Imgur?
+ Usuń z Imgur {0}
+ Historia
+ Format obrazów
+ URL
+ OK
+ Ustawienia Imgur
+ Wystąpił błąd przy wysyłaniu do Imgur:
+ Wyślij do Imgur
+ Wysyłanie obrazu do Imgur powiodło się!
+ Kopiuj do schowka link do strony zamiast link do obrazu
+
+
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-ru-RU.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-ru-RU.xml
index 156af23c9..719c49b3f 100644
--- a/GreenshotImgurPlugin/Languages/language_imgurplugin-ru-RU.xml
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-ru-RU.xml
@@ -1,53 +1,21 @@
-
-
-
- Загрузить на Imgur
-
-
- Imgur параметры
-
-
- Url
-
-
- OK
-
-
- Отмена
-
-
- Изображение успешно загружено на Imgur!
-
-
- Произошла ошибка при загрузке на Imgur:
-
-
- Формат изображения
-
-
- Взаимодействие с Imgur. Подождите...
-
-
- Вы действительно хотите удалить изображение {0} из Imgur?
-
-
- Вы действительно хотите удалить местную историю Imgur?
-
-
- Удалить Imgur {0}
-
-
- Использовать анонимный доступ
-
-
- Использовать ссылку страницы, вместо ссылки изображения в буфере обмена
-
-
- История
-
-
- Настройка
-
-
+
+
+ Использовать анонимный доступ
+ Отмена
+ Вы действительно хотите удалить местную историю Imgur?
+ Взаимодействие с Imgur. Подождите...
+ Настройка
+ Вы действительно хотите удалить изображение {0} из Imgur?
+ Удалить Imgur {0}
+ История
+ Формат изображения
+ Url
+ OK
+ Imgur параметры
+ Произошла ошибка при загрузке на Imgur:
+ Загрузить на Imgur
+ Изображение успешно загружено на Imgur!
+ Использовать ссылку страницы, вместо ссылки изображения в буфере обмена
+
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-uk-UA.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-uk-UA.xml
index df5ff014a..8152b94fe 100644
--- a/GreenshotImgurPlugin/Languages/language_imgurplugin-uk-UA.xml
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-uk-UA.xml
@@ -1,21 +1,21 @@
-
-
-
- Вивантажити на Imgur
- Параметри Imgur
- Посилання
- Гаразд
- Скасувати
- Зображення вдало вивантажено на Imgur!
- Відбулась помилка при вивантаженні зображення на Imgur:
- Формат зображення
- З’єднання з Imgur. Будь ласка, зачекайте...
- Чи дійсно Ви хочете видалити зображення {0} з Imgur?
- Чи дійсно Ви хочете видалити локальну історію Imgur?
- Видалити Imgur {0}
- Використовувати анонімний доступ
- Використовувати посилання на сторінку замість посилання на зображення
- Історія
- Налаштувати
-
-
+
+
+
+ Вивантажити на Imgur
+ Параметри Imgur
+ Посилання
+ Гаразд
+ Скасувати
+ Зображення вдало вивантажено на Imgur!
+ Відбулась помилка при вивантаженні зображення на Imgur:
+ Формат зображення
+ З’єднання з Imgur. Будь ласка, зачекайте...
+ Чи дійсно Ви хочете видалити зображення {0} з Imgur?
+ Чи дійсно Ви хочете видалити локальну історію Imgur?
+ Видалити Imgur {0}
+ Використовувати анонімний доступ
+ Використовувати посилання на сторінку замість посилання на зображення
+ Історія
+ Налаштувати
+
+
diff --git a/GreenshotImgurPlugin/Languages/language_imgurplugin-zh-TW.xml b/GreenshotImgurPlugin/Languages/language_imgurplugin-zh-TW.xml
index 5a743870a..1fe08f257 100644
--- a/GreenshotImgurPlugin/Languages/language_imgurplugin-zh-TW.xml
+++ b/GreenshotImgurPlugin/Languages/language_imgurplugin-zh-TW.xml
@@ -1,21 +1,21 @@
-
-
-
- 使用匿名存取
- 取消
- 您確定要刪除本機 Imgur 歷程記錄嗎?
- 正在與 Imgur 通訊,請稍候...
- 組態
- 您確定要從 Imgur 刪除圖片 {0} 嗎?
- 刪除 Imgur {0}
- 歷程記錄
- 圖片格式
- URL
- 確定
- Imgur 設定
- 上傳到 Imgur 時發生錯誤:
- 上傳到 Imgur
- 上傳圖片到 Imgur 成功!
- 在剪貼簿使用頁面連結而不是圖片連結
-
+
+
+
+ 使用匿名存取
+ 取消
+ 您確定要刪除本機 Imgur 歷程記錄嗎?
+ 正在與 Imgur 通訊,請稍候...
+ 組態
+ 您確定要從 Imgur 刪除圖片 {0} 嗎?
+ 刪除 Imgur {0}
+ 歷程記錄
+ 圖片格式
+ URL
+ 確定
+ Imgur 設定
+ 上傳到 Imgur 時發生錯誤:
+ 上傳到 Imgur
+ 上傳圖片到 Imgur 成功!
+ 在剪貼簿使用頁面連結而不是圖片連結
+
\ No newline at end of file
diff --git a/GreenshotImgurPlugin/Properties/AssemblyInfo.cs.template b/GreenshotImgurPlugin/Properties/AssemblyInfo.cs.template
index 358d61ac9..a335743a5 100644
--- a/GreenshotImgurPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotImgurPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj b/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
index ad8e94d45..ccebfe83a 100644
--- a/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
+++ b/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
@@ -93,7 +93,6 @@
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-cs-CZ.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-cs-CZ.xml
index 1a7133833..0c3202c3a 100644
--- a/GreenshotJiraPlugin/Languages/language_jiraplugin-cs-CZ.xml
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-cs-CZ.xml
@@ -1,25 +1,25 @@
-
-
-
- Zrušit
- Pověřené osoby
- Vytvořil(a)
- ID
- Reporter ???
- Shrnutí
- Přenos dat na JIRA, prosím počkejte...
- Komentář
- Jméno souboru
- JIRA
- JIRA filtr
- Formát obrázku
- Url
- Problém při přihlášení: {0}
- Prosím, zadejte přihlašovací údaje pre Jira
- OK
- Nastavení Jira
- Došlo k chybě při nahrávání na Jira:
- Nahrát na Jira
- Obrázek úspěšně nahrán na Jira!
-
+
+
+
+ Zrušit
+ Pověřené osoby
+ Vytvořil(a)
+ ID
+ Reporter ???
+ Shrnutí
+ Přenos dat na JIRA, prosím počkejte...
+ Komentář
+ Jméno souboru
+ JIRA
+ JIRA filtr
+ Formát obrázku
+ Url
+ Problém při přihlášení: {0}
+ Prosím, zadejte přihlašovací údaje pre Jira
+ OK
+ Nastavení Jira
+ Došlo k chybě při nahrávání na Jira:
+ Nahrát na Jira
+ Obrázek úspěšně nahrán na Jira!
+
\ No newline at end of file
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-id-ID.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-id-ID.xml
new file mode 100644
index 000000000..47a72857b
--- /dev/null
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-id-ID.xml
@@ -0,0 +1,25 @@
+
+
+
+ Batal
+ Tujuan
+ Tercipta
+ ID
+ Pelapor
+ Penjelasan
+ Mentransfer data ke JIRA, tunggu sebentar...
+ Komentar
+ Nama berkas
+ JIRA
+ JIRA Filter
+ Format gambar
+ Url
+ Masalah terjadi ketika login: {0}
+ Masukkan data login Jira anda
+ Oke
+ Setelan Jira
+ Kesalahan terjadi ketika mengunggah ke Jira:
+ Unggah ke Jira
+ Berhasil mengunggah gambar ke Jira!
+
+
\ No newline at end of file
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-pl-PL.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-pl-PL.xml
new file mode 100644
index 000000000..dc1050295
--- /dev/null
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-pl-PL.xml
@@ -0,0 +1,25 @@
+
+
+
+ Anuluj
+ Przypisane do
+ Utworzone
+ ID
+ Zgłaszający
+ Podsumowanie
+ Trwa komunikacja z JIRA. Proszę czekać...
+ Komentarz
+ Nazwa pliku
+ JIRA
+ Filtr JIRA
+ Format obrazu
+ URL
+ Wystąpił problem podczas logowania: {0}
+ Wprowadź swoje dane logowania
+ OK
+ Ustawienia JIRA
+ Wystąpił błąd przy wysyłaniu do JIRA:
+ Wyślij do JIRA
+ Wysyłanie obrazu do JIRA powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-ru-RU.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-ru-RU.xml
index 166e6a27c..b983711a1 100644
--- a/GreenshotJiraPlugin/Languages/language_jiraplugin-ru-RU.xml
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-ru-RU.xml
@@ -1,65 +1,25 @@
-
-
-
- Загрузить на Jira
-
-
- Представитель
-
-
- Создан
-
-
- ID
-
-
- Корреспондент
-
-
- Резюме
-
-
- Комментарий
-
-
- Имя файла
-
-
- JIRA
-
-
- Фильтр JIRA
-
-
- Произошла ошибка во время входа: {0}
-
-
- Url
-
-
- Пожалуйста, введите ваши регистрационные данные Jira
-
-
- JIRA параметры
-
-
- OK
-
-
- Отмена
-
-
- Изображение успешно загружено на Jira!
-
-
- Произошла ошибка при загрузке на Jira:
-
-
- Формат изображения
-
-
- Передача данных в JIRA, подождите, пожалуйста!...
-
-
+
+
+ Отмена
+ Представитель
+ Создан
+ ID
+ Корреспондент
+ Резюме
+ Передача данных в JIRA, подождите, пожалуйста!...
+ Комментарий
+ Имя файла
+ JIRA
+ Фильтр JIRA
+ Формат изображения
+ Url
+ Произошла ошибка во время входа: {0}
+ Пожалуйста, введите ваши регистрационные данные Jira
+ OK
+ JIRA параметры
+ Произошла ошибка при загрузке на Jira:
+ Загрузить на Jira
+ Изображение успешно загружено на Jira!
+
\ No newline at end of file
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-uk-UA.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-uk-UA.xml
index d9763c9c4..59a9bcc8f 100644
--- a/GreenshotJiraPlugin/Languages/language_jiraplugin-uk-UA.xml
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-uk-UA.xml
@@ -1,25 +1,25 @@
-
-
-
- Вивантажити на Jira
- Представник
- Створено
- Ідентифікатор
- Кореспондент
- Зведення
- Коментар
- Назва файла
- JIRA
- Фільтр JIRA
- Відбулась помилка під час авторизації: {0}
- Посилання
- Будь ласка, введіть дані облікового запису Jira
- Параметри Jira
- Гаразд
- Скасувати
- Зображення вдало вивантажено на Jira!
- Відбулась помилка під час вивантаження на Jira:
- Формат зображення
- Передача даних на JIRA, будь ласка, зачекайте...
-
-
+
+
+
+ Вивантажити на Jira
+ Представник
+ Створено
+ Ідентифікатор
+ Кореспондент
+ Зведення
+ Коментар
+ Назва файла
+ JIRA
+ Фільтр JIRA
+ Відбулась помилка під час авторизації: {0}
+ Посилання
+ Будь ласка, введіть дані облікового запису Jira
+ Параметри Jira
+ Гаразд
+ Скасувати
+ Зображення вдало вивантажено на Jira!
+ Відбулась помилка під час вивантаження на Jira:
+ Формат зображення
+ Передача даних на JIRA, будь ласка, зачекайте...
+
+
diff --git a/GreenshotJiraPlugin/Languages/language_jiraplugin-zh-TW.xml b/GreenshotJiraPlugin/Languages/language_jiraplugin-zh-TW.xml
index f3e51c75b..b2ea00222 100644
--- a/GreenshotJiraPlugin/Languages/language_jiraplugin-zh-TW.xml
+++ b/GreenshotJiraPlugin/Languages/language_jiraplugin-zh-TW.xml
@@ -1,25 +1,25 @@
-
-
-
- 取消
- 指派
- 建立日期
- ID
- 報導
- 摘要
- 正在傳輸資料到 JIRA,請稍候...
- 註解
- 檔案名稱
- JIRA
- JIRA 篩選
- 圖片格式
- URL
- 登入期間發生問題: {0}
- 請輸入您的 JIRA 登入資料
- 確定
- JIRA 設定
- 上傳到 JIRA 時發生錯誤:
- 上傳到
- 上傳圖片到 JIRA 成功!
-
+
+
+
+ 取消
+ 指派
+ 建立日期
+ ID
+ 報導
+ 摘要
+ 正在傳輸資料到 JIRA,請稍候...
+ 註解
+ 檔案名稱
+ JIRA
+ JIRA 篩選
+ 圖片格式
+ URL
+ 登入期間發生問題: {0}
+ 請輸入您的 JIRA 登入資料
+ 確定
+ JIRA 設定
+ 上傳到 JIRA 時發生錯誤:
+ 上傳到
+ 上傳圖片到 JIRA 成功!
+
\ No newline at end of file
diff --git a/GreenshotJiraPlugin/Properties/AssemblyInfo.cs.template b/GreenshotJiraPlugin/Properties/AssemblyInfo.cs.template
index 38ea09469..1c23983ba 100644
--- a/GreenshotJiraPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotJiraPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/App.xaml b/GreenshotLanguageEditor/App.xaml
deleted file mode 100644
index e31e8dc1d..000000000
--- a/GreenshotLanguageEditor/App.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/App.xaml.cs b/GreenshotLanguageEditor/App.xaml.cs
deleted file mode 100644
index 88f1efc19..000000000
--- a/GreenshotLanguageEditor/App.xaml.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-using System.Windows;
-using System.Windows.Threading;
-using System.Data;
-using System.Xml;
-using System.Configuration;
-
-namespace GreenshotLanguageEditor {
- ///
- /// Interaction logic for App.xaml
- ///
- public partial class App : Application {
- public App() :base () {
- this.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException);
- }
- void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
- new ErrorWindow(e.Exception).ShowDialog();
- e.Handled = true;
- }
- }
-}
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/EntriesEditorWindow.xaml b/GreenshotLanguageEditor/EntriesEditorWindow.xaml
deleted file mode 100644
index d8b2c167b..000000000
--- a/GreenshotLanguageEditor/EntriesEditorWindow.xaml
+++ /dev/null
@@ -1,229 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs b/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs
deleted file mode 100644
index 6acf384f7..000000000
--- a/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using System.Xml;
-
-namespace GreenshotLanguageEditor {
- ///
- /// Interaction logic for EntriesEditorWindow.xaml
- ///
- public partial class EntriesEditorWindow : Window, INotifyPropertyChanged {
-
- private string languagePath;
- ObservableDictionary languageResources = new ObservableDictionary();
-
- IList languageFiles;
- public IList LanguageFiles {
- get {return languageFiles;}
- set {languageFiles = value; NotifyPropertyChanged("languageFiles");}
- }
- public event PropertyChangedEventHandler PropertyChanged;
-
- private void NotifyPropertyChanged(String info) {
- if (PropertyChanged != null) {
- PropertyChanged(this, new PropertyChangedEventArgs(info));
- }
- }
-
- // maybe refactor this encapsulating column related info
- bool unsavedChangesInLanguage1 = false;
- bool unsavedChangesInLanguage2 = false;
- public LanguageFile LanguageFile1 {
- get;
- set;
- }
- public LanguageFile LanguageFile2 {
- get;
- set;
- }
-
- private ICollectionView view;
- public ICollectionView View {
- get {return view;}
- set {view=value; NotifyPropertyChanged("View");}
- }
-
- public EntriesEditorWindow() {
-
-
- var dialog = new System.Windows.Forms.FolderBrowserDialog();
- dialog.Description = "Select the directory containing the translation files for Greenshot. " +
- "Please get the latest files first: " +
- "https://greenshot.svn.sourceforge.net/svnroot/greenshot/trunk/Greenshot/Languages/";
- dialog.ShowNewFolderButton = false;
- System.Windows.Forms.DialogResult result = dialog.ShowDialog();
-
-
- if (result == System.Windows.Forms.DialogResult.OK) {
- languagePath = dialog.SelectedPath;
- } else {
- this.Close();
- return;
- }
-
- InitializeComponent();
- DataContext = this;
- this.Activate();
-
- View = CollectionViewSource.GetDefaultView(LoadResources(languagePath));
- languageResources.CollectionChanged += delegate {
-
- View = CollectionViewSource.GetDefaultView(new List(languageResources.Values));
- View.Refresh();
- };
- }
-
- private IList LoadResources(string languagePath) {
- LanguageFiles = new BindingList();
- foreach (LanguageFile languageFile in GreenshotLanguage.GetLanguageFiles(languagePath, "language*.xml")) {
- LanguageFiles.Add(languageFile);
-
- // default: first non-english file is for right column, english file for left column
- if(LanguageFile2 == null && !"en-US".Equals(languageFile.IETF)) {
- LanguageFile2 = languageFile;
- }else if (LanguageFile1 == null || "en-US".Equals(languageFile.IETF)) {
- LanguageFile1 = languageFile;
- }
- }
- if(LanguageFile1 != null) PopulateColumn(LanguageFile1, 1);
- if(LanguageFile2 != null) PopulateColumn(LanguageFile2, 2);
-
- return new List(languageResources.Values);
- }
-
- private void PopulateColumn(LanguageFile languageFile, int columnIndex) {
- ClearColumn(columnIndex);
- IDictionary resources = GreenshotLanguage.ReadLanguageFile(languageFile);
- foreach(string key in resources.Keys) {
- LanguageEntry entry = GetOrCreateLanguageEntry(key);
- if(columnIndex == 1) entry.Entry1 = resources[key];
- else if (columnIndex == 2) entry.Entry2 = resources[key];
- else throw new ArgumentOutOfRangeException("Argument columnIndex must be either 1 or 2");
- }
- if(columnIndex == 1) unsavedChangesInLanguage1 = false;
- if(columnIndex == 2) unsavedChangesInLanguage2 = false;
-
- }
-
- private void ClearColumn(int columnIndex) {
- IList resKeys = new List(languageResources.Keys);
- //foreach(string key in resKeys) {
- foreach(LanguageEntry e in languageResources.Values) {
- if (columnIndex == 1) e.Entry1 = null;
- else if (columnIndex == 2) e.Entry2 = null;
- else throw new ArgumentOutOfRangeException("Argument columnIndex must be either 1 or 2");
- }
- // remove entries with two null values
- foreach(string key in resKeys) {
- LanguageEntry e = languageResources[key];
- if(string.IsNullOrWhiteSpace(e.Entry1) && string.IsNullOrWhiteSpace(e.Entry2)) {
- languageResources.Remove(e.Key);
- }
- }
- }
-
- private LanguageEntry GetOrCreateLanguageEntry(string key) {
- LanguageEntry entry;
- if (languageResources.ContainsKey(key)) {
- entry = languageResources[key];
- } else {
- entry = new LanguageEntry();
- entry.Key = key;
- languageResources.Add(key, entry);
- }
- return entry;
- }
-
- private void saveButtonClicked(object sender, RoutedEventArgs e) {
- int targetColumn = GetTargetColumn((Control)sender);
- LanguageFile editedFile = (LanguageFile) (targetColumn == 1 ? language1ComboBox.SelectedItem : language2ComboBox.SelectedItem);
-
- CreateXML(editedFile.FilePath, targetColumn);
-
- if(editedFile.FileName.Contains("website")) {
- CreateWebsitePart(editedFile.FilePath, targetColumn);
- } else if(editedFile.FileName.Contains("installer")) {
- CreateInstallerPart(editedFile.FilePath, targetColumn);
- }
-
- if(targetColumn == 1) unsavedChangesInLanguage1 = false;
- else if(targetColumn == 2) unsavedChangesInLanguage2 = false;
- }
-
- private void languageComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e) {
- int targetColumn = GetTargetColumn((Control)sender);
- LanguageFile file = (LanguageFile)((ComboBox)sender).SelectedItem;
- if((targetColumn == 1 && file.Equals(LanguageFile1)) || (targetColumn == 2 && file.Equals(LanguageFile2))) {
- // nothing changed
- return;
- }
- if((targetColumn == 1 && unsavedChangesInLanguage1) || (targetColumn == 2 && unsavedChangesInLanguage2)) {
- MessageBoxResult res = MessageBox.Show("Do you really want to switch language? Unsaved changes will be lost.", "Confirm language switch", MessageBoxButton.OKCancel, MessageBoxImage.Warning,MessageBoxResult.Cancel,MessageBoxOptions.None);
- if(res != MessageBoxResult.OK) {
- // cancelled by user
- ((ComboBox)sender).SelectedItem = (targetColumn == 1) ? LanguageFile1 : LanguageFile2;
- return;
- }
- }
- if(targetColumn == 1) LanguageFile1 = file;
- else if(targetColumn == 2) LanguageFile2 = file;
- PopulateColumn(file, targetColumn);
- // TODO Language resources does not implement notifycollectionwhatever interface. does not work when keys are removed
- }
-
- private void cancelButtonClicked(object sender, RoutedEventArgs e) {
- int targetColumn = GetTargetColumn((Control)sender);
- if((targetColumn == 1 && unsavedChangesInLanguage1) || (targetColumn == 2 && unsavedChangesInLanguage2)) {
- MessageBoxResult res = MessageBox.Show("Do you really want to reset this column? Unsaved changes will be lost.", "Confirm language reset", MessageBoxButton.OKCancel, MessageBoxImage.Warning,MessageBoxResult.Cancel,MessageBoxOptions.None);
- if(res == MessageBoxResult.OK) {
- LanguageFile file = (LanguageFile)(targetColumn == 1 ? language1ComboBox.SelectedItem : language2ComboBox.SelectedItem);
- PopulateColumn(file, targetColumn);
- }
- }
- }
-
- private void newButtonClicked(object sender, RoutedEventArgs e) {
- int targetColumn = GetTargetColumn((Control)sender);
- if((targetColumn == 1 && unsavedChangesInLanguage1) || (targetColumn == 2 && unsavedChangesInLanguage2)) {
- MessageBoxResult res = MessageBox.Show("Do you really want to discard this column? Unsaved changes will be lost.", "Confirm new language file creation", MessageBoxButton.OKCancel, MessageBoxImage.Warning,MessageBoxResult.Cancel,MessageBoxOptions.None);
- if(res != MessageBoxResult.OK) {
- return;
- }
- }
- LanguageFile newLang = new LanguageFile();
- newLang.FileDir = languagePath;
- new MetaEditorWindow(newLang).ShowDialog();
- if(newLang.FileName != null && newLang.FileName.Length > 0) {
- ClearColumn(targetColumn);
- CreateXML(newLang.FilePath,targetColumn);
- LanguageFiles.Add(newLang);
-
- LanguageFiles = LanguageFiles.OrderBy(f => f.FileName).ToList();
- if(targetColumn == 1) {
- LanguageFile1 = newLang;
- language1ComboBox.SelectedItem = newLang;
- }
- else {
- LanguageFile2 = newLang;
- language2ComboBox.SelectedItem = newLang;
- }
- PopulateColumn(newLang, targetColumn);
- }
- }
-
- private void metaButtonClicked(object sender, RoutedEventArgs e) {
- int targetColumn = GetTargetColumn((Control)sender);
- new MetaEditorWindow(targetColumn == 1 ? LanguageFile1 : LanguageFile2).ShowDialog();
- }
-
- private int GetTargetColumn(Control control) {
- object tag = control.Tag;
- if(tag == null && !tag.Equals("1") && !tag.Equals("2")) {
- throw new ApplicationException("Please use the control's Tag property to indicate the column to interact with (1 or 2).");
- } else {
- return tag.Equals("1") ? 1 : 2;
- }
- }
-
- private void cellEdited(object sender, DataGridCellEditEndingEventArgs e) {
- if(e.Column.DisplayIndex == 1) unsavedChangesInLanguage1 = true;
- else if(e.Column.DisplayIndex == 2) unsavedChangesInLanguage2 = true;
- }
-
- public void CreateXML(string savePath, int targetColumn) {
- LanguageFile langfile = targetColumn == 1 ? LanguageFile1 : LanguageFile2;
- ICollectionView view = (ICollectionView)LanguageGrid.ItemsSource;
- IList entries = (IList)view.SourceCollection;
- List sortList = new List(entries);
- sortList.Sort(compareEntryKeys);
-
- using (XmlTextWriter xmlWriter = new XmlTextWriter(savePath, Encoding.UTF8)) {
- xmlWriter.Formatting = Formatting.Indented;
- xmlWriter.Indentation = 1;
- xmlWriter.IndentChar = '\t';
- xmlWriter.WriteStartDocument();
- xmlWriter.WriteStartElement("language");
- xmlWriter.WriteAttributeString("description", langfile.Description);
- xmlWriter.WriteAttributeString("ietf", langfile.IETF);
- xmlWriter.WriteAttributeString("version", langfile.Version);
- xmlWriter.WriteAttributeString("languagegroup", langfile.Languagegroup);
- xmlWriter.WriteStartElement("resources");
- foreach(LanguageEntry entry in sortList) {
- string entryValue = (targetColumn == 1) ? entry.Entry1 : entry.Entry2;
- if(!String.IsNullOrWhiteSpace(entryValue) && !String.IsNullOrWhiteSpace(entry.Key)) {
- xmlWriter.WriteStartElement("resource");
- xmlWriter.WriteAttributeString("name", entry.Key);
- xmlWriter.WriteString(entryValue);
- xmlWriter.WriteEndElement();
- }
- }
- xmlWriter.WriteEndElement();
- xmlWriter.WriteEndElement();
- xmlWriter.WriteEndDocument();
- }
- }
-
- public void CreateWebsitePart(string savePath, int targetColumn) {
- PopulateTemplate("template-homepage.html.part", savePath, targetColumn);
- }
-
- public void CreateInstallerPart(string savePath, int targetColumn) {
- PopulateTemplate("template-installer.iss.part", savePath, targetColumn);
- }
-
-
- void PopulateTemplate(string fileName, string savePath, int targetColumn) {
- LanguageFile langfile = targetColumn == 1 ? LanguageFile1 : LanguageFile2;
- ICollectionView view = (ICollectionView)LanguageGrid.ItemsSource;
- IList entries = (IList)view.SourceCollection;
- string tmp;
- using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GreenshotLanguageEditor."+fileName)) {
- using (StreamReader reader = new StreamReader(stream)) {
- tmp = reader.ReadToEnd();
- foreach (LanguageEntry e in entries) {
- string entryString = targetColumn == 1 ? e.Entry1 : e.Entry2;
- tmp = tmp.Replace("${" + e.Key + "}", entryString);
- }
- tmp = tmp.Replace("${lang}",extractIetfLanguageCode(savePath));
- }
- }
- FileInfo fi = new FileInfo(savePath.Replace(".xml", fileName.Substring(fileName.IndexOf("."))));
- FileStream fs = fi.Open(FileMode.OpenOrCreate);
- byte[] barr = Encoding.GetEncoding("UTF-8").GetBytes(tmp);
- fs.Write(barr, 0, barr.Length);
- fs.Close();
- }
-
- private int compareEntryKeys(LanguageEntry a, LanguageEntry b) {
- return a.Key.CompareTo(b.Key);
- }
-
- // assuming that filename always ends with -LANG-REGION.EXT, extracting LANG
- private string extractIetfLanguageCode(string filename) {
- string[] s = filename.Split('-');
- if(s.Length > 2) return s[s.Length - 2];
- else throw new ArgumentException("Filename does not match expected pattern: "+filename);
- }
- }
-
- public class LanguageEntry : IEditableObject, INotifyPropertyChanged {
- private string key;
- private string entry1;
- private string entry2;
- public event PropertyChangedEventHandler PropertyChanged;
-
- private void NotifyPropertyChanged(String info) {
- if (PropertyChanged != null) {
- PropertyChanged(this, new PropertyChangedEventArgs(info));
- }
- }
-
- public Brush Background {
- get {
- if (String.IsNullOrEmpty(Entry1)) {
- return Brushes.Red;
- }
- if (String.IsNullOrEmpty(Entry2)) {
- return Brushes.Red;
- }
- return Brushes.White;
- }
- }
- public string Key {
- get {
- return key;
- }
- set {
- key = value;
- NotifyPropertyChanged("Key");
- }
- }
-
- public string Entry1 {
- get {
- return entry1;
- }
- set {
- entry1 = value;
- NotifyPropertyChanged("Entry1");
- NotifyPropertyChanged("Background");
-
- }
- }
-
- public string Entry2 {
- get {
- return entry2;
- }
- set {
- entry2 = value;
- NotifyPropertyChanged("Entry2");
- NotifyPropertyChanged("Background");
- }
- }
-
- public void BeginEdit() {
-
- }
-
- public void EndEdit() {
-
- }
-
- public void CancelEdit() {
-
- }
- }
-
-}
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/EnvironmentInfo.cs b/GreenshotLanguageEditor/EnvironmentInfo.cs
deleted file mode 100644
index 647523fd5..000000000
--- a/GreenshotLanguageEditor/EnvironmentInfo.cs
+++ /dev/null
@@ -1,703 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 System;
-using System.IO;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Windows.Forms;
-
-
-namespace Greenshot.Helpers {
- ///
- /// Description of EnvironmentInfo.
- ///
- public static class EnvironmentInfo {
- private static bool? isWindows = null;
-
- public static bool IsWindows {
- get {
- if (isWindows.HasValue) {
- return isWindows.Value;
- }
- isWindows = Environment.OSVersion.Platform.ToString().StartsWith("Windows");
- return isWindows.Value;
- }
- }
-
- public static string EnvironmentToString(bool newline) {
- StringBuilder environment = new StringBuilder();
- environment.Append("Software version: " + Application.ProductVersion);
- environment.Append(" (" + OSInfo.Bits +" bit)");
-
- if (newline) {
- environment.AppendLine();
- } else {
- environment.Append(", ");
- }
- environment.Append(".NET runtime version: " + Environment.Version);
- if (newline) {
- environment.AppendLine();
- } else {
- environment.Append(", ");
- }
- environment.Append("Time: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss zzz"));
- if (newline) {
- environment.AppendLine();
- } else {
- environment.Append(", ");
- }
-
- if (IsWindows) {
- environment.Append(String.Format("OS: {0} {1} {2} x{3} modus Version = {4}", OSInfo.Name, OSInfo.Edition, OSInfo.ServicePack, OSInfo.Bits, OSInfo.VersionString));
- if (newline) {
- environment.AppendLine();
- } else {
- environment.Append(", ");
- }
- } else {
- environment.Append("OS: " + Environment.OSVersion.Platform.ToString());
- if (newline) {
- environment.AppendLine();
- } else {
- environment.Append(", ");
- }
- }
-
- return environment.ToString();
- }
-
- public static string ExceptionToString(Exception ex) {
- if (ex == null)
- return "null\r\n";
-
- StringBuilder report = new StringBuilder();
-
- report.AppendLine("Exception: " + ex.GetType().ToString());
- report.AppendLine("Message: " + ex.Message);
- if (ex.Data != null && ex.Data.Count > 0) {
- report.AppendLine();
- report.AppendLine("Additional Information:");
- foreach(object key in ex.Data.Keys) {
- object data = ex.Data[key];
- if (data != null) {
- report.AppendLine(key + " = " + data);
- }
- }
- }
- if (ex is ExternalException) {
- // e.g. COMException
- report.AppendLine().AppendLine("ErrorCode: 0x" + (ex as ExternalException).ErrorCode.ToString("X"));
- }
-
- report.AppendLine().AppendLine("Stack:").AppendLine(ex.StackTrace);
-
- if(ex is ReflectionTypeLoadException) {
- report.AppendLine().AppendLine("LoaderExceptions: ");
- foreach(Exception cbE in (ex as ReflectionTypeLoadException).LoaderExceptions) {
- report.AppendLine(cbE.Message);
- }
- }
-
- if (ex.InnerException != null) {
- report.AppendLine("--- InnerException: ---");
- report.AppendLine(ExceptionToString(ex.InnerException));
- }
- return report.ToString();
- }
-
- public static string BuildReport(Exception exception) {
- StringBuilder exceptionText = new StringBuilder();
- exceptionText.AppendLine(EnvironmentInfo.EnvironmentToString(true));
- exceptionText.AppendLine(EnvironmentInfo.ExceptionToString(exception));
-
-
- return exceptionText.ToString();
- }
- }
-
- ///
- /// Provides detailed information about the host operating system.
- /// Code is available at: http://www.csharp411.com/determine-windows-version-and-edition-with-c/
- ///
- static public class OSInfo {
- #region BITS
- ///
- /// Determines if the current application is 32 or 64-bit.
- ///
- static public int Bits {
- get
- {
- return IntPtr.Size * 8;
- }
- }
- #endregion BITS
-
- #region EDITION
- static private string s_Edition;
- ///
- /// Gets the edition of the operating system running on this computer.
- ///
- static public string Edition {
- get {
- if (s_Edition != null) {
- return s_Edition; //***** RETURN *****//
- }
-
- string edition = String.Empty;
-
- OperatingSystem osVersion = Environment.OSVersion;
- OSVERSIONINFOEX osVersionInfo = new OSVERSIONINFOEX();
- osVersionInfo.dwOSVersionInfoSize = Marshal.SizeOf( typeof( OSVERSIONINFOEX ) );
-
- if (GetVersionEx( ref osVersionInfo )) {
- int majorVersion = osVersion.Version.Major;
- int minorVersion = osVersion.Version.Minor;
- byte productType = osVersionInfo.wProductType;
- short suiteMask = osVersionInfo.wSuiteMask;
-
- #region VERSION 4
- if (majorVersion == 4)
- {
- if (productType == VER_NT_WORKSTATION)
- {
- // Windows NT 4.0 Workstation
- edition = "Workstation";
- }
- else if (productType == VER_NT_SERVER)
- {
- if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
- {
- // Windows NT 4.0 Server Enterprise
- edition = "Enterprise Server";
- }
- else
- {
- // Windows NT 4.0 Server
- edition = "Standard Server";
- }
- }
- }
- #endregion VERSION 4
-
- #region VERSION 5
- else if (majorVersion == 5)
- {
- if (productType == VER_NT_WORKSTATION)
- {
- if ((suiteMask & VER_SUITE_PERSONAL) != 0)
- {
- // Windows XP Home Edition
- edition = "Home";
- }
- else
- {
- // Windows XP / Windows 2000 Professional
- edition = "Professional";
- }
- }
- else if (productType == VER_NT_SERVER)
- {
- if (minorVersion == 0)
- {
- if ((suiteMask & VER_SUITE_DATACENTER) != 0)
- {
- // Windows 2000 Datacenter Server
- edition = "Datacenter Server";
- }
- else if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
- {
- // Windows 2000 Advanced Server
- edition = "Advanced Server";
- }
- else
- {
- // Windows 2000 Server
- edition = "Server";
- }
- }
- else
- {
- if ((suiteMask & VER_SUITE_DATACENTER) != 0)
- {
- // Windows Server 2003 Datacenter Edition
- edition = "Datacenter";
- }
- else if ((suiteMask & VER_SUITE_ENTERPRISE) != 0)
- {
- // Windows Server 2003 Enterprise Edition
- edition = "Enterprise";
- }
- else if ((suiteMask & VER_SUITE_BLADE) != 0)
- {
- // Windows Server 2003 Web Edition
- edition = "Web Edition";
- }
- else
- {
- // Windows Server 2003 Standard Edition
- edition = "Standard";
- }
- }
- }
- }
- #endregion VERSION 5
-
- #region VERSION 6
- else if (majorVersion == 6)
- {
- int ed;
- if (GetProductInfo( majorVersion, minorVersion, osVersionInfo.wServicePackMajor, osVersionInfo.wServicePackMinor, out ed ))
- {
- switch (ed)
- {
- case PRODUCT_BUSINESS:
- edition = "Business";
- break;
- case PRODUCT_BUSINESS_N:
- edition = "Business N";
- break;
- case PRODUCT_CLUSTER_SERVER:
- edition = "HPC Edition";
- break;
- case PRODUCT_DATACENTER_SERVER:
- edition = "Datacenter Server";
- break;
- case PRODUCT_DATACENTER_SERVER_CORE:
- edition = "Datacenter Server (core installation)";
- break;
- case PRODUCT_ENTERPRISE:
- edition = "Enterprise";
- break;
- case PRODUCT_ENTERPRISE_N:
- edition = "Enterprise N";
- break;
- case PRODUCT_ENTERPRISE_SERVER:
- edition = "Enterprise Server";
- break;
- case PRODUCT_ENTERPRISE_SERVER_CORE:
- edition = "Enterprise Server (core installation)";
- break;
- case PRODUCT_ENTERPRISE_SERVER_CORE_V:
- edition = "Enterprise Server without Hyper-V (core installation)";
- break;
- case PRODUCT_ENTERPRISE_SERVER_IA64:
- edition = "Enterprise Server for Itanium-based Systems";
- break;
- case PRODUCT_ENTERPRISE_SERVER_V:
- edition = "Enterprise Server without Hyper-V";
- break;
- case PRODUCT_HOME_BASIC:
- edition = "Home Basic";
- break;
- case PRODUCT_HOME_BASIC_N:
- edition = "Home Basic N";
- break;
- case PRODUCT_HOME_PREMIUM:
- edition = "Home Premium";
- break;
- case PRODUCT_HOME_PREMIUM_N:
- edition = "Home Premium N";
- break;
- case PRODUCT_HYPERV:
- edition = "Microsoft Hyper-V Server";
- break;
- case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT:
- edition = "Windows Essential Business Management Server";
- break;
- case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING:
- edition = "Windows Essential Business Messaging Server";
- break;
- case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY:
- edition = "Windows Essential Business Security Server";
- break;
- case PRODUCT_SERVER_FOR_SMALLBUSINESS:
- edition = "Windows Essential Server Solutions";
- break;
- case PRODUCT_SERVER_FOR_SMALLBUSINESS_V:
- edition = "Windows Essential Server Solutions without Hyper-V";
- break;
- case PRODUCT_SMALLBUSINESS_SERVER:
- edition = "Windows Small Business Server";
- break;
- case PRODUCT_STANDARD_SERVER:
- edition = "Standard Server";
- break;
- case PRODUCT_STANDARD_SERVER_CORE:
- edition = "Standard Server (core installation)";
- break;
- case PRODUCT_STANDARD_SERVER_CORE_V:
- edition = "Standard Server without Hyper-V (core installation)";
- break;
- case PRODUCT_STANDARD_SERVER_V:
- edition = "Standard Server without Hyper-V";
- break;
- case PRODUCT_STARTER:
- edition = "Starter";
- break;
- case PRODUCT_STORAGE_ENTERPRISE_SERVER:
- edition = "Enterprise Storage Server";
- break;
- case PRODUCT_STORAGE_EXPRESS_SERVER:
- edition = "Express Storage Server";
- break;
- case PRODUCT_STORAGE_STANDARD_SERVER:
- edition = "Standard Storage Server";
- break;
- case PRODUCT_STORAGE_WORKGROUP_SERVER:
- edition = "Workgroup Storage Server";
- break;
- case PRODUCT_UNDEFINED:
- edition = "Unknown product";
- break;
- case PRODUCT_ULTIMATE:
- edition = "Ultimate";
- break;
- case PRODUCT_ULTIMATE_N:
- edition = "Ultimate N";
- break;
- case PRODUCT_WEB_SERVER:
- edition = "Web Server";
- break;
- case PRODUCT_WEB_SERVER_CORE:
- edition = "Web Server (core installation)";
- break;
- }
- }
- }
- #endregion VERSION 6
- }
-
- s_Edition = edition;
- return edition;
- }
- }
- #endregion EDITION
-
- #region NAME
- static private string s_Name;
- ///
- /// Gets the name of the operating system running on this computer.
- ///
- static public string Name
- {
- get
- {
- if (s_Name != null)
- return s_Name; //***** RETURN *****//
-
- string name = "unknown";
-
- OperatingSystem osVersion = Environment.OSVersion;
- OSVERSIONINFOEX osVersionInfo = new OSVERSIONINFOEX();
- osVersionInfo.dwOSVersionInfoSize = Marshal.SizeOf( typeof( OSVERSIONINFOEX ) );
-
- if (GetVersionEx( ref osVersionInfo ))
- {
- int majorVersion = osVersion.Version.Major;
- int minorVersion = osVersion.Version.Minor;
-
- switch (osVersion.Platform)
- {
- case PlatformID.Win32Windows:
- {
- if (majorVersion == 4)
- {
- string csdVersion = osVersionInfo.szCSDVersion;
- switch (minorVersion)
- {
- case 0:
- if (csdVersion == "B" || csdVersion == "C")
- name = "Windows 95 OSR2";
- else
- name = "Windows 95";
- break;
- case 10:
- if (csdVersion == "A")
- name = "Windows 98 Second Edition";
- else
- name = "Windows 98";
- break;
- case 90:
- name = "Windows Me";
- break;
- }
- }
- break;
- }
-
- case PlatformID.Win32NT:
- {
- byte productType = osVersionInfo.wProductType;
-
- switch (majorVersion)
- {
- case 3:
- name = "Windows NT 3.51";
- break;
- case 4:
- switch (productType)
- {
- case 1:
- name = "Windows NT 4.0";
- break;
- case 3:
- name = "Windows NT 4.0 Server";
- break;
- }
- break;
- case 5:
- switch (minorVersion)
- {
- case 0:
- name = "Windows 2000";
- break;
- case 1:
- name = "Windows XP";
- break;
- case 2:
- name = "Windows Server 2003";
- break;
- }
- break;
- case 6:
- switch (minorVersion)
- {
- case 0:
- name = "Windows Vista";
- break;
- case 1:
- name = "Windows 7";
- break;
- case 3:
- name = "Windows Server 2008";
- break;
- }
- break;
- }
- break;
- }
- }
- }
-
- s_Name = name;
- return name;
- }
- }
- #endregion NAME
-
- #region PINVOKE
- #region GET
- #region PRODUCT INFO
- [DllImport( "Kernel32.dll" )]
- internal static extern bool GetProductInfo(
- int osMajorVersion,
- int osMinorVersion,
- int spMajorVersion,
- int spMinorVersion,
- out int edition );
- #endregion PRODUCT INFO
-
- #region VERSION
- [DllImport( "kernel32.dll" )]
- private static extern bool GetVersionEx( ref OSVERSIONINFOEX osVersionInfo );
- #endregion VERSION
- #endregion GET
-
- #region OSVERSIONINFOEX
- [StructLayout( LayoutKind.Sequential )]
- private struct OSVERSIONINFOEX
- {
- public int dwOSVersionInfoSize;
- public int dwMajorVersion;
- public int dwMinorVersion;
- public int dwBuildNumber;
- public int dwPlatformId;
- [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 128 )]
- public string szCSDVersion;
- public short wServicePackMajor;
- public short wServicePackMinor;
- public short wSuiteMask;
- public byte wProductType;
- public byte wReserved;
- }
- #endregion OSVERSIONINFOEX
-
- #region PRODUCT
- private const int PRODUCT_UNDEFINED = 0x00000000;
- private const int PRODUCT_ULTIMATE = 0x00000001;
- private const int PRODUCT_HOME_BASIC = 0x00000002;
- private const int PRODUCT_HOME_PREMIUM = 0x00000003;
- private const int PRODUCT_ENTERPRISE = 0x00000004;
- private const int PRODUCT_HOME_BASIC_N = 0x00000005;
- private const int PRODUCT_BUSINESS = 0x00000006;
- private const int PRODUCT_STANDARD_SERVER = 0x00000007;
- private const int PRODUCT_DATACENTER_SERVER = 0x00000008;
- private const int PRODUCT_SMALLBUSINESS_SERVER = 0x00000009;
- private const int PRODUCT_ENTERPRISE_SERVER = 0x0000000A;
- private const int PRODUCT_STARTER = 0x0000000B;
- private const int PRODUCT_DATACENTER_SERVER_CORE = 0x0000000C;
- private const int PRODUCT_STANDARD_SERVER_CORE = 0x0000000D;
- private const int PRODUCT_ENTERPRISE_SERVER_CORE = 0x0000000E;
- private const int PRODUCT_ENTERPRISE_SERVER_IA64 = 0x0000000F;
- private const int PRODUCT_BUSINESS_N = 0x00000010;
- private const int PRODUCT_WEB_SERVER = 0x00000011;
- private const int PRODUCT_CLUSTER_SERVER = 0x00000012;
- private const int PRODUCT_HOME_SERVER = 0x00000013;
- private const int PRODUCT_STORAGE_EXPRESS_SERVER = 0x00000014;
- private const int PRODUCT_STORAGE_STANDARD_SERVER = 0x00000015;
- private const int PRODUCT_STORAGE_WORKGROUP_SERVER = 0x00000016;
- private const int PRODUCT_STORAGE_ENTERPRISE_SERVER = 0x00000017;
- private const int PRODUCT_SERVER_FOR_SMALLBUSINESS = 0x00000018;
- private const int PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = 0x00000019;
- private const int PRODUCT_HOME_PREMIUM_N = 0x0000001A;
- private const int PRODUCT_ENTERPRISE_N = 0x0000001B;
- private const int PRODUCT_ULTIMATE_N = 0x0000001C;
- private const int PRODUCT_WEB_SERVER_CORE = 0x0000001D;
- private const int PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = 0x0000001E;
- private const int PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = 0x0000001F;
- private const int PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = 0x00000020;
- private const int PRODUCT_SERVER_FOR_SMALLBUSINESS_V = 0x00000023;
- private const int PRODUCT_STANDARD_SERVER_V = 0x00000024;
- private const int PRODUCT_ENTERPRISE_SERVER_V = 0x00000026;
- private const int PRODUCT_STANDARD_SERVER_CORE_V = 0x00000028;
- private const int PRODUCT_ENTERPRISE_SERVER_CORE_V = 0x00000029;
- private const int PRODUCT_HYPERV = 0x0000002A;
- #endregion PRODUCT
-
- #region VERSIONS
- private const int VER_NT_WORKSTATION = 1;
- private const int VER_NT_DOMAIN_CONTROLLER = 2;
- private const int VER_NT_SERVER = 3;
- private const int VER_SUITE_SMALLBUSINESS = 1;
- private const int VER_SUITE_ENTERPRISE = 2;
- private const int VER_SUITE_TERMINAL = 16;
- private const int VER_SUITE_DATACENTER = 128;
- private const int VER_SUITE_SINGLEUSERTS = 256;
- private const int VER_SUITE_PERSONAL = 512;
- private const int VER_SUITE_BLADE = 1024;
- #endregion VERSIONS
- #endregion PINVOKE
-
- #region SERVICE PACK
- ///
- /// Gets the service pack information of the operating system running on this computer.
- ///
- static public string ServicePack
- {
- get
- {
- string servicePack = String.Empty;
- OSVERSIONINFOEX osVersionInfo = new OSVERSIONINFOEX();
-
- osVersionInfo.dwOSVersionInfoSize = Marshal.SizeOf( typeof( OSVERSIONINFOEX ) );
-
- if (GetVersionEx( ref osVersionInfo ))
- {
- servicePack = osVersionInfo.szCSDVersion;
- }
-
- return servicePack;
- }
- }
- #endregion SERVICE PACK
-
- #region VERSION
- #region BUILD
- ///
- /// Gets the build version number of the operating system running on this computer.
- ///
- public static int BuildVersion {
- get {
- return Environment.OSVersion.Version.Build;
- }
- }
- #endregion BUILD
-
- #region FULL
- #region STRING
- ///
- /// Gets the full version string of the operating system running on this computer.
- ///
- static public string VersionString
- {
- get
- {
- return Environment.OSVersion.Version.ToString();
- }
- }
- #endregion STRING
-
- #region VERSION
- ///
- /// Gets the full version of the operating system running on this computer.
- ///
- static public Version Version
- {
- get
- {
- return Environment.OSVersion.Version;
- }
- }
- #endregion VERSION
- #endregion FULL
-
- #region MAJOR
- ///
- /// Gets the major version number of the operating system running on this computer.
- ///
- static public int MajorVersion
- {
- get
- {
- return Environment.OSVersion.Version.Major;
- }
- }
- #endregion MAJOR
-
- #region MINOR
- ///
- /// Gets the minor version number of the operating system running on this computer.
- ///
- static public int MinorVersion
- {
- get
- {
- return Environment.OSVersion.Version.Minor;
- }
- }
- #endregion MINOR
-
- #region REVISION
- ///
- /// Gets the revision version number of the operating system running on this computer.
- ///
- static public int RevisionVersion
- {
- get
- {
- return Environment.OSVersion.Version.Revision;
- }
- }
- #endregion REVISION
- #endregion VERSION
- }
-}
diff --git a/GreenshotLanguageEditor/ErrorWindow.xaml b/GreenshotLanguageEditor/ErrorWindow.xaml
deleted file mode 100644
index b1fc924dd..000000000
--- a/GreenshotLanguageEditor/ErrorWindow.xaml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/ErrorWindow.xaml.cs b/GreenshotLanguageEditor/ErrorWindow.xaml.cs
deleted file mode 100644
index 9f15b8be5..000000000
--- a/GreenshotLanguageEditor/ErrorWindow.xaml.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Created by SharpDevelop.
- * User: jens
- * Date: 02.10.2012
- * Time: 22:52
- *
- * To change this template use Tools | Options | Coding | Edit Standard Headers.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using Greenshot.Helpers;
-
-namespace GreenshotLanguageEditor
-{
- ///
- /// Interaction logic for Window1.xaml
- ///
- public partial class ErrorWindow : Window
- {
- public ErrorWindow(Exception e)
- {
- InitializeComponent();
- this.Title = "Unexpected Error in GreenshotLanguageEditor";
-
- this.textBox.Text = "Sorry, an unexpected error occurred :(\n\n"
- + EnvironmentInfo.BuildReport(e);
-
- }
- }
-}
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj b/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj
deleted file mode 100644
index eef8bd6b4..000000000
--- a/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}
- Debug
- x86
- WinExe
- GreenshotLanguageEditor
- GreenshotLanguageEditor
- v4.0
- Client
- Properties
- False
- False
- 4
- false
- C:\Users\jens\AppData\Roaming\ICSharpCode/SharpDevelop4\Settings.SourceAnalysis
-
-
- bin\Debug\
- true
- Full
- False
- True
- DEBUG;TRACE
-
-
- bin\Release\
- False
- None
- True
- False
- TRACE
-
-
- False
- Auto
- 4194304
- x86
- 4096
-
-
- x86
-
-
-
- 3.0
-
-
- 3.0
-
-
-
- 3.5
-
-
-
- 3.5
-
-
-
- 4.0
-
-
-
- 3.5
-
-
- 3.0
-
-
-
-
-
-
-
- Code
- App.xaml
-
-
-
-
- MetaEditorWindow.xaml
- Code
-
-
-
-
-
- Code
- EntriesEditorWindow.xaml
-
-
- ErrorWindow.xaml
- Code
-
-
-
-
-
-
-
-
-
-
-
-
- Always
-
-
- Always
- icon-save
-
-
- Always
-
-
- Always
-
-
-
-
-
-
-
- Always
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/GreenshotLanguageEditor.sln b/GreenshotLanguageEditor/GreenshotLanguageEditor.sln
deleted file mode 100644
index 15cc9a690..000000000
--- a/GreenshotLanguageEditor/GreenshotLanguageEditor.sln
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-# SharpDevelop 4.2.0.8649-Beta 2
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreenshotLanguageEditor", "GreenshotLanguageEditor.csproj", "{3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x86 = Debug|x86
- Release|x86 = Release|x86
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPUF
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Debug|x86.Build.0 = Debug|x86
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Debug|x86.ActiveCfg = Debug|x86
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Release|x86.Build.0 = Release|x86
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Release|x86.ActiveCfg = Release|x86
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Release|Any CPU.Build.0 = Release|Any CPU
- {3938F7B8-BAA1-48A3-B910-5FA6A5AA2506}.Release|Any CPU.ActiveCfg = Release|Any CPU
- EndGlobalSection
-EndGlobal
diff --git a/GreenshotLanguageEditor/GreenshotLanguageEditor.suo b/GreenshotLanguageEditor/GreenshotLanguageEditor.suo
deleted file mode 100644
index a20d58dd0..000000000
Binary files a/GreenshotLanguageEditor/GreenshotLanguageEditor.suo and /dev/null differ
diff --git a/GreenshotLanguageEditor/Language.cs b/GreenshotLanguageEditor/Language.cs
deleted file mode 100644
index 2eea18b04..000000000
--- a/GreenshotLanguageEditor/Language.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Xml.Linq;
-
-namespace GreenshotLanguageEditor {
- public class LanguageFile {
- public string FilePath {
- get {return Path.Combine(FileDir,FileName);}
- set {
- FileDir = Path.GetDirectoryName(value);
- FileName = Path.GetFileName(value);
- }
- }
- public string FileDir {
- get;
- set;
- }
- public string FileName {
- get;
- set;
- }
- public string IETF {
- get;
- set;
- }
- public string Version {
- get;
- set;
- }
- public string Languagegroup {
- get;
- set;
- }
- public string Description {
- get;
- set;
- }
- }
- ///
- /// Description of Language.
- ///
- public static class GreenshotLanguage {
- public static IEnumerable GetLanguageFiles(string languageFilePath, string languageFilePattern) {
- var languageFiles = from languageFile in Directory.GetFiles(languageFilePath, languageFilePattern, SearchOption.AllDirectories).ToList()
- from language in XDocument.Load(languageFile).Descendants("language")
- select new LanguageFile {
- FilePath = languageFile,
- Description = (string)language.Attribute("description"),
- IETF = (string)language.Attribute("ietf"),
- Version = (string)language.Attribute("version"),
- Languagegroup = (string)language.Attribute("languagegroup")
- };
-
- foreach (LanguageFile languageFile in languageFiles) {
- yield return languageFile;
- }
- }
-
- public static IDictionary ReadLanguageFile(LanguageFile languageFile) {
- return (from resource in XDocument.Load(languageFile.FilePath).Descendants("resource")
- where !string.IsNullOrEmpty(resource.Value)
- select new {
- Name = (string)resource.Attribute("name"),
- Text = resource.Value.Trim()
- }
- ).ToDictionary(item => item.Name, item => item.Text);
- }
- }
-}
diff --git a/GreenshotLanguageEditor/MetaEditorWindow.xaml b/GreenshotLanguageEditor/MetaEditorWindow.xaml
deleted file mode 100644
index 29dc9de23..000000000
--- a/GreenshotLanguageEditor/MetaEditorWindow.xaml
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Filename
-
- Description
-
- IETF
-
- Language group
-
- Version
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/MetaEditorWindow.xaml.cs b/GreenshotLanguageEditor/MetaEditorWindow.xaml.cs
deleted file mode 100644
index a3687b737..000000000
--- a/GreenshotLanguageEditor/MetaEditorWindow.xaml.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 System;
-using System.ComponentModel;
-using System.Collections.Generic;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Text.RegularExpressions;
-
-namespace GreenshotLanguageEditor
-{
- ///
- /// Interaction logic for LanguageMetaEditor.xaml
- ///
- public partial class MetaEditorWindow : Window {
-
- private static Regex FILENAME_PATTERN = new Regex(@"[a-z]+\-[a-z]{2}\-[A-Z]{2}.xml");
- private LanguageFile langFile = new LanguageFile();
-
-
- public LanguageFile LangFile {
- get {return langFile;}
- set {langFile = value;}
- }
- public MetaEditorWindow(LanguageFile langFile) {
- InitializeComponent();
- this.LangFile = langFile;
- this.Closing += new System.ComponentModel.CancelEventHandler(OnClosing);
- }
-
- void OnClosing(object sender, System.ComponentModel.CancelEventArgs e) {
- if(langFile.FileName != null && langFile.FileName.Length != 0 && !FILENAME_PATTERN.IsMatch(langFile.FileName)) {
- MessageBox.Show("The filename is not valid, please use a file name like language-en-US.xml","Filename not valid", MessageBoxButton.OK, MessageBoxImage.Stop);
- e.Cancel = true;
- }
- }
-
- void button1_Click(object sender, RoutedEventArgs e) {
- this.Close();
- }
- }
-}
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/ObservableDictionary.cs b/GreenshotLanguageEditor/ObservableDictionary.cs
deleted file mode 100644
index a5d9e2ccc..000000000
--- a/GreenshotLanguageEditor/ObservableDictionary.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-using System;
-using System.Linq;
-using System.ComponentModel;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-
-namespace System.Collections.ObjectModel
-{
- public class ObservableDictionary : IDictionary, INotifyCollectionChanged, INotifyPropertyChanged
- {
- private const string CountString = "Count";
- private const string IndexerName = "Item[]";
- private const string KeysName = "Keys";
- private const string ValuesName = "Values";
-
- private IDictionary _Dictionary;
- protected IDictionary Dictionary
- {
- get { return _Dictionary; }
- }
-
- #region Constructors
- public ObservableDictionary()
- {
- _Dictionary = new Dictionary();
- }
- public ObservableDictionary(IDictionary dictionary)
- {
- _Dictionary = new Dictionary(dictionary);
- }
- public ObservableDictionary(IEqualityComparer comparer)
- {
- _Dictionary = new Dictionary(comparer);
- }
- public ObservableDictionary(int capacity)
- {
- _Dictionary = new Dictionary(capacity);
- }
- public ObservableDictionary(IDictionary dictionary, IEqualityComparer comparer)
- {
- _Dictionary = new Dictionary(dictionary, comparer);
- }
- public ObservableDictionary(int capacity, IEqualityComparer comparer)
- {
- _Dictionary = new Dictionary(capacity, comparer);
- }
- #endregion
-
- #region IDictionary Members
-
- public void Add(TKey key, TValue value)
- {
- Insert(key, value, true);
- }
-
- public bool ContainsKey(TKey key)
- {
- return Dictionary.ContainsKey(key);
- }
-
- public ICollection Keys
- {
- get { return Dictionary.Keys; }
- }
-
- public bool Remove(TKey key)
- {
- if (key == null) throw new ArgumentNullException("key");
-
- TValue value;
- Dictionary.TryGetValue(key, out value);
- var removed = Dictionary.Remove(key);
- if (removed)
-
- //OnCollectionChanged(NotifyCollectionChangedAction.Remove, new KeyValuePair(key, value));
- OnCollectionChanged();
-
- return removed;
- }
-
- public bool TryGetValue(TKey key, out TValue value)
- {
- return Dictionary.TryGetValue(key, out value);
- }
-
- public ICollection Values
- {
- get { return Dictionary.Values; }
- }
-
- public TValue this[TKey key]
- {
- get
- {
- return Dictionary[key];
- }
- set
- {
- Insert(key, value, false);
- }
- }
-
- #endregion
-
- #region ICollection> Members
-
- public void Add(KeyValuePair item)
- {
- Insert(item.Key, item.Value, true);
- }
-
- public void Clear()
- {
- if (Dictionary.Count > 0)
- {
- Dictionary.Clear();
- OnCollectionChanged();
- }
- }
-
- public bool Contains(KeyValuePair item)
- {
- return Dictionary.Contains(item);
- }
-
- public void CopyTo(KeyValuePair[] array, int arrayIndex)
- {
- Dictionary.CopyTo(array, arrayIndex);
- }
-
- public int Count
- {
- get { return Dictionary.Count; }
- }
-
- public bool IsReadOnly
- {
- get { return Dictionary.IsReadOnly; }
- }
-
- public bool Remove(KeyValuePair item)
- {
- return Remove(item.Key);
- }
-
-
- #endregion
-
- #region IEnumerable> Members
-
- public IEnumerator> GetEnumerator()
- {
- return Dictionary.GetEnumerator();
- }
-
- #endregion
-
- #region IEnumerable Members
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- return ((IEnumerable)Dictionary).GetEnumerator();
- }
-
- #endregion
-
- #region INotifyCollectionChanged Members
-
- public event NotifyCollectionChangedEventHandler CollectionChanged;
-
- #endregion
-
- #region INotifyPropertyChanged Members
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- #endregion
-
- public void AddRange(IDictionary items)
- {
- if (items == null) throw new ArgumentNullException("items");
-
- if (items.Count > 0)
- {
- if (Dictionary.Count > 0)
- {
- if (items.Keys.Any((k) => Dictionary.ContainsKey(k)))
- throw new ArgumentException("An item with the same key has already been added.");
- else
- foreach (var item in items) Dictionary.Add(item);
- }
- else
- _Dictionary = new Dictionary(items);
-
- OnCollectionChanged(NotifyCollectionChangedAction.Add, items.ToArray());
- }
- }
-
- private void Insert(TKey key, TValue value, bool add)
- {
- if (key == null) throw new ArgumentNullException("key");
-
- TValue item;
- if (Dictionary.TryGetValue(key, out item))
- {
- if (add) throw new ArgumentException("An item with the same key has already been added.");
- if (Equals(item, value)) return;
- Dictionary[key] = value;
-
- OnCollectionChanged(NotifyCollectionChangedAction.Replace, new KeyValuePair(key, value), new KeyValuePair(key, item));
- }
- else
- {
- Dictionary[key] = value;
-
- OnCollectionChanged(NotifyCollectionChangedAction.Add, new KeyValuePair(key, value));
- }
- }
-
- private void OnPropertyChanged()
- {
- OnPropertyChanged(CountString);
- OnPropertyChanged(IndexerName);
- OnPropertyChanged(KeysName);
- OnPropertyChanged(ValuesName);
- }
-
- protected virtual void OnPropertyChanged(string propertyName)
- {
- if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
- }
-
- private void OnCollectionChanged()
- {
- OnPropertyChanged();
- if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
- }
-
- private void OnCollectionChanged(NotifyCollectionChangedAction action, KeyValuePair changedItem)
- {
- OnPropertyChanged();
- if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, changedItem));
- }
-
- private void OnCollectionChanged(NotifyCollectionChangedAction action, KeyValuePair newItem, KeyValuePair oldItem)
- {
- OnPropertyChanged();
- if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItem, oldItem));
- }
-
- private void OnCollectionChanged(NotifyCollectionChangedAction action, IList newItems)
- {
- OnPropertyChanged();
- if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItems));
- }
- }
-}
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/Properties/AssemblyInfo.cs b/GreenshotLanguageEditor/Properties/AssemblyInfo.cs
deleted file mode 100644
index 64c89ceb6..000000000
--- a/GreenshotLanguageEditor/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-#region Using directives
-
-using System;
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-#endregion
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("GreenshotLanguageEditor")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("GreenshotLanguageEditor")]
-[assembly: AssemblyCopyright("Copyright 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-[assembly: ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all the values or you can use the default the Revision and
-// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.*")]
diff --git a/GreenshotLanguageEditor/Properties/WPFAssemblyInfo.cs b/GreenshotLanguageEditor/Properties/WPFAssemblyInfo.cs
deleted file mode 100644
index 94903a373..000000000
--- a/GreenshotLanguageEditor/Properties/WPFAssemblyInfo.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-#region Using directives
-
-using System.Resources;
-using System.Windows;
-
-#endregion
-
-
-
-//In order to begin building localizable applications, set
-//CultureYouAreCodingWith in your .csproj file
-//inside a . For example, if you are using US english
-//in your source files, set the to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
diff --git a/GreenshotLanguageEditor/app.config b/GreenshotLanguageEditor/app.config
deleted file mode 100644
index 0d6966093..000000000
--- a/GreenshotLanguageEditor/app.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/icons/cross.png b/GreenshotLanguageEditor/icons/cross.png
deleted file mode 100644
index d6921565d..000000000
Binary files a/GreenshotLanguageEditor/icons/cross.png and /dev/null differ
diff --git a/GreenshotLanguageEditor/icons/disk-black.png b/GreenshotLanguageEditor/icons/disk-black.png
deleted file mode 100644
index 26507e51b..000000000
Binary files a/GreenshotLanguageEditor/icons/disk-black.png and /dev/null differ
diff --git a/GreenshotLanguageEditor/icons/icon.ico b/GreenshotLanguageEditor/icons/icon.ico
deleted file mode 100644
index fd1312dec..000000000
Binary files a/GreenshotLanguageEditor/icons/icon.ico and /dev/null differ
diff --git a/GreenshotLanguageEditor/icons/new.png b/GreenshotLanguageEditor/icons/new.png
deleted file mode 100644
index 6eb6b2f73..000000000
Binary files a/GreenshotLanguageEditor/icons/new.png and /dev/null differ
diff --git a/GreenshotLanguageEditor/icons/property.png b/GreenshotLanguageEditor/icons/property.png
deleted file mode 100644
index b0e549e45..000000000
Binary files a/GreenshotLanguageEditor/icons/property.png and /dev/null differ
diff --git a/GreenshotLanguageEditor/template-homepage.html.part b/GreenshotLanguageEditor/template-homepage.html.part
deleted file mode 100644
index 261f77b2a..000000000
--- a/GreenshotLanguageEditor/template-homepage.html.part
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
${home_whatis}
-
${home_whatis_intro}
-
-${home_whatis_create} ${home_whatis_edit} ${home_whatis_send} ${home_whatis_more}
-
-
${home_whatis_usage}
-
-
-
-
-
${home_seemore}
-
${home_seemore_screenshots}
-
-
${home_downloads}
-
-
${home_opensource}
-
${home_opensource_gpl}
-
${home_opensource_donate}
-
-
\ No newline at end of file
diff --git a/GreenshotLanguageEditor/template-installer.iss.part b/GreenshotLanguageEditor/template-installer.iss.part
deleted file mode 100644
index 46d6a0d23..000000000
--- a/GreenshotLanguageEditor/template-installer.iss.part
+++ /dev/null
@@ -1,10 +0,0 @@
-${lang}.confluence=${confluence}
-${lang}.default=${default}
-${lang}.externalcommand=${externalcommand}
-${lang}.imgur=${imgur}
-${lang}.jira=${jira}
-${lang}.language=${language}
-${lang}.ocr=${ocr}
-${lang}.optimize=${optimize}
-${lang}.startgreenshot=${startgreenshot}
-${lang}.startup=${startup}
diff --git a/GreenshotOCRCommand/GreenshotOCRCommand.csproj b/GreenshotOCRCommand/GreenshotOCRCommand.csproj
index c99815708..49089a7fb 100644
--- a/GreenshotOCRCommand/GreenshotOCRCommand.csproj
+++ b/GreenshotOCRCommand/GreenshotOCRCommand.csproj
@@ -47,6 +47,7 @@
+
@@ -56,8 +57,11 @@
- mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\GreenshotOCRPlugin"
-copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\GreenshotOCRPlugin"
+
+mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\GreenshotOCRPlugin"
+copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\GreenshotOCRPlugin"
+copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName).config" "$(SolutionDir)bin\$(Configuration)\Plugins\GreenshotOCRPlugin"
+
False
diff --git a/Greenshot/Greenshot.exe.config b/GreenshotOCRCommand/app.config
similarity index 57%
rename from Greenshot/Greenshot.exe.config
rename to GreenshotOCRCommand/app.config
index eea8499f5..d4ff71058 100644
--- a/Greenshot/Greenshot.exe.config
+++ b/GreenshotOCRCommand/app.config
@@ -1,4 +1,4 @@
-
+
@@ -6,8 +6,5 @@
-
-
-
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/GreenshotOCRPlugin.csproj b/GreenshotOCRPlugin/GreenshotOCRPlugin.csproj
index 927a6ba59..00373bdcf 100644
--- a/GreenshotOCRPlugin/GreenshotOCRPlugin.csproj
+++ b/GreenshotOCRPlugin/GreenshotOCRPlugin.csproj
@@ -64,7 +64,6 @@
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-cs-CZ.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-cs-CZ.xml
index a216a0200..eb225ae3e 100644
--- a/GreenshotOCRPlugin/Languages/language_ocrplugin-cs-CZ.xml
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-cs-CZ.xml
@@ -1,8 +1,8 @@
-
-
-
- Jazyk pro OCR
- Orientaci obrázku
- Srovnat obrázek
-
+
+
+
+ Jazyk pro OCR
+ Orientaci obrázku
+ Srovnat obrázek
+
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-id-ID.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-id-ID.xml
new file mode 100644
index 000000000..e828076e2
--- /dev/null
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-id-ID.xml
@@ -0,0 +1,8 @@
+
+
+
+ Bahasa untuk OCR
+ Orientasikan gambar
+ Rapikan gambar
+
+
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-pl-PL.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-pl-PL.xml
new file mode 100644
index 000000000..37b40b65a
--- /dev/null
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-pl-PL.xml
@@ -0,0 +1,8 @@
+
+
+
+ Język dla OCR
+ Orientacja obrazu
+ Wyprostowanie obrazów
+
+
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-ru-RU.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-ru-RU.xml
index f4b3f10a9..f2fffd34e 100644
--- a/GreenshotOCRPlugin/Languages/language_ocrplugin-ru-RU.xml
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-ru-RU.xml
@@ -1,14 +1,8 @@
-
-
-
- Язык для OCR
-
-
- Ориентация изображения
-
-
- Выпрямление изображения
-
-
+
+
+ Язык для OCR
+ Ориентация изображения
+ Выпрямление изображения
+
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-uk-UA.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-uk-UA.xml
index 010acb80e..7a433eb4f 100644
--- a/GreenshotOCRPlugin/Languages/language_ocrplugin-uk-UA.xml
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-uk-UA.xml
@@ -1,8 +1,8 @@
-
-
-
- Мова для ОРТ
- Орієнтувати зображення
- Випрямлення зображення
-
-
+
+
+
+ Мова для ОРТ
+ Орієнтувати зображення
+ Випрямлення зображення
+
+
diff --git a/GreenshotOCRPlugin/Languages/language_ocrplugin-zh-TW.xml b/GreenshotOCRPlugin/Languages/language_ocrplugin-zh-TW.xml
index c27f78c20..dce00e4cf 100644
--- a/GreenshotOCRPlugin/Languages/language_ocrplugin-zh-TW.xml
+++ b/GreenshotOCRPlugin/Languages/language_ocrplugin-zh-TW.xml
@@ -1,8 +1,8 @@
-
-
-
- OCR 語言
- 定向圖片
- 拉直圖片
-
+
+
+
+ OCR 語言
+ 定向圖片
+ 拉直圖片
+
\ No newline at end of file
diff --git a/GreenshotOCRPlugin/Properties/AssemblyInfo.cs.template b/GreenshotOCRPlugin/Properties/AssemblyInfo.cs.template
index 923e2bdce..fd4aad86b 100644
--- a/GreenshotOCRPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotOCRPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotOfficePlugin/Destinations/ExcelDestination.cs b/GreenshotOfficePlugin/Destinations/ExcelDestination.cs
index 5492db51d..cdd530aeb 100644
--- a/GreenshotOfficePlugin/Destinations/ExcelDestination.cs
+++ b/GreenshotOfficePlugin/Destinations/ExcelDestination.cs
@@ -28,6 +28,7 @@ using GreenshotPlugin.Core;
using Greenshot.Plugin;
using Greenshot.Interop.Office;
using Greenshot.IniFile;
+using System.Text.RegularExpressions;
namespace GreenshotOfficePlugin {
///
@@ -109,17 +110,23 @@ namespace GreenshotOfficePlugin {
public override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) {
ExportInformation exportInformation = new ExportInformation(this.Designation, this.Description);
- string tmpFile = captureDetails.Filename;
- if (tmpFile == null || surface.Modified) {
- tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings(OutputFormat.png));
+ bool createdFile = false;
+ string imageFile = captureDetails.Filename;
+ if (imageFile == null || surface.Modified || !Regex.IsMatch(imageFile, @".*(\.png|\.gif|\.jpg|\.jpeg|\.tiff|\.bmp)$")) {
+ imageFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings().PreventGreenshotFormat());
+ createdFile = true;
}
if (workbookName != null) {
- ExcelExporter.InsertIntoExistingWorkbook(workbookName, tmpFile);
+ ExcelExporter.InsertIntoExistingWorkbook(workbookName, imageFile, surface.Image.Size);
} else {
- ExcelExporter.InsertIntoNewWorkbook(tmpFile);
+ ExcelExporter.InsertIntoNewWorkbook(imageFile, surface.Image.Size);
}
exportInformation.ExportMade = true;
ProcessExport(exportInformation, surface);
+ // Cleanup imageFile if we created it here, so less tmp-files are generated and left
+ if (createdFile && File.Exists(imageFile)) {
+ File.Delete(imageFile);
+ }
return exportInformation;
}
}
diff --git a/GreenshotOfficePlugin/Destinations/OutlookDestination.cs b/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
index 3e9ad5231..7e22d2389 100644
--- a/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
+++ b/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
@@ -152,8 +152,8 @@ namespace GreenshotOfficePlugin {
ExportInformation exportInformation = new ExportInformation(this.Designation, this.Description);
// Outlook logic
string tmpFile = captureDetails.Filename;
- if (tmpFile == null || surface.Modified) {
- tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings());
+ if (tmpFile == null || surface.Modified || !Regex.IsMatch(tmpFile, @".*(\.png|\.gif|\.jpg|\.jpeg|\.tiff|\.bmp)$")) {
+ tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings().PreventGreenshotFormat());
} else {
LOG.InfoFormat("Using already available file: {0}", tmpFile);
}
diff --git a/GreenshotOfficePlugin/Destinations/PowerpointDestination.cs b/GreenshotOfficePlugin/Destinations/PowerpointDestination.cs
index 1761a551b..d2cff5829 100644
--- a/GreenshotOfficePlugin/Destinations/PowerpointDestination.cs
+++ b/GreenshotOfficePlugin/Destinations/PowerpointDestination.cs
@@ -28,6 +28,7 @@ using GreenshotPlugin.Core;
using Greenshot.Plugin;
using Greenshot.Interop.Office;
using Greenshot.IniFile;
+using System.Text.RegularExpressions;
namespace GreenshotOfficePlugin {
///
@@ -112,8 +113,8 @@ namespace GreenshotOfficePlugin {
ExportInformation exportInformation = new ExportInformation(this.Designation, this.Description);
string tmpFile = captureDetails.Filename;
Size imageSize = Size.Empty;
- if (tmpFile == null || surface.Modified) {
- tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings());
+ if (tmpFile == null || surface.Modified || !Regex.IsMatch(tmpFile, @".*(\.png|\.gif|\.jpg|\.jpeg|\.tiff|\.bmp)$")) {
+ tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings().PreventGreenshotFormat());
imageSize = surface.Image.Size;
}
if (presentationName != null) {
diff --git a/GreenshotOfficePlugin/Destinations/WordDestination.cs b/GreenshotOfficePlugin/Destinations/WordDestination.cs
index a3d637f2e..13f378c41 100644
--- a/GreenshotOfficePlugin/Destinations/WordDestination.cs
+++ b/GreenshotOfficePlugin/Destinations/WordDestination.cs
@@ -29,6 +29,7 @@ using GreenshotPlugin.Core;
using Greenshot.Plugin;
using Greenshot.Interop.Office;
using Greenshot.IniFile;
+using System.Text.RegularExpressions;
namespace GreenshotOfficePlugin {
///
@@ -111,8 +112,8 @@ namespace GreenshotOfficePlugin {
public override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) {
ExportInformation exportInformation = new ExportInformation(this.Designation, this.Description);
string tmpFile = captureDetails.Filename;
- if (tmpFile == null || surface.Modified) {
- tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings(OutputFormat.png));
+ if (tmpFile == null || surface.Modified || !Regex.IsMatch(tmpFile, @".*(\.png|\.gif|\.jpg|\.jpeg|\.tiff|\.bmp)$")) {
+ tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings().PreventGreenshotFormat());
}
if (documentCaption != null) {
try {
diff --git a/GreenshotOfficePlugin/GreenshotOfficePlugin.csproj b/GreenshotOfficePlugin/GreenshotOfficePlugin.csproj
index bc7dfc6fa..9813c4d96 100644
--- a/GreenshotOfficePlugin/GreenshotOfficePlugin.csproj
+++ b/GreenshotOfficePlugin/GreenshotOfficePlugin.csproj
@@ -84,8 +84,6 @@
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
-
mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
diff --git a/GreenshotOfficePlugin/OfficeExport/ExcelExporter.cs b/GreenshotOfficePlugin/OfficeExport/ExcelExporter.cs
index 6a71773de..ce47af793 100644
--- a/GreenshotOfficePlugin/OfficeExport/ExcelExporter.cs
+++ b/GreenshotOfficePlugin/OfficeExport/ExcelExporter.cs
@@ -24,10 +24,14 @@ using System.Text;
using System.Reflection;
using Greenshot.Interop;
+using System.Drawing;
+using GreenshotOfficePlugin;
+using Greenshot.IniFile;
namespace Greenshot.Interop.Office {
public class ExcelExporter {
private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(ExcelExporter));
+ private static readonly OfficeConfiguration officeConfiguration = IniConfig.GetIniSection();
public static List GetWorkbooks() {
List currentWorkbooks = new List();
@@ -49,37 +53,42 @@ namespace Greenshot.Interop.Office {
///
///
///
- public static void InsertIntoExistingWorkbook(string workbookName, string tmpFile) {
+ public static void InsertIntoExistingWorkbook(string workbookName, string tmpFile, Size imageSize) {
using (IExcelApplication excelApplication = COMWrapper.GetInstance()) {
if (excelApplication != null) {
for (int i = 1; i <= excelApplication.Workbooks.Count; i++) {
IWorkbook workbook = excelApplication.Workbooks[i];
if (workbook != null && workbook.Name.StartsWith(workbookName)) {
- InsertIntoExistingWorkbook(workbook, tmpFile);
+ InsertIntoExistingWorkbook(workbook, tmpFile, imageSize);
}
}
}
}
}
- private static void InsertIntoExistingWorkbook(IWorkbook workbook, string tmpFile) {
- IWorksheet sheet = workbook.ActiveSheet;
- if (sheet != null) {
- if (sheet.Pictures != null) {
- sheet.Pictures.Insert(tmpFile);
+ private static void InsertIntoExistingWorkbook(IWorkbook workbook, string tmpFile, Size imageSize) {
+ IWorksheet workSheet = workbook.ActiveSheet;
+ if (workSheet != null) {
+ if (workSheet.Shapes != null) {
+ IShape shape = workSheet.Shapes.AddPicture(tmpFile, MsoTriState.msoFalse, MsoTriState.msoTrue, 0, 0, imageSize.Width, imageSize.Height);
+ if (shape != null) {
+ shape.Top = 40;
+ shape.Left = 40;
+ shape.LockAspectRatio = MsoTriState.msoTrue;
+ shape.ScaleHeight(1, MsoTriState.msoTrue, MsoScaleFrom.msoScaleFromTopLeft);
+ shape.ScaleWidth(1, MsoTriState.msoTrue, MsoScaleFrom.msoScaleFromTopLeft);
+ }
}
- } else {
- LOG.Error("No pictures found");
}
}
- public static void InsertIntoNewWorkbook(string tmpFile) {
+ public static void InsertIntoNewWorkbook(string tmpFile, Size imageSize) {
using (IExcelApplication excelApplication = COMWrapper.GetOrCreateInstance()) {
if (excelApplication != null) {
excelApplication.Visible = true;
object template = Missing.Value;
IWorkbook workbook = excelApplication.Workbooks.Add(template);
- InsertIntoExistingWorkbook(workbook, tmpFile);
+ InsertIntoExistingWorkbook(workbook, tmpFile, imageSize);
}
}
}
diff --git a/GreenshotOfficePlugin/OfficeExport/WordExporter.cs b/GreenshotOfficePlugin/OfficeExport/WordExporter.cs
index d842994ad..d6da69858 100644
--- a/GreenshotOfficePlugin/OfficeExport/WordExporter.cs
+++ b/GreenshotOfficePlugin/OfficeExport/WordExporter.cs
@@ -69,6 +69,12 @@ namespace Greenshot.Interop.Office {
/// tooltip of the image
///
internal static bool InsertIntoExistingDocument(IWordApplication wordApplication, IWordDocument wordDocument, string tmpFile, string address, string tooltip) {
+ // Bug #1517: image will be inserted into that document, where the focus was last. It will not inserted into the chosen one.
+ // Solution: Make sure the selected document is active, otherwise the insert will be made in a different document!
+ try {
+ wordApplication.Activate();
+ } catch {
+ }
if (wordApplication.Selection != null) {
// Add Picture
using (IInlineShape shape = AddPictureToSelection(wordApplication.Selection, tmpFile)) {
diff --git a/GreenshotOfficePlugin/OfficeInterop/ExcelInterop.cs b/GreenshotOfficePlugin/OfficeInterop/ExcelInterop.cs
index 4ae906005..a312f9ee1 100644
--- a/GreenshotOfficePlugin/OfficeInterop/ExcelInterop.cs
+++ b/GreenshotOfficePlugin/OfficeInterop/ExcelInterop.cs
@@ -47,6 +47,7 @@ namespace Greenshot.Interop.Office {
// See: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._worksheet_members.aspx
public interface IWorksheet : Common {
IPictures Pictures { get; }
+ IShapes Shapes {get; }
string Name { get; }
}
diff --git a/GreenshotOfficePlugin/OfficePlugin.cs b/GreenshotOfficePlugin/OfficePlugin.cs
index c76ad1650..e1f152660 100644
--- a/GreenshotOfficePlugin/OfficePlugin.cs
+++ b/GreenshotOfficePlugin/OfficePlugin.cs
@@ -46,10 +46,51 @@ namespace GreenshotOfficePlugin {
}
public IEnumerable Destinations() {
- yield return new ExcelDestination();
- yield return new PowerpointDestination();
- yield return new WordDestination();
- yield return new OutlookDestination();
+ IDestination destination = null;
+ try {
+ destination = new ExcelDestination();
+ } catch {
+ destination = null;
+ }
+ if (destination != null) {
+ yield return destination;
+ }
+
+ try {
+ destination = new PowerpointDestination();
+ } catch {
+ destination = null;
+ }
+ if (destination != null) {
+ yield return destination;
+ }
+
+ try {
+ destination = new WordDestination();
+ } catch {
+ destination = null;
+ }
+ if (destination != null) {
+ yield return destination;
+ }
+
+ try {
+ destination = new OutlookDestination();
+ } catch {
+ destination = null;
+ }
+ if (destination != null) {
+ yield return destination;
+ }
+
+ try {
+ destination = new OneNoteDestination();
+ } catch {
+ destination = null;
+ }
+ if (destination != null) {
+ yield return destination;
+ }
}
public IEnumerable Processors() {
diff --git a/GreenshotOfficePlugin/Properties/AssemblyInfo.cs.template b/GreenshotOfficePlugin/Properties/AssemblyInfo.cs.template
index 2e6452dc9..a6d650c66 100644
--- a/GreenshotOfficePlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotOfficePlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj b/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj
index a882be7ff..b1c0df91b 100644
--- a/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj
+++ b/GreenshotPhotobucketPlugin/GreenshotPhotobucketPlugin.csproj
@@ -74,7 +74,6 @@ if exist "$(ProjectDir)PhotobucketCredentials.private.cs" (
rename "$(ProjectDir)PhotobucketCredentials.cs" "PhotobucketCredentials.orig.cs"
rename "$(ProjectDir)PhotobucketCredentials.private.cs" "PhotobucketCredentials.cs"
)
-"$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
if exist "$(ProjectDir)PhotobucketCredentials.orig.cs" (
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-cs-CZ.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-cs-CZ.xml
index 09f5b572e..437fe1072 100644
--- a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-cs-CZ.xml
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-cs-CZ.xml
@@ -1,15 +1,15 @@
-
-
-
- Zrušit
- Komunikace s Photobucket. Prosím čekejte ...
- Nastavení Photobucket
- Formát obrázku
- OK
- Nastavení Photobucket
- Při nahrávání na Photobucket došlo k chybě:
- Nahrát na Photobucket
- Odeslání obrázku na bylo Photobucket úspěšné!
- Použijte odkaz na stránku namísto odkaz na obrázek do schránky
-
+
+
+
+ Zrušit
+ Komunikace s Photobucket. Prosím čekejte ...
+ Nastavení Photobucket
+ Formát obrázku
+ OK
+ Nastavení Photobucket
+ Při nahrávání na Photobucket došlo k chybě:
+ Nahrát na Photobucket
+ Odeslání obrázku na bylo Photobucket úspěšné!
+ Použijte odkaz na stránku namísto odkaz na obrázek do schránky
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-id-ID.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-id-ID.xml
new file mode 100644
index 000000000..b702ee68d
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-id-ID.xml
@@ -0,0 +1,15 @@
+
+
+
+ Batal
+ Menyambungkan ke Photobucket. Tunggu sebentar...
+ Konfigurasi Photobucket
+ Format gambar
+ Oke
+ Pengaturan Photobucket
+ Kesalahan terjadi ketika mengunggah ke Photobucket:
+ Unggah ke Photobucket
+ Berhasil mengunggah gambar ke Photobucket!
+ Gunakan link laman daripada link gambar di papanklip
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml
index f3bb72df1..f0c1e80d2 100644
--- a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-it-IT.xml
@@ -2,13 +2,10 @@
- Carica su Imgur
+ Carica su Photobucket
- Impostazioni Imgur
-
-
- Url
+ Impostazioni Photobucket
OK
@@ -17,34 +14,22 @@
Annulla
- Immagine caricata correttamente su Imgur!
+ Immagine caricata correttamente su Photobucket!
- Si è verificato un problema durante il collegamento:
+ Si è verificato un errore durante il caricamento su Photobucket:
Formato immagine
- Comunicazione con Imgur. Attendere prego...
-
-
- Sei sicuro si voler eliminare l'immagine {0} da Imgur?
-
-
- Sei sicuro si voler eliminare la cronologia locale di Imgur?
-
-
- Elimina Imgur {0}
+ Comunicazione con Photobucket. Attendere prego...
Usa il collegamento alla pagina invece di quello all'immagine su appunti
-
- Cronologia
-
- Configurazione
-
+ Configurazione Photobucket
+
-
\ No newline at end of file
+
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-pl-PL.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-pl-PL.xml
new file mode 100644
index 000000000..6bd6f9c8e
--- /dev/null
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-pl-PL.xml
@@ -0,0 +1,15 @@
+
+
+
+ Anuluj
+ Trwa komunikacja z Photobucket. Proszę czekać...
+ Konfiguruj Photobucket
+ Format obrazów
+ OK
+ Ustawienia Photobucket
+ Wystąpił błąd przy wysyłaniu do Photobucket:
+ Wyślij do Photobucket
+ Wysyłanie obrazu do Photobucket powiodło się!
+ Kopiuj do schowka link do strony zamiast link do obrazu
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml
index eb238e2a2..756faf0a9 100644
--- a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-ru-RU.xml
@@ -1,35 +1,15 @@
-
-
-
- Загрузить на Photobucket
-
-
- Параметры Photobucket
-
-
- OK
-
-
- Отмена
-
-
- Изображение успешно загружено на Photobucket!
-
-
- Произошла ошибка при загрузке на Photobucket:
-
-
- Формат изображения
-
-
- Обмен данными с Photobucket. Подождите...
-
-
- Использовать ссылку страницы, вместо ссылки изображения в буфере обмена
-
-
- Настройка Photobucket
-
-
-
+
+
+ Отмена
+ Обмен данными с Photobucket. Подождите...
+ Настройка Photobucket
+ Формат изображения
+ OK
+ Параметры Photobucket
+ Произошла ошибка при загрузке на Photobucket:
+ Загрузить на Photobucket
+ Изображение успешно загружено на Photobucket!
+ Использовать ссылку страницы, вместо ссылки изображения в буфере обмена
+
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-TW.xml b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-TW.xml
index caf649a89..c35408262 100644
--- a/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-TW.xml
+++ b/GreenshotPhotobucketPlugin/Languages/language_photobucketplugin-zh-TW.xml
@@ -1,15 +1,15 @@
-
-
-
- 取消
- 正在與 Photobucket 通訊,請稍候...
- 組態 Photobucket
- 圖片格式
- 確定
- Photobucket 設定
- 上傳到 Photobucket 時發生錯誤:
- 上傳到 Photobucket
- 上傳圖片到 Photobucket 成功!
- 在剪貼簿使用空白連結而不是圖片連結
-
+
+
+
+ 取消
+ 正在與 Photobucket 通訊,請稍候...
+ 組態 Photobucket
+ 圖片格式
+ 確定
+ Photobucket 設定
+ 上傳到 Photobucket 時發生錯誤:
+ 上傳到 Photobucket
+ 上傳圖片到 Photobucket 成功!
+ 在剪貼簿使用空白連結而不是圖片連結
+
\ No newline at end of file
diff --git a/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template b/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template
index 022aa7b52..c3db957d0 100644
--- a/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotPhotobucketPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotPicasaPlugin/GreenshotPicasaPlugin.csproj b/GreenshotPicasaPlugin/GreenshotPicasaPlugin.csproj
index d2d91325b..beff8f9cb 100644
--- a/GreenshotPicasaPlugin/GreenshotPicasaPlugin.csproj
+++ b/GreenshotPicasaPlugin/GreenshotPicasaPlugin.csproj
@@ -79,8 +79,7 @@ copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
- "$(SolutionDir)tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)Properties\AssemblyInfo.cs.template" "$(ProjectDir)Properties\AssemblyInfo.cs"
-
+
if exist "$(ProjectDir)PicasaCredentials.private.cs" (
rename "$(ProjectDir)PicasaCredentials.cs" "PicasaCredentials.orig.cs"
rename "$(ProjectDir)PicasaCredentials.private.cs" "PicasaCredentials.cs"
diff --git a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-cs-CZ.xml b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-cs-CZ.xml
index 04c5b413f..4fe14494b 100644
--- a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-cs-CZ.xml
+++ b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-cs-CZ.xml
@@ -1,29 +1,29 @@
-
-
-
- Zrušit
- Probíhá komunikace s Picasem. Prosím počkejte ...
- Konfigurace
- Opravdu chcete odstranit obrázek {0} z Picasa?
- Odstranit Picasa {0}
- Historie
- Neplatná oprávnění. Otevřít nastavení pro provedené změn.
- Po odeslání
- Kopírovat odkaz do schránky
- Zobrazit historii
- Výchozí velikost
- Heslo
- Formát obrázku
- Jméno
- OK
- Originál URL
- Čtvercové náhledy URL ???
- Webová adresa URL
- Nastavení Picasa
- Nahrát
- Nahrání obrázku do Picasa se nezdařilo:
- Nahrát do Picasa
- Úspěšně odeslaný obrázek do Picasa!
- Prosím ověřit aplikaci Picasa. Otevřít nastavení obrazovky. ???
-
+
+
+
+ Zrušit
+ Probíhá komunikace s Picasem. Prosím počkejte ...
+ Konfigurace
+ Opravdu chcete odstranit obrázek {0} z Picasa?
+ Odstranit Picasa {0}
+ Historie
+ Neplatná oprávnění. Otevřít nastavení pro provedené změn.
+ Po odeslání
+ Kopírovat odkaz do schránky
+ Zobrazit historii
+ Výchozí velikost
+ Heslo
+ Formát obrázku
+ Jméno
+ OK
+ Originál URL
+ Čtvercové náhledy URL ???
+ Webová adresa URL
+ Nastavení Picasa
+ Nahrát
+ Nahrání obrázku do Picasa se nezdařilo:
+ Nahrát do Picasa
+ Úspěšně odeslaný obrázek do Picasa!
+ Prosím ověřit aplikaci Picasa. Otevřít nastavení obrazovky. ???
+
\ No newline at end of file
diff --git a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-id-ID.xml b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-id-ID.xml
new file mode 100644
index 000000000..5632a3daa
--- /dev/null
+++ b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-id-ID.xml
@@ -0,0 +1,14 @@
+
+
+
+ Menyambungkan ke Picasa. Tunggu sebentar...
+ Konfigurasi Picasa
+ Sesudah mengunggah
+ Sambung ke papanklip
+ Format gambar
+ Pengaturan Picasa
+ Kesalahan terjadi ketika mengunggah ke Picasa:
+ Unggah ke Picasa
+ Berhasil mengunggah gambar ke Picasa!
+
+
\ No newline at end of file
diff --git a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-it-IT.xml b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-it-IT.xml
index e11af5181..a72279d00 100644
--- a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-it-IT.xml
+++ b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-it-IT.xml
@@ -1,32 +1,14 @@
-
-
-
-
- Collegamento agli appunti
-
-
- Dopo il carico
-
-
- Configurazione Picasa
-
-
- Carica su Picasa
-
-
- Impostazioni di Picasa
-
-
- Immagine caricata correttamente su Picasa!
-
-
- Si è verificato un errore durante il caricamento su Picasa:
-
-
- Formato immagine
-
-
- Comunicazione con Picasa. Attendere prego...
-
-
+
+
+
+ Comunicazione con Picasa. Attendere prego...
+ Configurazione Picasa
+ Dopo il carico
+ Collegamento agli appunti
+ Formato immagine
+ Impostazioni di Picasa
+ Si è verificato un errore durante il caricamento su Picasa:
+ Carica su Picasa
+ Immagine caricata correttamente su Picasa!
+
\ No newline at end of file
diff --git a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-pl-PL.xml b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-pl-PL.xml
new file mode 100644
index 000000000..c4be12b84
--- /dev/null
+++ b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-pl-PL.xml
@@ -0,0 +1,14 @@
+
+
+
+ Trwa komunikacja z Picasa. Proszę czekać...
+ Konfiguruj Picasa
+ Po wysłaniu
+ Link do schowka
+ Format obrazów
+ Ustawienia Picasa
+ Wystąpił błąd przy wysyłaniu do Picasa:
+ Wyślij do Picasa
+ Wysyłanie obrazu do Picasa powiodło się!
+
+
\ No newline at end of file
diff --git a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-zh-TW.xml b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-zh-TW.xml
index f395364a0..a818bc748 100644
--- a/GreenshotPicasaPlugin/Languages/language_Picasaplugin-zh-TW.xml
+++ b/GreenshotPicasaPlugin/Languages/language_Picasaplugin-zh-TW.xml
@@ -1,14 +1,14 @@
-
-
-
- 正在與 Picasa 通訊,請稍候...
- 組態 Picasa
- 上傳後
- 連結到剪貼簿
- 圖片格式
- Picasa 設定
- 上傳到 Picasa 時發生錯誤:
- 上傳到 Picasa
- 上傳圖片到 Picasa 成功!
-
+
+
+
+ 正在與 Picasa 通訊,請稍候...
+ 組態 Picasa
+ 上傳後
+ 連結到剪貼簿
+ 圖片格式
+ Picasa 設定
+ 上傳到 Picasa 時發生錯誤:
+ 上傳到 Picasa
+ 上傳圖片到 Picasa 成功!
+
\ No newline at end of file
diff --git a/GreenshotPicasaPlugin/PicasaPlugin.cs b/GreenshotPicasaPlugin/PicasaPlugin.cs
index c81526b16..7de3b12c9 100644
--- a/GreenshotPicasaPlugin/PicasaPlugin.cs
+++ b/GreenshotPicasaPlugin/PicasaPlugin.cs
@@ -141,7 +141,8 @@ namespace GreenshotPicasaPlugin {
}
return true;
} catch (Exception e) {
- MessageBox.Show(Language.GetString("picasa", LangKey.upload_failure) + " " + e.ToString());
+ LOG.Error("Error uploading.", e);
+ MessageBox.Show(Language.GetString("picasa", LangKey.upload_failure) + " " + e.Message);
}
uploadUrl = null;
return false;
diff --git a/GreenshotPicasaPlugin/Properties/AssemblyInfo.cs.template b/GreenshotPicasaPlugin/Properties/AssemblyInfo.cs.template
index 8b8a1f527..c4c661213 100644
--- a/GreenshotPicasaPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotPicasaPlugin/Properties/AssemblyInfo.cs.template
@@ -51,4 +51,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotPlugin/Controls/GreenshotRadioButton.cs b/GreenshotPlugin/Controls/GreenshotRadioButton.cs
index ec8e76bcf..6a5fdfeea 100644
--- a/GreenshotPlugin/Controls/GreenshotRadioButton.cs
+++ b/GreenshotPlugin/Controls/GreenshotRadioButton.cs
@@ -1,53 +1,53 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
- *
- * 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 1 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 System;
-using System.ComponentModel;
-using System.Windows.Forms;
-
-namespace GreenshotPlugin.Controls {
- ///
- /// Description of GreenshotCheckbox.
- ///
- public class GreenshotRadioButton : RadioButton, IGreenshotLanguageBindable, IGreenshotConfigBindable {
- [Category("Greenshot"), DefaultValue(null), Description("Specifies key of the language file to use when displaying the text.")]
- public string LanguageKey {
- get;
- set;
- }
-
- private string sectionName = "Core";
- [Category("Greenshot"), DefaultValue("Core"), Description("Specifies the Ini-Section to map this control with.")]
- public string SectionName {
- get {
- return sectionName;
- }
- set {
- sectionName = value;
- }
- }
-
- [Category("Greenshot"), DefaultValue(null), Description("Specifies the property name to map the configuration.")]
- public string PropertyName {
- get;
- set;
- }
- }
+/*
+ * Greenshot - a free and open source screenshot tool
+ * Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
+ *
+ * For more information see: http://getgreenshot.org/
+ * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/
+ *
+ * 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 1 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 System;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace GreenshotPlugin.Controls {
+ ///
+ /// Description of GreenshotCheckbox.
+ ///
+ public class GreenshotRadioButton : RadioButton, IGreenshotLanguageBindable, IGreenshotConfigBindable {
+ [Category("Greenshot"), DefaultValue(null), Description("Specifies key of the language file to use when displaying the text.")]
+ public string LanguageKey {
+ get;
+ set;
+ }
+
+ private string sectionName = "Core";
+ [Category("Greenshot"), DefaultValue("Core"), Description("Specifies the Ini-Section to map this control with.")]
+ public string SectionName {
+ get {
+ return sectionName;
+ }
+ set {
+ sectionName = value;
+ }
+ }
+
+ [Category("Greenshot"), DefaultValue(null), Description("Specifies the property name to map the configuration.")]
+ public string PropertyName {
+ get;
+ set;
+ }
+ }
}
\ No newline at end of file
diff --git a/GreenshotPlugin/Core/AbstractDestination.cs b/GreenshotPlugin/Core/AbstractDestination.cs
index dbaf5134d..dac38dfbe 100644
--- a/GreenshotPlugin/Core/AbstractDestination.cs
+++ b/GreenshotPlugin/Core/AbstractDestination.cs
@@ -189,8 +189,10 @@ namespace GreenshotPlugin.Core {
break;
case ToolStripDropDownCloseReason.Keyboard:
// Dispose as the close is clicked
- surface.Dispose();
- surface = null;
+ if (!captureDetails.HasDestination("Editor")) {
+ surface.Dispose();
+ surface = null;
+ }
break;
default:
eventArgs.Cancel = true;
@@ -209,7 +211,6 @@ namespace GreenshotPlugin.Core {
if (clickedDestination == null) {
return;
}
- bool isEditor = "Editor".Equals(clickedDestination.Designation);
menu.Tag = clickedDestination.Designation;
// Export
exportInformation = clickedDestination.ExportCapture(true, surface, captureDetails);
@@ -218,8 +219,8 @@ namespace GreenshotPlugin.Core {
// close menu if the destination wasn't the editor
menu.Close();
- // Cleanup surface, only if the destination wasn't the editor
- if (!isEditor) {
+ // Cleanup surface, only if there is no editor in the destinations and we didn't export to the editor
+ if (!captureDetails.HasDestination("Editor") && !"Editor".Equals(clickedDestination.Designation)) {
surface.Dispose();
surface = null;
}
@@ -245,9 +246,10 @@ namespace GreenshotPlugin.Core {
closeItem.Click += delegate {
// This menu entry is the close itself, we can dispose the surface
menu.Close();
- // Dispose as the close is clicked
- surface.Dispose();
- surface = null;
+ if (!captureDetails.HasDestination("Editor")) {
+ surface.Dispose();
+ surface = null;
+ }
};
menu.Items.Add(closeItem);
diff --git a/GreenshotPlugin/Core/ClipboardHelper.cs b/GreenshotPlugin/Core/ClipboardHelper.cs
index c52c00ba9..3dcbdd2d6 100644
--- a/GreenshotPlugin/Core/ClipboardHelper.cs
+++ b/GreenshotPlugin/Core/ClipboardHelper.cs
@@ -346,6 +346,7 @@ EndSelection:<<<<<<<4
returnImage = GetImageFormat(currentFormat, dataObject);
}
if (returnImage != null) {
+ ImageHelper.Orientate(returnImage);
return returnImage;
}
} else {
@@ -416,9 +417,6 @@ EndSelection:<<<<<<<4
MemoryStream imageStream = GetFromDataObject(dataObject, format) as MemoryStream;
if (isValidStream(imageStream)) {
try {
- using (FileStream fs = new FileStream(@"C:\Localdata\test.png", FileMode.OpenOrCreate)) {
- imageStream.WriteTo(fs);
- }
imageStream.Seek(0, SeekOrigin.Begin);
using (Image tmpImage = Image.FromStream(imageStream, true, true)) {
if (tmpImage != null) {
diff --git a/GreenshotPlugin/Core/CoreConfiguration.cs b/GreenshotPlugin/Core/CoreConfiguration.cs
index 569d5b6b2..4b55b1e72 100644
--- a/GreenshotPlugin/Core/CoreConfiguration.cs
+++ b/GreenshotPlugin/Core/CoreConfiguration.cs
@@ -246,6 +246,9 @@ namespace GreenshotPlugin.Core {
[IniProperty("LastSaveWithVersion", Description = "Version of Greenshot which created this .ini")]
public string LastSaveWithVersion;
+ [IniProperty("ProcessEXIFOrientation", Description = "When reading images from files or clipboard, use the EXIF information to correct the orientation", DefaultValue = "True")]
+ public bool ProcessEXIFOrientation;
+
// Specifies what THIS build is
public BuildStates BuildState = BuildStates.RELEASE;
diff --git a/GreenshotPlugin/Core/ImageHelper.cs b/GreenshotPlugin/Core/ImageHelper.cs
index 47b4a7604..af54c3518 100644
--- a/GreenshotPlugin/Core/ImageHelper.cs
+++ b/GreenshotPlugin/Core/ImageHelper.cs
@@ -31,16 +31,78 @@ using Greenshot.Plugin;
using Greenshot.Core;
namespace GreenshotPlugin.Core {
+ internal enum ExifOrientations : byte {
+ Unknown = 0,
+ TopLeft = 1,
+ TopRight = 2,
+ BottomRight = 3,
+ BottomLeft = 4,
+ LeftTop = 5,
+ RightTop = 6,
+ RightBottom = 7,
+ LeftBottom = 8,
+ }
+
///
/// Description of ImageHelper.
///
public static class ImageHelper {
private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(ImageHelper));
private static CoreConfiguration conf = IniConfig.GetIniSection();
+ private const int EXIF_ORIENTATION_ID = 0x0112;
- // This delegate makes it possible that a plug-in delivers a quicker Blur implementation
- public delegate void BlurDelegate(Bitmap bitmap, int radius);
- public static BlurDelegate BlurReplacement;
+ ///
+ /// Make sure the image is orientated correctly
+ ///
+ ///
+ public static void Orientate(Image image) {
+ if (!conf.ProcessEXIFOrientation) {
+ return;
+ }
+ try {
+ // Get the index of the orientation property.
+ int orientation_index = Array.IndexOf(image.PropertyIdList, EXIF_ORIENTATION_ID);
+ // If there is no such property, return Unknown.
+ if (orientation_index < 0) {
+ return;
+ }
+ PropertyItem item = image.GetPropertyItem(EXIF_ORIENTATION_ID);
+
+ ExifOrientations orientation = (ExifOrientations)item.Value[0];
+ // Orient the image.
+ switch (orientation) {
+ case ExifOrientations.Unknown:
+ case ExifOrientations.TopLeft:
+ break;
+ case ExifOrientations.TopRight:
+ image.RotateFlip(RotateFlipType.RotateNoneFlipX);
+ break;
+ case ExifOrientations.BottomRight:
+ image.RotateFlip(RotateFlipType.Rotate180FlipNone);
+ break;
+ case ExifOrientations.BottomLeft:
+ image.RotateFlip(RotateFlipType.RotateNoneFlipY);
+ break;
+ case ExifOrientations.LeftTop:
+ image.RotateFlip(RotateFlipType.Rotate90FlipX);
+ break;
+ case ExifOrientations.RightTop:
+ image.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ break;
+ case ExifOrientations.RightBottom:
+ image.RotateFlip(RotateFlipType.Rotate90FlipY);
+ break;
+ case ExifOrientations.LeftBottom:
+ image.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ break;
+ }
+ // Set the orientation to be normal, as we rotated the image.
+ item.Value[0] = (byte)ExifOrientations.TopLeft;
+ image.SetPropertyItem(item);
+ } catch (Exception orientEx) {
+ LOG.Warn("Problem orientating the image: ", orientEx);
+ }
+ }
///
/// Create a thumbnail from an image
@@ -247,6 +309,8 @@ namespace GreenshotPlugin.Core {
if (fileImage != null) {
LOG.InfoFormat("Information about file {0}: {1}x{2}-{3} Resolution {4}x{5}", filename, fileImage.Width, fileImage.Height, fileImage.PixelFormat, fileImage.HorizontalResolution, fileImage.VerticalResolution);
}
+ // Make sure the orientation is set correctly so Greenshot can process the image correctly
+ ImageHelper.Orientate(fileImage);
return fileImage;
}
@@ -746,13 +810,12 @@ namespace GreenshotPlugin.Core {
shadowSize++;
}
bool useGDIBlur = GDIplus.isBlurPossible(shadowSize);
- bool useBlurDelegate = BlurReplacement != null;
// Create "mask" for the shadow
ColorMatrix maskMatrix = new ColorMatrix();
maskMatrix.Matrix00 = 0;
maskMatrix.Matrix11 = 0;
maskMatrix.Matrix22 = 0;
- if (useGDIBlur || useBlurDelegate) {
+ if (useGDIBlur) {
maskMatrix.Matrix33 = darkness + 0.1f;
} else {
maskMatrix.Matrix33 = darkness;
@@ -761,9 +824,7 @@ namespace GreenshotPlugin.Core {
ApplyColorMatrix((Bitmap)sourceBitmap, Rectangle.Empty, returnImage, shadowRectangle, maskMatrix);
// blur "shadow", apply to whole new image
- if (useBlurDelegate) {
- BlurReplacement(returnImage, shadowSize+1);
- } else if (useGDIBlur) {
+ if (useGDIBlur) {
// Use GDI Blur
Rectangle newImageRectangle = new Rectangle(0, 0, returnImage.Width, returnImage.Height);
GDIplus.ApplyBlur(returnImage, newImageRectangle, shadowSize+1, false);
diff --git a/GreenshotPlugin/Core/Language.cs b/GreenshotPlugin/Core/Language.cs
index 1bd68f45a..7dac6334f 100644
--- a/GreenshotPlugin/Core/Language.cs
+++ b/GreenshotPlugin/Core/Language.cs
@@ -104,7 +104,6 @@ namespace GreenshotPlugin.Core {
CurrentLanguage = coreConfig.Language;
if (CurrentLanguage != null && CurrentLanguage != coreConfig.Language) {
coreConfig.Language = CurrentLanguage;
- IniConfig.Save();
}
}
@@ -113,7 +112,6 @@ namespace GreenshotPlugin.Core {
CurrentLanguage = DEFAULT_LANGUAGE;
if (CurrentLanguage != null) {
coreConfig.Language = CurrentLanguage;
- IniConfig.Save();
}
}
diff --git a/GreenshotPlugin/GreenshotPlugin.csproj b/GreenshotPlugin/GreenshotPlugin.csproj
index c06c4a09e..164ad898a 100644
--- a/GreenshotPlugin/GreenshotPlugin.csproj
+++ b/GreenshotPlugin/GreenshotPlugin.csproj
@@ -206,7 +206,4 @@
-
- "$(SolutionDir)tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)." "$(ProjectDir)Properties\AssemblyInfo.cs.template" "$(ProjectDir)Properties\AssemblyInfo.cs"
-
\ No newline at end of file
diff --git a/GreenshotPlugin/IniFile/IniAttributes.cs b/GreenshotPlugin/IniFile/IniAttributes.cs
index e8100ad52..8e93a4ca9 100644
--- a/GreenshotPlugin/IniFile/IniAttributes.cs
+++ b/GreenshotPlugin/IniFile/IniAttributes.cs
@@ -42,22 +42,49 @@ namespace Greenshot.IniFile {
///
[AttributeUsage(AttributeTargets.Field|AttributeTargets.Property, AllowMultiple = false)]
public class IniPropertyAttribute : Attribute {
- private string name;
- public IniPropertyAttribute(string name) {
- this.name = name;
+ public IniPropertyAttribute() {
+ Separator = ",";
+ }
+ public IniPropertyAttribute(string name) : this() {
+ this.Name = name;
+ }
+ public string Description {
+ get;
+ set;
+ }
+ public string Separator {
+ get;
+ set;
+ }
+ public string DefaultValue {
+ get;
+ set;
+ }
+ public string LanguageKey {
+ get;
+ set;
}
- public string Description;
- public string Separator = ",";
- public string DefaultValue;
- public string LanguageKey;
// If Encrypted is set to true, the value will be decrypted on load and encrypted on save
- public bool Encrypted = false;
- public bool FixedValue = false;
- public bool ExcludeIfNull=false;
-
+ public bool Encrypted {
+ get;
+ set;
+ }
+ public bool FixedValue {
+ get;
+ set;
+ }
+ public bool Expert {
+ get;
+ set;
+ }
+ public bool ExcludeIfNull {
+ get;
+ set;
+ }
+
public string Name {
- get { return name; }
- set { name = value; }
+ get;
+ set;
}
}
}
\ No newline at end of file
diff --git a/GreenshotPlugin/IniFile/IniConfig.cs b/GreenshotPlugin/IniFile/IniConfig.cs
index 1f3f1207d..fa52e8154 100644
--- a/GreenshotPlugin/IniFile/IniConfig.cs
+++ b/GreenshotPlugin/IniFile/IniConfig.cs
@@ -20,12 +20,10 @@
*/
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.IO;
using System.Reflection;
using System.Text;
using System.Threading;
-using System.Runtime.CompilerServices;
namespace Greenshot.IniFile {
public class IniConfig {
@@ -39,11 +37,6 @@ namespace Greenshot.IniFile {
///
private static object iniLock = new object();
- ///
- /// This is used to monitor the greenshot.ini changes
- ///
- private static FileSystemWatcher watcher;
-
///
/// As the ini implementation is kept someone generic, for reusing, this holds the name of the application
///
@@ -69,11 +62,6 @@ namespace Greenshot.IniFile {
///
private static Dictionary> fixedProperties = null;
- ///
- /// The IniChanged event, which can be registed
- ///
- public static event FileSystemEventHandler IniChanged;
-
///
/// Stores if we checked for portable
///
@@ -89,6 +77,14 @@ namespace Greenshot.IniFile {
}
}
+ ///
+ /// Config directory when set from external
+ ///
+ public static string IniDirectory {
+ get;
+ set;
+ }
+
///
/// Initialize the ini config
///
@@ -98,7 +94,6 @@ namespace Greenshot.IniFile {
applicationName = appName;
configName = confName;
Reload();
- WatchConfigFile(true);
}
///
@@ -106,7 +101,7 @@ namespace Greenshot.IniFile {
///
public static bool isInitialized {
get {
- return applicationName != null && configName != null;
+ return applicationName != null && configName != null && sectionMap.Count > 0;
}
}
@@ -143,75 +138,44 @@ namespace Greenshot.IniFile {
}
}
- ///
- /// Enable watching the configuration
- ///
- ///
- private static void WatchConfigFile(bool sendEvents) {
- string iniLocation = CreateIniLocation(configName + INI_EXTENSION);
- // Wait with watching until the file is there
- if (Directory.Exists(Path.GetDirectoryName(iniLocation))) {
- if (watcher == null) {
- //LOG.DebugFormat("Starting FileSystemWatcher for {0}", iniLocation);
- // Monitor the ini file
- watcher = new FileSystemWatcher();
- watcher.Path = Path.GetDirectoryName(iniLocation);
- watcher.Filter = "greenshot.ini";
- watcher.NotifyFilter = NotifyFilters.LastWrite;
- watcher.Changed += new FileSystemEventHandler(ConfigFileChanged);
- }
- }
- if (watcher != null) {
- watcher.EnableRaisingEvents = sendEvents;
- }
- }
-
///
/// Get the location of the configuration
///
public static string ConfigLocation {
get {
- return CreateIniLocation(configName + INI_EXTENSION);
+ if (isInitialized) {
+ return CreateIniLocation(configName + INI_EXTENSION, false);
+ }
+ throw new InvalidOperationException("Ini configuration was not initialized!");
}
}
- ///
- /// Called by the filesystem watcher when a file is changed.
- ///
- ///
- ///
- private static void ConfigFileChanged(object source, FileSystemEventArgs e) {
- string iniLocation = CreateIniLocation(configName + INI_EXTENSION);
- if (iniLocation.Equals(e.FullPath)) {
- LOG.InfoFormat("Config file {0} was changed, reloading", e.FullPath);
-
- // Try to reread the configuration
- int retries = 10;
- bool configRead = false;
- while (!configRead && retries != 0) {
- try {
- IniConfig.Reload();
- configRead = true;
- } catch (IOException) {
- retries--;
- Thread.Sleep(100);
- }
- }
-
- if (configRead && IniChanged != null) {
- IniChanged.Invoke(source, e);
- }
- }
- }
-
///
/// Create the location of the configuration file
///
- private static string CreateIniLocation(string configFilename) {
+ private static string CreateIniLocation(string configFilename, bool isReadOnly) {
if (applicationName == null || configName == null) {
throw new InvalidOperationException("IniConfig.Init not called!");
}
string iniFilePath = null;
+
+ // Check if a Ini-Directory was supplied, and it's valid, use this before any others.
+ try {
+ if (IniDirectory != null && Directory.Exists(IniDirectory)) {
+ // If the greenshot.ini is requested, use the supplied directory even if empty
+ if (!isReadOnly) {
+ return Path.Combine(IniDirectory, configFilename);
+ }
+ iniFilePath = Path.Combine(IniDirectory, configFilename);
+ if (File.Exists(iniFilePath)) {
+ return iniFilePath;
+ }
+ iniFilePath = null;
+ }
+ } catch (Exception exception) {
+ LOG.WarnFormat("The ini-directory {0} can't be used due to: {1}", IniDirectory, exception.Message);
+ }
+
string applicationStartupPath = "";
try {
applicationStartupPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
@@ -266,11 +230,11 @@ namespace Greenshot.IniFile {
// Clear the current properties
sections = new Dictionary>();
// Load the defaults
- Read(CreateIniLocation(configName + DEFAULTS_POSTFIX + INI_EXTENSION));
+ Read(CreateIniLocation(configName + DEFAULTS_POSTFIX + INI_EXTENSION, true));
// Load the normal
- Read(CreateIniLocation(configName + INI_EXTENSION));
+ Read(CreateIniLocation(configName + INI_EXTENSION, false));
// Load the fixed settings
- fixedProperties = Read(CreateIniLocation(configName + FIXED_POSTFIX + INI_EXTENSION));
+ fixedProperties = Read(CreateIniLocation(configName + FIXED_POSTFIX + INI_EXTENSION, true));
foreach (IniSection section in sectionMap.Values) {
try {
@@ -341,6 +305,14 @@ namespace Greenshot.IniFile {
return newSections;
}
+ public static IEnumerable IniSectionNames {
+ get {
+ foreach (string sectionName in sectionMap.Keys) {
+ yield return sectionName;
+ }
+ }
+ }
+
///
/// Method used for internal tricks...
///
@@ -355,8 +327,19 @@ namespace Greenshot.IniFile {
///
/// A generic method which returns an instance of the supplied type, filled with it's configuration
///
+ /// IniSection Type to get the configuration for
/// Filled instance of IniSection type which was supplied
public static T GetIniSection() where T : IniSection {
+ return GetIniSection(true);
+ }
+
+ ///
+ ///
+ ///
+ /// IniSection Type to get the configuration for
+ /// false to skip saving
+ /// IniSection
+ public static T GetIniSection(bool allowSave) where T : IniSection {
T section;
Type iniSectionType = typeof(T);
@@ -373,7 +356,7 @@ namespace Greenshot.IniFile {
section.Fill(PropertiesForSection(section));
FixProperties(section);
}
- if (section.IsDirty) {
+ if (allowSave && section.IsDirty) {
LOG.DebugFormat("Section {0} is marked dirty, saving!", sectionName);
IniConfig.Save();
}
@@ -408,7 +391,7 @@ namespace Greenshot.IniFile {
acquiredLock = Monitor.TryEnter(iniLock, TimeSpan.FromMilliseconds(200));
if (acquiredLock) {
// Code that accesses resources that are protected by the lock.
- string iniLocation = CreateIniLocation(configName + INI_EXTENSION);
+ string iniLocation = CreateIniLocation(configName + INI_EXTENSION, false);
try {
SaveInternally(iniLocation);
} catch (Exception ex) {
@@ -427,17 +410,16 @@ namespace Greenshot.IniFile {
}
///
- /// The real save implementation, this first disables the watch otherwise we would be informed of our own changes.
+ /// The real save implementation
///
///
private static void SaveInternally(string iniLocation) {
- WatchConfigFile(false);
- try {
- LOG.Info("Saving configuration to: " + iniLocation);
- if (!Directory.Exists(Path.GetDirectoryName(iniLocation))) {
- Directory.CreateDirectory(Path.GetDirectoryName(iniLocation));
- }
- using (TextWriter writer = new StreamWriter(iniLocation, false, Encoding.UTF8)) {
+ LOG.Info("Saving configuration to: " + iniLocation);
+ if (!Directory.Exists(Path.GetDirectoryName(iniLocation))) {
+ Directory.CreateDirectory(Path.GetDirectoryName(iniLocation));
+ }
+ using (MemoryStream memoryStream = new MemoryStream()) {
+ using (TextWriter writer = new StreamWriter(memoryStream, Encoding.UTF8)) {
foreach (IniSection section in sectionMap.Values) {
section.Write(writer, false);
// Add empty line after section
@@ -461,12 +443,12 @@ namespace Greenshot.IniFile {
writer.WriteLine();
}
}
- }
- } finally {
- try {
- WatchConfigFile(true);
- } catch (Exception ex) {
- LOG.Error("A problem occured while enabling the WatchConfigFile: ", ex);
+ // Don't forget to flush the buffer
+ writer.Flush();
+ // Now write the created .ini string to the real file
+ using (FileStream fileStream = new FileStream(iniLocation, FileMode.Create, FileAccess.Write)) {
+ memoryStream.WriteTo(fileStream);
+ }
}
}
}
diff --git a/GreenshotPlugin/IniFile/IniValue.cs b/GreenshotPlugin/IniFile/IniValue.cs
index 6fc34a60f..89e1b0bc0 100644
--- a/GreenshotPlugin/IniFile/IniValue.cs
+++ b/GreenshotPlugin/IniFile/IniValue.cs
@@ -65,6 +65,42 @@ namespace Greenshot.IniFile {
}
}
+ ///
+ /// Return true when the value is for experts
+ ///
+ public bool IsExpert {
+ get {
+ if (attributes != null) {
+ return attributes.Expert;
+ }
+ return false;
+ }
+ set {
+ if (attributes != null) {
+ attributes.Expert = value;
+ }
+ }
+ }
+
+
+ ///
+ /// Return true when the value is can be changed by the GUI
+ ///
+ public bool IsEditable {
+ get {
+ return !IsFixed;
+ }
+ }
+
+ ///
+ /// Return true when the value is visible in the GUI
+ ///
+ public bool IsVisible {
+ get {
+ return !IsExpert;
+ }
+ }
+
public MemberInfo MemberInfo {
get {
if (propertyInfo == null) {
@@ -195,14 +231,6 @@ namespace Greenshot.IniFile {
public void SetValueFromProperties(Dictionary properties) {
string propertyName = attributes.Name;
string defaultValue = attributes.DefaultValue;
-
- // Get the value from the ini file, if there is none take the default
- if (!properties.ContainsKey(propertyName) && defaultValue != null) {
- // Mark as dirty, we didn't use properties from the file (even defaults from the default file are allowed)
- containingIniSection.IsDirty = true;
- //LOG.Debug("Passing default: " + propertyName + "=" + propertyDefaultValue);
- }
-
string propertyValue = null;
if (properties.ContainsKey(propertyName) && properties[propertyName] != null) {
propertyValue = containingIniSection.PreCheckValue(propertyName, properties[propertyName]);
@@ -308,10 +336,14 @@ namespace Greenshot.IniFile {
Value = defaultValueFromConfig;
return;
}
- try {
- Value = Activator.CreateInstance(ValueType);
- } catch (Exception) {
- LOG.WarnFormat("Couldn't create instance of {0} for {1}, using default value.", ValueType.FullName, attributes.Name);
+ if (ValueType != typeof(string)) {
+ try {
+ Value = Activator.CreateInstance(ValueType);
+ } catch (Exception) {
+ LOG.WarnFormat("Couldn't create instance of {0} for {1}, using default value.", ValueType.FullName, attributes.Name);
+ Value = default(ValueType);
+ }
+ } else {
Value = default(ValueType);
}
}
@@ -329,6 +361,9 @@ namespace Greenshot.IniFile {
if (valueType == typeof(string)) {
return valueString;
}
+ if (string.IsNullOrEmpty(valueString)) {
+ return null;
+ }
if (valueType.IsGenericType && valueType.GetGenericTypeDefinition() == typeof(List<>)) {
string arraySeparator = separator;
diff --git a/GreenshotPlugin/Interfaces/Plugin/PluginInterfaces.cs b/GreenshotPlugin/Interfaces/Plugin/PluginInterfaces.cs
index 3229cac69..728b0deda 100644
--- a/GreenshotPlugin/Interfaces/Plugin/PluginInterfaces.cs
+++ b/GreenshotPlugin/Interfaces/Plugin/PluginInterfaces.cs
@@ -100,6 +100,13 @@ namespace Greenshot.Plugin {
ReduceColors = reduceColors;
}
+ public SurfaceOutputSettings PreventGreenshotFormat() {
+ if (Format == OutputFormat.greenshot) {
+ Format = OutputFormat.png;
+ }
+ return this;
+ }
+
public OutputFormat Format {
get;
set;
diff --git a/GreenshotPlugin/Properties/AssemblyInfo.cs.template b/GreenshotPlugin/Properties/AssemblyInfo.cs.template
index 8c8a614b3..f5cfe4de9 100644
--- a/GreenshotPlugin/Properties/AssemblyInfo.cs.template
+++ b/GreenshotPlugin/Properties/AssemblyInfo.cs.template
@@ -48,4 +48,4 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]
diff --git a/GreenshotPlugin/UnmanagedHelpers/GDIplus.cs b/GreenshotPlugin/UnmanagedHelpers/GDIplus.cs
index e4a7c4508..2afcdad32 100644
--- a/GreenshotPlugin/UnmanagedHelpers/GDIplus.cs
+++ b/GreenshotPlugin/UnmanagedHelpers/GDIplus.cs
@@ -116,7 +116,8 @@ namespace GreenshotPlugin.UnmanagedHelpers {
private static readonly FieldInfo FIELD_INFO_NATIVE_MATRIX = typeof(Matrix).GetField("nativeMatrix", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic);
// Constant "FieldInfo" for getting the nativeImageAttributes from the ImageAttributes
private static readonly FieldInfo FIELD_INFO_NATIVE_IMAGEATTRIBUTES = typeof(ImageAttributes).GetField("nativeImageAttributes", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic);
-
+
+ private static bool isBlurEnabled = Environment.OSVersion.Version.Major >= 6;
///
/// Get the nativeImage field from the bitmap
///
@@ -172,9 +173,9 @@ namespace GreenshotPlugin.UnmanagedHelpers {
///
///
public static bool isBlurPossible(int radius) {
- if (Environment.OSVersion.Version.Major < 6) {
+ if (!isBlurEnabled) {
return false;
- } else if ((Environment.OSVersion.Version.Major >= 6 && Environment.OSVersion.Version.Minor >= 2) && radius < 20) {
+ } else if (Environment.OSVersion.Version.Minor >= 2 && radius < 20) {
return false;
}
return true;
@@ -224,16 +225,22 @@ namespace GreenshotPlugin.UnmanagedHelpers {
// Everything worked, return true
return true;
} catch (Exception ex) {
+ isBlurEnabled = false;
LOG.Error("Problem using GdipBitmapApplyEffect: ", ex);
return false;
} finally {
- if (hEffect != null) {
- // Delete the effect
- GdipDeleteEffect(hEffect);
- }
- if (hBlurParams != IntPtr.Zero) {
- // Free the memory
- Marshal.FreeHGlobal(hBlurParams);
+ try {
+ if (hEffect != IntPtr.Zero) {
+ // Delete the effect
+ GdipDeleteEffect(hEffect);
+ }
+ if (hBlurParams != IntPtr.Zero) {
+ // Free the memory
+ Marshal.FreeHGlobal(hBlurParams);
+ }
+ } catch (Exception ex) {
+ isBlurEnabled = false;
+ LOG.Error("Problem cleaning up ApplyBlur: ", ex);
}
}
}
@@ -283,16 +290,22 @@ namespace GreenshotPlugin.UnmanagedHelpers {
// Everything worked, return true
return true;
} catch (Exception ex) {
+ isBlurEnabled = false;
LOG.Error("Problem using GdipDrawImageFX: ", ex);
return false;
} finally {
- if (hEffect != null) {
- // Delete the effect
- GdipDeleteEffect(hEffect);
- }
- if (hBlurParams != IntPtr.Zero) {
- // Free the memory
- Marshal.FreeHGlobal(hBlurParams);
+ try {
+ if (hEffect != IntPtr.Zero) {
+ // Delete the effect
+ GdipDeleteEffect(hEffect);
+ }
+ if (hBlurParams != IntPtr.Zero) {
+ // Free the memory
+ Marshal.FreeHGlobal(hBlurParams);
+ }
+ } catch (Exception ex) {
+ isBlurEnabled = false;
+ LOG.Error("Problem cleaning up DrawWithBlur: ", ex);
}
}
}
diff --git a/PluginExample/PluginExample.csproj b/PluginExample/PluginExample.csproj
index 409fff19b..48ae00b29 100644
--- a/PluginExample/PluginExample.csproj
+++ b/PluginExample/PluginExample.csproj
@@ -51,6 +51,5 @@
mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
- "$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
\ No newline at end of file
diff --git a/PluginExample/Properties/AssemblyInfo.cs.template b/PluginExample/Properties/AssemblyInfo.cs.template
index 4ceea25ef..cbb31cec3 100644
--- a/PluginExample/Properties/AssemblyInfo.cs.template
+++ b/PluginExample/Properties/AssemblyInfo.cs.template
@@ -52,4 +52,4 @@ using Greenshot.Plugin;
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.1.4.$WCREV$")]
+[assembly: AssemblyVersion("1.1.6.$WCREV$")]