- •Курсовая работа
- •3 Разработка основных модулей приложения 7
- •1. Техническое Задание
- •2.Описание и обоснование
- •2.1 Выбор технологии разработки приложение
- •3 Разработка основных модулей приложения
- •3.1 Модуль работы с сервисом перевода текста
- •3.2 Модуль работы с сервисом словаря
- •3.3 Модуль работы с базой данных
- •4 Разработка основного функционала
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 |
Язык интерфейса пользователя, на котором будут отображаться названия частей речи в словарной статье. Возможные значения:
|
flags |
int |
Опции поиска (битовая маска флагов). Возможные значения:
|
В модуле отвечающим за словарь имеются методы:
getWords
conCat
setClickWord
getDictionarySpannableString
Основным методом здесь является getWords. Он отвечает за получения словаря к тексту.
Имеет аргументы:
Text - Текст перевода
Lang - Язык перевода. Пример (ru)
Callback - Возвращение результата перевода
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); /** Добавление в очередь */
}
