Тестирование локализации мобильных игр для чайников от чайника

в 10:45, , рубрики: интерфейсы, локализация игр, Локализация продуктов, Тестирование игр, тестирование интерфейсов, Тестирование мобильных приложений, тестирование по

Введение

Я уже полгода работаю тестеровщиком мобильных игр и хотел немного рассказать о своём самом любимом тестировании — Тестировании локализации. В этой статье я поделюсь своим опытом тестирования именно локализации, в основном будет опора именно на локализацию текста.
Немного о себе и о своей работе: Я придерживаюсь принципа, «Тестировщики — это такие люди, которые мешают программистам спокойно жить. Если бы не программисты мы бы сидели без работы и наоборот».

Что такое локализация?

Локализация — это процесс адаптации интерфейса ПО под разные регионы, культуры, языки. Перейдём от общего к частному: Локализация в играх — это перевод её на разные языки и адаптация под культуру во всём что видит пользователь, а именно:

  • Текст
  • Текстуры
  • Звук
  • Игровые события и сюжет

Первые три пункта вполне понятны и логичны, но хотелось бы пояснять пункт «Игровые события и сюжет» простым примером: представим далёкую галактику на которой бананы считаются чем-то незаконным. В этой галактике точно не стоит запускать игровую ветку в которой есть бананы… Именно поэтому в локализации данной галактики бананы стали зелеными, солёными и в принципе огурцами.

Как тестировать текст в локализации (что обычно делаю я)

Первое, что хочу сказать, что не претендую на уникальность, но на момент когда я встал на путь тестирования информации толком не нашёл, а так готовые тест-кейсы которые можно в принципе натянуть на свой проект и юзать.

Наличие перевода

В принципе логично, что когда пользователь заходит в игру всё должно быть на его родном языке за исключением каких-нибудь кнопок «ОК». Особо на этом останавливаться не буду, нужно просто понимать, что нет перевода хоть на один пункт — плохо.

Сочетание интерфейса и перевода

Заходя на какой-либо зарубежный сайт без встроенного перевода я часто обращаюсь к сторонним переводчикам, типа «Google translate» и естественно много сайтов просто ломаются и едут от родного для меня Русского языка. Читать такие сайты становится больно для глаз и всё печально. Так вот к чему, перейдем к нашим реалиям — мобильным играм. В мобилках в точности такая же беда длинный русский текст, ломает всю красоту интерфейса банально выезжая из полей выходя за краешки окна. Более извращённая проблема это поплывший текст в анимациях и всплывающих подсказках и других трудно уловимых элементах интерфейса. Тут важно просмотреть все точки где текст есть и может быть. Особенно сделаю акцент на «может быть» так как это ещё более интересное место для поиска багов.

Для тех кому интересно почему это место более интересное
В зависимости от технологий и концепций используемых при разработке может быть очень много вариантов исполнения мультилокализации в приложении, я буду отталкиваться от системы, которая действует на проекте с которым я работаю. В проекте есть специальная утилита, которая хранит ключи и варианты перевода этого ключа на разные языки. На клиентском приложении есть картинка с символами, которую наверное все уже видели, и наконец-то «Съели мягких французских булок». Соответственно в зависимости от выбранного языка подтягиваются нужные переводы.

Дак вот к чему вся эта история: тут как минимум две ключевые точки для тестирования это подгрузка переводов и подгрузка атласов с буквами

Почему тут есть, а там нет?! Интересные места в практике

Бывает так, что во время перевода часть текста пропадает, и переводчики в этом не виноваты. С чего начать? Всё очень просто, если ты или твоя контора богаты у тебя есть лишние устройства или виртуалка, то можно открыть игру на родной локализации (или же на той, которая точно уже правильная, не всегда родная локализация это оригинал, увы), далее хорошо изучить интерфейс или место которое вызывает вопросы, сравнить тестируемое место в локализации.

