delphi利用bing翻译API做的多国语言翻译软件
来源:http://www.tudoupe.com时间:2022-03-11
这是老师的插图多语种翻译软件,您可以自动评估您输入的语言 。为了转换 UTF8 字符串,软件使用了 http 连接技术、json 技术和 xml 分辨率技术。这个计划有一些问题。例如,可以通过Beng支持的各种语文守则可以用作未来的指针。如何将中文名称转换为其他语言?请大家给予帮助。

直接上代码:
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,msxml, StdCtrls, ExtCtrls,IniFiles,XMLDoc, xmldom, XMLIntf, msxmldom;
type
TMainForm = class(TForm)
Memo1: TMemo;
Splitter1: TSplitter;
Memo2: TMemo;
Panel1: TPanel;
Button1: TButton;
ComboBox1: TComboBox;
Label1: TLabel;
XMLDocument1: TXMLDocument;
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
langList:THashedStringList;
function Translate(AAppID: string; AText: string; InLanguage: string='en'; OutLanguage: string='zh-CHS'): string;
procedure initParam;
public
{ Public declarations }
end;
const
GETLANGUAGESFORTRANSLATE='
http://api.microsofttranslator.com/v2/Http.svc/GetLanguagesForTranslate?appId=%s';
GETLANGUAGENAMES='
http://api.microsofttranslator.com/v2/Http.svc/GetLanguageNames?appId=%s&locale=%s&languageCodes=%s';
DETECT='
http://api.microsofttranslator.com/V2/http.svc/Detect?appId=%s&text=%s';
TRANSLATESTR= '
http://api.microsofttranslator.com/V2/http.svc/Translate?appId=%s&text=%s&from=%s&to=%s';
APPID= 'C98FDCE95A2FD7BA417F260D43763C40232E****';
var
MainForm: TMainForm;
implementation
{$R *.dfm}
谷歌地址的 UTF8 编码函数字符串到 UTF8
function ToUTF8Encode(str: string): string;
var
b: Byte;
begin
for b in BytesOf(UTF8Encode(str)) do
Result := Format('%s%s%.2x', [Result, '%', b]);
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
initParam;
end;
procedure TMainForm.ComboBox1Change(Sender: TObject);
begin
Button1.Enabled:= (length(trim(memo1.text))>0) and (ComboBox1.ItemIndex>=0);
end;
procedure TMainForm.FormShow(Sender: TObject);
var
I:Integer;
begin
ComboBox1.Items.Clear;
langList:=THashedStringList.Create;
with langList do
begin
“ZH-CHS=可靠的中国人”;
“ZH-CHT=中国代表大会”;
包括('en=English');
(“ar=阿拉伯文”);
bg=保加利亚人;
('ca' =加泰罗尼亚语)
cs=捷克;加上(“cs”=捷克);
添加“da=丹麦”;
nl=dutch; 添加('nl=dutch'); 添加('nl=dutch');
(“et”=爱沙尼亚”;
('Fi=芬兰语');
(fr=法文);
加上“de = 德语”;
el=Greek; 添加 (“ el=Greek ” );
ht=海地人;加上('ht=海地人);
(“他”=希伯来语);
"嗨" = "Hindi" ;
Hu=匈牙利;加上(“Hu=匈牙利”);
“id=印度尼西亚组”;
(“意大利语”);
(“ja=日语”);
(“韩国人”);
('lv'=拉脱维亚');
“它=立陶宛”);
"不=挪威"被添加。
(“pl=波兰”);
“pt=葡萄牙语”);
插入('ro=罗马尼亚');
“ru=俄罗斯”);
添加“sk= slovak” ;
加上“sl=斯洛文尼亚”。
包括(`es'=西班牙语');
添加“ sv=瑞典语” 。
添加('th=泰国');
添加了“ tr=土耳其 ” 。
包括(“ uk=乌克兰” );
"vi = 越南人;"
end;
for I := 0 to langList.Count - 1 do
begin
ComboBox1.Items.Add(langList.ValueFromIndex[i]);
end;
ComboBox1.ItemIndex:=0;
end;
procedure TMainForm.Memo1Change(Sender: TObject);
begin
Button1.Enabled:= (length(trim(memo1.text))>0) and (ComboBox1.ItemIndex>=0);
end;
procedure TMainForm.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
initParam;
end;
function TMainForm.Translate(AAppID, AText, InLanguage,
OutLanguage: string): string;
var
Url: string;
req: IXMLHTTPRequest;
begin
Url := Format(TRANSLATESTR, [AAppID, AText, InLanguage, OutLanguage]);
req := CoXMLHTTP.Create;
req.open('Get', Url, False, EmptyParam, EmptyParam);
req.send(EmptyParam);
XMLDocument1.LoadFromXML( req.responseText);
结果:= XMLDocument1. - 你明白我的意思吗? 文本; / / 删除标签前和标签后
end;
procedure TMainForm.initParam;
var
langFrom: string;
req: IXMLHTTPRequest;
tolang: string;
URL: string;
begin
Url := Format(DETECT, [APPID, ToUTF8Encode(Memo1.Text)]);
req := CoXMLHTTP.Create;
req.open('Get', URL, False, EmptyParam, EmptyParam);
req.send(EmptyParam);
langFrom := req.responseText;
XMLDocument1.LoadFromXML(langFrom);
langFrom := XMLDocument1.DocumentElement.Text;
tolang := langList.Names[ComboBox1.ItemIndex];
memo2.Text := Translate(APPID, ToUTF8Encode(Memo1.Text), langfrom, tolang);
end;end.
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
