无码人妻久久一区二区三区蜜桃 ,国模吧无码一区二区三区,被黑人掹躁10次高潮,午夜精品人妻无码一区二区三区

?

google翻譯模板 利用Google進行無長度限制的文本翻譯(無需API,無需Money)

日期:2023-03-11 12:39:36 / 人氣: 740 / 發(fā)布者:成都翻譯公司

在測試時發(fā)現(xiàn),其GET請求中加上一些參數(shù)可以實現(xiàn)翻譯功能,于是乎第一個GET版本的翻譯功能出爐了,其步驟大約分為以下兩步:然而,GET方式跟API有同樣的問題,超出固定長度后就會報請求異常。翻譯者接口,為以后擴展使用請求方式翻譯者實現(xiàn)類附贈大家Google網(wǎng)站翻譯器的使用方法:使用示例,只要將那兩個變量分別加在HTML頁面的Head中和想出現(xiàn)“選擇語言”框的地方即可。

背景介紹

前段時間在做一個類似“一鍵翻譯”的小功能。有必要翻譯多種語言的長文本。本來以為很簡單,結(jié)果發(fā)現(xiàn)沒有完美的方法可以解決。我不得不從網(wǎng)上搜索各種翻譯APIgoogle翻譯模板,并弄清楚如何使用它們,但它們并不完美。各方面的不足大致如下:

在這四大翻譯巨頭的種種限制下,他們不得不另謀出路……

回轉(zhuǎn)

鑒于谷歌翻譯的準(zhǔn)確性,我們決定選擇谷歌作為目標(biāo),但它的價格真的很貴,所以我不得不從它的翻譯頁面上做文章。

測試中發(fā)現(xiàn)在GET請求中加入一些參數(shù)可以實現(xiàn)翻譯功能,所以發(fā)布了第一個GET版本的翻譯功能。步驟大致分為以下兩個步驟:

但是GET方法和API一樣存在問題,超過固定長度會報請求異常。所以只能想其他方法了。

后來嘗試構(gòu)造一個POST請求來訪問,沒想到……成功了……高興了一陣子,就是不敢獨占代碼。

源碼:1. 代碼部分

1)。翻譯接口,用于未來擴展

查看代碼

using System;
namespace Common.Translator
{
    /// 
    /// 語言翻譯者接口
    /// ZhangQingFeng    2012-7-27    add
    /// 
    public interface ITranslator
    {
        /// 
        /// 翻譯文本
        /// ZhangQingFeng    2012-7-27    add
        /// 
        /// 源文本
        /// 源語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 目標(biāo)語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 翻譯結(jié)果
        string Translate(string sourceText, string sourceLanguageCode, string targetLanguageCode);
        /// 
        /// 翻譯文本[自動檢測源語言類型]
        /// ZhangQingFeng    2012-7-27    add
        /// 
        /// 源文本
        /// 目標(biāo)語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 翻譯結(jié)果
        string Translate(string sourceText, string targetLanguageCode);
    }
    
}

2)。Google Post 請求方法翻譯器實現(xiàn)類

查看代碼

