Google translate android studio

How to use Google Translate API in Android Studio projects?

Cansu Yeksan Aktaş

Mar 11, 2019 · 6 min read

Cloud Translate API is one of the most useful API which Google offers to developers. Implementation of Cloud Translate API to your project is really simple, so you can prefer to use it in your translation projects.

As we know, every beautiful thing has a price. Before implementing Cloud Translate API to your project, you can check the pricing from the link: https://cloud.google.com/translate/pricing

Important Note: The steps of getting c redentials file (in JSON format) from Cloud Translation API are going to be explained in detail until step 19. If you have already get the credentials file and want to see the implementation of the code, please just skip to the 19th step.

Both Java and Kotlin codes are included in this post.

Now, we are ready to start the implementation of Cloud Translate API to the project. Let’s start step by step:

  1. The first thing to do is to sign in Google API Console from the link: https://console.cloud.google.com/apis/

If you have a Google API Console account, enter your Email or phone, and your password.

If you do not have a Google API Console account, you can click on “ Create account” and start to create an account for Google API Console. Then, below page will appear:

After entering your personal information, you will be directed to your profile dashboard in the Google API Console. Check “ I accept the Google Platform Terms of Service and the terms of service for all applicable services and APIs.”

2. Click on the “ Select a project” on the Google Cloud Platform tab:

3. Then, click on the “ New Project” in the below screen:

4. Enter your Android project name and click on the “ Create” button. I will name the project as “GoogleTranslate”:

5. Your project will be displayed on the Google Cloud Platform dashboard. Select “ APIs and Services” on the navigation drawer at the left side:

6. Click on the “ Enable APIs and Services” button:

7. Type “ Cloud Translation API” in the search box and select the API:

8. You need to enable Cloud Translation API for your project by clicking on the “ Enable” button:

9. Click on the “ Enable Billing” in the screen below:

10. You will encounter the screen below. Click on the “ Create billing account” and continue:

11. Check “ I have read and agree to the Google Cloud Platform Free Trial Terms of Service.” and click on “ Agree and Continue”:

12. Enter your personal information:

13. After entering your Credit Card number, click on the “ Start my free trial”:

14. You are ready to manage Cloud Translation API for your project now. Click on “ Manage”:

15. Click on “ Create Credentials”:

16. Select “ Cloud Translation API”, check “ No, I’m not using them” and click on “ Which credentials do I need?” :

17. Enter your personal information, select “ JSON” as the key type and click on “ Continue”:

18. The credentials file of your project will be downloaded to your computer automatically in JSON format. Keep this file, for now, you will need the file soon 🙂

19. Now, you are ready to code! First, add internet permission to your AndroidManifest.xml file:

20. Add google cloud translate dependency to module level build.gradle. (It is the latest version of google cloud translate library for now, you can use the updated version if it is available in the future)

21. In order to prevent “ More the one file was found with OS independent path “project.properties” gradle error, add below code to the app level build.gradle:

22. Create a layout and add an EditText, a Button and a TextView. Therefore, when a text is entered to EditText and then Translate Button is clicked, the translated text will be displayed on a TextView.

23. We are almost done! Copy your credentials file in JSON format which you had downloaded at step 18 to raw resource directory. In order to create a raw resource directory:

Right click on res folder → Click on “ New” → Click on “ Android Resource Directory” and select Resource type as “ raw” from the list.

Then, move your credentials file in JSON format to the raw folder. It is important to note that the name of the files in the resource folders such as raw folder cannot contain uppercase characters, etc., so you need to consider the warning of Android Studio while naming your credentials file*:

Читайте также:  Android studio вывести массив

“ File-based resource names must contain only lowercase a-z, 0–9, or underscore” characters”

*For simplicity, I just named the credentials file as “ credentials.json”.

24. Add the string of no internet connection warning to the strings.xml:

25. …and the last part is MainActivity.java:

First, translate service is gotten by getTranslateService() method. In this method, basically, the credentials which had been obtained from the Google API Console previously is set and translate service is connected.

After getting service by setting credentials, the translation process is carried out in the translate() method.

Also, we are checking the internet connection with the checkInternetConnection() method. Therefore, if there is no internet connection, “no connection” warning is displayed to the user at the TextView. If there is no problem related to the internet connection, translation is carried out and translated text is displayed at the TextView.

26. If you want to write your code in Kotlin, MainActivity.kt will be like below:

27. Cloud Translation API automatically detects the language which is translated to a target language. Therefore, you do not need to define the source language, but you have to define the target language.

I chose the target language as Turkish, so I used “ tr” abbreviation for my target language. Please find the abbreviation of your target language from the below link which includes supported languages:

