pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как вывести строку в Java содержащую спец. символы?

Лучший ответ: То есть по сути вам нужен json. Зачем вы его создаёте руками и мучаетесь с экранированием.
Когда можно сделать java class с нужными вам полями, инициализировать его нужными параметрами и из него получить json строку, которую и сможете отправить куда надо.
Воспользуетесь библиотекой gson от гугла - https://code.google.com/p/google-gson/
Например:
Сделаем класс:public class TalentESBData {

    @SerializedName("metadata.title")
    private String metadataTitle;
    @SerializedName("metadata.description")
    private String metadataDescription;
    @SerializedName("metadata.keywords")
    private String metadataKeywords;
    @SerializedName("metadata.robots")
    private String metadataRobots;
    @SerializedName("metadata.author")
    private String metadataAuthor;
    @SerializedName("config.enable_comments")
    private int configEnableComments;
    @SerializedName("config.primary_category")
    private int configPrimaryCategory;
    @SerializedName("jbzoo.no_index")
    private int jbzooNoIndex;

    // Геттеры и сеттеры опустим их любая ide сгенерирует...

    public String toJson(){
        Gson gson = new Gson(); //библиотека для генерации json
        String jsonResponse = gson.toJson(this);
        return jsonResponse;
    }
}
И теперь в как этим воспользоватся.public class TalentMain {

    public static void main(String[] args) {

        TalentESBData talentData = new TalentESBData(); //инициализируем класс
        talentData.setMetadataDescription(""); //заполняем поля какие надо
        talentData.setMetadataAuthor("");
        talentData.setMetadataKeywords("");
        talentData.setMetadataRobots("");
        talentData.setMetadataTitle("");
        talentData.setConfigEnableComments(1);
        talentData.setConfigPrimaryCategory(205);
        talentData.setJbzooNoIndex(0);


        System.out.println(talentData.toJson()); // Получаем json и выводим в консоль, в вашем случа
        // вместо консоли можете отправлять эти данные или что там нужно сними делать.
    }
}
На выходе имеем такой json,{
  "metadata.title": "",
  "metadata.description": "",
  "metadata.keywords": "",
  "metadata.robots": "",
  "metadata.author": "",
  "config.enable_comments": 1,
  "config.primary_category": 205,
  "jbzoo.no_index": 0
}
Теперь удобно добавлять новые поля, просто добавляете новые переменные в класс и генерируете новый json.
Если что спрашивайте.

Худший ответ: Судя по тексту ошибки у вас проблема с запросом. Текст "вставьте ";" для завершения Statemen" уж сильно напоминает ошибки, которые выдает база данных при не правильно составленном запросе.
Вопрос: Tomcat это сервер, на котором деплоится сервер?

Лучший ответ: > Обычно, я сервер сайд своих апликух просто хощу у себя на ПК без всяких tomcato'в.
особенно, если он у тебя на похапэ.
Tomcat - контейнер сервлетов. Решительно хотя бы в вики загляни.

Худший ответ: Если твое веб-приложение разработано по технологиям Java EE, а точнее, если приложение реализовано в виде так называемых сервлетов, то нужен Томкэт или его аналог, например Jetty. Или JBoss. И пр.
Это все сервера приложений, они берут на себя загрузку классов, управление доступом и пр.
Если твое веб-приложение разработано как standardlone тогда оно само запускается, без сервера приложений.
Вопрос: Слайдер owl carousel с адаптивным видео во весь экран, реально ли?

Лучший ответ: Реально.
1) видео только на своем хостинге, тогда не будет контрол-элементов;
2) видео внутри дива width100%, height100% (желательно 100vw на 100vh + через js вычислять для тупых браузеров);
3) по поводу owl длительности отдельно взятых слайдов - не уверен, что реализуемо. Нужно курить документацию.

Худший ответ: Все реально, разве что про разную скорость прокрутки не уверен. Читайте доки по карусели и по тегу video. Кстати по моему даже пример был на офф сайте.
Вопрос: Автоматический кроп лишнего фона на фото?

Лучший ответ: Вот вам скрипт на питоне (2.7, PIL):
from PIL import Image
import math
import sys

way = '1.png'
print sys.argv[1]
way = sys.argv[1]
image = Image.open(way)
width = image.size[0]
height = image.size[1]

