Merge pull request #5900 from IAmVisco/master

Add translator site dropdown for OCR window
This commit is contained in:
Jaex 2021-10-30 19:32:17 +03:00 committed by GitHub
commit 640a29b423
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 183 additions and 63 deletions

View file

@ -35,7 +35,9 @@ private void InitializeComponent()
this.lblResult = new System.Windows.Forms.Label();
this.btnStartOCR = new System.Windows.Forms.Button();
this.pbProgress = new System.Windows.Forms.ProgressBar();
this.llGoogleTranslate = new System.Windows.Forms.LinkLabel();
this.btnOpenInBrowser = new System.Windows.Forms.Button();
this.cbDefaultSite = new System.Windows.Forms.ComboBox();
this.lblExternalSite = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// cbLanguages
@ -75,19 +77,33 @@ private void InitializeComponent()
this.pbProgress.Name = "pbProgress";
this.pbProgress.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
//
// llGoogleTranslate
// btnOpenInBrowser
//
resources.ApplyResources(this.llGoogleTranslate, "llGoogleTranslate");
this.llGoogleTranslate.Name = "llGoogleTranslate";
this.llGoogleTranslate.TabStop = true;
this.llGoogleTranslate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llGoogleTranslate_LinkClicked);
resources.ApplyResources(this.btnOpenInBrowser, "btnOpenInBrowser");
this.btnOpenInBrowser.Name = "btnOpenInBrowser";
this.btnOpenInBrowser.UseVisualStyleBackColor = true;
this.btnOpenInBrowser.Click += new System.EventHandler(this.btnOpenInBrowser_Click);
//
// cbDefaultSite
//
this.cbDefaultSite.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbDefaultSite.FormattingEnabled = true;
resources.ApplyResources(this.cbDefaultSite, "cbDefaultSite");
this.cbDefaultSite.Name = "cbDefaultSite";
this.cbDefaultSite.SelectedIndexChanged += new System.EventHandler(this.cbDefaultSite_SelectedIndexChanged);
//
// lblExternalSite
//
resources.ApplyResources(this.lblExternalSite, "lblExternalSite");
this.lblExternalSite.Name = "lblExternalSite";
//
// OCRSpaceForm
//
resources.ApplyResources(this, "$this");
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.llGoogleTranslate);
this.Controls.Add(this.lblExternalSite);
this.Controls.Add(this.cbDefaultSite);
this.Controls.Add(this.btnOpenInBrowser);
this.Controls.Add(this.lblResult);
this.Controls.Add(this.txtResult);
this.Controls.Add(this.lblLanguage);
@ -110,6 +126,8 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblResult;
private System.Windows.Forms.Button btnStartOCR;
private System.Windows.Forms.ProgressBar pbProgress;
private System.Windows.Forms.LinkLabel llGoogleTranslate;
private System.Windows.Forms.Button btnOpenInBrowser;
private System.Windows.Forms.ComboBox cbDefaultSite;
private System.Windows.Forms.Label lblExternalSite;
}
}

View file

