3. Глобализация
Глобализация — процесс
всемирной экономической,
политической, культурной и
религиозной интеграции.
Глобализация ПО— процесс
многократной локализации на
большое количество языков для
целевых групп различных стран и
культур.
4. I18n
ция (internationalization)
технологические приѐмы разработки, упрощающие адаптацию
продукта (такого как программное или аппаратное обеспечение) к
языковым и культурным особенностям региона (регионов), отличного
от того, в котором разрабатывался продукт.
L10n
ция (localization)
процесс адаптации программного обеспечения к культуре какой-либо
страны. Как частность — перевод пользовательского интерфейса,
документации и сопутствующих файлов программного обеспечения с
одного языка на другой.
5. Исходные данные
Проект:
21 подсистема
Основные технологии:
ASP.Net (C#), XML/HTML/JavaScript, DB MS SQL Server
Файлы:
C# (*.cs) ~ 6000
SQL (stored procedures and functions) ~2500
Pages (aspx, html) ~ 600
JavaScript ~300
Срок выполнения: ~ 12 месяцев
7. Ручной подход
Разделение кода по разработчикам и выполнение ручного
вынесения ресурсов
Доступные ресурсы на проекте:
5 разработчиков, 2 архитектора, 5-7 тестировщиков
8. Проблемы подхода
• Огромное количество багов
- человеческий фактор
• Наличие дубликатов
- отсутствие анализа при вынесении ресурсов
• Трудности с отслеживанием объема работ
• Проблемы «долокализации» новой функциональности
9. Результаты
Срок выполнения – 1.5 года (estimate – 1год)
Большой объем тестирования
Перенос релиза на неопределенный срок
10. Второй шанс
Автоматизированный подход
Основные цели:
- качественный анализ с целью определения литералов, которые
необходимо локализировать
- максимальное уменьшение ручной работы
- сокращение временных затрат
11. Шаг 1. Нахождение всех
литералов для локализации
Использование парсеров
Тип файла
3rd party library
JS
AjaxMin
CS
NRefactory
HTML
Html Agility Pack
SQL
Microsoft ScriptDom
Покрывают 97% литералов приложения
19. Результат применения
правил на основе контекста
Объем локализации
25%
40%
35%
Оставшиеся
литералы
Отсеянные
литералы по
простым правилам
Отсеянные
литералы по
контексту
21. Хранение ресурсов
Варианты:
в одном файле
разбивать по сборкам
по подсистемам
Плохо разложенные
по ресурсам строки мешают
переводам.
22. Категоризация литералов по
области использования
Область
Описание
Пример
Global
общие тексты кнопок
общие тексты сообщений
общие строки для всего сообщения
общие валидационные сообщения
Save, Cancel
Help
"Value is required"
Module
Литералы, общие для всех страниц и
контролов в рамках одного модуля
Dashboard
Task
Local
Специфичные литералы для одной
страниц или контрола или
вспомагательного класс и т.д.
"Auto Fill" (on one of
Tasks pages)
26. Результаты категоризации
Именование ключей
•
•
•
•
•
Resources.Pages.Command_Delete
Resources.Exceptions.InvalidCastException.NameNotValid
Citations.Resources.Validations.NameRequired
Security.Resources.Pages.ExpireUser.aspx.cs.Command_Revoke
Task.DueDate
У каждого литерала своя область действия
28. Локализация статических
файлов
Типы файлов: Html, JavaScript, Xslt, Xml
Универсальный подход - сделать статические файлы
динамическими.
Производительность благодаря кэшированию не
пострадала!
31. Localization Studio
Назначение
Работа со строками, выводимыми на интерфейс приложения:
Оценка состояния интернационализации
Обработка строк, создание ресурсных файлов
Управление правилами фильтрации литералов
Подготовка материалов для переводчиков
Управление переводами для разных культур.
33. Дополнительные
возможности
Для разработчиков
• поиск литералов
• нахождение дубликатов (для уменьшения стоимости переводов)
• статистика по литералам
Для переводчиков
• Импорт, экспорт ресурсов в Excel
• Получение информации о контексте ресурса
34. Автоматизированный подход
(результаты)
Срок выполнения – 6 месяцев
Уменьшение дублирования ресурсов
Повышение согласованности переводов
Прозрачная поддержка циклов будущих релизов
Улучшение прозрачности кода
Сокращение циклов тестирования
Уменьшение количества багов
Организация взаимодействия с переводчиками
35. Идеи развития
Подключение к continuous integration
Поддержка других типов проектов
Адаптация под Agile
Оказание услуг локализации другим проектам/компаниям
36. О компании
Intecracy Group
Международный консорциум, работающий в сфере высоких
технологий. Консорциум Intecracy Group объединяет 10 ITкомпаний, каждая из которых достигла наивысшего уровня
компетенции в своем виде деятельности.
Localization Service
Экспертиза готовности продукта к локализации
Интернационализация и локализация корпоративных приложений
Обеспечение работ по переводу
Тестирование локализации приложений
Есть важное различие между интернационализацией и локализацией. Интернационализация — это адаптация продукта для потенциального использования практически в любом месте, в то время как локализация — это добавление специальных функций для использования в некотором определённом регионе. Интернационализация производится на начальных этапах разработки, в то время как локализация — для каждого целевого языка.
Система, предоставляющая клиентам по всему миру возможность отслеживать выбросы, создавать отчетность и соблюдать стандарты охраны окружающей среды на основе SaaS модели.