Источник

Памятка начинающим переводчикам приложений под Android или как начать переводить приложения

Доброго времени суток, Geektimes.

Когда я только начинал переводить приложения, информации по переводам, в принципе, было немного, и касалась она в больше технической стороны вопроса — как декомпилировать приложение, какие инструменты использовать и общие рекомендации, да и по большей части она была везде одинаковой. И, честно говоря, было тяжеловато разбираться в тонне информации без какого-либо относительно хорошего руководства. В данной статье я попробую собрать всю информацию, касаемую переводов и инструментов, облегчающих такой труд. Надеюсь, что желающим стать переводчиками приложений это послужит по меньшей мере хорошим руководством.

Заинтересовавшихся прошу под кат.

Вступление

Безусловно, самым главным является знание языка, с которого Вы собираетесь переводить. От знаний языка зависит будете ли Вы переводить «быстро» или «хорошо», или же сразу два в одном. Зачастую бывает так, что знаний в какой-то нужной сфере у Вас нет, тогда тут определённо нужно читать литературу по этой области. Например, если Вы хотите перевести приложение, которое занимается модифицированием системы, то следует изучать литературу именно об этом, т.к. технический английский бывает не таким уж и однозначным и зачастую отличается по значению от терминов в нетехнической сфере, а некоторые конструкции можно переводить по-разному, и корректный перевод Вы сможете сделать только, если Вы понимаете о чём идёт речь. Из этого вытекает уже второй критерий: понять, что на это реально требуется время и упорство, если Вы хотите делать всё качественно, а не через Google Translate.
Я не буду вдаваться в технические подробности операций непосредственно с самим .apk-файлом по вытаскиванию из него локализации, а так же внедрения в него Вашего перевода — Вы сами без труда сможете это найти на просторах, т.к. мануалов огромное количество, я же просто собрал информацию о возможных инструментах. Например, статья из песочницы Хабра, где примерно написан процесс декомпиляции приложения; статья на Хакере о том же самом + модификации; ещё статья, первая в гугле. Более подробно можно посмотреть, конечно же, мануалы самого гугла.

Первым делом

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

  • разработчик даёт ссылку на ресурс, где перевод осуществляется всем миром;
  • разработчик отвечает, что не планирует добавлять другой язык;
  • разработчик присылает Вам файлы локализации;
  • разработчик говорит, что локализация уже есть и она качественная;
  • разработчик не отвечает вовсе.

Ресурс для перевода всем миром по нитке хорош скоростью перевода, однако, опасен тем, что зачастую не всегда его переводят те, кто может перевести корректно. Обзор таких ресурсов на Хабре. Например, Вы знаете, что такой-то пункт в меню приложения отвечает за определённую функцию, и пишете перевод в соответствующую ячейку на этом ресурсе. А потом какой-то умелец берёт и исправляет на неправильный, на, скажем, дословный перевод, который не является корректным. Вы снова исправляете на нужный, но кто-то упорный снова переименовывает. Есть ресурсы, где за каждый предлагаемый перевод можно голосовать, например, если кто-то предложил вариант «А», а Вы — «Б», то другие пользователи могут голосовать либо за «А», либо за «Б», и чей перевод наберёт больше голосов, тот и будет правильным. Хотя я не раз видел, что голосуют за откровенно некорректный вариант. Ну и, безусловно, надо понимать, что считать перевод только своим Вы не сможете, если Вам важно авторство перевода.
Если разработчик прислал Вам файлы локализации, то тут всё гораздо проще — берём свой инструмент для перевода и вперёд, а с разработчиком можно даже договориться о том, чтобы указал Вас в качестве переводчика — Вам приятно, а разработчик получает ещё одну локализацию.
Если же разработчик говорит, что локализация есть и качественная, а Вы явно видите там ошибку, да и не одну, и на ресурсе для перевода всем миром перевода нет, то остаётся только делать свои моды, если же, конечно, разработчик отказывается брать Вашу локализацию. Такая же ситуация, если разработчик Вам не ответил.
Лично я советую всегда попробовать сначала связаться с разработчиком, т.к. это может Вам упростить жизнь, а дальше уже выбирайте — будете ли Вы переводить на сайте, или будете делать свой перевод.

Читайте также:  Mud runner apk android

Инструменты для работы с .apk

По сути, инструмента-то два, один основан на декомпиляции самого пакета, а другой — на работе непосредственно с самой ресурсной таблицей пакета.

