Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Переводчик Google для 1С 8.1          
Vofka Подменю пользователя
сообщение 09.08.11, 12:43
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Перевод слов и фраз на другие языки Google Переводчиком (GoogleTranslate API). Без ВК. Сейчас работает без ключа API.

Код:

Функция ПреобразоватьСтрокуОтветаПереводчика (Строка, Ошибка=Ложь, КодОшибки=0, СтрокаОшибки = "") Экспорт
    ТекСтрока     = Строка;
    ТекСтрока     = СтрЗаменить (ТекСтрока, "{""responseData"": {","");
    ТекСтрока     = Лев (ТекСтрока, СтрДлина (ТекСтрока)-1);
    ТекСтроки     = СтрЗаменить (ТекСтрока, ",", Символы.ПС);
    ТекПеревод     = СтрПолучитьСтроку (ТекСтроки, 1);
    ТекПеревод     = СтрЗаменить (ТекПеревод, """translatedText"":""", "");
    ТекПеревод     = Лев (ТекПеревод, СтрДлина (ТекПеревод)-2);
    Возврат ТекПеревод;
КонецФункции

Функция ТекстДляУРЛ (Текст) Экспорт
    хВСХ             = Новый COMОбъект ("MSScriptControl.ScriptControl");
    хВСХ.language     = "javascript";
    Результат         = хВСХ.Eval("escape('"+Текст+"')");
    Возврат Результат;
КонецФункции

Функция ПеревестиТекст (ИсходныйТекст, ЯзыкИсходный, ЯзыкПеревода, Ошибка = Ложь, КодОшибки = 0, ТекстОшибки = "") Экспорт
    Если Не ЗначениеЗаполнено (ИсходныйТекст) Тогда
        Возврат "";
    КонецЕсли;
    Результат = "";
    УРЛСайта = "ajax.googleapis.com";

//    УРЛ = "https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=<%СЛОВО%>&langpair=<%ЯЗЫКИСТОЧНИК%>|<%ЯЗЫКПЕРЕВОДА%>";
    УРЛ = "/ajax/services/language/translate?v=1.0&q=<%СЛОВО%>&langpair=<%ЯЗЫКИСТОЧНИК%>|<%ЯЗЫКПЕРЕВОДА%>";
    ТекИсходныйТекст = ТекстДляУРЛ (ИсходныйТекст);
    УРЛ = СтрЗаменить (УРЛ, "<%СЛОВО%>", ТекИсходныйТекст);
    УРЛ = СтрЗаменить (УРЛ, "<%ЯЗЫКИСТОЧНИК%>", ЯзыкИсходный);
    УРЛ = СтрЗаменить (УРЛ, "<%ЯЗЫКПЕРЕВОДА%>", ЯзыкПеревода);

    Коннект              = Новый HTTPСоединение(УРЛСайта);
    ЧтениеТекста         = Новый ТекстовыйДокумент;

    СтруктураПараметров = Новый Структура;

    ИмяВременногоФайла=ПолучитьИмяВременногоФайла("txt");
    ФлагОшибкиВеб = Ложь;
    КоличествоПопыток = 3;
    СчПопыток = 1;
    Пока Истина Цикл
        Попытка
            Коннект.Получить(УРЛ,ИмяВременногоФайла);
            Прервать;
        Исключение
            Если СчПопыток >= КоличествоПопыток Тогда
                ФлагОшибкиВеб = Истина;
                Прервать;
            Иначе
                СчПопыток = СчПопыток + 1;
            КонецЕсли;
        КонецПопытки;
    КонецЦикла;

    Если Не ФлагОшибкиВеб Тогда
        ЧтениеТекста.Прочитать(ИмяВременногоФайла, КодировкаТекста.UTF8);
        СтрокаОтвета = ЧтениеТекста.ПолучитьТекст();
        ТекстПеревод = ПреобразоватьСтрокуОтветаПереводчика (СтрокаОтвета);
        Результат = ТекстПеревод;
    Иначе
        Ошибка             = Истина;
        КодОшибки         = 1;
        ТекстОшибки     = "Время ожидания ответа истекло";
    КонецЕсли;
    Возврат Результат;
КонецФункции

// вызов

Сообщить (ПеревестиТекст ("слово", "ru", "en"));


[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: AnryMc, zay,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:55
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!