Автоматический перевод строковых ресурсов
Когда я запускаю проверку 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+ языков и использует поддержку нескольких переводчиков :
- Гугл переводчик.
- переводчик майкрософт.
- Байду переводчик.
- Юдао переводчик.
- Али переводчик.
Использование:
- Щелкните правой кнопкой мыши файл string.xml.
- Выберите «Перевести на другой язык».
Посмотрите здесь: 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