Apktool и его модификации:
Что такое apktool, можно узнать на просторах, это прекрасно гуглится и объясняется везде, где только можно. Собственно, все инструменты ниже основаны на нём, все я не перечислю, но постараюсь добавить самые основные.

  • Apktool — «оригинальный» вариант, консольный;
  • APK Studio — мощный инструмент для работы с пакетом, мало подходит начинающим;
  • APKToolGUI — очень удобный инструмент с оконным GUI, но, к сожалению, больше не поддерживается автором, код лежит на GitHub (на него и ведёт ссылка);
  • Batch Apktool — по-моему, самый удобный и исправно функционирующий инструмент, который обладает каким-никаким GUI, имеет поддержку плагинов, активно развивается и это самый настоящий комбайн для модификации что прошивок, что отдельных приложений;
  • jBART — зарекомендовавший себя отличный инструмент для перевода прошивок, но умеет работать и с одиночными пакетами, по сути, это надстройка над apktool, позволяющая пакетно переводить .apk-файлы и патчить код;
  • MultiApkTool — неплохой комбайн, похожий на BatchApkTool;
  • множество других.

B.A.R.S.:
B.A.R.S. — принципиально другой инструмент перевода, он не перекомпилирует пакеты, а патчит ресурсную таблицу с заменой или добавлением строк, что позволяет снизить вероятность ошибок рекомпиляции практически на 99%.

Итог:
Если Вы хотите производить модификацию .apk-пакета в более полном понимании процесса (например, элементарное вырезание лишних языков, замена иконок и прочее) + перевод, то Вам нужны инструменты, основанные на apktool — все инструкции по использованию и прочим хитростям можно найти на просторах, у меня не стоит цели описывать всё тут. Вся беда apktool в том, что он перепаковывает приложение, что может создать дополнительные трудности.
Если Вы хотите только локализовывать, тогда можно обойтись B.A.R.S., однако, требуется настроить репозиторий с переводом. Впрочем, возня на час-другой сможет Вас избавить от головняка по сборке, которая может случиться с apktool.

Внимание! Настоятельно рекомендую связываться с разработчиком при создании модов — они нередко идут на встречу, разрешая делать с приложением что угодно, только без выкладки в общий доступ. По сути, никакого технического значения обращение к разработчику не имеет, но это этическая сторона вопроса, которая действительно важна. Например, я связывался с разработчиком одной программы-таскера и отправил ему перевод, однако, много перевода было в коде и без рекомпиляции приложения собрать локализованный пакет было невозможно. Разработчик ответил, что «разрешить выкладывать в общий доступ он не может, но использовать для себя — сколько угодно», и даже сам указал в каких именно строках кода лежит перевод.

Инструменты для работы с файлами локализации

Допустим, Вы получили файлы локализации так или иначе (или Вам прислал их разработчик, или Вы разобрали приложение), следующий шаг — перевод этих файлов. Для автоматизации перевода существует огромное количество инструментов, где используется «translation memory» («память переводов») — база, которая будет сопоставлять строки и выводить наиболее подходящий вариант перевода. Подробнее об этом можно почитать, опять же, на просторах.

  • Вручную — самый дедовский способ: открываем в текстовом редакторе (Notepad++ или любом другом, кроме нативного «Блокнота» в Windows!) и переводим. Медленно и архаично. В общем — хватит только на первые сотни три строк, далее лень и жалость к потерянному времени возьмёт своё.
  • TM-database — отличная легковесная программа, которая умеет работать со множеством форматов, поддерживает базу данных и активно поддерживается. Отличный выбор как для начинающих, так и для более прошаренных. Работает как на Windows, так и прекрасно запускается из-под Linux (Wine).
  • TranslatorApk — комбайн, который умеет и декомпилировать приложения, и относительно удобно работать с текстом. Вариант для тех, кто хочет иметь всё в одном.
  • Déjà Vu, OmegaT, Trados, SDL Passolo и пр. инструменты.

Наиболее подходящие для перевода файлов локализации (.xml) — именно первые две программы, лично я сам пользуюсь TM-database. Например, у меня OmegaT начисто отказывался работать с .xml, приходилось копипастить в документ другого формата, удалять лишнее… В общем, напряжно. При использовании «памяти переводов» можно пользоваться что своей базой, что стандартной. Своя база хороша тем, что Вы добавляете в базу исключительно свой перевод, и при автоматическом переводе многое может перевестись корректно. При использовании «стандартной» базы или «общей», в которую все кладут по копеечке, вероятнее всего будет куда больше перевода, но опять же — он может быть неправильным или может отличаться от Вашего мышления. Тут уже Ваш выбор. Так же есть функции онлайн-перевода — можно прогнать через онлайн-переводчик и затем редактировать, но об этом ниже.