Куда копать если всё-таки что-то не так?

Есть вариант что перевода для данной части текста просто нет в системе. Если у вас есть какое-то специальное средство или приспособление для выгрузки переводов, то просмотреть это не составит труда. Если его нет расскажу где-то ниже.

Дальше пойдет повествование для приложений, которые используют нестандартные шрифты. (У нас эти картинки с буковками называются Атласами, как они называются в других местах не знаю, можете сказать в комментариях будет инетерсно почитать).

  • Я убедился что перевод есть, но текста всё-равно нет. Первый мой вопрос, а загрузился ли атлас? Самый лёгкий случай когда, мы видим пустые квадратики или квадратики с крестиками, тогда точно дело в том что таких символов нет и дело в этом. Но может быть и просто не загрузка атласа без каких-либо внешних признаков(Если в аналогичных местах перевод есть, то точно не это).
  • У меня атлас подгрузился я вижу это в отладчике ну или по логам или ещё как. Твой атлас может быть битым, сожалею. Но не отчаивайся, можно подменить шрифт на скачанный с интернета, а потом убрать и если текст появился то, у тебя просто не хватает определённых символов либо ещё чего-то (буковки поехали)
  • Перевод очень хитрый и в нём есть подстановка. Бывает так, что где-то используются одинаковые переводы, например у всех предметов есть в переводах «время изготовления», «вес» и ещё какой-либо вычисляемый параметр, тут легко догадаться, что для облегчения лучше брать шаблон и просто подставлять в него цифры. Если вы вычислили такой элемент перевода, то вероятнее всего где-то не приходят нужные данные
  • У меня нет никаких вычисляемых полей и вообще есть только первая или вторая половина текста и у меня ничего не работает. Что мне делать ничего не понимаю? Изучим синтаксис данного перевода, возможно в нём есть всякие интересные скобки кавычки и специальные символы. Таким образом возможно этот текст обрабатывается просто как часть программы

Мои претензии к языкам

Для тестирования много языков — это просто ад по многим параметрам, начиная от текстового начертания (большие символы, письмо справа-налево) заканчивая семантикой.

Начнём с самого простого и постепенно пройдемся по всем языкам с которыми я работал:

  • Немецкий язык. Тут следует обратить внимание на умлауты (буковки с точками как на букве ё), букву «Эсцет», которая выглядит как бетта — ß, если её не получается поченить её можно заменить на «ss» и это не будет большой ошибкой(наверное немцы меня за это поругают)
  • Русский язык. Не ущемляйте букву ё (лучше пожертвуйте Ъ, если экономите место). Проблемность русского языка оооооочень длинные слова, но благо Русский язык очень богат и синонимов тоже оооооочень много
  • Китайский язык. 40 000 Иероглифов. Этот язык создал кучу проблем благодаря своему количеству символов, много символов в моём проекте просто не отображалось. Наши программисты создали чудо-утилиту, которая выдерала все символы из переводов и поэтому 40 000 атлас в игре не существует (экономим память и все такое)
  • Корейский язык. Благодаря синтаксическим особенностям (я так думаю, ну или просто кривым переводчикам) некоторые подставляемые параметры в переводах как циферки поменяли свой порядок и некоторое время смущали.
  • Японский язык. Тоже самое что и китайский, но есть одно большущее НО. Японский язык в локализации состоит почему-то очень часто из очень длинных слов, что влечёт за собой кучу потекшей верстки и другие вытекающие
  • Тайский язык. Мой самый любимый, ничерта его не понимаю но очень красивый. Всякие палочки кружочки волны и всё такое плавненькое, просто кайф. Но увы торчащие палки вылезают часто из интерфейса и приходится жертвовать размером.

