Comments 20
Класс Yandex_Translate содержит три метода с говорящими названиями:
yandexGetLangsPairs() — получение доступных пар языков FROM->TO
yandexGet_FROM_Langs()
yandexGet_TO_Langs()
навеяло.
yandexGetLangsPairs() — получение доступных пар языков FROM->TO
yandexGet_FROM_Langs()
yandexGet_TO_Langs()
навеяло.
$Yandex_Translator->yandexGetYandexLangsYandexPairsYandex('Yandex');
$Yandex_Translator->yandex_Get_Yandex_Langs_Yandex_Pairs_Yandex('Yandex');
Поясните, пожалуйста, вы ярый противник camel case?
Или от такого подхода Yandex станет меньше в названии метода? :)
Или от такого подхода Yandex станет меньше в названии метода? :)
Я ярый противник использования и CamelCase, и подчёркивания для разделения слов в именах. Что-нибудь одно.
Ехал Яндекс через Яндекс…
Я русский бы выучил только за то, что им разговаривал Яндекс.
а что делать если сайт написано не на php как исходники яндекса?
Написать свой код который шлёт запросы вида
http://translate.yandex.ru/tr.json/translate?lang=en-ru&text=hello+world
;)
http://translate.yandex.ru/tr.json/translate?lang=en-ru&text=hello+world
;)
UFO just landed and posted this here
Спасибо, отличный класс и давно хотел сравнить переводы с Bing
в исходном коде смутила проверка на возможность перевода, например не проверяется возможность перевода с русского на итальянский (ru-it), которой нет в возвращаемом json. поэтому не лучше ли было заменить эту конструкцию:
следующей:
public function yandexTranslate($fromLang, $toLang, $text) {
//один из языков должен быть ru - проверяем, хотя переводчик и так вернет текст - сообщение об ошибке
if ($fromLang != 'ru' AND $toLang != 'ru'){
return 'Sorry, translation directly from '.$fromLang.' to '.$toLang.' is impossible';
}
следующей:
public function yandexTranslate($fromLang, $toLang, $text) {
$langPair = $fromLang."-".$toLang;
// проверяем возможность перевода с $fromLang на $toLang
if (!in_array($langPair, $this->yandexGetLangsPairs())){
return 'Sorry, translation directly from '.$fromLang.' to '.$toLang.' is impossible';
}
Эта конструкция служит только для того, чтобы не дергать переводчик вследствие заведомо некорректных запросов.
Можно ее вообще в принципе убрать — в случае некорректной пары языков переводчик просто вернет текст с сообщением о невозможности ее обработать.
Можно ее вообще в принципе убрать — в случае некорректной пары языков переводчик просто вернет текст с сообщением о невозможности ее обработать.
понятно. просто сама идея проверки не понравилась: наличие в langPair русского языка, (а вдруг впоследствии яндекс научится переводить не только с ru / на ru, или разучится как в примере с итальянским). в любом случае спасибо за статью.
кстати, а может имеет смысл поместить полученние массива langPairs в конструктор класса, и впоследствие уже сверять с имеющимся значением, или тоже лишняя нагрузка на переводчик?
кстати, а может имеет смысл поместить полученние массива langPairs в конструктор класса, и впоследствие уже сверять с имеющимся значением, или тоже лишняя нагрузка на переводчик?
Всё равно ни яндекс, ни бинг не альтернатива гуглу — набор языков совершенно неудовлетворительный…
Яндекс переводит с русского на русский. Долго осознавал глубину фразы!
Библиотека больше не работает.
Чтобы оживить нужно:
1. Получить ключ API api.yandex.ru/key/form.xml?service=trnsl
2. Заменить URL protected $rootURL = 'https://translate.yandex.net/api/v1.5/tr.json';
3. Передавать ключ с каждым запросом, обратно будет приходить JSON.
Чтобы оживить нужно:
1. Получить ключ API api.yandex.ru/key/form.xml?service=trnsl
2. Заменить URL protected $rootURL = 'https://translate.yandex.net/api/v1.5/tr.json';
3. Передавать ключ с каждым запросом, обратно будет приходить JSON.
Константин, подскажите, пожалуйста, ссылку на GitHub. Там актуальная версия?
Sign up to leave a comment.
Yandex Translate API: PHP и небольшое исследование сервиса