QlikView — опыт разработки мультиязычного приложения

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

Ваша эмоция после сказаного выше :D

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

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

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

Пара слов перед началом

По своему опыту я очень часто встречался с практикой создания мультиязычных приложений на основе островков данных (data-island).

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

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

Проведя небольшое исследование (спасибо, гугл!) я даже нашел своему наблюдению подтверждение:


Подробнее этот феномен я рассмотрел в своей статье: «Data-Islands» — зло, личный опыт использования и последующая оптимизация


Особенности модели данных мультиязычного приложения



Определение языковых переменных

Перевод приложения строится на основе двух ключевых вещей:

  • Измерения в диаграммах и списках
  • Текстовые описания


Техники разработки интерфейса мультиязычного приложения

  • техника сохранения выборки при переключении языка (аггр по коду, текстового значения)
  • техника разделения языков на состояния для того чтобы окно выборок подстраивалось под язык