В качестве хобби я разрабатываю небольшие приложения под Android. В какой то момент я понял, что необходимо из перевести на другие языки для расширения аудитории. В начале это были относительно знакомые мне языки, которые я изучал в школе или университете - английский и немецкий. С ними было более менее просто, так как многие слова были знакомы и корректность перевода я мог проверить самостоятельно с помощью словарей.
Но с добавлением других языков стало сложнее. Сторонний перевод стоил относительно большие суммы и я решил переводить все сам. Далее я расскажу к какому способу перевода я пришел.
В среду разработки Android Studio встроен Translations Editor - не самый плохой плагин, но во многом неудобный. Нужно всегда по два раза кликать мышкой по ячейкам, нет возможности работы как с таблицей и т.д. Я его использую только для добавления новых языков.
Строковые данные хранятся в xml файлах, разложенных по папкам с собственным префиксом обозначающим язык перевода, в следующем виде:
<string name="имя_переменной"> перевод </string>,
где "имя_переменной" - название переменной, одинаковое для всех языков
перевод - перевод на конкретный язык .
Лайфхак номер один.
Для перевода я использую гугл таблицы.
В первом столбце я перечисляю свои строковые переменные в следующем виде:
<string name="имя_переменной"
в следующих столбцах идет перевод слов на указанный в заголовке язык
на отдельных листах, для каждого языка свой, по такой формуле, используя амперсанд, я формирую итоговую строку для xml файла:
='листСпереводвами'!ячейкаПеровогоСтолбца & ">"& ' листСпереводвами '! ячейкаСпереводом & "</string>" , а именно:
<string name="crocodile"
+
Крокодил
+
</string>
по итогу дает нам в ячейке:
<string name="crocodile">Крокодил</string>
Эту формулу легко протянуть по всем исходным ячейкам и в итоге получаем получаем таблицу, которую достаточно скопировать в созданный в Translations Editore файл xml для нужного перевода.
Лайфхак номер два.
На листе со всеми словами как правило мы заполняем все ячейки с нашим родным языком. Для быстрого, но чаще всего не корректного перевода на другие языки, можно воспользоваться встроенным в гугл таблицы переводчикам используя следующую формулу:
GOOGLETRANSLATE(text,[source_language],[target_language])
text — это текст, который нужно переводить. Можно, конечно, взять текст в кавычки и записать прямо в формулу, а можно сослаться на ячейку, в которой он содержится.
[source_language] — язык, с которого мы переводим;
[target_language] — соответственно, язык, на который мы переводим.
Второй и третий аргументы задаются двухзначным кодом: es, fr, en, ru и т.д. в кавычках. Их тоже можно указать в самой функции, но можно брать из ячейки, а язык исходного текста и вовсе можно автоматически определять.
Обратите внимание, что оба аргумента необязательные — если их не указать, перевод будет осуществляться на английский. Язык исходного текста будет определяться автоматически
Введя первую формулу в столбце и протянув ее вниз можно получить автоматический перевод всех переменных.
Лайфхак номер три.
Автоматический перевод не всегда корректно ловит контекст и верно предлагает итоговый перевод.
Для более качественного перевода отдельных слов я использую сайт https://glosbe.com/
Перевод слов предлагается по большей части из контекста предложений.
По предлагаемому контексту можно проверить корректность перевода.
Для сложных слов, языков или когда предлагается несколько вариантов перевода есть
Лайфхак номер четыре.
Я проверяю варианты перевода через википедию переводимого языка.
И если по сути статьи и по картинкам в ней я понимаю, что это то что мне надо, то это слово и отправляется в таблицу для перевода.
На этом все. Не бойтесь заниматься переводом!