| API | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| 有道智雲 | 免費額度大、文檔全、支援批量 | 需註冊開發者、簽名算法略繁瑣 | 國內項目、商業化 |
| 百度翻譯開放平台 | 免費額度高、SDK 完善 | 需企業認證提額 | 國內項目 |
| Google Cloud Translation | 質量最高、語種最全 | 需科學上網、按字符收費 | 國際化產品、高質量需求 |
| 微軟 Azure Translator | 企業級、支援自定義術語 | 收費、需 Azure 訂閱 | 企業級應用 |
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using System.Web;
using Newtonsoft.Json;
public class YoudaoTranslator {
private readonly string _appKey;
private readonly string _appSecret;
private static readonly HttpClient _http = new HttpClient();
public YoudaoTranslator(string appKey, string appSecret) {
_appKey = appKey;
_appSecret = appSecret;
}
public async Task<string> TranslateAsync(string text, string from = "en", string to = "zh-CHS") {
var salt = Guid.NewGuid().ToString("N");
var curtime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
var input = text.Length > 20 ? text.Substring(0, 10) + text.Length + text.Substring(text.Length - 10) : text;
var signStr = _appKey + input + salt + curtime + _appSecret;
var sign = ComputeHash(signStr);
var param = new Dictionary<string, string> {
["q"] = text, ["from"] = from, ["to"] = to,
["appKey"] = _appKey, ["salt"] = salt, ["sign"] = sign,
["signType"] = "v3", ["curtime"] = curtime
};
var content = new FormUrlEncodedContent(param);
var resp = await _http.PostAsync("https://openapi.youdao.com/api", content);
var json = await resp.Content.ReadAsStringAsync();
dynamic result = JsonConvert.DeserializeObject(json);
return string.Join("\n", result.translation);
}
private string ComputeHash(string input) {
using (var sha256 = SHA256.Create()) {
var bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
return BitConverter.ToString(bytes).Replace("-", "").ToLower();
}
}
}
// 用法
var translator = new YoudaoTranslator("YOUR_APP_KEY", "YOUR_APP_SECRET");
string chinese = await translator.TranslateAsync("Hello, how are you?");
Console.WriteLine(chinese); // 輸出:你好,你最近怎麼樣?
appKey + input + salt + curtime + appSecret SHA256。async/await,WPF 同理。HttpRequestException、解析 errorCode(101 簽名錯、102 AppKey 無效、401 額度盡)。若無預算,可用 WebView2 加載 https://translate.google.com/?sl=en&tl=zh-CN&text=... 並注入 JS 獲取結果,**但穩定性差、易被風控,不建議生產使用**。
C# 整句翻譯**首選官方翻譯 API(有道/百度/Google/Azure)**,簽名認證、異步調用、錯誤碼處理樣樣俱全。示例代碼可直接集成到 WinForms/WPF/ASP.NET Core,註冊 Key 即用。