alpha = image.getpixel((2,2))



left = width
right = 0
top = height
bottom = 0
print str(alpha)
for x in range(width):
    for y in range(height):
        rng = math.sqrt(math.pow(image.getpixel((x,y))[0]-alpha[0],2)+math.pow(image.getpixel((x,y))[1]-alpha[1],2)+math.pow(image.getpixel((x,y))[2]-alpha[2],2))
        #print str(rng)
        if rng > 89:
            
            
            if x<left:
                left = x
            if x>right:
                right = x
            if y<top:
                top = y
            if y>bottom:
                bottom = y
print str(left)+ ','+str(top)+'   '+str(right)+','+str(bottom)                

width = right-left
height = bottom-top
img = Image.new("RGBA", (width,height), (0,0,0,0))
for x in range(width):
    for y in range(height):
        img.putpixel((x,y),image.getpixel((x+left,y+top)))


img.save("test1.png", "PNG")

print "Done!"



В качестве параметра получает название файла, кропает, создает файл crop_имя.расширение.
Результат работы:
Это:

Превращает в это:


Скормите этот скрипт bat файлу, который для всех файлов в папке его применит и будет вам счастье.

Худший ответ: Gimp + Bimp. Использовать процедуру автокадрирования.
Вопрос: Выбрать SSD для front-end?

Лучший ответ: SATA - Samsung 850 EVO
M.2 - Samsung 850 EVO
Цена у обоих ~5тыс рублей за 120Гб.
И надёжнее и быстрее (многих).

Худший ответ: 3.5
Такие есть?
Берите любой.
Вопрос: Почему сайт должен иметь собственное приложение для смартфонов?

Лучший ответ: Если отбросить "должен иметь или нет" - вы боитесь за потерю визитов и кликов. Но вы можете поставить рекламное место и в приложении ведь? Так что общее число просмотров не снизится, а просто разделится между разными источниками.

Худший ответ: Сайт не должен иметь собственного приложения. Он может, но не должен.
Просто так, для того чтобы было, оно не нужно. 
У приложения всегда есть конкретные цели. Оно должно давать что-то, чего не может дать мобильная версия.
Если Ваши пользователи в основном приходят с поисковых систем, то Вам 100% не нужно приложение.
Вопрос: C++ linux компиляция с libcurl библиотекой — как осуществить?

Лучший ответ: Вам нужно прилинковать libcurl статически, тогда бинарник будет включать в себя все необходимое и будет самодостаточным. Если нет возможности (ну не предоставляет библиотека статичской версии), тогда брать с собой динамически подключаемый .so файл.
Если собрать rpm или deb пакет, можно позаботиться о зависимостях и выкачать библиотеку при установке.

Худший ответ: Open-source либы можно просто добавить себе в систему сборки - будет собираться и линковаться статически. Если у вас cmake - можете у меня взять.
Вопрос: Как переписать Jquery код на JavaScript?

Лучший ответ: Воспользоваться подсказками отсюда: youmightnotneedjquery.com

Худший ответ: Давно это было... могу ошибаться...var d = document.createElement('div'), di = new Image();
d.className = 'load';
di.src = 'http://plasmon.rghost.ru/6lWFXm4KD/image.png';
di.style = 'position: absolute; top: 50%; left: 50%';
d.appendChild(di);
document.getElementsByTagName('body')[0].insertBefore(d, document.body.firstChild);
document.onload = function(){
	setTimeout(function(){
		d.style.display = 'none';
		document.body.style.display = 'block';
	}, 3000);
}
Вопрос: Как убрать клавиатурную раскладку «США» в Windows 7?

Лучший ответ: Некоторые неграмотно составленные приложения могут считать, что английская раскладка — это обязательно 0x4090409 и принудительно добавлять ее к уже имеющейся. У меня так Hedgewars делал.
А вообще зачем вам типографские раскладки? Напишите небольшой скриптик на AutoHotkey и назначьте любые символы на любые (но уже удобные лично вам) клавиши.

Худший ответ: Вверху выпадающий список Английскую традиционную поставить
Вопрос: Банк у которого банк-клиент работает под mac os?

Лучший ответ: Авангард, Промсвязьбанк — в браузере с помощью Java-машины.

Худший ответ: Сбербанк сейчас на браузеры в добровольно-принудительном порядке переводит.
Вопрос: Какой тут может быть *овнокод?

