Автоматический перевод строковых ресурсов

Когда я запускаю проверку Android Lint, я всегда получаю ошибки на своем ресурсе строк. Ошибка говорит о том, что я не переводил свои строки на все языки. Предполагая, что нет людей, которые знают все языки в мире (если есть, я не один из них), и эта ошибка имеет реалистичное решение.

Как я могу исправить эту проблему? Есть ли способ сделать это автоматически (как с Google Translate)?

Ошибка "<the-string-name>" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, es, es-rUS, et, fa, fi, fr, hi, hr, hu, in, it, iw, ja, ko, lt, lv, ms, nb, nl, pl, pt, pt-rBR, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rCN, zh-rTW, zu

РЕДАКТИРОВАТЬ
Я знаю, как отключить эту ошибку ворса. Эта ошибка существует не для ее отключения...

6 ответов

Решение

Вы можете использовать Google Translate, но, по моему опыту, это приведет к очень низкому качеству переводов. Автоматический языковой перевод еще далеко не совершенен.

Чтобы получить хороший перевод, вам понадобятся люди, чтобы перевести ваши строки для вас.

Если у вас нет много очень полезных, многоязычных друзей, люди будут стоить вам денег.

В Интернете доступно множество различных услуг перевода, в том числе недавно анонсированный Google. Он доступен в бета-версии на консоли разработчика в разделе "Services & Apis"

Я всегда использую этот замечательный плагин Android Studio AndroidLocalize

Поддерживает до 100+ языков и использует поддержку нескольких переводчиков :

  • Гугл переводчик.
  • переводчик майкрософт.
  • Байду переводчик.
  • Юдао переводчик.
  • Али переводчик.

Использование:

  1. Щелкните правой кнопкой мыши файл string.xml.
  2. Выберите «Перевести на другой язык».

Посмотрите здесь: https://asrt.gluege.boerde.de/

  • Автоматический перевод действительно не безотказен, но я обнаружил, что это хорошая отправная точка. Если вы используете простой английский, который в любом случае является хорошей идеей, переводы в основном нормальные. Кроме того, человеческие переводчики быстрее исправляют автоматически сгенерированный перевод, чем делают его с нуля.

  • Вы можете получить автоматический перевод Google для strings.xml из простого скрипта Python, который отправляет URL-запросы. Он основан на решении Khayam Gondal, но имеет некоторые улучшения, касающиеся обработки URL, синтаксического анализа XML и кодировки UTF8. Я сделал это для своего приложения для Android, и некоторые носители языка проверили его, они изменились очень мало (по состоянию на 2018-04 годы).

  • Более качественные автоматические переводы для 7 европейских языков (DE, EN, FR, ES, IT, PL, NL) можно получить на сайте deepl.com, но вы должны заплатить за использование API. Если вы удалите теги XML программно с вашего strings.xml и скопировать и вставить результат на веб-странице, вы можете получить очень хорошие переводы без особых усилий (и без оплаты денег).

Я создал инструмент, доступный на sourceforge, вы можете использовать его. https://sourceforge.net/projects/androidresourcetranslator/

Я использую Google Таблицы для автоматического перевода строковых ресурсов для своего приложения, например, =GOOGLETRANSLATE(A4,"en","ja"), а также могу объединить значение нескольких ячеек в другую ячейку, например =CONCATENATE(B4,C4,D4,E4,F4). Мой случай выглядит следующим образом:
A4:
B4:<string name="
С4:button_play
Д4:">
Е4:=GOOGLETRANSLATE(A4,"en","ja")
F4:</string>
G4:=CONCATENATE(B4,C4,D4,E4,F4)
Результат показан в G4:<string name="button_play">遊ぶ</string>, затем вы можете скопировать в строковый ресурс студии Android или другой. вам нужно только заменить ячейку A1Play(строка исходного языка) и ячейка E4ja(код целевого языка).
Подробнее см. https://support.google.com/docs/answer/3093331?hl=en .

Вы также можете использовать этот скрипт Python. Все, что вам нужно, это ключ облачной службы Google:https://github.com/aljazst/Android-Strings.xml-Translator

Вы можете найти всю информацию на README.md

Другие вопросы по тегам