-
Notifications
You must be signed in to change notification settings - Fork 0
/
Translate_VI_EN_ByGoogle.bsl
42 lines (34 loc) · 1.34 KB
/
Translate_VI_EN_ByGoogle.bsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//
// the idea - https://ctrlq.org/code/19909-google-translate-api
//
Function Translate_VI_EN_ByGoogle(VietnameseText) Export
Try
SSL = New OpenSSLSecureConnection(Undefined, Undefined);
Connection = New HTTPConnection("script.google.com",,,,,,SSL);
Request = New HTTPRequest("/macros/s/<your gdocs macros ID>/exec?q=" + VietnameseText); // you shoul obtain the Id of your gdocs macros
Res = Connection.Get(Request);
If Res.StatusCode = 200 Then
Json = New JSONReader();
Json.SetString(Res.GetBodyAsString("UTF-8"));
Result = ReadJSON(Json);
If TypeOf(Result) = Type("Structure") Then
Return TrimAll(Result.translatedText);
EndIf;
ElsIf Res.StatusCode = 302 Then
URI = СтруктураURI(Res.Заголовки.Получить("Location"));
Соединение = Новый HTTPСоединение(URI.Хост, URI.Порт,,,,,SSL);
Запрос = Новый HTTPЗапрос(URI.ПутьНаСервере);
Res = Соединение.Получить(Запрос);
If Res.StatusCode = 200 Then
Json = New JSONReader();
Json.SetString(Res.GetBodyAsString("UTF-8"));
Result = ReadJSON(Json);
If TypeOf(Result) = Type("Structure") Then
Return TrimAll(Result.translatedText);
EndIf;
EndIf;
EndIf;
Except
EndTry;
Return "";
EndFunction