MLang - программа поддержки интернационализации

При помощи программы MLang можно перевести интерфейс любой нашей программы на любой язык.

В настоящее время программа MLang использует два файла базы данных для поддержки интернационализации целевой программы:

Эти файлы используются "целевой" программой для поддержки интернационализации интерфейса.

В окне настройки программы MLang можно указать каталог где находятся файлы базы данных:

В поле "Base language:" указывается "базовый" язык, который берется за основу для перевода на другие языки.

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

   

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


Принцип действия системы поддержки интернационализации интерфейса состоит в следующем.
В базу данных Sent.tps (в раздел базового языка) предварительно занесены все слова и предложения, которые применяются в интерфейсе целевой программы на "базовом" языке (обычно русском).  Каждая запись файла Sent.tps кроме самого предложения имеет уникальный для данного языка номер (Id) и хеш-значение (Hash1 и Hash2).  Хеш-значение это уникальный идентификатор предложения, получаемый путем преобразования предложения в число по специальному алгоритму.
Для каждой заипси о предложении базового языка в базе данных должны быть соответствующие предложения с его переводом на все остальные поддерживаемые языки. Эти записи должны иметь одинаковый номер записи - ID.  Целевая программа для каждого предложения, выводимого на экран или в отчеты, вычисляет хеш-значение, находит по нему запись в файле Sent.tps на базовом языке, определяет ее ID и по нему находит запись с переводом данного выражения на текущий язык интерфейса программы.

Основное рабочее окно программы MLang служит для редактирования записей базы данных с предложениями:

В левом верхнем углу этого окна имеются кнопки для Добавления, Изменения, Удаления и Копирования записей базы. 
В центре верхней части окна имеется поле с выпадающим списком для выбора текущего языка записей.
Кнопка "Маке" вызывает функцию формирования копий записей на новом языке для всех записей базового языка. Эту операцию надо выполнить один раз при добавлении нового языка. После этого надо перевести каждую запись базы нового языка.
Кнопка "Hash" вызывает функцию расчета хеш-значений для каждой записи текущего языка. Обычно, эту кнопку нажимать не нужно никогда, так как хеш-значение вычисляется автоматически для каждой новой или измененной записи.
Таблицу с записями в центре окна можно отсортировать по полям Text, Hash и Id.  Для каждой из этих сортировок имеется возможность поиска по соответствующему полю.

Форма для редактирования записи базы данных предложений имеет следующий вид:

Для перевода интерфейса программы на новый язык надо сделать следующее:

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