Лучший ответ: 1) Форматирование кода ужасно. Начнем с этого.
2) что тайтл делает в контроллере?
3) что за 1 и 2, что они значат? Стоит заменить на константы хотя бы.
4) уже пару лет можно использовать сокращенный синтаксис массивов
5) У вас же есть IoC, почему вы вызываете new CompanyList()? К чему это вообще относится? Что происходит?
Короче... ужас... контроллер это то место, по которому должно быть понятно что там происходит. Что-то в этом духе:class CompanyListController {

    /**
     * @var CompanyRepositoryInterface
     */
    private $companyRepository;

    function __construct(CompanyRepositoryInterface $companyRepository)
    {
         $this->companyRepository = $companyRepository;
    }

    public function getIndex() 
    {
            $companies = $this
                 ->companyRepository
                 ->getCompanyByUser(Sentry::getUser()->id, Input::get('status', false))
            ;

            return View::make('dashboard.account')->with(compact('companies'));
    }

Худший ответ: помимо сказанного, используйте автоформат. возьмите конфиг у коллеги, или накрутите свой и всегда им пользуйтесь
Вопрос: Делается ли лазерная гравировка клавиатуры в Ростове-на-Дону?

Лучший ответ: www.grafika-yg.ru/lazernajagravirovka.html не поверите, ввел в гугле «лазерная гравировка ростов на дону» и ткнул в первую ссылку.

Худший ответ: Если не ответят. Посмотрите наклейки, есть весьма хорошего качества. www.myglowkeys.com/ Даже в ночи светящиеся.
Вопрос: Как реализовать лог vpn-подключений на mikrotik?

Лучший ответ: Создайте себе новый лог в System/logging с топикоп Topics=pptp,ppp,info,account

Худший ответ: syslog на стороне и фильтр. =) не?MikroTik Syslog Daemon
Вопрос: Почему НЕ работает :hover (в любом браузере) (z-index)?

Лучший ответ: У #OpenFooter убрать position: relative

Худший ответ: Проблема в том, что у вас его перекрывает блок OpenFooter. Когда вы наводитесь вниз - вы наводитесь на него, а не на footer.
upd. Опоздал. :)
Как правильно сказал @CeZZ - убрать position: relative у OpenFooter.
Вопрос: Какой сниффер позволяет отслеживать траффик отдельного приложения (под Win)?

Лучший ответ: Смотришь netstatom в консоли задействованные при обмене порты и делаешь фильтр в сниффере по ним. Только так.

Худший ответ: Netlimiter - не оно?
Вопрос: Что называется базовым программированием в c++?

Лучший ответ: Вам потребуется 21 день.

Худший ответ: Базовое:
1) хотя бы 1 язык на хорошем уровне, что бы писать на нем не заглядывая в учебник
2) алгоритмы, комбинаторика, дискретная математика и структур данных
Продвинутое:
1) паттерны
2) многопоточность
3) тонкости разных бд, ос и прочее
Можно сказать, что вы знаете базовое программирование если сможете по статье из википедии реализовать, например, алгоритм Дейкстры. Не перекатать из интернета и разобраться, а видя алгоритм, его описание смочь его закодить, самому оценить сложность, оценить крайние случаи и прочее.
Вопрос: Какую версию Python выбрать для изучения?

Лучший ответ: Python 3 вышел 9 лет назад, уже тогда нужно было забыть про второй python.

Худший ответ: Учить - 3-й но второй полезно знать.
Однако второй очень мало отличается от третьего. 
Во втором просто ужасная поддержка Unicode. В 3-м Unicode нормально поддерживается.
Третий более полноценно реализует ООП модель программирования.
Вопрос: Как искать на Хабре?

Лучший ответ: На всех открытых сайтах проще всего искать гуглом. 
Это обычно надержнее, чем встроенными кривыми алгоритмами.
www.googleguide.com/advanced_operators.html#site

Худший ответ: На хабре используется Sphinix, однако, расширенный поиск не работает.
Вопрос: Что означает поднять сервер?

Лучший ответ: Значит сервера нет, а потом кто-то пришел, настроил и запустил = поднял.
Или сервер был, а потом сломался (упал). Кто-то пришел, увидел, победил и снова поднял.UPD: поднять сервер apache бесплатно без смс.

