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

3 Разработка основных модулей приложения

Для полноценной реализации переводчика, нужны модули, отвечающие за:

  • Модуль работы с сервисом перевода текста (API Яндекс Переводчик)

  • Модуль работы с сервисом словаря (API Яндекс Словарь)

  • Модуль работы с базой данных (SQLite)

3.1 Модуль работы с сервисом перевода текста

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

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

https://translate.yandex.net/api/v1.5/tr.json/translate ?

key=<API-ключ>

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

& lang=<направление перевода>

& [format=<формат текста>]

& [options=<опции перевода>]

& [callback=<имя callback-функции>]

Ответ возвращается в формате JSON. Если задан параметр callback, JSON-объект оборачивается в функцию, с названием, указанным в этом параметре (JSONP).

В модуле отвечающим за перевод текста имеется всего один метод.

Метод translate имеющий аргументы:

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

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

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

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

Листинг модуля:

public class Translator { private final Context context; public Translator (Context context) //Конструктор класса принимающий контекст приложения { this.context = context; } /** Yandex Translator Api KEY */ private static final String apiKey = "trnsl.1.1.20170319T102022Z.3c57ab893ab2ff9d.7790251552d1ad674f87d15327e4175ee8de83da"; /** Языки перевода */ public final static String[] langsCode = {"en", "ru", "az", "sq", "am", "ar", "hy", "af", "eu", "ba", "be", "bn", "bg", "bs", "cy", "hu", "vi", "ht", "gl", "nl", "mrj", "el", "ka", "gu", "da", "he", "yi", "id", "ga", "it", "is", "es", "kk", "kn", "ca", "ky", "zh", "ko", "xh", "la", "lv", "lt", "lb", "mg", "ms", "ml", "mt", "mk", "mi", "mr", "mhr", "mn", "de", "ne", "no", "pa", "pap", "fa", "pl", "pt", "ro", "ceb", "sr", "si", "sk", "sl", "sw", "su", "tg", "th", "tl", "ta", "tt", "te", "tr", "udm", "uz", "uk", "ur", "fi", "fr", "hi", "hr", "cs", "sv", "gd", "et", "eo", "jv", "ja"};

/** * Метод перевода текста * @param text Текст перевода * @param lang Язык перевода. Пример (ru-en,ru) * @param callback Возвращение результата перевода * @param errorCallback Возвращение ошибки перевода */ public void translate(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://translate.yandex.net/api/v1.5/tr.json/translate?key=%s&text=%s&lang=%s" ,apiKey, Uri.encode(text),lang); /** Создание URL запроса */ StringRequest stringRequest = new StringRequest(Request.Method.GET, url,callback,errorCallback); queue.add(stringRequest); /** Добавление в очередь */ } }

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