Improve clipboard destination UX

- On clipboard notification click, open the editor
- When the editor was opened from a clipboard CaptureMode, prompt to copy to clipboard on close
- Add hero image to Windows 10 notifications with the screenshot preview
This commit is contained in:
Alberto Aldegheri 2022-08-04 19:46:52 +02:00
commit c1da72cc37
51 changed files with 331 additions and 125 deletions

View file

@ -21,6 +21,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
@ -104,6 +105,38 @@ namespace Greenshot.Base.Core
public abstract ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails);
/// <summary>
/// If a balloon tip is show for a taken capture, this handles the click on it
/// </summary>
/// <param name="e">SurfaceMessageEventArgs</param>
public virtual void OnExportedNotificationClick(SurfaceMessageEventArgs e)
{
Log.Info(Designation + " Notification Clicked!");
var notifyIcon = SimpleServiceProvider.Current.GetInstance<NotifyIcon>();
if (notifyIcon.Tag is not SurfaceMessageEventArgs eventArgs)
{
Log.Warn("OpenCaptureOnClick called without SurfaceMessageEventArgs");
return;
}
var surface = eventArgs.Surface;
if (surface != null)
{
switch (eventArgs.MessageType)
{
case SurfaceMessageTyp.FileSaved:
ExplorerHelper.OpenInExplorer(surface.LastSaveFullPath);
break;
case SurfaceMessageTyp.UploadedUri:
Process.Start(surface.UploadUrl);
break;
}
}
Log.DebugFormat("Deregistering the BalloonTipClicked");
}
/// <summary>
/// A small helper method to perform some default destination actions, like inform the surface of the export
/// </summary>
@ -125,7 +158,7 @@ namespace Greenshot.Base.Core
}
else
{
surface.SendMessageEvent(this, SurfaceMessageTyp.Info, Language.GetFormattedString("exported_to", exportInformation.DestinationDescription));
surface.SendMessageEvent(this, SurfaceMessageTyp.Exported, Language.GetFormattedString("exported_to", exportInformation.DestinationDescription));
}
surface.Modified = false;

View file

@ -127,5 +127,11 @@ namespace Greenshot.Base.Interfaces
/// <param name="captureDetails"></param>
/// <returns>DestinationExportInformation with information, like if the destination has "exported" the capture</returns>
ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails);
/// <summary>
/// Executed when the user clicks on the exported notification
/// </summary>
/// <param name="e">Notification event args. <see cref="ISurface"/> may be disposed.</param>
void OnExportedNotificationClick(SurfaceMessageEventArgs e);
}
}

View file

@ -20,6 +20,7 @@
*/
using System;
using System.Drawing;
namespace Greenshot.Base.Interfaces
{
@ -35,7 +36,8 @@ namespace Greenshot.Base.Interfaces
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null);
/// <param name="heroImage">Optional hero image (used only when supported by notification system)</param>
void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null);
/// <summary>
/// This will show an error message to the user
@ -44,7 +46,8 @@ namespace Greenshot.Base.Interfaces
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null);
/// <param name="heroImage">Optional hero image (used only when supported by notification system)</param>
void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null);
/// <summary>
/// This will show an info message to the user
@ -53,6 +56,7 @@ namespace Greenshot.Base.Interfaces
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null);
/// <param name="heroImage">Optional hero image (used only when supported by notification system)</param>
void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null);
}
}

View file

@ -20,13 +20,19 @@
*/
using System;
using System.Drawing;
namespace Greenshot.Base.Interfaces
{
public class SurfaceMessageEventArgs : EventArgs
public sealed class SurfaceMessageEventArgs : EventArgs, IDisposable
{
public Image Image { get; set; }
public SurfaceMessageTyp MessageType { get; set; }
public string Message { get; set; }
public ISurface Surface { get; set; }
public void Dispose()
{
Image.Dispose();
}
}
}

View file

@ -25,7 +25,7 @@ namespace Greenshot.Base.Interfaces
{
FileSaved,
Error,
Info,
Exported,
UploadedUri
}
}

View file

@ -37,6 +37,9 @@ namespace Greenshot.Editor.Configuration
editor_clipboardfailed,
editor_close_on_save,
editor_close_on_save_title,
editor_close_on_clipboard,
editor_close_on_clipboard_title,
editor_copyimagetoclipboard,
editor_copytoclipboard,
editor_cuttoclipboard,
editor_deleteelement,

View file

