Проблеми перекладу використовуємо Bing API

Для початку вам буде необхідно отримати свій AppID, що дозволяє взаємодіяти з веб-сервісами Bing. Він використовується API сервісу для перевірки того, що запит виходить від зареєстрованого в Bing розробника додатків. Ця процедура абсолютно безкоштовна і не займе багато часу. Вирушайте на bing.com/developers/createapp.aspx для реєстрації. Після успішної реєстрації ви отримаєте довгий рядок з літер та цифр – ваш новий AppID.

Тепер, коли у вас є AppID, ви готові розпочати роботу над мобільним додатком-перекладачем. Наша мета - забезпечити переклад з англійської на українську. Створіть новий проект Windows Phone Application під іменем BingTranslator. Відредагуйте назву програми та заголовок сторінки на відповідні назви. Далі додайте елементи TextBox (TranslateTextBox), у якому ви будете поміщати слова перекладу, і TextBlock (TranslatedTextBlock), де показуватиметься переклад. Нарешті, додайте кнопку (TranslateButton), за допомогою якої буде здійснюватися переклад.

проблеми

Запустіть програму в емуляторі, щоб переконатися, що всі зміни працюють. Щоб подивитися на створений значок, потрібно закрити програму та перейти в основний екран емулятора.

Значок програми визначається у файлі WMAppManifest.xml, який знаходиться у папці Properties вашого проекту. Щоб перейменувати значок програми, змініть ім'я файлу ApplicationIcon.png у своєму проекті, а потім не забудьте відобразити цю зміну тут, в елементі IconPath:

Якщо ваша програма не зможе знайти свій значок, то в період виконання йому буде присвоєно значок за замовчуванням, який виглядає приблизно як білий кружок на чорному тлі.

Microsoft TranslatorAPI

Microsoft Translator надає три види API: SOAP (забезпечує строгу типізацію та простоту використання), AJAX (корисний в основному розробникам веб-сторінок, що бажають вбудувати у свої UI засоби перекладу) та HTTP (корисний у тих випадках, коли не годяться ні SOAP, ні AJAX API). Ми використовуємо інтерфейс SOAP, тому що з ним найлегше працювати. Перейдіть до Solution Explorer і клацніть правою кнопкою мишіReferences. Потім виберітьAdd a Service Referenceі вкажіть кінцеву точку для інтерфейсу SOAP Translator API, вставивши в текстовому полі Address рядокhttp://api.microsofttranslator.com/V2/Soap.svc. Натисніть кнопку Go.

У текстовому полі Namespace надайте кінцевій точці сервісу ім'я TranslatorService і натисніть OK.

IntelliSense показує нам, що сервіс перекладу має низку цікавих методів. Перше, на що варто звернути увагу, всі методи асинхронні. Це має сенс, оскільки вагомих причин блокувати клієнтську програму на час виконання мережевої операції немає. Отже, вам доведеться зареєструвати делегат для кожної конкретної операції. У цьому випадку нас цікавлять лише метод TranslateAsync та подія TranslateAsyncComplete, що надаються LanguageServiceClient. Зверніть увагу на методи GetLanguagesForTranslateAsync та GetLanguageNamesAsync. Перший метод повертає список мовних кодів, які підтримує сервіс Translator. Викликавши цей метод, ви можете побачити, що мовний код для іспанської - es. Метод GetLanguageNamesAsync повертає список назв мов для даного набору мовних кодів, локалізованих для даного регіону (локалізованого ідентифікатора) (locale). Наприклад, якщо ви передаєте «es» у цей метод як локалізуючий ідентифікатор та мовний код, то отримуєтерядок "Español". Це знадобилося б нам для створення багатомовного перекладача. Інший цікавий метод - SpeakAsync. Він приймає рядок і локалізує ідентифікатор, а повертає URL-адресу на WAV-файл, завдяки якому ви можете почути вимову цього слова носієм мови. Це надзвичайна функція. Наприклад, я міг би ввести рядок, отримати переклад, потім передати цей рядок у метод SpeakAsync, отримати WAV-файл і в такий спосіб спілкуватися з іншими іспанською. Або, якби я не був упевнений у вимові конкретного слова, я міг би використати метод SpeakAsync, щоб послухати, як вимовляється це слово.

Але повернемось до перекладача. Спочатку ми реєструємо делегати для події TranslateCompleted:

Потім реалізуємо обробник події TranslateCompleted, який записує в TextBlock перекладений текст:

І додаємо код для кнопки, щоб розпочати переклад.

Тепер у нас є повністю працюючий додаток-перекладач, який вимагає написати десяток-другий рядків коду і трохи більше години часу. Запустіть проект, введіть будь-яке слово англійською та отримайте українськомовний переклад.