Найти тему

Лайфхаки перевода приложений при разработке под Android

Оглавление

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

Но с добавлением других языков стало сложнее. Сторонний перевод стоил относительно большие суммы и я решил переводить все сам. Далее я расскажу к какому способу перевода я пришел.

В среду разработки Android Studio встроен Translations Editor - не самый плохой плагин, но во многом неудобный. Нужно всегда по два раза кликать мышкой по ячейкам, нет возможности работы как с таблицей и т.д. Я его использую только для добавления новых языков.

Интерфейс Translations Editor в Android Studio
Интерфейс Translations Editor в Android Studio

Строковые данные хранятся в xml файлах, разложенных по папкам с собственным префиксом обозначающим язык перевода, в следующем виде:

<string name="имя_переменной"> перевод </string>,

где "имя_переменной" - название переменной, одинаковое для всех языков

перевод - перевод на конкретный язык .

Лайфхак номер один.

Для перевода я использую гугл таблицы.

В первом столбце я перечисляю свои строковые переменные в следующем виде:

<string name="имя_переменной"

в следующих столбцах идет перевод слов на указанный в заголовке язык

структура расположения перевода
структура расположения перевода

на отдельных листах, для каждого языка свой, по такой формуле, используя амперсанд, я формирую итоговую строку для xml файла:

='листСпереводвами'!ячейкаПеровогоСтолбца & ">"& ' листСпереводвами '! ячейкаСпереводом & "</string>" , а именно:

<string name="crocodile"

+

Крокодил

+

</string>

по итогу дает нам в ячейке:

<string name="crocodile">Крокодил</string>

формула для ячейки получения итогового формата xml файла
формула для ячейки получения итогового формата xml файла

Эту формулу легко протянуть по всем исходным ячейкам и в итоге получаем получаем таблицу, которую достаточно скопировать в созданный в Translations Editore файл xml для нужного перевода.

Итоговый столбец уже вставленный в Translations editor
Итоговый столбец уже вставленный в Translations editor

Лайфхак номер два.

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

GOOGLETRANSLATE(text,[source_language],[target_language])

text — это текст, который нужно переводить. Можно, конечно, взять текст в кавычки и записать прямо в формулу, а можно сослаться на ячейку, в которой он содержится.

[source_language] — язык, с которого мы переводим;

[target_language] — соответственно, язык, на который мы переводим.

Второй и третий аргументы задаются двухзначным кодом: es, fr, en, ru и т.д. в кавычках. Их тоже можно указать в самой функции, но можно брать из ячейки, а язык исходного текста и вовсе можно автоматически определять.

Обратите внимание, что оба аргумента необязательные — если их не указать, перевод будет осуществляться на английский. Язык исходного текста будет определяться автоматически

перевод с помощью встроенного переводчика
перевод с помощью встроенного переводчика

Введя первую формулу в столбце и протянув ее вниз можно получить автоматический перевод всех переменных.

Лайфхак номер три.

Автоматический перевод не всегда корректно ловит контекст и верно предлагает итоговый перевод.

Для более качественного перевода отдельных слов я использую сайт https://glosbe.com/

интерфейс сайт https://glosbe.com/
интерфейс сайт https://glosbe.com/

Перевод слов предлагается по большей части из контекста предложений.

перевод
перевод

По предлагаемому контексту можно проверить корректность перевода.

Для сложных слов, языков или когда предлагается несколько вариантов перевода есть

Лайфхак номер четыре.

Я проверяю варианты перевода через википедию переводимого языка.

проверка перевода в википедии
проверка перевода в википедии

И если по сути статьи и по картинкам в ней я понимаю, что это то что мне надо, то это слово и отправляется в таблицу для перевода.

На этом все. Не бойтесь заниматься переводом!