@ -1134,9 +1134,9 @@ namespace Greenshot.Editor.Drawing
public void SendMessageEvent(object source, SurfaceMessageTyp messageType, string message)
{
if (_surfaceMessage == null) return;
var eventArgs = new SurfaceMessageEventArgs
{
Image = GetImageForExport(),
Message = message,
MessageType = messageType,
Surface = this

View file

@ -935,6 +935,8 @@ namespace Greenshot.Editor.Forms
// Make sure the editor is visible
WindowDetails.ToForeground(Handle);
bool saveToClipboard = _surface.CaptureDetails.CaptureMode == CaptureMode.Clipboard;
MessageBoxButtons buttons = MessageBoxButtons.YesNoCancel;
// Dissallow "CANCEL" if the application needs to shutdown
if (e.CloseReason == CloseReason.ApplicationExitCall || e.CloseReason == CloseReason.WindowsShutDown || e.CloseReason == CloseReason.TaskManagerClosing)
@ -942,8 +944,12 @@ namespace Greenshot.Editor.Forms
buttons = MessageBoxButtons.YesNo;
}
DialogResult result = MessageBox.Show(Language.GetString(LangKey.editor_close_on_save), Language.GetString(LangKey.editor_close_on_save_title), buttons,
DialogResult result = MessageBox.Show(
Language.GetString(saveToClipboard ? LangKey.editor_close_on_clipboard : LangKey.editor_close_on_save),
Language.GetString(saveToClipboard ? LangKey.editor_close_on_clipboard_title : LangKey.editor_close_on_save_title),
buttons,
MessageBoxIcon.Question);
if (result.Equals(DialogResult.Cancel))
{
e.Cancel = true;
@ -952,7 +958,16 @@ namespace Greenshot.Editor.Forms
if (result.Equals(DialogResult.Yes))
{
BtnSaveClick(sender, e);
// If the user choose the clipboard as destination, just keep it also on close
if (saveToClipboard)
{
BtnClipboardClick(sender, e);
}
else
{
BtnSaveClick(sender, e);
}
// Check if the save was made, if not it was cancelled so we cancel the closing
if (_surface.Modified)
{

View file

@ -20,8 +20,10 @@
*/
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Threading;
using Windows.Foundation.Collections;
using Windows.Foundation.Metadata;
using Windows.UI.Notifications;
@ -41,7 +43,11 @@ namespace Greenshot.Plugin.Win10
private static readonly ILog Log = LogManager.GetLogger(typeof(ToastNotificationService));
private static readonly CoreConfiguration CoreConfiguration = IniConfig.GetIniSection<CoreConfiguration>();
private const string _heroImageFilePrefix = "hero-";
private readonly string _imageFilePath;
private readonly string _localAppData;
private readonly ToastNotifierCompat _toastNotifier;
private readonly SynchronizationContext _mainSynchronizationContext;
public ToastNotificationService()
{
@ -62,13 +68,21 @@ namespace Greenshot.Plugin.Win10
Log.Info("Toast activated. Args: " + toastArgs.Argument);
};
var localAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Greenshot");
if (!Directory.Exists(localAppData))
_toastNotifier = ToastNotificationManagerCompat.CreateToastNotifier();
_mainSynchronizationContext = SynchronizationContext.Current;
_localAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Greenshot");
if (!Directory.Exists(_localAppData))
{
Directory.CreateDirectory(localAppData);
Directory.CreateDirectory(_localAppData);
}
// Cleanup old hero images cache
foreach (var heroImagePath in Directory.EnumerateFiles(_localAppData, $"{_heroImageFilePrefix}*", SearchOption.TopDirectoryOnly))
{
File.Delete(heroImagePath);
}
_imageFilePath = Path.Combine(localAppData, "greenshot.png");
_imageFilePath = Path.Combine(_localAppData, "greenshot.png");
if (File.Exists(_imageFilePath))
{
@ -86,7 +100,8 @@ namespace Greenshot.Plugin.Win10
/// <param name="timeout">TimeSpan until the toast timeouts</param>
/// <param name="onClickAction">Action called when clicked</param>
/// <param name="onClosedAction">Action called when the toast is closed</param>
private void ShowMessage(string message, TimeSpan? timeout = default, Action onClickAction = null, Action onClosedAction = null)
/// <param name="heroImage"></param>
private void ShowMessage(string message, TimeSpan? timeout = default, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
// Do not inform the user if this is disabled
if (!CoreConfiguration.ShowTrayNotification)
@ -114,34 +129,57 @@ namespace Greenshot.Plugin.Win10
try
{
// Generate the toast and send it off
new ToastContentBuilder()
var toastBuilder = new ToastContentBuilder();
var heroImagePath = Path.Combine(_localAppData, $"{_heroImageFilePrefix}{Guid.NewGuid()}.jpeg");
var heroImageUri = new Uri(heroImagePath).AbsoluteUri;
toastBuilder
.AddArgument("ToastID", 100)
// Inline image
.AddText(message)
.AddText(message);
// Profile (app logo override) image
//.AddAppLogoOverride(new Uri($@"file://{_imageFilePath}"), ToastGenericAppLogoCrop.None)
.Show(toast =>
if (heroImage != null)
{
heroImage = heroImage.GetThumbnailImage(364, 180, () => false, IntPtr.Zero);
using var fileStream = new FileStream(heroImagePath, FileMode.CreateNew);
heroImage.Save(fileStream, ImageFormat.Jpeg);
toastBuilder.AddHeroImage(new Uri(heroImageUri, UriKind.Absolute));
}
toastBuilder.Show(toast =>
{
// Windows 10 first with 1903: ExpiresOnReboot = true
toast.ExpirationTime = timeout.HasValue ? DateTimeOffset.Now.Add(timeout.Value) : (DateTimeOffset?)null;
void DisposeNotification()
{
if (onClickAction != null)
{
toast.Activated -= ToastActivatedHandler;
}
toast.Dismissed -= ToastDismissedHandler;
toast.Failed -= ToastOnFailed;
if (heroImage != null)
{
File.Delete(heroImagePath);
}
}
// Windows 10 first with 1903: ExpiresOnReboot = true
toast.ExpirationTime = timeout.HasValue ? DateTimeOffset.Now.Add(timeout.Value) : null;
void ToastOnFailed(ToastNotification toastNotification, ToastFailedEventArgs args)
{
DisposeNotification();
Log.WarnFormat("Failed to display a toast due to {0}", args.ErrorCode);
Log.Debug(toastNotification.Content.GetXml());
}
void ToastActivatedHandler(ToastNotification toastNotification, object sender)
{
try
{
onClickAction?.Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onclick action: ", ex);
}
toast.Activated -= ToastActivatedHandler;
}
if (onClickAction != null)
{
toast.Activated += ToastActivatedHandler;
DisposeNotification();
InvokeAction(onClickAction);
}
void ToastDismissedHandler(ToastNotification toastNotification, ToastDismissedEventArgs eventArgs)
@ -152,25 +190,22 @@ namespace Greenshot.Plugin.Win10
return;
}
try
{
onClosedAction?.Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onClosed action: ", ex);
}
DisposeNotification();
// Windows lets you Dismiss the notification two time, this is really odd
// So we need to force the removal of the notification
_mainSynchronizationContext.Post(ForceCloseNotification, toastNotification);
toast.Dismissed -= ToastDismissedHandler;
// Remove the other handler too
toast.Activated -= ToastActivatedHandler;
toast.Failed -= ToastOnFailed;
InvokeAction(onClosedAction);
}
if (onClickAction != null)
{
toast.Activated += ToastActivatedHandler;
}
toast.Dismissed += ToastDismissedHandler;
toast.Failed += ToastOnFailed;
});
}
catch (Exception ex)
{
@ -178,25 +213,19 @@ namespace Greenshot.Plugin.Win10
}
}
private void ToastOnFailed(ToastNotification sender, ToastFailedEventArgs args)
public void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
Log.WarnFormat("Failed to display a toast due to {0}", args.ErrorCode);
Log.Debug(sender.Content.GetXml());
ShowMessage(message, timeout, onClickAction, onClosedAction, heroImage);
}
public void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
public void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
ShowMessage(message, timeout, onClickAction, onClosedAction);
ShowMessage(message, timeout, onClickAction, onClosedAction, heroImage);
}
public void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
public void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
ShowMessage(message, timeout, onClickAction, onClosedAction);
}
public void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
{
ShowMessage(message, timeout, onClickAction, onClosedAction);
ShowMessage(message, timeout, onClickAction, onClosedAction, heroImage);
}
/// <summary>
@ -214,5 +243,30 @@ namespace Greenshot.Plugin.Win10
return null;
}
private void ForceCloseNotification(object state)
{
_toastNotifier.Hide((ToastNotification)state);
}
private void InvokeAction(Action action)
{
if (action != null)
{
_mainSynchronizationContext.Post(InternalInvokeAction, action);
}
}
private void InternalInvokeAction(object state)
{
try
{
((Action)state).Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onClosed action: ", ex);
}
}
}
}

