Skip to content
This repository has been archived by the owner on Nov 17, 2022. It is now read-only.

Commit

Permalink
翻译支持选择语言
Browse files Browse the repository at this point in the history
  • Loading branch information
NPCDW committed Feb 6, 2022
1 parent 47ab491 commit 7ab28e8
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 10 deletions.
6 changes: 3 additions & 3 deletions WindowsFormsOCR/BaiduAIHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand All @@ -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;
Expand Down
6 changes: 3 additions & 3 deletions WindowsFormsOCR/TencentCloudHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand All @@ -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);
Expand Down
16 changes: 12 additions & 4 deletions WindowsFormsOCR/TranslateAndOCRForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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))
Expand All @@ -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)
{
Expand All @@ -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);
}
}

Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 7ab28e8

Please sign in to comment.