Полезные советы и хитрости при тестировании текста

  1. Как я говорил выше, сравнение на нескольких устройствах. (Лучше ещё при разных размерах экрана, если приложение адаптивное).
  2. Не стараться вникать, что там написано.
  3. Для быстрого поиска соответствующего текста использовать Google Transleate(не реклама). Зачем мне это? Давайте представим мы нашли текст в котором допущена ошибка, вставлен какой-то нечитаемый символ, и тут в принципе всё легко берём да меняем символ и всё хорошо. Да всё отлично, но язык-то китайский. Гугл транслейт идеально распознает по фоткам все эти иероглифичные языки и переводит в текст на любом языке, а значит мы сможем найти русский перевод и просто сопоставить.
  4. Использовать гугл транслейт (Он мне просто нравится, ты можешь использовать любой) для проверки логики текста. Элементарно, если переводится и понятно, то переведено правильно, вставлено туда, отображается полностью, иначе косяк.
  5. Изучать особенности языка, хотя бы по Википедии. При этом знания языка не нужно совершенно.

Заострю внимание на гугл транслейте, лично у нас в отделе почему-то никто не догадался так использовать переводчик, хотя многие использовали эту самую функцию перевода текста по фото. (Вероятно, кто-то и сейчас использует либо использовал во время обучения).

Текстуры. Звук. Игровые события

Объединю все три пункта в одну сборную солянку, так как в мобильном геймдиве это мало локализуемые объекты. Ну камон, это вам не дорогущие игрушки от знаменитых студий.

Выделим основные аспекты, которые надо протестировать в каждой группе, начнём с текстур:

  • На текстурах, где есть текст (кроме международных обозначений и логотипов) текст на языке локализации
  • Текстуры с текстом, если они анимированы, либо как-то редактируются (двигаются поворачиваются, инвентируются) остаются читаемыми. Хотелось бы уточнить про инверсию, тут я имею ввиду псевдо 3D игры, где поворот реализован отражением картинки — текстуры с текстом не должны поворачиваться

Про звук:

  • Если озвучка в игре есть, то естественно она должна быть на языке локализации (Похожие предложения про локаль вы встретите еще очень много раз в этой статье, но это действительно важно)
  • Звук, видео и анимации. Тут всё как с фильмами. Звук по возможности должен сходится с говорящим, либо с анимациями, будь то камень который желает добра на китайском, либо олененок говорящий про солнышко на немецком.

Про сюжет

Как я писал ранее, в каждых галактиках, возможны свои непристойные вещи. Что уж говорить о странах, которые есть на нашей планете. Именно поэтому в зависимости от страны в которой игра будет распространяться, особенно если она суперконсервативная редактуре поддаётся многое (или всё) и набор акций и игровые объекты и сюжет и многое другое. Но опять же это справедливо, только для стран где язык локализации малораспостранённый. Например, если язык английски, то практически любую тематику можно запустить и в какой-то англоговорящей стране — это точно найдет отклик и будет воспринято правильно. А если допустим для англичан запустить праздник «Петра и Февроньи» вместо «Дня всех влюбленных», то это будет воспринято максимально странно.

  • Тут нужно тестировать абсолютно весь функционал, который так или иначе элементарно различается
  • Запускается ли другой функционал при смене локализации
  • Что будет уже с запущенным функционалом из другой локализации

А так же многое другое. Тут придётся сильно постараться и придумать кучу тест-кейсов.

Что общего или на что забивают локализаторы

Персонаж

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

Озвучка

Очень интересно, когда используется английская озвучка при отсутсвии требуемой озвучки. В таких случаях следует обратить внимания что логически куски звука и текста говорят в принципе об одном и том же. Иначе получится некрасиво, мало того что забили на локаль, ещё и не ту подсунули.

Незаконченная вещь или вырезанный контент

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

Заключение

Я очень сильно надеюсь, что эта коротенькая статья без картинок натолкнет вас на какие-то новые подходы к тестированию. Спасибо за прочтение. Буду очень рад дополнениям! Прошу сильно не ругаться это моя первая статья.

Автор: aleksej_1998

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js