View file

@ -26,6 +26,9 @@ using Greenshot.Base;
using Greenshot.Base.Core;
using Greenshot.Base.Interfaces;
using Greenshot.Configuration;
using Greenshot.Editor.Destinations;
using Greenshot.Editor.Drawing;
using log4net;
namespace Greenshot.Destinations
{
@ -34,6 +37,8 @@ namespace Greenshot.Destinations
/// </summary>
public class ClipboardDestination : AbstractDestination
{
private static readonly ILog Log = LogManager.GetLogger(typeof(ClipboardDestination));
public override string Designation => nameof(WellKnownDestinations.Clipboard);
public override string Description
@ -73,5 +78,15 @@ namespace Greenshot.Destinations
ProcessExport(exportInformation, surface);
return exportInformation;
}
public override void OnExportedNotificationClick(SurfaceMessageEventArgs e)
{
Log.Info(Designation + " Notification Clicked!");
var surface = new Surface((Image)e.Image.Clone()) { CaptureDetails = new CaptureDetails { CaptureMode = CaptureMode.Clipboard } };
DestinationHelper.GetDestination(EditorDestination.DESIGNATION)
.ExportCapture(true, surface, new CaptureDetails { CaptureMode = CaptureMode.Clipboard });
}
}
}

View file

@ -611,36 +611,6 @@ namespace Greenshot.Helpers
}
}
/// <summary>
/// If a balloon tip is show for a taken capture, this handles the click on it
/// </summary>
/// <param name="e">SurfaceMessageEventArgs</param>
private void OpenCaptureOnClick(SurfaceMessageEventArgs e)
{
var notifyIcon = SimpleServiceProvider.Current.GetInstance<NotifyIcon>();
if (notifyIcon.Tag is not SurfaceMessageEventArgs eventArgs)
{
Log.Warn("OpenCaptureOnClick called without SurfaceMessageEventArgs");
return;
}
ISurface surface = eventArgs.Surface;
if (surface != null)
{
switch (eventArgs.MessageType)
{
case SurfaceMessageTyp.FileSaved:
ExplorerHelper.OpenInExplorer(surface.LastSaveFullPath);
break;
case SurfaceMessageTyp.UploadedUri:
Process.Start(surface.UploadUrl);
break;
}
}
Log.DebugFormat("Deregistering the BalloonTipClicked");
}
/// <summary>
/// This is the SurfaceMessageEvent receiver
/// </summary>
@ -653,19 +623,26 @@ namespace Greenshot.Helpers
return;
}
var destination = (IDestination)sender;
var notifyIconClassicMessageHandler = SimpleServiceProvider.Current.GetInstance<INotificationService>();
switch (eventArgs.MessageType)
{
case SurfaceMessageTyp.Error:
notifyIconClassicMessageHandler.ShowErrorMessage(eventArgs.Message, TimeSpan.FromHours(1));
eventArgs.Dispose();
break;
case SurfaceMessageTyp.Info:
notifyIconClassicMessageHandler.ShowInfoMessage(eventArgs.Message, TimeSpan.FromHours(1), () => { Log.Info("Clicked!"); });
break;
case SurfaceMessageTyp.FileSaved:
case SurfaceMessageTyp.UploadedUri:
default:
// Show a balloon and register an event handler to open the "capture" for if someone clicks the balloon.
notifyIconClassicMessageHandler.ShowInfoMessage(eventArgs.Message, TimeSpan.FromHours(1), () => OpenCaptureOnClick(eventArgs));
notifyIconClassicMessageHandler.ShowInfoMessage(
eventArgs.Message,
TimeSpan.FromHours(1),
() =>
{
destination.OnExportedNotificationClick(eventArgs);
eventArgs.Dispose();
},
eventArgs.Dispose,
eventArgs.Image);
break;
}
}

View file

