Оболочка многоязычного онлайн-словаря Glosbe. Переведите и получите определения слов между языками.
См. полный список поддерживаемых языков.
Добавьте эту строку в Gemfile вашего приложения:
gem 'glosbe-translate'
И затем выполните:
$ bundle
Или установите его самостоятельно как:
$ gem install glosbe-translate
Все переводы и определения to
коды языков ISO-639 from
двух- или трехсимвольной версии. Glosbe поддерживает длинный список языков.
Методы класса языкового объекта, которые позволяют выполнять одиночный поиск:
Glosbe :: Language . translate ( "please" , from : :en , to : :nl )
=> "alstublieft"
Получите массив определений на языке from
:
Glosbe :: Language . define ( "pineapple" , from : :en , to : :fr )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
Получите массив определений на языке to
:
Glosbe :: Language . translated_define ( "pie" , from : :en , to : :fr )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
Любой из трех вышеперечисленных методов также может использовать более простую пару ключ-значение from: :to
Languages:
Glosbe :: Language . translate ( "fromage" , fr : :en )
=> "cheese"
Переводы и определения выполняются из объекта Language
:
language = Glosbe :: Language . new ( from : "eng" , to : "nld" )
Принимаются символы и строки, а код языка будет преобразован в соответствии с ожиданиями API.
Для перевода и определения фразы с использованием этого объекта доступны те же три метода:
language . translate ( "please" )
=> "alstublieft"
language . define ( "pineapple" )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
language . translated_define ( "pie" )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
Выполнение поиска вернет объект Response
:
response = language . lookup ( "coffee" )
Ответ представляет все поля, возвращаемые API, в очень похожей структуре.
Был ли HTTP 200 в порядке?
response.success?
=> true
Были ли возвращены какие-либо результаты?
response.found?
=> true
Поля в ответе для удобства сопоставляются напрямую:
response . from
=> "en"
response . to
=> "nl"
response . phrase
=> "coffee"
Иногда с сервера может быть возвращено сообщение. Это особенно интересно для предупреждений об ограничении скорости:
response . message
=> "Too many queries, your IP has been blocked"
Удобные методы извлекают те же три функции и возвращают значения, повторенные выше:
response . translation
response . define
response . translated_define
Необработанные результаты, соответствующие структуре API, доступны здесь.
Список всех результатов доступен из ответа:
response . results
=> [ ... ]
Каждый объект результата имеет переведенную фразу, если она присутствует;
result . phrase
=> "koffie"
Затем в результате перечисляются его авторы:
result . authors
=> [ ... ]
И его значения:
result . meanings
=> [ ... ]
Каждое значение имеет язык и текст:
meaning . text
=> "Een drank bekomen door infusie van de bonen van de koffieplant in heet water."
meaning . language
=> "nl"
Ни одно из этих полей не гарантированно существует. Хотя они возвращают строку или nil
для полей значений и всегда возвращают пустой массив для полей коллекции.
По умолчанию для журнала установлено значение nil
, но для отладки сетевых запросов можно передать любой объект Logger
.
Glosbe . logger = Logger . new ( "glosbe.log" )
Glosbe . logger = Rails . logger
После проверки репозитория запустите bin/setup
, чтобы установить зависимости. Затем запустите rake spec
для запуска тестов. Вы также можете запустить bin/console
для получения интерактивной подсказки, которая позволит вам поэкспериментировать.
Чтобы установить этот драгоценный камень на свой локальный компьютер, запустите bundle exec rake install
.
Сообщения об ошибках и запросы на включение приветствуются на GitHub по адресу https://github.com/kmcphillips/glosbe-translate.
Приходите поговорить со мной о том, над чем вы работаете. Я хотел бы просмотреть PR, если вы обнаружите ошибки или подумаете об улучшениях.
Гем доступен с открытым исходным кодом в соответствии с условиями лицензии MIT.