Читайте также:  Карты для oziexplorer для android

Итог: создание собственной базы сможет упростить Вашу жизнь больше, чем общая база, но только в том случае, если в Вашей базе содержится действительно множество строк. Возможно, потребуется несколько лет на создание оной, но оно того стоит. В остальных случаях хватит и общей базы. Лично моя рекомендация — создавайте свою базу с нуля, либо берите «стандартную» базу и набивайте в неё свой перевод — стандартный перевод на то и стандартный, а к нему будут добавляться лично Ваши строки. Но не стоит думать, что база решит все Ваши проблемы, всегда придётся забивать вручную какую-то часть и править перевод из базы. Всегда после прогонки через базу смотрите на результат.

Словари и онлайн-сервисы

Безусловно, чтобы что-то вбивать в базу данных, надо знать как это переводится. Зачастую многие специальные термины переводятся совершенно различно от дословного перевода, а все их запомнить нереально. И вот тут приходится обращаться к словарям и переводчикам.

  • Мультитран — потрясающая платформа, где можно реально найти огромное количество терминов, причём, добавить туда можно тоже. Можно переводить что через сайт, что скачать себе базу и переводить через клиент.
  • ABBY Lingvo — клиент на ПК умеет даже разговаривать, огромная база переводов. Да и вообще компания известная, одна из лучших. Специальных терминов меньше, чем в Мультитране, но определённо может помочь, или уж, по меньшей мере, подкинуть вариант перевода.
  • PROMPT — известный переводчик, конкурент Google Translate, иногда выдаёт варианты, которых в Google Translate нет; приходится додумывать, но если есть подсказка — уже хорошо.
  • MyMemory — отличный ресурс, аналог Мультитрана, есть множество терминов и различных вариантов перевода.
  • QTranslate — отличный клиент для сервисов перевода, в котором можно сразу пробивать по каждому сервису, в т.ч. и по китайским.
  • Google Translate — в комментариях не нуждается. Может подсказать или даже перевести нормально. Довольно неплохо переводить с китайского.
  • Microsoft Language Portal — тут можно найти «память перевода» для продукции Microsoft (спасибо за подсказку virtualtomato).
  • Verifika — потрясающий сервис для нахождения обидных ошибок в переводе (двойные пробелы, целостность переменных, тегов и пр.). Невероятно полезный сервис, который плагин в Notepad++ не заменит (спасибо за подсказку virtualtomato).
  • Множество информации о переводах, ссылок на ресурсы для специализированного перевода и пр.

Использование сервисов типа Мультитрана так же значительно может облегчить Вам жизнь. Но если нет какого-то специального термина, то следует пробивать по трём ресурсам нужные слова и пытаться уловить смысл словосочетания — да такое тоже случается. Очень хорошую подсказку зачастую даёт строка с переводом, сам ключ, из него можно вытащить 95% информации за что отвечает эта строка. Ни в коем случае не увлекайтесь голым онлайн-переводом, практической пользы от такого перевода нет вообще, проще уже оставить на нативном языке, если это хотя бы английский. Но если уж такое произошло, что очень хочется перевести, а навыков и знаний особых нет — то следует прогнать через онлайн переводчик, смотреть на ключ строки и облагораживать. В процессе такого обучения с каждым разом Ваши знания будут увеличиваться, а перевод — шлифоваться. Самое главное — никогда не оставлять голый машинный перевод, если Вы прогоняете онлайн.

Заключение

Ну вот вроде бы и всё. Как видно — это не так уж и сложно, более того, заставляет мозги работать, да и знания никогда не бывают лишними. Общие рекомендации, если подводить итог, не отличаются от тех, что в статье — делать самостоятельно, небездумно копировать и переводить через переводчики без последующей обработки. Например, если переводить через переводчик с китайского на английский, а потом на русский — получится такой ужас, что лучше бы остался китайский. Самое главное тут — уважение к чужому труду (разработчику), к пользователям, которые будут смотреть на Ваш перевод (а стыдобище-то будет, если переводить абы как), и к себе лично. К счастью, с каждым годом инструменты и сервисы пилятся всё активнее, становится куда более удобно заниматься переводами. К слову, если разработчик адекватный, то за свою работу Вы сможете получить или какой-нибудь VIP-аккаунт, или маленький подарочек (мне как-то выслали футболку прикольную с прикольным монстриком — логотипом программы) — мелочь, а всё равно приятно. Уважайте друг друга и делайте работу качественно, если уж взялись.

Источник

Оцените статью