Худший ответ: Калька с 
server (service, etc) up
server (service, etc) down
что более корректно переводится как "начать работу сервера (сервиса и тп)" и "завершить работу сервера (сервиса и тп)"
Часто в поднятие входит понятие установки и настройки
Вопрос: Как вернуть девственность MacOS?

Лучший ответ: Вот  здесь описано, что стоит делать при продаже https://discussions.apple.com/thread/4390401

Худший ответ: Есть два пути:
1. Как по ссылке описано: перебрать по пунктам все.
2. Хардкорный: форматнуть винт и тогда через "биос" макбука поставить чистую ось. 
(подойдет для вынимаемых винтов). Так быстрее и надежней всего. Я когда миник продавал так и сделал.
Но на самом деле важно сделать только 3 вещи:
1. Удалить юзера и все свои файлы и секьюрно очистить корзину
2. выйти из браузеров и почистить в них все
3. выйти из Apple ID. 
Остальное ерунда и оверкил.
Вопрос: Радио IP-телефон?

Лучший ответ: Используем Siemens C595 IP, жалоб нет. Поддерживает несколько SIP-аккаунтов, на одну базу можно повесить две трубки.
Правда, FXO (обычная линия) там тоже есть.

Худший ответ: «радио» в смысле «радио» или «радио» в смысле «wifi»?
Вопрос: EcmaScript 6 документация?

Лучший ответ: Имеет смысл только для nodejs
Для браузеров все равно нужно использовать транспиллеры.
Поэтому лучше сразу брать typescript, который уже включает es6 но добавляет опциональную типизацию и компилируется имхо в более чистый js чем тот же https://babeljs.io/
Голый es6 если рассматривать чисто синтаксис (без всяких фич типа промисов, генераторов, мапов, и т д.) мало что дает.
В качестве редактора рекомендую https://code.visualstudio.com/

Худший ответ: https://developer.mozilla.org/ru/docs/Web/JavaScri...
P.S смотрите на условные обозначения
Вопрос: Почему не работает __autoload?

Лучший ответ: путь не тот указал или файла нету

Худший ответ: Рекомендую отказаться от __autoload и использовать spl_autoload_register.
Вот документация -- https://php.net/manual/ru/function.spl-autoload-re...
Вопрос: Nginx некорректно проксирует x-real-ip?

Лучший ответ: Описание переменной:
$proxy_add_x_forwarded_for
поле заголовка запроса клиента “X-Forwarded-For” и добавленная к нему через запятую переменная $remote_addr. Если же поля “X-Forwarded-For” в заголовке запроса клиента нет, то переменная $proxy_add_x_forwarded_for равна переменной $remote_addr.

Тут налицо двойное проксирование. Покажите полный конфиг nginx.

Худший ответ: А вы случайно mod_rpaf не пропустили на бекенде?!
Вопрос: Посоветуйте материалы для обучения программированию на Assembler под Linux?

Лучший ответ: Например, вот

Худший ответ: Посмотрите небольшую подборку ссылок на тему программирования на ассемблере (в том числе и под Linux).
Вопрос: Подскажите софтину для проверки TCP и UDP портов

Лучший ответ: > Подскажите софтину для проверки TCP и UDP портов.

nmap, telnet

> С возможностью отправки данных вручную на порт (например, для тестирования
> HTTP иногда полезно самому вбить заголовки запроса).

curl, wget, telnet

Худший ответ: nmap кроссплатформен и что только не умеет. Сам по себе он консольный, но существуют GUI. Например, под Windows можно использовать Zenmap. Если мне изменяет память — он входит в инсталляционный пакет.
Вопрос: Подмена скрипта по пути к клиенту (возможно провайдером)

Лучший ответ: Возможно, работает прозрачное проксирование (т.н. transparent proxy), которое на лету модифицирует трафик (прокси провайдера, который не хочет в этом признаваться).
Попробуйте воспользоваться одним из этих вариантов для выяснения так ли это.

Худший ответ: Ставлю на ADSL-роутер.
Вопрос: Array.sort или сортировка массивов?

