Google の翻訳 API を使用して PHP で前の記事を書いた後、突然、ASP ユーザーが使用できるように ASP クラスを作成したくなりました。それから書き始めたところ、ASP についてかなりのことを忘れていたことに気づきました。例えばテーマ、考え方はC#の記事と全く同じで、ASPの実装方法に変換しただけです。コードを直接見てください。
次のようにコードをコピーします。
クラス GoogleTranslator
subClass_Initialize()
RURI=http://translate.google.com/translate_t?langpair={0}&text={1}
エンドサブ
プライベートオプション_ '
プロパティ取得オプション
オプション=オプション_
終了プロパティ
プロパティ Let Opt(Opt_s)
Opt_=Opt_s
終了プロパティ
るり二等兵
関数 AnalyzeChild(パターン、テキスト、IPos)
Dim regEx、一致、一致
正規表現 = 新しい正規表現を設定します
regEx.IgnoreCase = true
regEx.Global = True
regEx.Pattern = パターン
regEx.Multiline = True
DimRetStr
一致を設定 = regEx.Execute(texts)
If(Matches.Count > 0)Then RetStr= Matches(0).SubMatches(IPos)
AnalyzeChild=RetStr
regEx =Nothing を設定します
終了機能
関数 getHTTPPage(url)
dim objXML
set objXML=server.createobject(MSXML2.XMLHTTP)' 定義
objXML.open GET,url,false'open
objXML.send()の送信
objXML.readystate<>4 の場合
終了関数
終了の場合
getHTTPPage=BytesToBstr(objXML.responseBody)
set objXML=nothing'close
if err.number<>0 then err.Clear
終了機能
関数 BytesToBstr(body)
薄暗いオブジェクトストリーム
set objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.本体の書き込み
objstream.Position = 0
objstream.Type = 2
objstream.Charset = utf-8
'元のデフォルトの UTF-8 エンコーディングを GB2312 エンコーディングに変換します。そうしないと、XMLHTTP を直接使用して中国語の文字を含む Web ページを呼び出すと、コードが文字化けします。
BytesToBstr = objstream.ReadText
objstream.Close
objstream = 何も設定しない
終了機能
パブリック関数 GetText(str)
If(isempty(str)) then 関数を終了
ディム newUrl、Rs
newUrl=Replace(Replace(RURI,{0},Server.URLEncode(Opt)),{1},Server.URLEncode(str))
Rs=getHTTPPage(newUrl)
GetText = AnalyzeChild((<div id=result_box dir=ltr>)([?:/s/S]*?)(</div>),Rs,1)
終了機能
サブクラス_終了
エンドサブ
終了クラス
次に、使用するとき:
次のようにコードをコピーします。
ディムオブジェクト
Obj = 新しい GoogleTranslator を設定します
Obj.Opt=zh-CN|en
response.write(Obj.GetText(us))
Google の製品はいずれも UTF-8 形式であるため、この ASP ファイルは UTF-8 形式で保存され、先頭に追加されることに注意してください。
<%@ LANGUAGE=VBScript コードページ=65001%>
<%明示的なオプション
'... 上記のコードをコピーしてください
それでおしまい。