using System;
using System.Web;
using System.Net;
using System.Text.RegularExpressions;
using System.Text;
namespace Common.Translator
{
    /// 
    /// google translate翻譯者類[非API,URL訪問Google的方式]
    /// ZhangQingFeng    2012-7-27    add
    /// 
    public class GoogleTranslator : ITranslator
    {
        //private string UrlTemplate = "http://translate.google.com.hk/?langpair={0}&text={1}";    //google翻譯URL模板:GET方式請求
        private string UrlTemplate = "http://translate.google.com.hk/";                            //google翻譯URL模板:POST方式請求
        #region 常用語言編碼
        private string AutoDetectLanguage = "auto"; //google自動判斷來源語系
        #endregion
        /// 
        /// 翻譯文本[自動檢測源語言類型]
        /// ZhangQingFeng    2012-7-27    add
        /// 
        /// 源文本
        /// 目標(biāo)語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 翻譯結(jié)果
        public string Translate(string sourceText, string targetLanguageCode)
        {
            return Translate(sourceText, AutoDetectLanguage, targetLanguageCode);
        }
        /// 
        /// 翻譯文本
        /// ZhangQingFeng    2012-7-27    add
        /// 
        /// 源文本
        /// 源語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 目標(biāo)語言類型代碼,如:en、zh-CN、zh-TW、ru等
        /// 翻譯結(jié)果
        public string Translate(string sourceText, string sourceLanguageCode, string targetLanguageCode)
        {
            if (string.IsNullOrEmpty(sourceText) || Regex.IsMatch(sourceText, @"^s*$"))
            {
                return sourceText;
            }
            string strReturn = string.Empty;
            #region POST方式實現(xiàn),無長度限制
            string url = UrlTemplate;
            //組織請求的數(shù)據(jù)
            string postData = string.Format("langpair={0}&text={1}", HttpUtility.UrlEncode(sourceLanguageCode + "|" + targetLanguageCode), HttpUtility.UrlEncode(sourceText));
            byte[] bytes = Encoding.UTF8.GetBytes(postData);
            WebClient client = new WebClient();
            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            client.Headers.Add("ContentLength", postData.Length.ToString());
            byte[] responseData = client.UploadData(url, "POST", bytes);
            string strResult = Encoding.UTF8.GetString(responseData);    //響應(yīng)結(jié)果 
            #endregion
            #region GET方式實現(xiàn),有長度限制
            //string url = string.Format(UrlTemplate, HttpUtility.UrlEncode(sourceLanguageCode + "|" + targetLanguageCode), HttpUtility.UrlEncode(sourceText));
            //WebClient wc = new WebClient();
            //wc.Encoding = Encoding.UTF8;
            //string strResult = wc.DownloadString(url);                //響應(yīng)結(jié)果            
            #endregion
                        
            //使用的正則表達式:    s+id="?result_box"?s+[^>]*>(.+)s*
s*
s*
string strReg = @"s+id=""?result_box""?s+[^>]*>(.+)s*
s*
s*
"; Match match = Regex.Match(strResult, strReg, RegexOptions.IgnoreCase | RegexOptions.Singleline); if (match.Success) { strReturn = match.Groups[1].Value; //
替換為換行,如為HTML翻譯選項則可去除下行代碼
strReturn = Regex.Replace(strReturn, @"", " ", RegexOptions.Singleline | RegexOptions.IgnoreCase); strReturn = Regex.Replace(strReturn, @"<[^>]*>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase); strReturn = HttpUtility.HtmlDecode(strReturn); } return strReturn; } } }

3)。假工廠類...不要噴,只是簡單的工廠實現(xiàn)

查看代碼

using System;
namespace Common.Translator
{
    /// 
    ///    翻譯者工廠類
    /// 
    public class TranslatorFactory
    {
        /// 
        /// 翻譯者
        /// 
        /// 翻譯者類型,目前只有提供Google翻譯
        /// 翻譯者對象
        public static ITranslator CreateTranslator(string type)
        {
            ITranslator translator = null;
            switch (type)
            {
                case "Microsoft":
                    break;
                case "Youdao":
                    break;
                default:
                    translator = new GoogleTranslator();
                    break;
            }
            return translator;
        }
    }
    
}

4)。測試類別:

查看代碼

using System;
using System.Collections.Generic;
using Common.Translator;
namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            ITranslator translator = TranslatorFactory.CreateTranslator("Google");            
            List<string> lst = new List<string>();
            lst.Add("Soft Leather Case for Apple iPad 1 /2/3  With Ploybag Package");
            lst.Add("Soft Leather Case,Case for Apple iPad ,ipad case ,PU case");
            lst.Add("1X ipad leather case");
            lst.Add("Slim enough to slip into a backpack, bag or briefcase, tough enough to protect your iPad from whatever it may find in there. Slip your iPad into Elan Sleeve then flip the tab closure down to secure it. Then gently pull the tab to slide your iPad out quickly and safely. Stain-resistant synthetic outer shell with smooth micro suede interior.");
            lst.Add(@"

Fit for apple iPad 1/2 /3 leather case

PU leather material with top quality

Three bright colors to meet your demand

Durable and waterproof,practical and favorable

Protect your tablet from scratches, damage and dirt

Unique design allows easy to controls &ports?





"); string strSource=string.Join(" ",lst.ToArray()); string str = translator.Translate(strSource, "zh-CN"); Console.WriteLine(str); Console.WriteLine("完成"); } } }

5)。*后,給出操作的結(jié)果:

PS:該方法的翻譯結(jié)果來自谷歌翻譯頁面,基本相同,但它對HTML的判斷遠不如谷歌API,所以不要感到驚訝,也許你可以在什么時候改進它有時間大家有需要的大俠也可以拿到源碼改一下,呵呵。

2. 以下是使用谷歌網(wǎng)站翻譯器的方法:

1)。代碼

查看代碼

using System;
/// 
///    網(wǎng)站翻譯器[Google提供,整頁翻譯器]
///    ZhangQingFeng    2012-7-27    add
///    說明:
///        如果需要在頁面上使用google語言翻譯,需要做以下兩步:
///        1.將本類中的GoogleTranslateMeta內(nèi)容放入Head中,如:Response.Write(SiteTranslator.GoogleTranslateMeta);
///        2.將本類中的GoogleTranslateControl內(nèi)容放入頁面中需要顯示“選擇語言”的地方
/// 
public class SiteTranslator
{
    public SiteTranslator()
    {
    }
    /// 
    /// Google整頁翻譯Meta標(biāo)簽,放入Head部位
    /// 
    public const string GoogleTranslateMeta = @"";
    /// 
    /// Google整頁翻譯控件,放入需要顯示“選擇語言”框的地方
    /// 
    public const string GoogleTranslateControl = @"
"; }

2)。例如,只需將這兩個變量添加到 HTML 頁面的頭部和您希望“選擇語言”框出現(xiàn)的位置。

PS:這是我第一次寫博客。花園里有很多大鳥。我在你面前展示我的丑陋。剛剛寫了希望大家遇到這樣的問題不要重復(fù)輪子。換小弟的輪子。,也許比那些 API 更好用。更重要的是:無限制、免費,你懂的。^_^

如果代碼對你有用google翻譯模板,希望你能支持。另外,我不知道如何上傳園內(nèi)壓縮包附件,但我只能發(fā)送外部鏈接地址。希望各位前輩給點建議。

代碼包下載地址:

相關(guān)閱讀Relate

