​​Как изменить строковые ресурсы налету?

#разработка



Если приложение имеет поддержку нескольких языков, то в разработке появляется ещё одно звено — отдел переводчиков. Сразу появляется несколько проблем:



1) Люди ошибаются, и в переводах есть опечатки, неточности и ошибки, которые проявляются уже после релиза.



2) Добавление переводов. Если в приложении много языков, то обычно переводят базовый язык (английский), а остальные добавляют после. Если ждать перевода строк на несколько языков, то выкладка релиза может сильно затянуться. Опять приходится ожидать нового релиза.



3) Обмен строковыми ресурсами. Переводчикам не удобно работать с форматом xml. Для удобства используются средства, которые преобразуют xml в таблицу Excel. После этого эти файлы нужно экспортировать обратно в проект. Это лишняя и рутинная задача, которая отнимает время.



К сожалению, Android не даёт стандартных средств для замены строк налету. Стандартные ресурсы работают хорошо и работают с огромным количеством языков. Но только вшивая их в очередной apk-файл.



Недавно мне попался ресурс, который решил все описанные проблемы. Это сервис Lokalise. В нем есть гора возможностей, которые улучшают процесс перевода приложения.



• импорт текущих ресурсов. В большом проекте может быть несколько тысяч строк. Сервис автоматически покажет дублированные строки, которые можно объединить, удалить или пропустить. При добавлении второй платформы, сервис сам предложит объединить строки с разными ключами. Это все делается в течении получаса;



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



• переводы налету. Есть SDK для Android и iOS, которое позволит исправлять ошибки переводчиков без перезаливки приложения.



• работа с командой и система администрирования. Удобно давать доступ для переводчиков только к текущему языку.



• интеграция с Git, Jenkins и другими системами. При правильной настройке, взаимодействие с отделом переводов можно свести к минимуму или вовсе исключить. Строки будут попадать из приложения и обратно самостоятельно.



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