@ -20,6 +20,8 @@
*/
using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
using Greenshot.Base.Core;
using Greenshot.Base.IniFile;
@ -36,10 +38,12 @@ namespace Greenshot.Helpers
private static readonly ILog Log = LogManager.GetLogger(typeof(NotifyIconNotificationService));
private static readonly CoreConfiguration CoreConfiguration = IniConfig.GetIniSection<CoreConfiguration>();
private readonly NotifyIcon _notifyIcon;
private readonly SynchronizationContext _mainSynchronizationContext;
public NotifyIconNotificationService()
{
_notifyIcon = SimpleServiceProvider.Current.GetInstance<NotifyIcon>();
_mainSynchronizationContext = SynchronizationContext.Current;
}
/// <summary>
@ -49,7 +53,7 @@ namespace Greenshot.Helpers
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
public void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
public void ShowWarningMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
ShowMessage(message, timeout, ToolTipIcon.Warning, onClickAction, onClosedAction);
}
@ -61,7 +65,7 @@ namespace Greenshot.Helpers
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
public void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
public void ShowErrorMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
ShowMessage(message, timeout, ToolTipIcon.Error, onClickAction, onClosedAction);
}
@ -73,7 +77,7 @@ namespace Greenshot.Helpers
/// <param name="timeout">TimeSpan</param>
/// <param name="onClickAction">Action called if the user clicks the notification</param>
/// <param name="onClosedAction">Action</param>
public void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null)
public void ShowInfoMessage(string message, TimeSpan? timeout = null, Action onClickAction = null, Action onClosedAction = null, Image heroImage = null)
{
ShowMessage(message, timeout, ToolTipIcon.Info, onClickAction, onClosedAction);
}
@ -94,43 +98,54 @@ namespace Greenshot.Helpers
return;
}
void DisposeBalloon()
{
_notifyIcon.BalloonTipClosed -= BalloonClosedHandler;
if (onClickAction != null)
{
_notifyIcon.BalloonTipClicked -= BalloonClickedHandler;
}
}
void BalloonClickedHandler(object s, EventArgs e)
{
try
{
onClickAction?.Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onclick action: ", ex);
}
DisposeBalloon();
InvokeAction(onClickAction);
}
_notifyIcon.BalloonTipClicked -= BalloonClickedHandler;
void BalloonClosedHandler(object s, EventArgs e)
{
DisposeBalloon();
InvokeAction(onClosedAction);
}
if (onClickAction != null)
{
_notifyIcon.BalloonTipClicked += BalloonClickedHandler;
}
void BalloonClosedHandler(object s, EventArgs e)
{
try
{
onClosedAction?.Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onClosed action: ", ex);
}
_notifyIcon.BalloonTipClosed -= BalloonClosedHandler;
// Remove the other handler too
_notifyIcon.BalloonTipClicked -= BalloonClickedHandler;
}
_notifyIcon.BalloonTipClosed += BalloonClosedHandler;
_notifyIcon.ShowBalloonTip(timeout.HasValue ? (int) timeout.Value.TotalMilliseconds : 5000, @"Greenshot", message, level);
}
private void InvokeAction(Action action)
{
if (action != null)
{
_mainSynchronizationContext.Post(InternalInvokeAction, action);
}
}
private void InternalInvokeAction(object state)
{
try
{
((Action)state).Invoke();
}
catch (Exception ex)
{
Log.Warn("Exception while handling the onClosed action: ", ex);
}
}
}
}

View file

@ -57,6 +57,8 @@
<resource name="editor_close">اغلق</resource>
<resource name="editor_close_on_save">هل تريد حفظ اللقطة?</resource>
<resource name="editor_close_on_save_title">حفظ الصورة?</resource>
<resource name="editor_close_on_clipboard">هل تريد نسخ الصورة إلى الحافظة؟</resource>
<resource name="editor_close_on_clipboard_title">نسخ الصورة إلى الحافظة؟</resource>
<resource name="editor_confirm">تأكيد</resource>
<resource name="editor_copyimagetoclipboard">انسخ الصورة للذاكرة</resource>
<resource name="editor_copypathtoclipboard">انسخ المسار الي الذاكرة</resource>

View file

@ -87,6 +87,8 @@ Abans de crear un nou informe d'error, us agrairem que comproveu que l'error no
<resource name="editor_close">Tanca</resource>
<resource name="editor_close_on_save">Voleu desar la captura?</resource>
<resource name="editor_close_on_save_title">Voleu desar la imatge?</resource>
<resource name="editor_close_on_clipboard">Voleu copiar la imatge al porta-retalls?</resource>
<resource name="editor_close_on_clipboard_title">Voleu copiar la imatge al porta-retalls?</resource>
<resource name="editor_confirm">Confirma</resource>
<resource name="editor_copyimagetoclipboard">Copia la imatge al porta-retalls</resource>
<resource name="editor_copypathtoclipboard">Copia el camí al porta-retalls</resource>

View file

@ -88,6 +88,8 @@ Také bychom velmi ocenili, kdybyste zkontrolovali, zda tato chyba již není ev
<resource name="editor_close">Zavřít</resource>
<resource name="editor_close_on_save">Chcete uložit snímek?</resource>
<resource name="editor_close_on_save_title">Uložit snímek?</resource>
<resource name="editor_close_on_clipboard">Chcete obrázek zkopírovat do schránky?</resource>
<resource name="editor_close_on_clipboard_title">Kopírovat obrázek do schránky?</resource>
<resource name="editor_confirm">Potvrdit</resource>
<resource name="editor_copyimagetoclipboard">Kopírovat obrázek do schránky</resource>
<resource name="editor_copypathtoclipboard">Kopírovat cestu do schránky</resource>

View file

@ -502,6 +502,8 @@ tidspunktet, fx 11_58_32 (plus filendelsen angivet i indstillingerne).
<resource name="editor_close_on_save_title">
Gem billede?
</resource>
<resource name="editor_close_on_clipboard">Vil du kopiere billedet til udklipsholderen?</resource>
<resource name="editor_close_on_clipboard_title">Vil du kopiere billedet til udklipsholderen?</resource>
<resource name="settings_capture_windows_interactive">
Brug interaktiv vinduesklip-tilstand
</resource>

View file

@ -88,6 +88,8 @@ schnell zu finden. Vielen Dank :)</resource>
<resource name="editor_close">Schließen</resource>
<resource name="editor_close_on_save">Möchten Sie den Screenshot speichern?</resource>
<resource name="editor_close_on_save_title">Bild speichern?</resource>
<resource name="editor_close_on_clipboard">Möchten Sie das Bild in die Zwischenablage kopieren?</resource>
<resource name="editor_close_on_clipboard_title">Bild in die Zwischenablage kopieren?</resource>
<resource name="editor_confirm">Bestätigen</resource>
<resource name="editor_copyimagetoclipboard">Grafik in die Zwischenablage kopieren</resource>
<resource name="editor_copypathtoclipboard">Pfad in Zwischenablage kopieren</resource>

View file

@ -83,6 +83,8 @@ Dangschee, wassd scho :)</resource>
<resource name="editor_close">Wech!</resource>
<resource name="editor_close_on_save">Moggsd dei Gschmarri ned schbeichern?</resource>
<resource name="editor_close_on_save_title">Bild schbeichern?</resource>
<resource name="editor_close_on_clipboard">Möchten Sie das Bild in die Zwischenablage kopieren?</resource>
<resource name="editor_close_on_clipboard_title">Bild in die Zwischenablage kopieren?</resource>
<resource name="editor_confirm">Fei wärgli!</resource>
<resource name="editor_copyimagetoclipboard">Grafig in däi Zwischnblach nei</resource>
<resource name="editor_copypathtoclipboard">Bfad in däi Zwischnblach nei</resource>

View file

