mirror of https://github.com/ShareX/ShareX.git
Compare commits
9 Commits
496e9bbc28
...
7bccd279a1
Author | SHA1 | Date |
---|---|---|
David Nguyen | 7bccd279a1 | |
Jaex | 94e57208d3 | |
Jaex | 019c9a7dae | |
David Nguyen | 49ea1263e1 | |
David Nguyen | d017019663 | |
David Nguyen | aaf595e139 | |
David Nguyen | f58255d606 | |
David Nguyen | 54aea6b6be | |
David Nguyen | 644601380c |
|
@ -260,24 +260,24 @@ namespace ShareX.HelpersLib
|
|||
return null;
|
||||
}
|
||||
|
||||
private static Bitmap ApplyCutOutEffect(Bitmap bmp, AnchorStyles effectEdge, CutOutEffectType effectType, int effectSize, Color cutOutBackgroundColor)
|
||||
private static Bitmap ApplyCutOutEffect(Bitmap bmp, AnchorStyles effectEdge, CutOutEffectType effectType, int effectSize, Color backgroundColor)
|
||||
{
|
||||
switch (effectType)
|
||||
{
|
||||
case CutOutEffectType.None:
|
||||
return bmp;
|
||||
case CutOutEffectType.ZigZag:
|
||||
return TornEdges(bmp, effectSize, effectSize, effectEdge, false, false, cutOutBackgroundColor);
|
||||
return TornEdges(bmp, effectSize, effectSize, effectEdge, false, false, backgroundColor);
|
||||
case CutOutEffectType.TornEdge:
|
||||
return TornEdges(bmp, effectSize, effectSize * 2, effectEdge, false, true, cutOutBackgroundColor);
|
||||
return TornEdges(bmp, effectSize, effectSize * 2, effectEdge, false, true, backgroundColor);
|
||||
case CutOutEffectType.Wave:
|
||||
return WavyEdges(bmp, effectSize, effectSize * 5, effectEdge, cutOutBackgroundColor);
|
||||
return WavyEdges(bmp, effectSize, effectSize * 5, effectEdge, backgroundColor);
|
||||
}
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public static Bitmap CutOutBitmapMiddle(Bitmap bmp, Orientation orientation, int start, int size, CutOutEffectType effectType, int effectSize, Color cutOutBackgroundColor)
|
||||
public static Bitmap CutOutBitmapMiddle(Bitmap bmp, Orientation orientation, int start, int size, CutOutEffectType effectType, int effectSize, Color backgroundColor)
|
||||
{
|
||||
if (bmp != null && size > 0)
|
||||
{
|
||||
|
@ -290,7 +290,7 @@ namespace ShareX.HelpersLib
|
|||
: new Rectangle(0, 0, bmp.Width, Math.Min(start, bmp.Height));
|
||||
firstPart = CropBitmap(bmp, r);
|
||||
AnchorStyles effectEdge = orientation == Orientation.Horizontal ? AnchorStyles.Right : AnchorStyles.Bottom;
|
||||
firstPart = ApplyCutOutEffect(firstPart, effectEdge, effectType, effectSize, cutOutBackgroundColor);
|
||||
firstPart = ApplyCutOutEffect(firstPart, effectEdge, effectType, effectSize, backgroundColor);
|
||||
}
|
||||
|
||||
int cutDimension = orientation == Orientation.Horizontal ? bmp.Width : bmp.Height;
|
||||
|
@ -302,7 +302,7 @@ namespace ShareX.HelpersLib
|
|||
: new Rectangle(0, end, bmp.Width, bmp.Height - end);
|
||||
secondPart = CropBitmap(bmp, r);
|
||||
AnchorStyles effectEdge = orientation == Orientation.Horizontal ? AnchorStyles.Left : AnchorStyles.Top;
|
||||
secondPart = ApplyCutOutEffect(secondPart, effectEdge, effectType, effectSize, cutOutBackgroundColor);
|
||||
secondPart = ApplyCutOutEffect(secondPart, effectEdge, effectType, effectSize, backgroundColor);
|
||||
}
|
||||
|
||||
if (firstPart != null && secondPart != null)
|
||||
|
@ -1844,7 +1844,12 @@ namespace ShareX.HelpersLib
|
|||
}
|
||||
}
|
||||
|
||||
public static Bitmap WavyEdges(Bitmap bmp, int waveDepth, int waveRange, AnchorStyles sides, Color cutOutBackgroundColor)
|
||||
public static Bitmap WavyEdges(Bitmap bmp, int waveDepth, int waveRange, AnchorStyles sides)
|
||||
{
|
||||
return WavyEdges(bmp, waveDepth, waveRange, sides, Color.Transparent);
|
||||
}
|
||||
|
||||
public static Bitmap WavyEdges(Bitmap bmp, int waveDepth, int waveRange, AnchorStyles sides, Color backgroundColor)
|
||||
{
|
||||
if (waveDepth < 1 || waveRange < 1 || sides == AnchorStyles.None)
|
||||
{
|
||||
|
@ -1928,22 +1933,31 @@ namespace ShareX.HelpersLib
|
|||
}
|
||||
|
||||
Bitmap bmpResult = bmp.CreateEmptyBitmap();
|
||||
|
||||
using (bmp)
|
||||
using (Graphics g = Graphics.FromImage(bmpResult))
|
||||
using (TextureBrush brush = new TextureBrush(bmp))
|
||||
{
|
||||
if (backgroundColor.A > 0)
|
||||
{
|
||||
g.Clear(backgroundColor);
|
||||
}
|
||||
|
||||
g.SetHighQuality();
|
||||
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||
if (cutOutBackgroundColor.A > 0)
|
||||
{
|
||||
g.Clear(cutOutBackgroundColor);
|
||||
}
|
||||
|
||||
g.FillPolygon(brush, points.ToArray());
|
||||
}
|
||||
|
||||
return bmpResult;
|
||||
}
|
||||
|
||||
public static Bitmap TornEdges(Bitmap bmp, int tornDepth, int tornRange, AnchorStyles sides, bool curvedEdges, bool random, Color cutOutBackgroundColor)
|
||||
public static Bitmap TornEdges(Bitmap bmp, int tornDepth, int tornRange, AnchorStyles sides, bool curvedEdges, bool random)
|
||||
{
|
||||
return TornEdges(bmp, tornDepth, tornRange, sides, curvedEdges, random, Color.Transparent);
|
||||
}
|
||||
|
||||
public static Bitmap TornEdges(Bitmap bmp, int tornDepth, int tornRange, AnchorStyles sides, bool curvedEdges, bool random, Color backgroundColor)
|
||||
{
|
||||
if (tornDepth < 1 || tornRange < 1 || sides == AnchorStyles.None)
|
||||
{
|
||||
|
@ -2030,12 +2044,13 @@ namespace ShareX.HelpersLib
|
|||
using (Graphics g = Graphics.FromImage(bmpResult))
|
||||
using (TextureBrush brush = new TextureBrush(bmp))
|
||||
{
|
||||
if (backgroundColor.A > 0)
|
||||
{
|
||||
g.Clear(backgroundColor);
|
||||
}
|
||||
|
||||
g.SetHighQuality();
|
||||
g.PixelOffsetMode = PixelOffsetMode.Half;
|
||||
if (cutOutBackgroundColor.A > 0)
|
||||
{
|
||||
g.Clear(cutOutBackgroundColor);
|
||||
}
|
||||
|
||||
Point[] fillPoints = points.Distinct().ToArray();
|
||||
|
||||
|
|
|
@ -1234,4 +1234,13 @@ Bạn có muốn tải về không?</value>
|
|||
<data name="HotkeyType_OCR" xml:space="preserve">
|
||||
<value>OCR</value>
|
||||
</data>
|
||||
<data name="HotkeyType_ImageBeautifier" xml:space="preserve">
|
||||
<value>Làm đẹp hình ảnh</value>
|
||||
</data>
|
||||
<data name="AfterCaptureTasks_BeautifyImage" xml:space="preserve">
|
||||
<value>Làm đẹp hình ảnh</value>
|
||||
</data>
|
||||
<data name="Check" xml:space="preserve">
|
||||
<value>Kiểm tra</value>
|
||||
</data>
|
||||
</root>
|
|
@ -237,4 +237,7 @@
|
|||
<data name="Total" xml:space="preserve">
|
||||
<value>Tổng</value>
|
||||
</data>
|
||||
<data name="PinToScreen" xml:space="preserve">
|
||||
<value>Ghim vào màn hình</value>
|
||||
</data>
|
||||
</root>
|
|
@ -26,7 +26,6 @@
|
|||
using ShareX.HelpersLib;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Design;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.ImageEffectsLib
|
||||
|
@ -46,9 +45,6 @@ namespace ShareX.ImageEffectsLib
|
|||
[DefaultValue(true)]
|
||||
public bool CurvedEdges { get; set; }
|
||||
|
||||
[DefaultValue(typeof(Color), "Transparent"), Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
|
||||
public Color CutOutBackgroundColor { get; set; }
|
||||
|
||||
public TornEdge()
|
||||
{
|
||||
this.ApplyDefaultPropertyValues();
|
||||
|
@ -56,7 +52,7 @@ namespace ShareX.ImageEffectsLib
|
|||
|
||||
public override Bitmap Apply(Bitmap bmp)
|
||||
{
|
||||
return ImageHelpers.TornEdges(bmp, Depth, Range, Sides, CurvedEdges, true, CutOutBackgroundColor);
|
||||
return ImageHelpers.TornEdges(bmp, Depth, Range, Sides, CurvedEdges, true);
|
||||
}
|
||||
|
||||
protected override string GetSummary()
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
using ShareX.HelpersLib;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Design;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ShareX.ImageEffectsLib
|
||||
|
@ -48,12 +47,9 @@ namespace ShareX.ImageEffectsLib
|
|||
this.ApplyDefaultPropertyValues();
|
||||
}
|
||||
|
||||
[DefaultValue(typeof(Color), "Transparent"), Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
|
||||
public Color CutOutBackgroundColor { get; set; }
|
||||
|
||||
public override Bitmap Apply(Bitmap bmp)
|
||||
{
|
||||
return ImageHelpers.WavyEdges(bmp, Depth, Range, Sides, CutOutBackgroundColor);
|
||||
return ImageHelpers.WavyEdges(bmp, Depth, Range, Sides);
|
||||
}
|
||||
|
||||
protected override string GetSummary()
|
||||
|
|
|
@ -144,4 +144,28 @@
|
|||
<data name="lblVideoQuality.Text" xml:space="preserve">
|
||||
<value>Chất lượng video:</value>
|
||||
</data>
|
||||
<data name="btnInputFilePathBrowse.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name="btnOutputFolderBrowse.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name="lblVideoEncoder.Text" xml:space="preserve">
|
||||
<value>Bộ mã hóa video:</value>
|
||||
</data>
|
||||
<data name="lblVideoQualityValue.Text" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="lblVideoQualityHigher.Text" xml:space="preserve">
|
||||
<value>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -> 99</value>
|
||||
</data>
|
||||
<data name="lblVideoQualityLower.Text" xml:space="preserve">
|
||||
<value>99 <- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</value>
|
||||
</data>
|
||||
<data name="lblVideoQualityBitrateHint.Text" xml:space="preserve">
|
||||
<value>kbit/giây</value>
|
||||
</data>
|
||||
<data name="cbVideoQualityUseBitrate.Text" xml:space="preserve">
|
||||
<value>Sử dụng tốc độ bit</value>
|
||||
</data>
|
||||
</root>
|
|
@ -156,4 +156,10 @@
|
|||
<data name="StopEncoding" xml:space="preserve">
|
||||
<value>Dừng mã hóa</value>
|
||||
</data>
|
||||
<data name="WouldYouLikeToResetOptions" xml:space="preserve">
|
||||
<value>Bạn có muốn đặt lại các tùy chọn không?</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>Xác nhận</value>
|
||||
</data>
|
||||
</root>
|
|
@ -132,4 +132,7 @@
|
|||
<data name="btnOpenImageFile.Text" xml:space="preserve">
|
||||
<value>Mở tệp ảnh...</value>
|
||||
</data>
|
||||
<data name="btnLoadImageFromURL.Text" xml:space="preserve">
|
||||
<value>Tải hình ảnh từ URL</value>
|
||||
</data>
|
||||
</root>
|
|
@ -301,4 +301,43 @@ Nếu không bộ thiết lập không thể theo kịp đoạn ghi hình và t
|
|||
<data name="lblx264BitrateK.Text" xml:space="preserve">
|
||||
<value>kbit/giây</value>
|
||||
</data>
|
||||
<data name="lblVideoEncoder.Text" xml:space="preserve">
|
||||
<value>Bộ mã hóa video:</value>
|
||||
</data>
|
||||
<data name="lblAudioEncoder.Text" xml:space="preserve">
|
||||
<value>Bộ mã hóa âm thanh:</value>
|
||||
</data>
|
||||
<data name="lblAACBitrateK.Text" xml:space="preserve">
|
||||
<value>kbit/giây</value>
|
||||
</data>
|
||||
<data name="lblAACBitrate.Text" xml:space="preserve">
|
||||
<value>Bitrate:</value>
|
||||
</data>
|
||||
<data name="lblOpusBitrateK.Text" xml:space="preserve">
|
||||
<value>kbit/giây</value>
|
||||
</data>
|
||||
<data name="lblOpusBitrate.Text" xml:space="preserve">
|
||||
<value>Bitrate:</value>
|
||||
</data>
|
||||
<data name="tpOpus.Text" xml:space="preserve">
|
||||
<value>tác phẩm</value>
|
||||
</data>
|
||||
<data name="lblNVENCTune.Text" xml:space="preserve">
|
||||
<value>Điều chỉnh:</value>
|
||||
</data>
|
||||
<data name="tpAMF.Text" xml:space="preserve">
|
||||
<value>AMF</value>
|
||||
</data>
|
||||
<data name="lblAMFBitrateK.Text" xml:space="preserve">
|
||||
<value>kbit/giây</value>
|
||||
</data>
|
||||
<data name="lblAMFBitrate.Text" xml:space="preserve">
|
||||
<value>Bitrate:</value>
|
||||
</data>
|
||||
<data name="tpQSV.Text" xml:space="preserve">
|
||||
<value>Đồng bộ hóa nhanh</value>
|
||||
</data>
|
||||
<data name="btnResetOptions.Text" xml:space="preserve">
|
||||
<value>Đặt lại tùy chọn...</value>
|
||||
</data>
|
||||
</root>
|
|
@ -141,4 +141,7 @@
|
|||
<data name="lblTimer.Text" xml:space="preserve">
|
||||
<value>00:00:00</value>
|
||||
</data>
|
||||
<data name="tsmiPause.Text" xml:space="preserve">
|
||||
<value>Dừng</value>
|
||||
</data>
|
||||
</root>
|
|
@ -324,7 +324,7 @@ namespace ShareX.ScreenCaptureLib.Properties {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Cut out background color.
|
||||
/// Looks up a localized string similar to Cut out background color....
|
||||
/// </summary>
|
||||
internal static string CutOutBackgroundColor {
|
||||
get {
|
||||
|
|
|
@ -831,6 +831,6 @@ Would you like to save the changes before closing the image editor?</value>
|
|||
<value>..\Resources\control-record-green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CutOutBackgroundColor" xml:space="preserve">
|
||||
<value>Cut out background color</value>
|
||||
<value>Cut out background color...</value>
|
||||
</data>
|
||||
</root>
|
|
@ -483,4 +483,13 @@
|
|||
<data name="ShapeManager_CreateToolbar_ZoomToFitOnOpen" xml:space="preserve">
|
||||
<value>Thu phóng để vừa mở</value>
|
||||
</data>
|
||||
<data name="WouldYouLikeToResetOptions" xml:space="preserve">
|
||||
<value>Bạn có muốn đặt lại các tùy chọn không?</value>
|
||||
</data>
|
||||
<data name="Confirmation" xml:space="preserve">
|
||||
<value>Xác nhận</value>
|
||||
</data>
|
||||
<data name="ImageURL" xml:space="preserve">
|
||||
<value>URL hình ảnh</value>
|
||||
</data>
|
||||
</root>
|
|
@ -89,7 +89,7 @@ namespace ShareX.UploadersLib.FileUploaders
|
|||
{
|
||||
OAuth2 = new GoogleOAuth2(oauth, this)
|
||||
{
|
||||
Scope = "https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.profile"
|
||||
Scope = "https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/userinfo.profile"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -126,4 +126,7 @@
|
|||
<data name="btnOK.Text" xml:space="preserve">
|
||||
<value>Tweet</value>
|
||||
</data>
|
||||
<data name="lblTweetLength.Text" xml:space="preserve">
|
||||
<value>140</value>
|
||||
</data>
|
||||
</root>
|
|
@ -197,6 +197,7 @@ namespace ShareX.UploadersLib
|
|||
this.cbOneDriveUseDirectLink = new System.Windows.Forms.CheckBox();
|
||||
this.oAuth2OneDrive = new ShareX.UploadersLib.OAuthControl();
|
||||
this.tpGoogleDrive = new System.Windows.Forms.TabPage();
|
||||
this.btnGoogleDriveFolderIDHelp = new System.Windows.Forms.Button();
|
||||
this.oauth2GoogleDrive = new ShareX.UploadersLib.OAuthLoopbackControl();
|
||||
this.cbGoogleDriveSharedDrive = new System.Windows.Forms.ComboBox();
|
||||
this.cbGoogleDriveDirectLink = new System.Windows.Forms.CheckBox();
|
||||
|
@ -1756,6 +1757,7 @@ namespace ShareX.UploadersLib
|
|||
// tpGoogleDrive
|
||||
//
|
||||
this.tpGoogleDrive.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.tpGoogleDrive.Controls.Add(this.btnGoogleDriveFolderIDHelp);
|
||||
this.tpGoogleDrive.Controls.Add(this.oauth2GoogleDrive);
|
||||
this.tpGoogleDrive.Controls.Add(this.cbGoogleDriveSharedDrive);
|
||||
this.tpGoogleDrive.Controls.Add(this.cbGoogleDriveDirectLink);
|
||||
|
@ -1768,6 +1770,13 @@ namespace ShareX.UploadersLib
|
|||
resources.ApplyResources(this.tpGoogleDrive, "tpGoogleDrive");
|
||||
this.tpGoogleDrive.Name = "tpGoogleDrive";
|
||||
//
|
||||
// btnGoogleDriveFolderIDHelp
|
||||
//
|
||||
resources.ApplyResources(this.btnGoogleDriveFolderIDHelp, "btnGoogleDriveFolderIDHelp");
|
||||
this.btnGoogleDriveFolderIDHelp.Name = "btnGoogleDriveFolderIDHelp";
|
||||
this.btnGoogleDriveFolderIDHelp.UseVisualStyleBackColor = true;
|
||||
this.btnGoogleDriveFolderIDHelp.Click += new System.EventHandler(this.btnGoogleDriveFolderIDHelp_Click);
|
||||
//
|
||||
// oauth2GoogleDrive
|
||||
//
|
||||
resources.ApplyResources(this.oauth2GoogleDrive, "oauth2GoogleDrive");
|
||||
|
@ -5495,5 +5504,6 @@ namespace ShareX.UploadersLib
|
|||
private OAuthLoopbackControl oauth2GoogleCloudStorage;
|
||||
private System.Windows.Forms.TextBox txtAzureStorageCacheControl;
|
||||
private System.Windows.Forms.Label lblAzureStorageCacheControl;
|
||||
private System.Windows.Forms.Button btnGoogleDriveFolderIDHelp;
|
||||
}
|
||||
}
|
|
@ -385,22 +385,25 @@ namespace ShareX.UploadersLib
|
|||
#region Google Drive
|
||||
|
||||
oauth2GoogleDrive.UpdateStatus(Config.GoogleDriveOAuth2Info, Config.GoogleDriveUserInfo);
|
||||
btnGoogleDriveRefreshFolders.Enabled = oauth2GoogleDrive.Connected;
|
||||
//btnGoogleDriveRefreshFolders.Enabled = oauth2GoogleDrive.Connected;
|
||||
|
||||
cbGoogleDriveIsPublic.Checked = Config.GoogleDriveIsPublic;
|
||||
cbGoogleDriveDirectLink.Checked = Config.GoogleDriveDirectLink;
|
||||
|
||||
/*
|
||||
cbGoogleDriveSharedDrive.Items.Clear();
|
||||
cbGoogleDriveSharedDrive.Items.Add(GoogleDrive.MyDrive);
|
||||
if (Config.GoogleDriveSelectedDrive?.id != GoogleDrive.MyDrive.id)
|
||||
{
|
||||
cbGoogleDriveSharedDrive.Items.Add(Config.GoogleDriveSelectedDrive);
|
||||
}
|
||||
*/
|
||||
|
||||
cbGoogleDriveUseFolder.Checked = Config.GoogleDriveUseFolder;
|
||||
txtGoogleDriveFolderID.Enabled = Config.GoogleDriveUseFolder;
|
||||
btnGoogleDriveFolderIDHelp.Enabled = Config.GoogleDriveUseFolder;
|
||||
txtGoogleDriveFolderID.Text = Config.GoogleDriveFolderID;
|
||||
GoogleDriveSelectConfigDrive();
|
||||
//GoogleDriveSelectConfigDrive();
|
||||
|
||||
#endregion Google Drive
|
||||
|
||||
|
@ -1679,7 +1682,7 @@ namespace ShareX.UploadersLib
|
|||
}
|
||||
|
||||
oauth2GoogleDrive.UpdateStatus(Config.GoogleDriveOAuth2Info, Config.GoogleDriveUserInfo);
|
||||
btnGoogleDriveRefreshFolders.Enabled = oauth2GoogleDrive.Connected;
|
||||
//btnGoogleDriveRefreshFolders.Enabled = oauth2GoogleDrive.Connected;
|
||||
|
||||
this.ForceActivate();
|
||||
}
|
||||
|
@ -1704,6 +1707,7 @@ namespace ShareX.UploadersLib
|
|||
{
|
||||
Config.GoogleDriveUseFolder = cbGoogleDriveUseFolder.Checked;
|
||||
txtGoogleDriveFolderID.Enabled = Config.GoogleDriveUseFolder;
|
||||
btnGoogleDriveFolderIDHelp.Enabled = Config.GoogleDriveUseFolder;
|
||||
}
|
||||
|
||||
private void txtGoogleDriveFolderID_TextChanged(object sender, EventArgs e)
|
||||
|
@ -1711,6 +1715,14 @@ namespace ShareX.UploadersLib
|
|||
Config.GoogleDriveFolderID = txtGoogleDriveFolderID.Text;
|
||||
}
|
||||
|
||||
private void btnGoogleDriveFolderIDHelp_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show(@"Unfortunately, Google has forced us to use a more restrictive API scope, which does not allow us to see files or folders anymore. Because of this, we cannot provide folder listing and selection anymore.
|
||||
|
||||
However, there is a workaround. You can navigate to the Google Drive website in your browser, open the folder you want to upload to, and then copy the folder ID from the browser's address bar to here.",
|
||||
"ShareX - Google Drive", MessageBoxButtons.OK, MessageBoxIcon.Question);
|
||||
}
|
||||
|
||||
private void btnGoogleDriveRefreshFolders_Click(object sender, EventArgs e)
|
||||
{
|
||||
GoogleDriveRefreshFolders();
|
||||
|
|
|
@ -459,7 +459,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauthTwitter</value>
|
||||
</data>
|
||||
<data name=">>oauthTwitter.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauthTwitter.Parent" xml:space="preserve">
|
||||
<value>tpTwitter</value>
|
||||
|
@ -714,7 +714,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauth2Bitly</value>
|
||||
</data>
|
||||
<data name=">>oauth2Bitly.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2Bitly.Parent" xml:space="preserve">
|
||||
<value>tpBitly</value>
|
||||
|
@ -2349,7 +2349,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>eiFTP</value>
|
||||
</data>
|
||||
<data name=">>eiFTP.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.ExportImportControl, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.ExportImportControl, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>eiFTP.Parent" xml:space="preserve">
|
||||
<value>gbFTPAccount</value>
|
||||
|
@ -3555,7 +3555,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauth2Dropbox</value>
|
||||
</data>
|
||||
<data name=">>oauth2Dropbox.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2Dropbox.Parent" xml:space="preserve">
|
||||
<value>tpDropbox</value>
|
||||
|
@ -3714,7 +3714,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oAuth2OneDrive</value>
|
||||
</data>
|
||||
<data name=">>oAuth2OneDrive.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oAuth2OneDrive.Parent" xml:space="preserve">
|
||||
<value>tpOneDrive</value>
|
||||
|
@ -3723,13 +3723,13 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>4</value>
|
||||
</data>
|
||||
<data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 58</value>
|
||||
<value>4, 220</value>
|
||||
</data>
|
||||
<data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>803, 507</value>
|
||||
<value>178, 0</value>
|
||||
</data>
|
||||
<data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
|
@ -3749,6 +3749,30 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<data name=">>tpOneDrive.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveFolderIDHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>424, 174</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveFolderIDHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>24, 24</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveFolderIDHelp.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveFolderIDHelp.Text" xml:space="preserve">
|
||||
<value>?</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveFolderIDHelp.Name" xml:space="preserve">
|
||||
<value>btnGoogleDriveFolderIDHelp</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveFolderIDHelp.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveFolderIDHelp.Parent" xml:space="preserve">
|
||||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveFolderIDHelp.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="oauth2GoogleDrive.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
|
@ -3762,22 +3786,25 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauth2GoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>oauth2GoogleDrive.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2GoogleDrive.Parent" xml:space="preserve">
|
||||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>oauth2GoogleDrive.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveSharedDrive.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 136</value>
|
||||
<value>16, 208</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveSharedDrive.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>256, 21</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveSharedDrive.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveSharedDrive.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveSharedDrive.Name" xml:space="preserve">
|
||||
<value>cbGoogleDriveSharedDrive</value>
|
||||
|
@ -3789,7 +3816,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveSharedDrive.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveDirectLink.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
|
@ -3798,7 +3825,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveDirectLink.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 111</value>
|
||||
<value>16, 112</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveDirectLink.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>93, 17</value>
|
||||
|
@ -3819,7 +3846,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveDirectLink.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveUseFolder.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
|
@ -3828,13 +3855,13 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveUseFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 167</value>
|
||||
<value>16, 136</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveUseFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>165, 17</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveUseFolder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveUseFolder.Text" xml:space="preserve">
|
||||
<value>Upload files to selected folder</value>
|
||||
|
@ -3849,16 +3876,16 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveUseFolder.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="txtGoogleDriveFolderID.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 208</value>
|
||||
<value>16, 176</value>
|
||||
</data>
|
||||
<data name="txtGoogleDriveFolderID.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>432, 20</value>
|
||||
<value>400, 20</value>
|
||||
</data>
|
||||
<data name="txtGoogleDriveFolderID.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>txtGoogleDriveFolderID.Name" xml:space="preserve">
|
||||
<value>txtGoogleDriveFolderID</value>
|
||||
|
@ -3870,7 +3897,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>txtGoogleDriveFolderID.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="lblGoogleDriveFolderID.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
|
@ -3879,13 +3906,13 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="lblGoogleDriveFolderID.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>13, 191</value>
|
||||
<value>13, 160</value>
|
||||
</data>
|
||||
<data name="lblGoogleDriveFolderID.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>53, 13</value>
|
||||
</data>
|
||||
<data name="lblGoogleDriveFolderID.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="lblGoogleDriveFolderID.Text" xml:space="preserve">
|
||||
<value>Folder ID:</value>
|
||||
|
@ -3900,7 +3927,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>lblGoogleDriveFolderID.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="chGoogleDriveTitle.Text" xml:space="preserve">
|
||||
<value>Title</value>
|
||||
|
@ -3915,25 +3942,28 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>228</value>
|
||||
</data>
|
||||
<data name="lvGoogleDriveFoldersList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 232</value>
|
||||
<value>16, 240</value>
|
||||
</data>
|
||||
<data name="lvGoogleDriveFoldersList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>432, 296</value>
|
||||
</data>
|
||||
<data name="lvGoogleDriveFoldersList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="lvGoogleDriveFoldersList.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>lvGoogleDriveFoldersList.Name" xml:space="preserve">
|
||||
<value>lvGoogleDriveFoldersList</value>
|
||||
</data>
|
||||
<data name=">>lvGoogleDriveFoldersList.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>lvGoogleDriveFoldersList.Parent" xml:space="preserve">
|
||||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>lvGoogleDriveFoldersList.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
|
@ -3942,17 +3972,20 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>280, 135</value>
|
||||
<value>280, 208</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>168, 23</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.Text" xml:space="preserve">
|
||||
<value>Refresh folders list</value>
|
||||
</data>
|
||||
<data name="btnGoogleDriveRefreshFolders.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveRefreshFolders.Name" xml:space="preserve">
|
||||
<value>btnGoogleDriveRefreshFolders</value>
|
||||
</data>
|
||||
|
@ -3963,7 +3996,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>btnGoogleDriveRefreshFolders.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveIsPublic.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
|
@ -3975,13 +4008,13 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>16, 88</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveIsPublic.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>106, 17</value>
|
||||
<value>90, 17</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveIsPublic.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="cbGoogleDriveIsPublic.Text" xml:space="preserve">
|
||||
<value>Is public upload?</value>
|
||||
<value>Public upload</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveIsPublic.Name" xml:space="preserve">
|
||||
<value>cbGoogleDriveIsPublic</value>
|
||||
|
@ -3993,16 +4026,16 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>tpGoogleDrive</value>
|
||||
</data>
|
||||
<data name=">>cbGoogleDriveIsPublic.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="tpGoogleDrive.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 220</value>
|
||||
<value>4, 58</value>
|
||||
</data>
|
||||
<data name="tpGoogleDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="tpGoogleDrive.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>178, 0</value>
|
||||
<value>803, 507</value>
|
||||
</data>
|
||||
<data name="tpGoogleDrive.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
|
@ -4392,7 +4425,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>lvBoxFolders</value>
|
||||
</data>
|
||||
<data name=">>lvBoxFolders.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>lvBoxFolders.Parent" xml:space="preserve">
|
||||
<value>tpBox</value>
|
||||
|
@ -4473,7 +4506,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauth2Box</value>
|
||||
</data>
|
||||
<data name=">>oauth2Box.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2Box.Parent" xml:space="preserve">
|
||||
<value>tpBox</value>
|
||||
|
@ -5352,7 +5385,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oauth2GoogleCloudStorage</value>
|
||||
</data>
|
||||
<data name=">>oauth2GoogleCloudStorage.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2GoogleCloudStorage.Parent" xml:space="preserve">
|
||||
<value>tpGoogleCloudStorage</value>
|
||||
|
@ -7824,7 +7857,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>atcSendSpaceAccountType</value>
|
||||
</data>
|
||||
<data name=">>atcSendSpaceAccountType.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>atcSendSpaceAccountType.Parent" xml:space="preserve">
|
||||
<value>tpSendSpace</value>
|
||||
|
@ -8193,7 +8226,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>oAuthJira</value>
|
||||
</data>
|
||||
<data name=">>oAuthJira.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oAuthJira.Parent" xml:space="preserve">
|
||||
<value>tpJira</value>
|
||||
|
@ -8772,7 +8805,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
|
|||
<value>lvSeafileLibraries</value>
|
||||
</data>
|
||||
<data name=">>lvSeafileLibraries.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>lvSeafileLibraries.Parent" xml:space="preserve">
|
||||
<value>tpSeafile</value>
|
||||
|
@ -10531,7 +10564,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>oauth2YouTube</value>
|
||||
</data>
|
||||
<data name=">>oauth2YouTube.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2YouTube.Parent" xml:space="preserve">
|
||||
<value>tpYouTube</value>
|
||||
|
@ -12265,7 +12298,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>oAuth2Gist</value>
|
||||
</data>
|
||||
<data name=">>oAuth2Gist.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oAuth2Gist.Parent" xml:space="preserve">
|
||||
<value>tpGist</value>
|
||||
|
@ -12904,7 +12937,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>atcImgurAccountType</value>
|
||||
</data>
|
||||
<data name=">>atcImgurAccountType.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>atcImgurAccountType.Parent" xml:space="preserve">
|
||||
<value>tpImgur</value>
|
||||
|
@ -12925,7 +12958,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>oauth2Imgur</value>
|
||||
</data>
|
||||
<data name=">>oauth2Imgur.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2Imgur.Parent" xml:space="preserve">
|
||||
<value>tpImgur</value>
|
||||
|
@ -12961,7 +12994,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>lvImgurAlbumList</value>
|
||||
</data>
|
||||
<data name=">>lvImgurAlbumList.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>lvImgurAlbumList.Parent" xml:space="preserve">
|
||||
<value>tpImgur</value>
|
||||
|
@ -13360,7 +13393,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>oauthFlickr</value>
|
||||
</data>
|
||||
<data name=">>oauthFlickr.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauthFlickr.Parent" xml:space="preserve">
|
||||
<value>tpFlickr</value>
|
||||
|
@ -13897,7 +13930,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>oauth2GooglePhotos</value>
|
||||
</data>
|
||||
<data name=">>oauth2GooglePhotos.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.OAuthLoopbackControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>oauth2GooglePhotos.Parent" xml:space="preserve">
|
||||
<value>tpGooglePhotos</value>
|
||||
|
@ -14557,7 +14590,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>tttvMain</value>
|
||||
</data>
|
||||
<data name=">>tttvMain.Type" xml:space="preserve">
|
||||
<value>ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>tttvMain.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
|
@ -14578,7 +14611,7 @@ Using an encrypted library disables sharing.</value>
|
|||
<value>actRapidShareAccountType</value>
|
||||
</data>
|
||||
<data name=">>actRapidShareAccountType.Type" xml:space="preserve">
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=16.0.3.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
|
|
|
@ -1287,4 +1287,13 @@ Sử dụng thư viện được mã hóa sẽ vô hiệu hóa chia sẻ.</value
|
|||
<data name="cbOneDriveUseDirectLink.Text" xml:space="preserve">
|
||||
<value>Dùng liên kết trực tiếp</value>
|
||||
</data>
|
||||
<data name="tpZeroWidthShortener.Text" xml:space="preserve">
|
||||
<value>Bộ rút ngắn chiều rộng bằng không</value>
|
||||
</data>
|
||||
<data name="lblAzureStorageCacheControl.Text" xml:space="preserve">
|
||||
<value>Tiêu đề kiểm soát bộ đệm:</value>
|
||||
</data>
|
||||
<data name="llYouTubePermissionsLink.Text" xml:space="preserve">
|
||||
<value>https://myaccount.google.com/permissions</value>
|
||||
</data>
|
||||
</root>
|
|
@ -280,4 +280,10 @@ Các thư mục đã tạo:</value>
|
|||
<data name="URL" xml:space="preserve">
|
||||
<value>URL</value>
|
||||
</data>
|
||||
<data name="Disconnect" xml:space="preserve">
|
||||
<value>Xóa ủy quyền</value>
|
||||
</data>
|
||||
<data name="Connect" xml:space="preserve">
|
||||
<value>Bước 1: Mở trang ủy quyền...</value>
|
||||
</data>
|
||||
</root>
|
|
@ -85,7 +85,7 @@ McoreD: {Links.McoreD}
|
|||
{Resources.AboutForm_AboutForm_Language_es}: https://github.com/ovnisoftware
|
||||
{Resources.AboutForm_AboutForm_Language_nl_NL}: https://github.com/canihavesomecoffee
|
||||
{Resources.AboutForm_AboutForm_Language_pt_BR}: https://github.com/RockyTV & https://github.com/athosbr99
|
||||
{Resources.AboutForm_AboutForm_Language_vi_VN}: https://github.com/thanhpd
|
||||
{Resources.AboutForm_AboutForm_Language_vi_VN}: https://github.com/hoangsvit & https://github.com/thanhpd
|
||||
{Resources.AboutForm_AboutForm_Language_ru}: https://github.com/L1Q
|
||||
{Resources.AboutForm_AboutForm_Language_zh_TW}: https://github.com/alantsai
|
||||
{Resources.AboutForm_AboutForm_Language_it_IT}: https://github.com/pjammo
|
||||
|
|
|
@ -132,4 +132,7 @@
|
|||
<data name="lblBuild.Text" xml:space="preserve">
|
||||
<value>Phiên bản</value>
|
||||
</data>
|
||||
<data name="lblProductName.Text" xml:space="preserve">
|
||||
<value>ShareX</value>
|
||||
</data>
|
||||
</root>
|
|
@ -438,4 +438,10 @@
|
|||
<data name="tpSettings.Text" xml:space="preserve">
|
||||
<value>Cài đặt</value>
|
||||
</data>
|
||||
<data name="cbAutoCheckUpdate.Text" xml:space="preserve">
|
||||
<value>Tự động kiểm tra cập nhật</value>
|
||||
</data>
|
||||
<data name="lblThumbnailViewThumbnailSizeX.Text" xml:space="preserve">
|
||||
<value>x</value>
|
||||
</data>
|
||||
</root>
|
|
@ -132,4 +132,16 @@
|
|||
<data name="btnRefresh.Text" xml:space="preserve">
|
||||
<value>Làm mới</value>
|
||||
</data>
|
||||
<data name="cbTopMost.Text" xml:space="preserve">
|
||||
<value>Top nhất</value>
|
||||
</data>
|
||||
<data name="lblOpacity.Text" xml:space="preserve">
|
||||
<value>Độ mờ:</value>
|
||||
</data>
|
||||
<data name="lblOpacityTip.Text" xml:space="preserve">
|
||||
<value>%</value>
|
||||
</data>
|
||||
<data name="mbWindowList.Text" xml:space="preserve">
|
||||
<value>Danh sách cửa sổ</value>
|
||||
</data>
|
||||
</root>
|
|
@ -789,4 +789,37 @@
|
|||
<data name="tsmiTrayOCR.Text" xml:space="preserve">
|
||||
<value>OCR...</value>
|
||||
</data>
|
||||
<data name="tsmiImageBeautifier.Text" xml:space="preserve">
|
||||
<value>Làm đẹp hình ảnh...</value>
|
||||
</data>
|
||||
<data name="tsmiHashChecker.Text" xml:space="preserve">
|
||||
<value>Trình kiểm tra hàm băm...</value>
|
||||
</data>
|
||||
<data name="tsbTwitter.Text" xml:space="preserve">
|
||||
<value>Twitter...</value>
|
||||
</data>
|
||||
<data name="tsbDiscord.Text" xml:space="preserve">
|
||||
<value>Bất hòa...</value>
|
||||
</data>
|
||||
<data name="tsmiBeautifyImage.Text" xml:space="preserve">
|
||||
<value>Làm đẹp hình ảnh...</value>
|
||||
</data>
|
||||
<data name="tsmiPinSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
|
||||
<value>Ctrl+P</value>
|
||||
</data>
|
||||
<data name="niTray.Text" xml:space="preserve">
|
||||
<value>ShareX</value>
|
||||
</data>
|
||||
<data name="tsmiTrayImageBeautifier.Text" xml:space="preserve">
|
||||
<value>Làm đẹp hình ảnh...</value>
|
||||
</data>
|
||||
<data name="tsmiTrayHashChecker.Text" xml:space="preserve">
|
||||
<value>Trình kiểm tra hàm băm...</value>
|
||||
</data>
|
||||
<data name="cHotkey.HeaderText" xml:space="preserve">
|
||||
<value>Phím tắt</value>
|
||||
</data>
|
||||
<data name="cDescription.HeaderText" xml:space="preserve">
|
||||
<value>Mô tả</value>
|
||||
</data>
|
||||
</root>
|
|
@ -147,4 +147,31 @@
|
|||
<data name="lblDecodeResult.Text" xml:space="preserve">
|
||||
<value>Kết quả:</value>
|
||||
</data>
|
||||
<data name="lblQRCodeSizeHint.Text" xml:space="preserve">
|
||||
<value>px</value>
|
||||
</data>
|
||||
<data name="lblQRCodeSize.Text" xml:space="preserve">
|
||||
<value>Kích thước mã QR:</value>
|
||||
</data>
|
||||
<data name="lblQRCode.Text" xml:space="preserve">
|
||||
<value>Mã QR:</value>
|
||||
</data>
|
||||
<data name="lblText.Text" xml:space="preserve">
|
||||
<value>Văn bản:</value>
|
||||
</data>
|
||||
<data name="btnCopyImage.Text" xml:space="preserve">
|
||||
<value>Sao chép ảnh</value>
|
||||
</data>
|
||||
<data name="btnSaveImage.Text" xml:space="preserve">
|
||||
<value>Lưu ảnh...</value>
|
||||
</data>
|
||||
<data name="btnUploadImage.Text" xml:space="preserve">
|
||||
<value>Tải lên ảnh</value>
|
||||
</data>
|
||||
<data name="btnScanQRCodeFromScreen.Text" xml:space="preserve">
|
||||
<value>Quét mã QR từ màn hình...</value>
|
||||
</data>
|
||||
<data name="btnScanQRCodeFromImageFile.Text" xml:space="preserve">
|
||||
<value>Quét mã QR từ file hình ảnh...</value>
|
||||
</data>
|
||||
</root>
|
|
@ -660,4 +660,19 @@
|
|||
<data name="tpNotifications.Text" xml:space="preserve">
|
||||
<value>Thông báo</value>
|
||||
</data>
|
||||
<data name="btnCustomErrorSoundPath.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name="btnCustomTaskCompletedSoundPath.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name="btnCustomCaptureSoundPath.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name="lblToastWindowSizeX.Text" xml:space="preserve">
|
||||
<value>x</value>
|
||||
</data>
|
||||
<data name="cbUseRandomImageEffect.Text" xml:space="preserve">
|
||||
<value>Sử dụng hiệu ứng hình ảnh ngẫu nhiên</value>
|
||||
</data>
|
||||
</root>
|
|
@ -141,4 +141,7 @@
|
|||
<data name="cbMoveToScreenshotsFolder.Text" xml:space="preserve">
|
||||
<value>Di chuyển tệp vào thư mục ảnh chụp màn hình</value>
|
||||
</data>
|
||||
<data name="btnPathBrowse.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
</root>
|
|
@ -637,4 +637,19 @@ Sau đó, bạn có thể tắt nó từ menu "Sau khi chụp tác vụ".</value
|
|||
<data name="YourSystemAdminDisabledTheUploadFeature" xml:space="preserve">
|
||||
<value>Quản trị viên hệ thống của bạn đã tắt tính năng tải lên.</value>
|
||||
</data>
|
||||
<data name="AboutForm_AboutForm_Language_he-IL" xml:space="preserve">
|
||||
<value>tiếng Do Thái</value>
|
||||
</data>
|
||||
<data name="ShareXCannotBeClosedWhileScreenRecordingIsActive" xml:space="preserve">
|
||||
<value>Không thể đóng ShareX khi tính năng ghi màn hình đang hoạt động.</value>
|
||||
</data>
|
||||
<data name="ShareXIsUpToDate" xml:space="preserve">
|
||||
<value>ShareX đã được cập nhật!</value>
|
||||
</data>
|
||||
<data name="ClipboardUpload" xml:space="preserve">
|
||||
<value>Tải lên từ vùng nhớ tạm</value>
|
||||
</data>
|
||||
<data name="WouldYouLikeToRetryClipboardUpload" xml:space="preserve">
|
||||
<value>Bạn có muốn thử tải lên bảng nhớ tạm lần nữa không?</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in New Issue