Переклад текстів за допомогою сервісу DeepL’s OpenAPI
7 октября 2024
Нет комментариев
В принципі Ви можете собі підправити та дописати код, аби перекладало якось із вибором потрібної Вам мови. Мене цей код влаштовував, тому викладаю «as is».
Єдине, що треба — це замінити унікальний ключ DeepL-Auth-Key в заголовках авторизації.
|
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
Функция Перевести(ТекстДляПеревода) РезультатОтветаПолзователя = ВвестиЗначение(ТекстДляПеревода); Если РезультатОтветаПолзователя = Неопределено Тогда Возврат; КонецЕсли; Попытка МассивТекстовПереводов = Новый Массив(); МассивТекстовПереводов.Добавить(ТекстДляПеревода); СтруктураДанных = Новый Структура(); СтруктураДанных.Вставить("detected_source_language", "EN"); СтруктураДанных.Вставить("target_lang", "UK"); СтруктураДанных.Вставить("text", МассивТекстовПереводов); //Формирование файла на сервер ЗаписьJSON = Новый ЗаписьJSON; ФормироватьСПереносами = Истина; Если ФормироватьСПереносами Тогда ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб)); Иначе ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, Символы.Таб)); КонецЕсли; НастройкиСериализацииJSON = Новый НастройкиСериализацииJSON; НастройкиСериализацииJSON.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещением; НастройкиСериализацииJSON.ФорматСериализацииДаты = ФорматДатыJSON.ISO; ЗаписатьJSON(ЗаписьJSON, СтруктураДанных, НастройкиСериализацииJSON); ТекстЗапроса = ЗаписьJSON.Закрыть(); // Подключение ssl = Новый ЗащищенноеСоединениеOpenSSL(); СоединениеHTTP = Новый HTTPСоединение("api-free.deepl.com", 443,,,,,ssl); HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.АдресРесурса = "v2/translate"; HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); HTTPЗапрос.Заголовки.Вставить("Authorization", "DeepL-Auth-Key ae0fea7e-ffcf-51e8-a562-680c71f73e80:fx"); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.ANSI, ИспользованиеByteOrderMark.НеИспользовать); РезультатЗапроса = СоединениеHTTP.ОтправитьДляОбработки(HTTPЗапрос); Если РезультатЗапроса.КодСостояния = 200 Тогда Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(РезультатЗапроса.ПолучитьТелоКакСтроку()); СтруктураВозврата = ПрочитатьJSON(Чтение); Если СтруктураВозврата.translations.Количество() <> 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = СтруктураВозврата.translations[0].text; Сообщение.Сообщить(); КонецЕсли; ИначеЕсли РезультатЗапроса.КодСостояния = 403 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = РезультатЗапроса.ПолучитьТелоКакСтроку(); Сообщение.Сообщить(); Иначе Сообщение = Новый СообщениеПользователю; Сообщение.Текст = РезультатЗапроса.ПолучитьТелоКакСтроку(); Сообщение.Сообщить(); КонецЕсли; Исключение Сообщить("Ошибка подключения к серверу! Проверьте интернет-соединение! |"+ОписаниеОшибки()); Возврат; КонецПопытки; КонецФункции |
Категория: 1С Предприятие 8.2