@ -88,6 +88,8 @@
<resource name="editor_close">Κλείσιμο</resource>
<resource name="editor_close_on_save">Θέλετε να αποθηκεύσετε το στιγμιότυπο οθόνης;</resource>
<resource name="editor_close_on_save_title">Αποθήκευση εικόνας;</resource>
<resource name="editor_close_on_clipboard">Θέλετε να αντιγράψετε την εικόνα στο πρόχειρο;</resource>
<resource name="editor_close_on_clipboard_title">Αντιγραφή εικόνας στο πρόχειρο;</resource>
<resource name="editor_confirm">Επιβεβαίωση</resource>
<resource name="editor_copyimagetoclipboard">Αντιγραφή εικόνας στο πρόχειρο</resource>
<resource name="editor_copypathtoclipboard">Αντιγραφή της θέσης του αρχείου στο πρόχειρο</resource>

View file

@ -89,6 +89,8 @@ Also, we would highly appreciate if you checked whether a tracker item already e
<resource name="editor_close">Close</resource>
<resource name="editor_close_on_save">Do you want to save the screenshot?</resource>
<resource name="editor_close_on_save_title">Save image?</resource>
<resource name="editor_close_on_clipboard">Do you want to copy the image to the clipboard?</resource>
<resource name="editor_close_on_clipboard_title">Copy image to clipboard?</resource>
<resource name="editor_confirm">Confirm</resource>
<resource name="editor_copyimagetoclipboard">Copy image to clipboard</resource>
<resource name="editor_copypathtoclipboard">Copy path to clipboard</resource>

View file

@ -75,6 +75,8 @@ Antes de crear un nuevo informe de error, te agradeceríamos que comprobaras que
<resource name="editor_close">Cerrar</resource>
<resource name="editor_close_on_save">¿Guardar la captura?</resource>
<resource name="editor_close_on_save_title">¿Guardar imagen?</resource>
<resource name="editor_close_on_clipboard">¿Quieres copiar la imagen al portapapeles?</resource>
<resource name="editor_close_on_clipboard_title">¿Copiar imagen al portapapeles?</resource>
<resource name="editor_confirm">Confirmar</resource>
<resource name="editor_copyimagetoclipboard">Copiar imagen al portapapeles</resource>
<resource name="editor_copypathtoclipboard">Copiar ruta al portapapeles</resource>

View file

@ -87,6 +87,8 @@ Me oleksime väga tänulik, kui te enne kontrolliksite, ega sellest veast pole j
<resource name="editor_close">Sulge</resource>
<resource name="editor_close_on_save">Kas te tahate salvestada kuvatõmmist?</resource>
<resource name="editor_close_on_save_title">Salvestage pilt?</resource>
<resource name="editor_close_on_clipboard">Kas soovite pildi lõikelauale kopeerida?</resource>
<resource name="editor_close_on_clipboard_title">Kas kopeerida pilt lõikelauale?</resource>
<resource name="editor_confirm">Kinnitan</resource>
<resource name="editor_copyimagetoclipboard">Kopeerige pilt lõikelauale</resource>
<resource name="editor_copypathtoclipboard">Kopeerige asukoht lõikelauale</resource>

View file

@ -61,6 +61,8 @@ Could not save Greenshot's configuration file. Please check access permissions f
<resource name="editor_close">ببند</resource>
<resource name="editor_close_on_save">تصویر ذخیره شود؟</resource>
<resource name="editor_close_on_save_title">تصویر ذخیره شود؟</resource>
<resource name="editor_close_on_clipboard">آیا می خواهید تصویر را در کلیپ بورد کپی کنید؟</resource>
<resource name="editor_close_on_clipboard_title">تصویر در کلیپ بورد کپی شود؟</resource>
<resource name="editor_confirm">تایید</resource>
<resource name="editor_copyimagetoclipboard">ذخیره سازی در حافظه موقت</resource>
<resource name="editor_copypathtoclipboard">ذخیره مسیر در حافظه موقت</resource>

View file

