Возникла у меня для одного интернет-магазина необходимость сделать перевод на четыре языка стран СНГ - азербайджанский, армянский, киргизский и казахский. Погуглив, я не обнаружил ни платных, ни бесплатных решений. Уже отчаявшись я чуть не начал переводить все вручную с помощью google translate, но мания автоматизировать все что можно и нельзя заставила меня вспомнить о наших крутых соотечественниках: у Яндекс.Перевочдчика есть вполне нормальный и условно бесплатный API.
Условно бесплатный, потому что есть ограничения, превышая которые придется отдать какую-то денежку:
2.3. Яндекс оставляет за собой право устанавливать любые лимиты и ограничения, включая далее перечисленное, но не ограничиваясь этим:
на объем переводимого текста - в размере до 1 000 000 символов в сутки, но не более 10 000 000 символов месяц.
В общем, задача ясна: нужно перевести сайт с русского языка на 4 других, не превысив лимит в миллион символов в сутки и 10 миллионов символов в месяц. Ну что ж, была не была!
API-ключ
Для начала нам нужно вооружиться API ключом для общения с переводчиком. Идем сюда, и создаем ключ:
JSON- и JSONP-интерфейсы
Прежде чем начать непосредственную работу с API, следует изучить ответ функции translate, которая, собственно, и переводит нужный нам текст в нужный нам язык:
Ответ возвращается в формате JSON. Если задан параметр callback, JSON-объект оборачивается в функцию, с названием, указанным в этом параметре (JSONP).
Синтаксис запроса
https://translate.yandex.net/api/v1.5/tr.json/translate
? [key=<API-ключ>]
& [text=<переводимый текст>]
& [lang=<направление перевода>]
& [format=<формат текста>]
& [options=<опции перевода>]
& [callback=<имя callback-функции>]
Нам, в принципе, хватит и этого. За подробной документаций нужно нужно перейти по ссылке.
Мы будем отправлять запрос с тремя параметрами:
1. key - наш ключ, который мы создали ранее
2. lang - с какого языка на какой нужно перевести текст (например ru-en)
3. format - формат текста. Мы будем использовать plain
Тестовая функция переводчика
Давайте набросаем тестовую функцию, которая будет переводить фразу "Привет, мир!" на английский язык.
Немного поигравшись с API выяснилось, что в ответ на запрос Яндекс.Переводчик присылает следующие данные:
1. code - в случае успеха будет 200
2. lang - информация о переводе
3. text - переведенный текст
Реализуем простую функцию перевода фразы "Привет, мир!" на английский язык:
Здесь ничего сложного. С помощью UriBuilder собираем наш url для запроса, создаем запрос с помощью WebRequest.Create() и выполняем его методом GetResponse(). Ну и считываем полученные данные, конечно же.
Давайте заюзаем нашу функцию:
И посмотрим, что из этого вышло:
Отлично! Мы получили ответ в формате JSON с кодом 200 и переведенной фразой.
На этом первая часть статьи подошла к концу. В следующей части мы посмотрим структуру локализации движка OpenCart, попытаемся ее распарсить и перевести в автоматическом режиме.
Нажмите "Понравилось" - мы будем знать, что написать для вас в следующий раз
Подпишитесь на канал - наши статьи для вас будут попадаться чаще
Подпишитесь на наш паблик ВК - потому как там все самое интересное
Поделитесь с друзьями - это может быть интересно другим!