Довольно часто, в ходе разработки сайта, необходимо обеспечить поддержку мультиязычности - т.е. возможности перевода содержимого сайта на разные языки. Реализовать поставленную задачу на Drupal довольно просто, при том что в этом нам помогут такие модули как Internationalization, Content translation, Locale.
Но что делать, если необходимо реализовать не мультиязычность, а автоматический перевод содержимого сайта с одного языка на другой? Тогда нам поможет сервис Google, в наличии у которого есть довольно таки неплохой онлайн переводчик. В добавок, в нашем случае плюсом его есть хорошая интегрируемость в Drupal. Для осуществления перевода содержимого сайта можно воспользоваться модулями Google Translate или Google Translate Filter.
Первый модуль предлагает возможность перевести страницу на любой из поддерживаемых Google языков, через вывод блока выбора необходимого языка. Недостатком такого модуля можно считать то, что он осуществляет лишь визуальный перевод страницы без сохранения изменений в базе. Второй модуль дает возможность добавить в форматах ввода фильтр автоперевод текста, который будет срабатывать при сохранении содержимого и осуществлять перевод на указанный язык. К сожалению, на данный момент существует только dev версия модуля, поэтому некоторые проблемы в роботе не исключаются. Основным недостатком этого модуля есть его неспособность обрабатывать текст, содержащий более 2000 символов.
исходный текст (q) - текст, для которого необходимо сделать перевод;
исходный язык (source) - язык, на котором написан исходный текст;
конечный язык (target) - язык, на котором должен быть текст после перевода.
Есть несколько способов для вызова API:
использование REST непосредственно;
использование REST из JavaScript (не требуется серверного кода).
При реализации этих методов возникает необходимость в использовании еще одного параметра - API ключа для проекта, который можно получить в Google APIs console. Рассмотрим детальнее, как используются указанные способы.
REST, или Representational State Transfer, в Google Translate API обеспечивает доступ к службе, но не к ресурсам. Как результат, API обеспечивает единый URI, который действует как конечный элемент службы. В запросе нужно указать подробную информацию по обслуживанию, как параметры запроса.
Формат для Google Translate API URI имеет следующий вид:
php https://www.googleapis.com/language/translate/v2?parameters
php GET https://www.googleapis.com/language/translate/v2?key=API-KEY&q=Hello,%20...
phpGoogle Translate API Hello,world!