| ПОТРАЧЕНО–3. Как тестировать локализацию переводов, чтобы потом не было стыдно |
| 17.12.2025 00:00 |
|
Автор: Михаил Кургузов Итак, две части про локализацию и её тестирование позади (раз, два), пришло время для третьей. Как и обещал, сегодня про подробности интеграции в процесс тестирования, чеклист и другие полезности. С чего стоит начинать интеграцию тестирования в разработку? Правильно, как и любое другое важное дело — с планирования. Причём чем раньше вы всё это дело запланируете, тем будет лучше. В нашем случае шаги интеграции в процесс разработки ПО выглядят вот так:
Доступ к ресурсам — штука местами сложная. В большинстве компаний разработчики по тем или иным причинам боятся предоставлять доступ к ресурсам, если вдруг нужно внести какие-то правки. Они считают, что «нет такого переводчика, который не мог бы что-то сломать в ресурсных файлах». На самом-то деле эта проблема решается, если просто, сделать отдельный репозиторий или ветку в нём, где переводчики и будут ковырять всё то, что им нужно, и забирать потом оттуда готовые файлики. Важность тест-кейсов вы и без меня понимаете — без них вам будет очень сложно, особенно, если вы используете билд-тестирование. То же самое касается и качественного фидбека, потому что коммуникация с командой локализации — это и вправду важно. Бывает, что команды разработки и команды локализации существуют довольно обособленно друг от друга, и в таком случае коммуникация между ними может превратиться в испорченный телефон. Наладили прямую коммуникацию между командами — получил профит. И последний пункт списка — мониторинг изменений. Выкатили вы какой-либо хотфикс —, проверьте, нужно ли в нем что-то локализовать, попали ли в него все нужные данные. Преимущества правильно проведенного локализационного тестированияРазница в трудозатратах при багфиксе Значительно дешевле отлавливать баги до официального релиза, не приходится регистрировать хотфиксы и тратить нервы. Нашли баг на раннем этапе — поправили его — всё здорово. Более высокий уровень качества продукта Тут всё просто, чем меньше у вас багов в продукте, тем меньше недовольных и тем меньше негативной обратной связи. Это важная штука — представьте, что вы чувствуете, когда видите косяки в локализации того или иного продукта. Например, сайт большой компании, мобильное приложение, компьютерная игра, меню в ресторане, да хоть характеристики смартфона на картонной коробке. Сразу же начинает казаться странным и нелепым, что какая-то большая и богатая компания не осилила просто взять и правильно написать какие-то фразы. Например, Windows Vista и её не самый удачный заход на японский рынок. Или Amazon, который при выходе на рынок Швеции вообще спутал флаг Швеции с флагом Аргентины. И это я молчу про истории про разные знаки и жесты, которые в зависимости от региона могут быть как дружелюбными, так и вообще оскорбительными (писал об этом в первой части). Более простой процесс локализации на другие языки Если вы проводите локализационное тестирование, вы можете отловить какие-то недостатки даже в той же интернационализации. И если вы их пофиксите, то потом всё это будет значительно лучше выглядеть, а баги проще отлавливаться. А ещё, допустим, локализуете вы свой продукт на несколько схожих языков из одной языковой группы — если вы пофиксите один баг в одном, то, скорее всего, в другом похожем такого бага уже не возникнет. Близкое знакомство команды локализации с продуктом Достаточное знание участников команды локализации может значительно снизить временные затраты на локализацию. Сотрудники отдела локализации могут самостоятельно отвечать на вопросы лингвистов, они не будут дергать разработчиков и отвлекать их от их работы. И опять же — ту же псевдолокализацию, возможно, вполне себе осилят выполнить и они. Наилучший пользовательский опыт По ряду исследований, порядка 70% пользователей предпочтут работать в программе, которая переведена на их язык, даже если они очень хорошо знают иностранные языки. Во-первых, полностью локализованный интерфейс дает возможность пользователю чувствовать себя значительно комфортнее при работе с продуктом, ему удобнее взаимодействовать с ПО. Во-вторых, по итогам тестирования мы получаем корректное отображение данных, что снижает вероятность ошибок при работе с приложением. В-третьих, обеспечиваем соответствие культурным особенностям других стран. В качестве примера приведу прекрасный Fallout 3, где был квест, по итогам которого у игрока была возможность взорвать ядерную бомбу. При подготовке японской локализации игры было решено этот квест немного изменить, и в итоге из японской локализации историю со взрывом вообще выпилили, потому что воспринят он был бы не очень корректно. Так что, если у вашего локализованного продукта нет каких-то расхождений с культурным кодом и нормами, то у пользователей не будет отторжения от работы с ним. А это — успешный выход на рынок и охват большей аудитории. ЧеклистЯ ещё в первой части обещал вам чеклист в конце этого рассказа. Лингвистические аспекты Чем раньше отловлены баги, тем лучше, проще и дешевле. Поэтому в идеале такие аспекты вообще должны проверяться непосредственно на этапе локализации, а не на её тестировании. Но бывает по-всякому, и плюс всегда нужно обращать внимание и на эти моменты тоже. Орфография — проверяем, что все слова написаны корректно, не пропускаем никаких ошибок, опечаток. Грамматика — используем нужные времена, корректно составляем предложения. Крайне важен вопрос согласований, особенно если вы используете переменные в коде, так как нужно проверить, что все подставилось корректно в зависимости от того же числа. Допустим, в русском языке форма множественного числа может отличаться в зависимости от числа, которое, собственно, стоит перед ним.
А вот для некоторых языков, например, романской группы форма множественного числа одна. В некоторых языках есть общие для них особенности, где форма глагола или прилагательного может очень сильно отличаться от числа, от рода, от существительного и так далее. Пунктуация — крайне важный момент. Например, во французском языке есть особые правила по проставлению пробелов перед вопросительными и восклицательными знаками. В японском языке, например, могут использоваться общепринятые для нас или для англоязычных людей знаки препинания, но в то же время вот эти уголки, это, собственно, кавычки, которые там используются, причем они есть двух разных видов.
И в зависимости от того, где эти кавычки стоят, ставятся нужные. В том же испанском языке перед началом вопросительных и восклицательных предложений, соответственно, ставят перевернутые, скажем так, вопросительные и восклицательные знаки. Это нужно отслеживать. Более того, расставление знаков препинания может отличаться в зависимости от порядка слов в приложении, от порядков слов в разных языках. Например, в румынском, если у вас сначала идет главное слово и потом число, вот как тут на примере (, это в переводе дата окончания 25 февраля), ставится двоеточие. В другом же примере — будет стоять запятая.
Есть множество моментов, связанных с лексикой. С терминологией всё понятно в целом — нужно проверить, что термины из продуктового глоссария у нас используются корректно, и что они вообще в целом употребляются. Ибо бывает всякое. Само собой, нужно отслеживать стиль, консистентность перевода в целом, то есть что один и тот же термин у вас переводится единообразно по всему тексту. Конечно же, очень важно учитывать контекст. Были случаи, когда executioner переводили и как “палач”, и как “исполнитель”. Хочется надеяться, конечно, что всегда имели в виду исполнителя.
Вот пример некорректного перевода в таком случае. Спецсимволы Всегда проверяйте, что различные спецсимволы, диакритические знаки, иероглифы, корректно отображаются в интерфейсе вашего приложения.
Форматы дат Ни для кого не секрет, что форматы дат в разных странах отличаются в плане написания. Но вот если у вас в продукте поддерживается только один, а вы хотите запускаться в разных странах, это может привести не просто к неудобству, а даже к ошибкам валидации и сбоям в работе приложения. Ведь могут использоваться, например, разные разделители — где-то через точку, где-то через слэш. А ещё в разных странах вполне себе могут записывать различные числа с помощью букв.
Например, в иврите, там вообще своя атмосфера, которая основана на порядковом номере той или иной буквы в алфавите. Существуют разные варианты сортировки списков — арабские цифры, римские, и прочее. Могут использовать различные календари — Григорианский, Хиджи, Лунный календарь (мусульманские страны), календарь Минго (КНР). Причем в Китае вполне себе используют как календарь Мингоа, так и Григорианский, что доставляет неудобств при тестировании. Даже начало года может приходиться на разные даты, и не во всех странах это 1 января. Отличаются и форматы валют — я про местоположение символа самой валюты, до числа или после него.
Что ещё разного
Всё это может привести к определенным сложностям, например, если вы вводите данные, а ваш продукт не адаптирован под нужную локаль, то может случиться какая-то ошибка в самой программе. Или вы введёте число, а оно будет отличаться от задуманного, скажем, вводите вы 10 000, а в итоге это превращается в 10.
Best practices
Используйте CAT-системы и другие инструменты для локализации, потому что тогда вы это сможете выполнять локализацию своих продуктов значительно продуктивней, эффективней, да и в целом правильнее. Ну и И дальнейшее тестирование локализации будет проводить куда проще. Не забывайте и про регрессионное тестирование. Если нашли баг, пофиксили его, снова выкатили всё на прод — проверьте сам факт проноса фикса. Отдельно я бы выделил и необходимость написания тест-планов. Особенно, если используете билд-тестирование, тогда вы ощутимо упростите жизнь лингвисту. Кстати, это довольно очевидно, но всё равно стоит отметить — важно сотрудничать с лингвистами-нейтивами, носители не только в среднем обладают более высоким уровнем языка по понятным причинам, но также могут лучше учитывать культурные и языковые аспекты локализации на нужные вам языки. Некоторые компании используют машинный перевод. В целом, в ряде сфер он достиг определенных успехов и мало отличается от человеческого языка, особенно в стандартизированных текстах (медицина, юриспруденция), но для приложений я бы такое не советовал. Ибо для приложений куда лучше подход Machine Translation and Post-Editing — когда первичный перевод выполняется машиной, а потом его уже редачит живой человек. И самое главное — не забывайте про тестирование локализации, любое тестирование лучше, чем его отсутствие. Даже если у вас нет возможности провести нормальное полноценное тестирование вашей локализации, прогоните ваши тексты хотя бы через инструменты псевдолокализации. Часть багов всё равно отловите даже так. |