Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
124.8 Кб
Скачать

3.2 Модуль работы с сервисом словаря

Для получения словаря используется сервис (API Яндекс Словарь).

При словарном запросе отправляется GET или POST запрос с синтаксисом:

https://dictionary.yandex.net/api/v1/dicservice/lookup?key=<API-ключ>

& text=<переводимый текст>

& lang=<язык словаря >

Параметр

Тип

Описание

Обязательные

key

string

API-ключ. Получите бесплатный API-ключ на этой странице.

lang

string

Направление перевода (например, "en-ru"). Задается в виде пары кодов языков, перечисленных через дефис. Например, "en-ru" задает перевод с английского на русский.

Совет. Сервис работает не только с переводными словарями. Например, вы можете указать направление "ru-ru" или "en-en" и получить все возможные значения искомого слова на русском или английском языке.

text

string

Слово или фраза, которые требуется найти в словаре.

Необязательные

ui

string

Язык интерфейса пользователя, на котором будут отображаться названия частей речи в словарной статье.

Возможные значения:

  • en - английский;

  • ru - русский;

  • uk - украинский;

  • tr - турецкий.

flags

int

Опции поиска (битовая маска флагов).

Возможные значения:

  • FAMILY = 0x0001 - применить семейный фильтр;

  • SHORT_POS = 0x0002 - отображать названия частей речи в краткой форме;

  • MORPHO = 0x0004 - включает поиск по форме слова;

  • POS_FILTER = 0x0008 - включает фильтр, требующий соответствия частей речи искомого слова и перевода.

В модуле отвечающим за словарь имеются методы:

  • getWords

  • conCat

  • setClickWord

  • getDictionarySpannableString

Основным методом здесь является getWords. Он отвечает за получения словаря к тексту.

Имеет аргументы:

  1. Text - Текст перевода

  2. Lang - Язык перевода. Пример (ru)

  3. Callback - Возвращение результата перевода

  4. errorCallback - Возвращение ошибки перевода

Листинг:

/**

* Метод получения словаря

* @param text Текст/слово

* @param lang Язык словаря. Пример (en-ru)

* @param callback Результат получения словаря

* @param errorCallback Ошибка получения словаря

*/

public void getWords(String text, String lang, Response.Listener<String> callback, Response.ErrorListener errorCallback) {

RequestQueue queue = Volley.newRequestQueue(context); /** Новый запрос */

queue.cancelAll(new RequestQueue.RequestFilter() { //Stop all request

@Override

public boolean apply(Request<?> request) {

return true;

}

}); /** Отмена всех запросов */

String url = String.format("https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=%s&lang=%s&text=%s&ui=ru"

,apiKey,Uri.encode(lang), Uri.encode(text)); /** Создание URL запроса */

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,callback,errorCallback);

queue.add(stringRequest); /** Добавление в очередь */

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]