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

Updated April 2, 2021
Internatsionalizatsiya eto ne to zhe samoe chto lokalizatsiya kak ponyat i18n - Smartcat blog
Smartcat covers all your language needs with AI translation, AI content generation and AI human workflows.

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


Начнем с цитаты из Википедии:

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

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

Ключевые аспекты интернационализации

Интернационализация — это сложный процесс, который включает в себя множество аспектов. Наиболее важными из них являются:

1. Дизайн пользовательского интерфейса (UI)

Пользовательский интерфейс должен быть разработан таким образом, чтобы его можно было легко адаптировать к различным языкам и регионам. Это включает в себя:

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

  • Цвета и изображения: они также должны быть легко заменяемыми, поскольку иногда цвета и изображения могут иметь негативные коннотации в других культурах.

  • Элементы, содержащие текст: в идеале они должны быть разработаны таким образом, чтобы работать как с очень длинными, так и с очень короткими текстами, а также с текстами, написанными справа налево.

2. Формат и хранение данных

Строки должны храниться таким образом, чтобы их было легко локализовать. Это включает в себя:

  • Кодировка: строки должны кодироваться с использованием UTF-8, который является наиболее широко используемой кодировкой для строк Unicode.

  • Грамматические формы: строки должны быть разработаны таким образом, чтобы их можно было легко адаптировать к различным формам множественного числа и рода, например, с использованием формата ICU.

  • Даты и время: они должны храниться в формате, который легко локализовать, например, с использованием стандарта ISO 8601.

  • Числа: они должны храниться в формате, который легко локализовать, например, с использованием стандарта ISO 4217 для валют и стандарта UN M.49 для кодов регионов.

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

3. Процессы и инструменты

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

Для этого существует множество инструментов, но мы рекомендуем сосредоточиться на тех, которые позволяют реализовать процесс CI/CD для перевода и локализации. Таким образом, вам не придется вручную отправлять контент на перевод или проверять статус работы, выполненной переводчиками.

С чего начать?

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

1. Найдите (или станьте) чемпионом по интернационализации

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

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

В качестве примера можно привести историю Lotus 1-2-3, некогда лидировавшего на рынке продукта для работы с электронными таблицами. Однако все его строки были жестко запрограммированы, поэтому, когда компания решила локализовать продукт, ей пришлось потратить два года на отделение кода от текста, что в конечном итоге привело к проигрышу в конкурентной борьбе с Microsoft.

2. Определитесь с форматом (форматами) и инструментом (инструментами), которые вы будете использовать.

Как только необходимость в i18n станет понятна всем, можно приступить к обдумыванию технических деталей. Например:

  • Какой формат вы будете использовать для хранения строк и их преобразования в фактический текст в вашем коде?

  • Какие инструменты/технологии вы будете использовать для перевода и локализации?

  • Какие роли и обязанности будут задействованы в этом процессе?

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

3. Выполнение и мониторинг

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

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

Заключение

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

Надеемся, что эта короткая статья помогла вам начать двигаться в правильном направлении.

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

💌

Подписывайтесь на нашу новостную рассылку

Электронная почта *