@ -26,20 +26,46 @@
using ShareX.HelpersLib;
using ShareX.UploadersLib.OtherServices;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ShareX.UploadersLib
{
public enum OCRSpaceSites
{
[Description("Google Translate")]
GoogleTranslate,
[Description("DeepL Translate")]
DeepL,
[Description("Jisho")]
Jisho,
[Description("ichi.moe")]
Ichi,
[Description("Google")]
Google
}
public partial class OCRSpaceForm : Form
{
public OCRSpaceLanguages Language { get; set; }
public string Result { get; private set; }
private Stream data;
private string fileName;
private OCROptions ocrOptions;
private OCRSpaceLanguages Language { get; set; }
private Dictionary<OCRSpaceSites, string> SiteLinks =
new Dictionary<OCRSpaceSites, string>()
{
{ OCRSpaceSites.GoogleTranslate, "https://translate.google.com/#auto/en/" },
{ OCRSpaceSites.DeepL, "https://www.deepl.com/translator#auto/en/" },
{ OCRSpaceSites.Jisho, "https://jisho.org/search/" },
{ OCRSpaceSites.Ichi, "https://ichi.moe/cl/qr/?q=" },
{ OCRSpaceSites.Google, "https://www.google.com/search?q=" }
};
public OCRSpaceForm(OCROptions ocrOptions)
{
@ -49,6 +75,10 @@ public OCRSpaceForm(OCROptions ocrOptions)
this.ocrOptions = ocrOptions;
cbLanguages.Items.AddRange(Helpers.GetEnumDescriptions<OCRSpaceLanguages>());
cbLanguages.SelectedIndex = (int)ocrOptions.DefaultLanguage;
cbDefaultSite.Items.AddRange(Helpers.GetEnumDescriptions<OCRSpaceSites>());
cbDefaultSite.SelectedIndex = (int)ocrOptions.DefaultSite;
Language = ocrOptions.DefaultLanguage;
txtResult.SupportSelectAll();
}
@ -85,7 +115,7 @@ public async Task StartOCR(Stream stream, string fileName)
{
if (stream != null && stream.Length > 0 && !string.IsNullOrEmpty(fileName))
{
cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = false;
cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = cbDefaultSite.Enabled = false;
pbProgress.Visible = true;
Result = await OCRSpace.DoOCRAsync(Language, stream, fileName);
@ -98,10 +128,9 @@ public async Task StartOCR(Stream stream, string fileName)
if (!IsDisposed)
{
UpdateControls();
cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = true;
cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = cbDefaultSite.Enabled = true;
pbProgress.Visible = false;
txtResult.Focus();
llGoogleTranslate.Enabled = true;
}
}
}
@ -116,10 +145,16 @@ private async void btnStartOCR_Click(object sender, EventArgs e)
await StartOCR(data, fileName);
}
private void llGoogleTranslate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
private void btnOpenInBrowser_Click(object sender, EventArgs e)
{
URLHelpers.OpenURL("https://translate.google.com/#auto/en/" + Uri.EscapeDataString(txtResult.Text));
URLHelpers.OpenURL(SiteLinks[ocrOptions.DefaultSite] + Uri.EscapeDataString(txtResult.Text));
Close();
}
private void cbDefaultSite_SelectedIndexChanged(object sender, EventArgs e)
{
// This doesn't work
ocrOptions.DefaultSite = (OCRSpaceSites)cbDefaultSite.SelectedIndex;
}
}
}

View file