@ -57,6 +57,8 @@ Olisi myös hyvä jos voisit tarkistaa onko virhe jo raportoitu aikaisemmin (voi
<resource name="editor_close">Sulje</resource>
<resource name="editor_close_on_save">Tallennetaanko kuva?</resource>
<resource name="editor_close_on_save_title">Tallennetaanko?</resource>
<resource name="editor_close_on_clipboard">Haluatko kopioida kuvan leikepöydälle?</resource>
<resource name="editor_close_on_clipboard_title">Kopioidaanko kuva leikepöydälle?</resource>
<resource name="editor_confirm">Hyväksy</resource>
<resource name="editor_copyimagetoclipboard">Kopioi kuva leikepöydälle</resource>
<resource name="editor_copypathtoclipboard">Kopioi tiedostopolku leikepöydälle</resource>

View file

@ -87,6 +87,8 @@ De plus, nous apprécierions beaucoup que vous preniez la peine de vérifier si
<resource name="editor_close">Fermer</resource>
<resource name="editor_close_on_save">Voulez-vous enregistrer la capture d'écran ?</resource>
<resource name="editor_close_on_save_title">Enregistrer l'image ?</resource>
<resource name="editor_close_on_clipboard">Voulez-vous copier l'image dans le presse-papier ?</resource>
<resource name="editor_close_on_clipboard_title">Copier l'image dans le presse-papier ?</resource>
<resource name="editor_confirm">Confirmer</resource>
<resource name="editor_copyimagetoclipboard">Copier l'image vers le presse-papier</resource>
<resource name="editor_copypathtoclipboard">Copier le chemin vers le presse-papier</resource>

View file

@ -73,6 +73,8 @@ De plus, nous apprécierions beaucoup que vous preniez la peine de vérifier si
<resource name="editor_close">Fermer</resource>
<resource name="editor_close_on_save">Voulez-vous sauvegarder la capture d'écran ?</resource>
<resource name="editor_close_on_save_title">Sauvegarder l'image ?</resource>
<resource name="editor_close_on_clipboard">Voulez-vous copier l'image dans le presse-papier ?</resource>
<resource name="editor_close_on_clipboard_title">Copier l'image dans le presse-papier ?</resource>
<resource name="editor_confirm">Confirmer</resource>
<resource name="editor_copyimagetoclipboard">Copier l'image vers le presse-papier</resource>
<resource name="editor_copypathtoclipboard">Copier le chemin vers le presse-papier</resource>

View file

@ -58,6 +58,8 @@ Details about the GNU General Public License:</resource>
<resource name="editor_close">סגור</resource>
<resource name="editor_close_on_save">? האם ברצונך לשמור את תמונת הלכידה</resource>
<resource name="editor_close_on_save_title">? שמור תמונה</resource>
<resource name="editor_close_on_clipboard">האם ברצונך להעתיק את התמונה ללוח?</resource>
<resource name="editor_close_on_clipboard_title">להעתיק תמונה ללוח?</resource>
<resource name="editor_confirm">אישור</resource>
<resource name="editor_copyimagetoclipboard">העתקת תמונה אל הלוח</resource>
<resource name="editor_copypathtoclipboard">העתק נתיב אל הלוח</resource>

View file

@ -58,6 +58,8 @@ Kérjük adjon összefoglaló leírást és csatoljon minden olyan információt
<resource name="editor_close">Bezárni</resource>
<resource name="editor_close_on_save">Szeretné menteni a képernyőképet?</resource>
<resource name="editor_close_on_save_title">Menti a képet?</resource>
<resource name="editor_close_on_clipboard">A vágólapra szeretné másolni a képet?</resource>
<resource name="editor_close_on_clipboard_title">Másolja a képet a vágólapra?</resource>
<resource name="editor_confirm">Alkalmaz</resource>
<resource name="editor_copyimagetoclipboard">A kép másolása a vágólapra</resource>
<resource name="editor_copypathtoclipboard">Másolja a vágólapra</resource>

View file

@ -87,6 +87,8 @@ Juga, kami sangat terbantu apabila anda mengecek laporan lain yang sama dengan k
<resource name="editor_close">Tutup</resource>
<resource name="editor_close_on_save">Apakah anda ingin menyimpan layar yang tertangkap?</resource>
<resource name="editor_close_on_save_title">Simpan gambar?</resource>
<resource name="editor_close_on_clipboard">Apakah Anda ingin menyalin gambar ke papan klip?</resource>
<resource name="editor_close_on_clipboard_title">Salin gambar ke papan klip?</resource>
<resource name="editor_confirm">Konfirmasi</resource>
<resource name="editor_copyimagetoclipboard">Kopi gambar ke papan klip</resource>
<resource name="editor_copypathtoclipboard">Kopi jalur ke papan klip</resource>

View file

@ -93,6 +93,8 @@ Controlla i permessi di accesso per '{0}'.</resource>
<resource name="editor_close">Chiudi</resource>
<resource name="editor_close_on_save">Vuoi salvare l'immagine?</resource>
<resource name="editor_close_on_save_title">Vuoi salvare l'immagine?</resource>
<resource name="editor_close_on_clipboard">Vuoi copiare l'immagine negli appunti?</resource>
<resource name="editor_close_on_clipboard_title">Vuoi copiare l'immagine negli appunti?</resource>
<resource name="editor_confirm">Conferma</resource>
<resource name="editor_copyimagetoclipboard">Copia immagine negli Appunti</resource>
<resource name="editor_copypathtoclipboard">Copia percorso negli appunti</resource>

View file

@ -86,6 +86,8 @@ Greenshot には一切の保障がありません。GNU General Public License
<resource name="editor_close">閉じる</resource>
<resource name="editor_close_on_save">スクリーンショットを保存しますか?</resource>
<resource name="editor_close_on_save_title">画像保存の確認</resource>
<resource name="editor_close_on_clipboard">画像をクリップボードにコピーしますか?</resource>
<resource name="editor_close_on_clipboard_title">画像をクリップボードにコピーしますか?</resource>
<resource name="editor_confirm">チェック</resource>
<resource name="editor_copyimagetoclipboard">画像をクリップボードにコピー</resource>
<resource name="editor_copypathtoclipboard">パスをクリップボードにコピー</resource>

View file

@ -87,6 +87,8 @@ Rnu ɣur-s, nḥemmel aṭas ma yella tesneqdeḍ aneqqis igebren ugur-agi. (Tze
<resource name="editor_close">Mdel</resource>
<resource name="editor_close_on_save">Tebɣiḍ ad teselkseḍ tuṭṭfa n ugdil?</resource>
<resource name="editor_close_on_save_title">Sekles tugna?</resource>
<resource name="editor_close_on_clipboard">Nɣel tugna ɣef afus?</resource>
<resource name="editor_close_on_clipboard_title">Nɣel tugna ɣef afus?</resource>
<resource name="editor_confirm">Sentem</resource>
<resource name="editor_copyimagetoclipboard">Nɣel tugna ɣef afus</resource>
<resource name="editor_copypathtoclipboard">Nɣel abrid ɣef afus</resource>

View file

@ -87,6 +87,8 @@ Also, we would highly appreciate if you checked whether a tracker item already e
<resource name="editor_close">닫기</resource>
<resource name="editor_close_on_save">화면 캡처를 저장할까요?</resource>
<resource name="editor_close_on_save_title">이미지를 저장할까요?</resource>
<resource name="editor_close_on_clipboard">이미지를 클립보드에 복사하시겠습니까?</resource>
<resource name="editor_close_on_clipboard_title">이미지를 클립보드에 복사하시겠습니까?</resource>
<resource name="editor_confirm">확인</resource>
<resource name="editor_copyimagetoclipboard">이미지를 클립보드로 복사</resource>
<resource name="editor_copypathtoclipboard">경로를 클립보드로 복사</resource>

View file

@ -56,6 +56,8 @@ Dėkojame už pagalbą :)</resource>
<resource name="editor_close">Uždaryti</resource>
<resource name="editor_close_on_save">Išsaugoti atidarytą nuotrauką?</resource>
<resource name="editor_close_on_save_title">Išsaugoti vaizdą?</resource>
<resource name="editor_close_on_clipboard">Ar norite nukopijuoti vaizdą į mainų sritį?</resource>
<resource name="editor_close_on_clipboard_title">Kopijuoti vaizdą į mainų sritį?</resource>
<resource name="editor_confirm">Patvirtinti</resource>
<resource name="editor_copyimagetoclipboard">Patalpinti į iškarpinių podelį</resource>
<resource name="editor_copypathtoclipboard">Kopijuoti pilną failo vardą</resource>

View file

@ -87,6 +87,8 @@ Mēs būtu Tev pateicīgi, ja Tu vispirms pārbaudītu, vai kāds cits jau nav z
<resource name="editor_close">Aizvērt</resource>
<resource name="editor_close_on_save">Vai gribi saglabāt ekrānattēlu?</resource>
<resource name="editor_close_on_save_title">Saglabāt attēlu?</resource>
<resource name="editor_close_on_clipboard">Vai vēlaties kopēt attēlu starpliktuvē?</resource>
<resource name="editor_close_on_clipboard_title">Vai kopēt attēlu starpliktuvē?</resource>
<resource name="editor_confirm">Apstiprināt</resource>
<resource name="editor_copyimagetoclipboard">Ievit attēlu starpliktuvē</resource>
<resource name="editor_copypathtoclipboard">Ievietot ceļu starpliktuvē</resource>

View file

@ -88,6 +88,8 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
<resource name="editor_close">Sluiten</resource>
<resource name="editor_close_on_save">Wilt u de schermopname opslaan?</resource>
<resource name="editor_close_on_save_title">Afbeelding opslaan?</resource>
<resource name="editor_close_on_clipboard">Wilt u de afbeelding naar het klembord kopiëren?</resource>
<resource name="editor_close_on_clipboard_title">Afbeelding naar klembord kopiëren?</resource>
<resource name="editor_confirm">Bevestigen</resource>
<resource name="editor_copyimagetoclipboard">Afbeelding naar klembord kopiëren</resource>
<resource name="editor_copypathtoclipboard">Locatie naar klembord kopiëren</resource>

View file

@ -75,6 +75,8 @@ Me sett òg pris på om du ved hjelp av søkefunksjonen på sida kan sjekke om d
<resource name="editor_close">Lukk</resource>
<resource name="editor_close_on_save">Vil du lagre skjermbildet?</resource>
<resource name="editor_close_on_save_title">Vil du lagre bildet?</resource>
<resource name="editor_close_on_clipboard">Vil du kopiere bildet til utklippstavlen?</resource>
<resource name="editor_close_on_clipboard_title">Vil du kopiere bildet til utklippstavlen?</resource>
<resource name="editor_confirm">Stadfest</resource>
<resource name="editor_copyimagetoclipboard">Kopier bildet til utklyppstavla</resource>
<resource name="editor_copypathtoclipboard">Kopier filstigen til utklyppstavla</resource>

View file

@ -88,6 +88,8 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
<resource name="editor_close">Zamknij</resource>
<resource name="editor_close_on_save">Czy chcesz zapisać zrzut ekranu?</resource>
<resource name="editor_close_on_save_title">Zapisać obraz?</resource>
<resource name="editor_close_on_clipboard">Czy chcesz skopiować obraz do schowka?</resource>
<resource name="editor_close_on_clipboard_title">Skopiować obraz do schowka?</resource>
<resource name="editor_confirm">Zatwierdź</resource>
<resource name="editor_copyimagetoclipboard">Kopiuj obraz do schowka</resource>
<resource name="editor_copypathtoclipboard">Kopiuj ścieżkę do schowka</resource>

View file

@ -84,6 +84,8 @@
<resource name="editor_close">Fechar</resource>
<resource name="editor_close_on_save">Deseja salvar a imagem capturada?</resource>
<resource name="editor_close_on_save_title">Salvar imagem?</resource>
<resource name="editor_close_on_clipboard">Deseja copiar a imagem para a área de transferência?</resource>
<resource name="editor_close_on_clipboard_title">Copiar imagem para a área de transferência?</resource>
<resource name="editor_confirm">Confirmar</resource>
<resource name="editor_copyimagetoclipboard">Copiar imagem para a Área de transferência</resource>
<resource name="editor_copypathtoclipboard">Copiar o caminho da pasta atual do arquivo para a Área de transferência</resource>

View file

@ -87,6 +87,8 @@ Também apreciaremos muito se puder verificar se não existe já um relatório d
<resource name="editor_close">Fechar</resource>
<resource name="editor_close_on_save">Deseja guardar a imagem capturada?</resource>
<resource name="editor_close_on_save_title">Guardar imagem?</resource>
<resource name="editor_close_on_clipboard">Deseja copiar a imagem para a área de transferência?</resource>
<resource name="editor_close_on_clipboard_title">Copiar imagem para a área de transferência?</resource>
<resource name="editor_confirm">Confirmar</resource>
<resource name="editor_copyimagetoclipboard">Copiar imagem para a Área de transferência</resource>
<resource name="editor_copypathtoclipboard">Copiar atalho para a Área de transferência</resource>

View file

@ -504,6 +504,8 @@ timpul curent, ex. 11_58_32 (plus extensia fișierului definită în setări)
<resource name="editor_close_on_save_title">
Salvați imaginea?
</resource>
<resource name="editor_close_on_clipboard">Doriți să copiați imaginea în clipboard?</resource>
<resource name="editor_close_on_clipboard_title">Copiați imaginea în clipboard?</resource>
<resource name="settings_capture_windows_interactive">
Folosiți metoda interactivă de captură a ferestrei
</resource>

View file

@ -88,6 +88,8 @@ Greenshot поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
<resource name="editor_close">Закрыть</resource>
<resource name="editor_close_on_save">Сохранить снимок экрана?</resource>
<resource name="editor_close_on_save_title">Сохранить изображение?</resource>
<resource name="editor_close_on_clipboard">Вы хотите скопировать изображение в буфер обмена?</resource>
<resource name="editor_close_on_clipboard_title">Скопировать изображение в буфер обмена?</resource>
<resource name="editor_confirm">Подтвердить</resource>
<resource name="editor_copyimagetoclipboard">Копировать изображение в буфер обмена</resource>
<resource name="editor_copypathtoclipboard">Копировать путь в буфер обмена</resource>

View file

@ -75,6 +75,8 @@ Tiež by sme velmi ocenili, keby ste najskôr skontrolovali, či už neexistuje
<resource name="editor_close">Zavrieť</resource>
<resource name="editor_close_on_save">Chcete uložiť snímku?</resource>
<resource name="editor_close_on_save_title">Uložiť obrázok?</resource>
<resource name="editor_close_on_clipboard">Chcete skopírovať obrázok do schránky?</resource>
<resource name="editor_close_on_clipboard_title">Kopírovať obrázok do schránky?</resource>
<resource name="editor_confirm">Potvrdiť</resource>
<resource name="editor_copyimagetoclipboard">Kopírovať obrázok do schránky</resource>
<resource name="editor_copypathtoclipboard">Kopírovať cestu do schránky</resource>

View file

@ -73,6 +73,8 @@ Pred objavo preverite tudi ali je napaka že prijavlja s strani kakšnega drugeg
<resource name="editor_close">Zapri</resource>
<resource name="editor_close_on_save">Ali želite shraniti zajem?</resource>
<resource name="editor_close_on_save_title">Shranim sliko?</resource>
<resource name="editor_close_on_clipboard">Ali želite kopirati sliko v odložišče?</resource>
<resource name="editor_close_on_clipboard_title">Kopirati sliko v odložišče?</resource>
<resource name="editor_confirm">Potrdite</resource>
<resource name="editor_copyimagetoclipboard">Kopiraj sliko na odložišče</resource>
<resource name="editor_copypathtoclipboard">Kopiraj pot na odložišče</resource>

View file

@ -73,6 +73,8 @@
<resource name="editor_close">Затвори</resource>
<resource name="editor_close_on_save">Желите ли да сачувате снимак екрана?</resource>
<resource name="editor_close_on_save_title">Чување слике</resource>
<resource name="editor_close_on_clipboard">Да ли желите да копирате слику у међуспремник?</resource>
<resource name="editor_close_on_clipboard_title">Копирати слику у међуспремник?</resource>
<resource name="editor_confirm">Потврди</resource>
<resource name="editor_copyimagetoclipboard">Умножи слику</resource>
<resource name="editor_copypathtoclipboard">Умножи путању</resource>

View file

@ -88,6 +88,8 @@ Innan du skickar uppskattar vi verkligen om du kontrollerar om felet redan blivi
<resource name="editor_close">Stäng</resource>
<resource name="editor_close_on_save">Vill du spara skärmdumpen?</resource>
<resource name="editor_close_on_save_title">Spara bild?</resource>
<resource name="editor_close_on_clipboard">Vill du kopiera bilden till urklipp?</resource>
<resource name="editor_close_on_clipboard_title">Vill du kopiera bilden till urklipp?</resource>
<resource name="editor_confirm">Godkänn</resource>
<resource name="editor_copyimagetoclipboard">Kopiera bilden till urklipp</resource>
<resource name="editor_copypathtoclipboard">Kopiera sökväg till urklipp</resource>

View file

@ -73,6 +73,8 @@ Ayrıca bu hata için bir izleyici kaydının açılmış olup olmadığını da
<resource name="editor_close">Kapat</resource>
<resource name="editor_close_on_save">Ekran görüntüsünü kaydetmek istiyor musunuz?</resource>
<resource name="editor_close_on_save_title">Görüntü kaydedilsin mi?</resource>
<resource name="editor_close_on_clipboard">Resmi panoya kopyalamak istiyor musunuz?</resource>
<resource name="editor_close_on_clipboard_title">Resim panoya kopyalansın mı?</resource>
<resource name="editor_confirm">Tamam</resource>
<resource name="editor_copyimagetoclipboard">Görüntüyü panoya kopyala</resource>
<resource name="editor_copypathtoclipboard">Yolu panoya kopyala</resource>

View file

@ -87,6 +87,8 @@ Greenshot постачається АБСОЛЮТНО БЕЗ ГАРАНТІЇ.
<resource name="editor_close">Закрити</resource>
<resource name="editor_close_on_save">Зберегти знімок екрану?</resource>
<resource name="editor_close_on_save_title">Зберегти зображення?</resource>
<resource name="editor_close_on_clipboard">Бажаєте скопіювати зображення в буфер обміну?</resource>
<resource name="editor_close_on_clipboard_title">Копіювати зображення в буфер обміну?</resource>
<resource name="editor_confirm">Підтвердити</resource>
<resource name="editor_copyimagetoclipboard">Копіювати зображення у буфер обміну</resource>
<resource name="editor_copypathtoclipboard">Копіювати шлях у буфер обміну</resource>

View file

@ -53,6 +53,8 @@
<resource name="editor_close">Đóng</resource>
<resource name="editor_close_on_save">Lưu ảnh chụp?</resource>
<resource name="editor_close_on_save_title">Xác nhận lưu ảnh</resource>
<resource name="editor_close_on_clipboard">Bạn có muốn sao chép hình ảnh vào khay nhớ tạm?</resource>
<resource name="editor_close_on_clipboard_title">Sao chép hình ảnh vào khay nhớ tạm?</resource>
<resource name="editor_confirm">Kiểm tra</resource>
<resource name="editor_copyimagetoclipboard">Chép ảnh vào clipboard</resource>
<resource name="editor_copypathtoclipboard">Chép đuờng dẫn tới clipboard.</resource>

View file

@ -79,6 +79,8 @@
<resource name="editor_close">关闭</resource>
<resource name="editor_close_on_save">还没有保存到文件,您要保存此图片吗?</resource>
<resource name="editor_close_on_save_title">保存图片</resource>
<resource name="editor_close_on_clipboard">是否要将图像复制到剪贴板?</resource>
<resource name="editor_close_on_clipboard_title">将图像复制到剪贴板?</resource>
<resource name="editor_confirm">确定</resource>
<resource name="editor_copyimagetoclipboard">复制图片到剪贴板</resource>
<resource name="editor_copypathtoclipboard">复制路径到剪贴板</resource>

View file

@ -88,6 +88,8 @@ Greenshot 不對這個程式做任何擔保。這個程式是自由軟體,您
<resource name="editor_close">關閉</resource>
<resource name="editor_close_on_save">您要儲存螢幕擷圖嗎?</resource>
<resource name="editor_close_on_save_title">儲存圖片?</resource>
<resource name="editor_close_on_clipboard">是否要将图像复制到剪贴板?</resource>
<resource name="editor_close_on_clipboard_title">将图像复制到剪贴板?</resource>
<resource name="editor_confirm">確認</resource>
<resource name="editor_copyimagetoclipboard">複製圖片到剪貼簿</resource>
<resource name="editor_copypathtoclipboard">複製路徑到剪貼簿</resource>