From 7ab28e80b7b42b0a6c4c395bdc28fe389df7f4d6 Mon Sep 17 00:00:00 2001 From: NPCDW Date: Sun, 6 Feb 2022 12:44:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=94=AF=E6=8C=81=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WindowsFormsOCR/BaiduAIHelper.cs | 6 +++--- WindowsFormsOCR/TencentCloudHelper.cs | 6 +++--- WindowsFormsOCR/TranslateAndOCRForm.cs | 16 ++++++++++++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/WindowsFormsOCR/BaiduAIHelper.cs b/WindowsFormsOCR/BaiduAIHelper.cs index 41feb1d..4772aef 100644 --- a/WindowsFormsOCR/BaiduAIHelper.cs +++ b/WindowsFormsOCR/BaiduAIHelper.cs @@ -14,7 +14,7 @@ public class BaiduAIHelper private static String translateUrl = "https://fanyi-api.baidu.com/api/trans/vip/translate"; private static String imageTranslateUrl = "https://fanyi-api.baidu.com/api/trans/sdk/picture"; - public static String translate(String text) + public static String translate(String text, String sourceLanguage, String targetLanguage) { try { @@ -23,8 +23,8 @@ public static String translate(String text) String sign = Utils.Md5(signStr); String body = "q=" + HttpUtility.UrlEncode(text, Encoding.UTF8) - + "&from=auto" - + "&to=zh" + + "&from=" + sourceLanguage + + "&to=" + targetLanguage + "&appid=" + GlobalConfig.BaiduAI.app_id + "&salt=" + salt + "&sign=" + sign; diff --git a/WindowsFormsOCR/TencentCloudHelper.cs b/WindowsFormsOCR/TencentCloudHelper.cs index 92a6d4d..0ab20a1 100644 --- a/WindowsFormsOCR/TencentCloudHelper.cs +++ b/WindowsFormsOCR/TencentCloudHelper.cs @@ -16,7 +16,7 @@ namespace WindowsFormsOCR { public class TencentCloudHelper { - public static String translate(String text) + public static String translate(String text, String sourceLanguage, String targetLanguage) { try { @@ -34,8 +34,8 @@ public static String translate(String text) TmtClient client = new TmtClient(cred, "ap-beijing", clientProfile); TextTranslateRequest req = new TextTranslateRequest(); req.SourceText = text; - req.Source = "auto"; - req.Target = "zh"; + req.Source = sourceLanguage; + req.Target = targetLanguage; req.ProjectId = 0; TextTranslateResponse resp = client.TextTranslateSync(req); diff --git a/WindowsFormsOCR/TranslateAndOCRForm.cs b/WindowsFormsOCR/TranslateAndOCRForm.cs index e6440e0..650941b 100644 --- a/WindowsFormsOCR/TranslateAndOCRForm.cs +++ b/WindowsFormsOCR/TranslateAndOCRForm.cs @@ -68,7 +68,7 @@ private void TranslateAndOcrForm_Load(object sender, EventArgs e) } } - public void translate(String translateProvideStr = null) + public void translate(String translateProvideStr = null, String sourceLanguage = null, String targetLanguage = null) { TranslateProvideEnum translateProvide; if (string.IsNullOrWhiteSpace(translateProvideStr)) @@ -79,6 +79,14 @@ public void translate(String translateProvideStr = null) { translateProvide = (TranslateProvideEnum)Enum.Parse(typeof(TranslateProvideEnum), translateProvideStr); } + if (string.IsNullOrWhiteSpace(sourceLanguage)) + { + sourceLanguage = GlobalConfig.Common.defaultTranslateSourceLanguage; + } + if (string.IsNullOrWhiteSpace(targetLanguage)) + { + targetLanguage = GlobalConfig.Common.defaultTranslateTargetLanguage; + } if (translateProvide == TranslateProvideEnum.TencentCloud) { if (string.IsNullOrEmpty(GlobalConfig.TencentCloudTranslate.secret_id) || string.IsNullOrEmpty(GlobalConfig.TencentCloudTranslate.secret_key)) @@ -88,7 +96,7 @@ public void translate(String translateProvideStr = null) } translateTextBox.Text = "翻译中,请稍等。。。"; - translateTextBox.Text = TencentCloudHelper.translate(ocrTextBox.Text); + translateTextBox.Text = TencentCloudHelper.translate(ocrTextBox.Text, sourceLanguage, targetLanguage); } else if (translateProvide == TranslateProvideEnum.BaiduAI) { @@ -99,7 +107,7 @@ public void translate(String translateProvideStr = null) } translateTextBox.Text = "识别中,请稍等。。。"; - translateTextBox.Text = BaiduAIHelper.translate(ocrTextBox.Text); + translateTextBox.Text = BaiduAIHelper.translate(ocrTextBox.Text, sourceLanguage, targetLanguage); } } @@ -178,7 +186,7 @@ public void screenshotTranslate(Bitmap bmp) private void translateButton_Click(object sender, EventArgs e) { - this.translate(defaultTranslateProvideComboBox.Text.Split('#')[1]); + this.translate(defaultTranslateProvideComboBox.Text.Split('#')[1], sourceLanguageComboBox.Text.Split('#')[1], targetLanguageComboBox.Text.Split('#')[1]); } private void defaultOcrProvideComboBox_SelectedIndexChanged(object sender, EventArgs e)