  • 法國簽證營業(yè)執(zhí)照翻譯件模板 你與申根簽證只有一條推送的距離
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇稅務(wù)局出口貨物退(免)稅申報管理系統(tǒng)軟件
  • 肄業(yè)證書翻譯模板 復(fù)旦大學(xué)學(xué)生學(xué)業(yè)證明文書管理細則(試行)
  • 四級英語作文模板帶翻譯 大學(xué)英語四級翻譯模擬訓(xùn)練及答案
  • 社會某信用代碼證翻譯模板 js驗證某社會信用代碼,某社會信用代碼 驗證js,js+驗證+社會信用代碼證
  • 美國移民證件翻譯模板 日語簽證翻譯聊聊身份證翻譯模板
  • 翻譯軟件模板 人類史上*實用的的文檔快速翻譯指南
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇出口貨物退(免)稅申報管理服務(wù)平臺
  • 瑞士簽證房產(chǎn)證翻譯件模板 瑞士探親簽證—就讀子女
  • 日語戶口本翻譯模板 戶口本翻譯價格_戶口本翻譯一般多少錢?
  • google翻譯模板 利用Google進行無長度限制的文本翻譯(無需API,無需Money) www.ryuhikb.cn/fymb/7646.html
    ?
    本站部分內(nèi)容和圖片來源于網(wǎng)絡(luò)用戶和讀者投稿,不確定投稿用戶享有完全著作權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果侵犯了您的權(quán)利,請聯(lián)系:chinazxzy@163.com,及時刪除。
    Go To Top 回頂部
    • 掃一掃,微信在線