Создание только библиотеки ресурсов с переведенными ресурсами формы - PullRequest
0 голосов
/ 05 января 2012

У меня есть большое приложение, которое я хочу перевести на арабский язык. Я определил строки, которые мы показываем пользователю под ключевым словом resourcestring.

Я использую диспетчер внешних переводов, поставляемый с Delphi 6. Однако мне не очень удобно пользоваться этим инструментом. Я хочу создать ресурс только для dll со всеми переведенными строками, например, как работает Delphi ETM, а затем переключаться между языками во время выполнения одним нажатием кнопки.

Мне удалось связать строки ресурсов с Dll, но как насчет заголовков и подсказок формы и свойств компонента? Я загружаю Dll во время выполнения в зависимости от языка, но свойства формы не отражаются, поскольку они не были доступны в Dll.

Есть ли указатели в правильном направлении ???

Спасибо Рахул W

1 Ответ

1 голос
/ 05 января 2012

Что делает инструмент локализации Delphi и поддержка времени выполнения, так это перенаправляет загрузку ресурсов - включая формы - из исполняемого файла в DLL.Формы, их компоненты и элементы управления (отличные от свойств по умолчанию) хранятся в виде ресурсов в исполняемом файле (если вы не создаете их полностью во время выполнения - но тогда вам придется устанавливать их свойства по одному).1002 * Таким образом, если вы хотите работать аналогично стандартному инструменту перевода, вы должны работать так же.Мастер ресурсов DLL извлекает все файлы проекта .dfm (и те, которые вы добавляете вручную) и строки ресурсов в копию, которую можно локализовать.Когда приложение запускается, код загрузки формы проверяет, откуда должен быть загружен файл .dfm.Вы должны переопределить этот код для загрузки своих ресурсов.

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

...