Лучший ответ: 1) Сравнение массивов. Как отмечал haaji, выражение []==[] ложно. Всё дело в том, что сравниваются 2 совершенно разных массива (заданные первыми и вторыми квадратными скобками), а так как массивы являются объектами, то и проверяются они по ссылке, а значит, они в данном случае не будут равны. Если хотите сравнить 2 массива с простыми (нессылочными типами: числами, строками, true/false) значениями внутри, то можно преобразовывать массив в строку, с использованием метода join и потом сравнивать уже строки.

console.log([1,2,3].join(",")==[1,2,3].join(","));
Если содержатся ссылочные типы, то в любом случае нужно будет сравнивать поэлементно. Можно использовать JSON.stringify, но там есть свои особенности (например, порядок определения свойств).

2) Сортировка массивов. Array.prototype.sort может принимать в качестве аргумента функцию, в которую будут переданы 2 аргумента — элементы массива, и данная функция должна вернуть -1, 0, 1 в зависимости от того, какой элемент считать большим, либо равными (0). После вызова sort массив, для которого она была вызвана, будет изменён. Если sort не приняла функцию-сортировщик, то элементы массива сравниваются как элементарные значения.

Обобщая эти 2 пункта:

var a = [2, 3, 1],
	a1= [3, 2, 1];
console.log(a.sort().join(",")===a1.sort().join(","));


Худший ответ: Судя по результату, у вас массив строк?
Вопрос: Почему не запускается модуль npm в Windows?

Лучший ответ: Как раз gulp и нужно устанавливать с параметром -g, что делает его установку глобальной для всех проектов ноды и не нужно будет специально добавлять его в окружения. 
То есть команда будет выглядеть так:
npm install -g gulp

Худший ответ: Добавь путь в переменных окружениях к  gulp
Вопрос: Какую посоветуете CRM-программу для ведения клиентской базы предприятия?

Лучший ответ: Мы у себя используем www.sugarcrm.com — Sugar Community Edition. Что в последней версии не знаю. У себя версию давно не обновляли т.к. было сделано большое количество изменений под себя. Благо написано все это на PHP и исправить что-либо для собственных нужд не сложно. Хотя и стандартного функционала вполне хватает.

Худший ответ: 1. База данных с нужными структурами данных + вебморда, структура базы данных — какая нужна, 
вебморда пишется тоже достаточно быстро.

2. Видел конфигурации 1С под это дело.
Вопрос: Как работает sass?

Лучший ответ: Попробуйте компилятор compass,  довольно мощный и удобный инструмент для компиляции sass в css, про него можно найти множество информации в google. Sass, как вам ответили выше можно использовать для любого проекта.

Худший ответ: Про гугл вы лукавите, сам когда начинал, без проблем нашел необходимую информацию.
Sass работает как вы и сказали, вы пишете Sass правила, компилятор превращает их в css файлы, то есть подключать к сайту Sass файлы не нужно, они только для вас, как для верстальщика.
Руби в этой схеме нужен потому, что компилятор написан на руби. Вам не нужно писать на нем сайт, он должен быть просто установлен в системе.
Так же если бы вы не поленились вбить в гуле два слова "sass компилятор" вы бы увидели, что их на самом деле много (используют ли они руби или нет, я не знаю, это как бы лишняя информация), они устанавливаются обычным инсталятором и выглядят как обычная программа где вполне себе дружественный интерфейс. Почему то все хвалят "Koala", можете его попробовать.
Сам я использую именно родной компилятор, то есть руби гем sass. Почему? Потому, что я использую в работе phpstorm и он умеет автоматически при изменении  sass файлов генерировать css файлы и ему нужен именно руби гем.
Вопрос: Можно ли самостоятельно обновлять версию Android OS?

Лучший ответ: У меня мобильник HTC Desire, снабжённый некоторой версией Android. Производитель сперва выпустил обновление, а затем на некоторое время сокрыл его от общественности, но посредством особливого сочетания клавиш всё же можно было войти в режим, позволяющий наложить обновление (заранее предусмотрительно выкачанное) прямо с флэшёвой карточки (а не через эфир с отдалённого сайта). Этот режим предназначен для работников сервисных центров.