@ -119,10 +119,14 @@
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="cbLanguages.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 24</value>
<value>10, 30</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbLanguages.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="cbLanguages.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 21</value>
<value>189, 24</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbLanguages.TabIndex" type="System.Int32, mscorlib">
@ -138,16 +142,19 @@
<value>$this</value>
</data>
<data name="&gt;&gt;cbLanguages.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="lblLanguage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblLanguage.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 8</value>
<value>6, 10</value>
</data>
<data name="lblLanguage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="lblLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>58, 13</value>
<value>76, 17</value>
</data>
<data name="lblLanguage.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -165,14 +172,16 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblLanguage.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txtResult.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="txtResult.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 72</value>
<value>10, 90</value>
</data>
<data name="txtResult.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="txtResult.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
@ -181,7 +190,7 @@
<value>Both</value>
</data>
<data name="txtResult.Size" type="System.Drawing.Size, System.Drawing">
<value>544, 368</value>
<value>679, 459</value>
</data>
<data name="txtResult.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -196,16 +205,19 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtResult.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="lblResult.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblResult.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 56</value>
<value>6, 70</value>
</data>
<data name="lblResult.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="lblResult.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 13</value>
<value>52, 17</value>
</data>
<data name="lblResult.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -223,13 +235,16 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblResult.ZOrder" xml:space="preserve">
<value>1</value>
<value>3</value>
</data>
<data name="btnStartOCR.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 22</value>
<value>206, 28</value>
</data>
<data name="btnStartOCR.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="btnStartOCR.Size" type="System.Drawing.Size, System.Drawing">
<value>136, 24</value>
<value>158, 30</value>
</data>
<data name="btnStartOCR.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -247,13 +262,19 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnStartOCR.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="pbProgress.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pbProgress.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 22</value>
<value>206, 27</value>
</data>
<data name="pbProgress.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="pbProgress.Size" type="System.Drawing.Size, System.Drawing">
<value>136, 24</value>
<value>158, 30</value>
</data>
<data name="pbProgress.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -271,52 +292,97 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pbProgress.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="llGoogleTranslate.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
<data name="llGoogleTranslate.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="llGoogleTranslate.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="llGoogleTranslate.Location" type="System.Drawing.Point, System.Drawing">
<value>336, 56</value>
</data>
<data name="llGoogleTranslate.Size" type="System.Drawing.Size, System.Drawing">
<value>216, 13</value>
</data>
<data name="llGoogleTranslate.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="llGoogleTranslate.Text" xml:space="preserve">
<value>Open in Google Translate and close window</value>
<data name="btnOpenInBrowser.Location" type="System.Drawing.Point, System.Drawing">
<value>547, 28</value>
</data>
<data name="llGoogleTranslate.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopRight</value>
<data name="btnOpenInBrowser.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="&gt;&gt;llGoogleTranslate.Name" xml:space="preserve">
<value>llGoogleTranslate</value>
<data name="btnOpenInBrowser.Size" type="System.Drawing.Size, System.Drawing">
<value>142, 30</value>
</data>
<data name="&gt;&gt;llGoogleTranslate.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="btnOpenInBrowser.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;llGoogleTranslate.Parent" xml:space="preserve">
<data name="btnOpenInBrowser.Text" xml:space="preserve">
<value>Open in browser</value>
</data>
<data name="&gt;&gt;btnOpenInBrowser.Name" xml:space="preserve">
<value>btnOpenInBrowser</value>
</data>
<data name="&gt;&gt;btnOpenInBrowser.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="&gt;&gt;btnOpenInBrowser.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;llGoogleTranslate.ZOrder" xml:space="preserve">
<data name="&gt;&gt;btnOpenInBrowser.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="cbDefaultSite.Location" type="System.Drawing.Point, System.Drawing">
<value>371, 30</value>
</data>
<data name="cbDefaultSite.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="cbDefaultSite.Size" type="System.Drawing.Size, System.Drawing">
<value>169, 24</value>
</data>
<data name="cbDefaultSite.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;cbDefaultSite.Name" xml:space="preserve">
<value>cbDefaultSite</value>
</data>
<data name="&gt;&gt;cbDefaultSite.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbDefaultSite.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbDefaultSite.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblExternalSite.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblExternalSite.Location" type="System.Drawing.Point, System.Drawing">
<value>370, 10</value>
</data>
<data name="lblExternalSite.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 17</value>
</data>
<data name="lblExternalSite.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="lblExternalSite.Text" xml:space="preserve">
<value>External site:</value>
</data>
<data name="&gt;&gt;lblExternalSite.Name" xml:space="preserve">
<value>lblExternalSite</value>
</data>
<data name="&gt;&gt;lblExternalSite.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblExternalSite.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblExternalSite.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
<value>120, 120</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>560, 448</value>
<value>700, 560</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>

View file

@ -31,6 +31,7 @@ public class OCROptions
{
public bool Permission { get; set; } = false;
public OCRSpaceLanguages DefaultLanguage { get; set; } = OCRSpaceLanguages.eng;
public OCRSpaceSites DefaultSite { get; set; } = OCRSpaceSites.GoogleTranslate;
public bool Silent { get; set; } = false;
public bool ProcessOnLoad { get; set; } = true;
public bool AutoCopy { get; set; } = false;