Разработка любого программного продукта, как правило, ведется по спецификациям, которые описывают функциональные возможности продукта с учетом многих требований, включая требования конечных пользователей и партнеров, решений конкурентов, стандартов и т.п. Даже если среди разработчиков нет выделенной инженерной команды, отвечающей за требования по интернационализации, при разработке продуктов для использования на нескольких рынках этим требованиям должно уделяться особое внимание.
В идеале, эти требования должны стать неотъемлемой частью процесса написания и рецензировании спецификаций задолго до того как начнется написание самого кода. Внесение каких-либо изменений в код или функциональность продукта на более поздних этапах разработки потребует дополнительных ресурсов. В самом начале разработки необходимо оценить пригодность рассматриваемой функциональности для международных рынков и оценить стоимость его локализации.
Эти наиболее тривиальные вопросы, на которые стоит обратить внимание в процессе рецензирования спецификаций:
- Дизайн должен предоставлять возможность для локализации продукта в стандартных специализированных приложениях. Чем больше исключений из этого правила – тем дороже обойдется локализация.
- Слишком сложный и загроможденный пользовательский интерфейс может привести к множеству ошибок, связанных с увеличением длины переводов текстовых ресурсов. Особое внимание стоит уделить кнопкам, тестовым подписям, флажкам и переключателям.
- По-возможности, желательно избегать динамических строковых ресурсов, которые "собираются" из нескольких ресурсов, т.к. перевод таких ресурсов на некоторые языки окажется просто невозможным.
- Позволяет ли рассматриваемая функциональность вносить полные имена людей, состоящие из множества элементов, поддерживаются ли стандартные правила сортировки, форматы представления почтовых адресов, дат и времени, числовых значений и валюты, размер используемой бумаги?
- Если приводится ссылка на веб-сайт, существует ли локализованная страница?
- Если планируется перевести приложение на один из языков, используемых в нескольких странах, например, испанский, то учитываются ли региональные стандарты каждой из них?
- Помимо технических требований большую роль играют культурные особенности. Необходимо очень внимательно относиться как к тексту строковых ресурсов, так и к изображениям на графических файлах.
Это, конечно же, далеко не полный список аспектов интернационализации, которые необходимо учитывать, но он дает общую картину основных элементов интернационализации.
Я использую этот список в своей каждодневной работе для первичной оценки спецификаций, и этот, достаточно простой список, легко запомнить другим участниками проекта: менеджерами проекта, разработчикам, тестерам, специалистам по дизайну интерфейса и документации.