Худший ответ: Всё зависит от того, какой у вас телефон. Nexus One получает свежйшие прошивки в кратчайшие сроки непосредственно от Гугла. HTC Desire, будучи его братом-близнецом, тоже получает их через короткое время. С остальными девайсами сложнее, умельцам труднее делать самостоятельные обновлённые сборки, но они, тем не менее, существют. Наиболее «мультидевайсная» — CyanogenMOD:
 1. Nexus One
 2. HTC Aria
 3. HTC Dream / HTC Magic
 4. Motorola Droid
 5. HTC Desire
 6. HTC Evo
 7. HTC Slide
 8. HTC Hero CDMA
 9. HTC Hero GSM
 10. Samsung Galaxy S
 11. HTC Incredible
 12. HTC Legend
Её собирают из исходников, выложенных Гуглом и производителями. Зачастую не работают такие вещи как камера, ФМ-радио и т.п., т.к. эти вещи сильно завязаны на специфику каждой железки, но в остальном прошивка вполне стабильна.
Вопрос: Как настроить роутер для двух компьютеров (1 server 2008 с 1с, 2 win7)?

Лучший ответ: Ну тут естественно проброс, для того что бы пользователи попадали на сервер находящийся за роутом. Ну напримере RDP, он использует 3389 порт, но из вне лучше использовать какой нить другой от 21000 до 30000 на ваш вкус. А пробрасывать естественно на 3389. 
Но уж если речь идёт об 1с, я бы лучше вообще поднял VPN(ну хотя бы с помощью OpenVPN), хоть какая то безопасность. 
п.с. советую так же сменить DIR-300 (просто на будущее).
Мне кажется у любого провайдера на сайте есть инструкция по настройке DIR-300, в том числе прокид портов. Тут ещё удобство зависит от прошивки.

Худший ответ: 1с вроде файлы свои по сети гоняет, поэтому лучше подключаться из вне по rdp и работать с 1с фактически за роутером (внутри). Ну и как сказали выше: переброс на 3389 порт с (любого, начиная с 5000 и до ...)
Вопрос: Автоподключение резервного канала интернета. Есть замена микротику?

Лучший ответ: netwatch на микротике пробовали?
Например вот так настроить можно.

Худший ответ: Как вариант для замены Микротика: попробуйте juniper srx. Мы используем на 50+ точек (srx 240 ядро, на точках srx100). У нас используется для ipsec тунелей, переключения на резервный канал и в качестве фаервола. По настройке сложнее Микротика, примерно на уровне Cisco (но и надёжность на таком же уровне, а цена ниже). Единственное но, это модели без wi-fi.
Вопрос: Как разделить домашнее и рабочее пространство?

Лучший ответ: Простые решения не в моде. Всем нужна боль, никто даже не заметил, что она превратилась в зависимость :) Как то так? :)
Пользуемся ноутом и не паримся, а на нем разворачиваются контейнеры с нужным окружением.

Худший ответ: У меня в основном на виртуалках крутятся Линукс сервера без Gui. Так что VirtualBox прекрасно справляется. Потеря производительности минимальная.
Вопрос: Ускоренное время работы компа, неверная работа системы времени Windows

Лучший ответ: Нео, ты?

Худший ответ: Однажды такая проблема наблюдалась, когда добавил новую плашку памяти. Поменял на другую — пропала. Может есть связь?
Вопрос: Как реализовать частичный поиск по строке?

Лучший ответ: У вас не правильно хранятся теги. Необходимо заводить 3ю таблицу для хранения соответствия статьи и тегов. А теги хранить в отдельной таблице. Тогда повышается гибкость и такой проблемы не возникнет.

Худший ответ: 1. Или менять на json колонку в базе и минимальный тогда будет mysql 5.5
2. или выбирать все статьи возвращая две колонки: ID-статьи и ID-тегов с нужной сортировкой (и/или ограниченным количеством/диапазоном) и дальше отсеивать уже циклом на стороне PHP, после - селектить на основе отобранных ID-статей контент для вывода.
Вопрос: Кнопка «поделиться» с Facebook API?

Лучший ответ: Если именно поделиться, то как то так:
<a href="http://www.facebook.com/sharer.php?u=MY_URL&t=MY_TITLE&src=sp" target="_blank">Share to Facebook</a>

Худший ответ: Промахнулся
Вопрос: Во сколько можно оценить стоимост приложения ?

Лучший ответ: Бесплатно для заказчика, а вам это поможет отлично говорить и писать на русском языке. Так что профит вам будет.

Худший ответ: бесплатно так как тоже самое делает гугл транслейт бесплатно.