Студопедия — Внешние языковые модули
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Внешние языковые модули






Некоторые программы, к сожалению пока их немного, реализуют многоязычную поддержку, с помощью внешнего языкового модуля. Т.е. интерфейс программы вынесен во внешний файл, что облегчает локализацию программы.
Обычно в самой программе имеется переключение между языками, что и указывает на внешний языковый модуль (или имеется диалог выбора языка).
Внешние языковые модули бывают разных типов: внешние текстовые языковые модули и ресурсные DLL.

 

Внешние текстовые языковые модули

Самый простой тип: текстовый файл, который чаще всего расположен либо в главном каталоге программы, либо в папке Language, в том же каталоге. В название такого файла обычно присутствует название языка, расширение LNG (но могут быть и другие), например, english.lng, russian.lng и т.д. Расширение файла, его название, способ выбора языка в программе и синтаксис могут различаться, общее - это то, что интерфейс программы вынесен во внешний текстовый файл.
Файлы этого типа открываются в Блокноте и в нем же и редактируются, имея простой вид типа:

"идентификатор строки"="текст"

Для определения программой языка языкового модуля, файл может иметь заголовок, где в том или ином виде язык и прописан, или программа определяет язык модуля по названию файла.
Замечу, что синтаксис подобных файлов, хоть и различается от программы к программе, но настолько прост, что разобраться в нём ничего не стоит. К тому же многие авторы программ, поддерживающих эту технологию, помещают в Help или выкладывают на официальном сайте информацию для переводчиков. Кстати, авторы таких программ, в большинстве случаев, разместят сделанный вами языковый модуль на официальном сайте, или включат его в дистрибутив программы.
Перевод сводится к переводу текста, и при необходимости, указанию языка в заголовке.

Достоинства:

Файл редактируется в Блокноте, все предельно просто.

Недостатки:

Отсутствует предпросмотр, отсюда не всегда ясен контекст. Английские слова и их русский перевод могут иметь различную длину. Например, "Copy" - "Копировать". Латиница в среднем уже кириллицы, например: s, i, l в английском, ш, ж, ы в русском. В итоге средний перевод с английского занимает на 30-50% больше места, чем оригинал. А отредактировать это во внешнем текстовом модуле можно лишь вводя сокращения, так как в нем можно отредактировать только текст, но не место под текст (например, надпись на кнопке, но не ее размер). Поэтому, невзирая на общую позитивность идеи внешнего текстового языкового модуля, некоторые переводчики предпочитают переводить не внешний модуль, а ресурсы программы в редакторе ресурсов. Иногда, особенно в молодых программах, случаются внешние модули, не полностью охватывающие весь интерфейс. После полного перевода внешнего модуля, в программе остается, частично, инглиш. Ресурсные DLL

Ресурсные DLL - содержат только PE-раздел ресурсов исходного файла, который загружается в память вместо раздела ресурсов оригинального EXE или DLL-файла. Являются Win32 PE файлами, и с точки зрения редактирования, их перевод ничем не отличается от перевода стандартных EXE, DLL и т.д. (см. раздел Ресурсы). Могут иметь расширение, как собственно DLL, так и содержащее идентификатор языка, например, RU, RUS, в зависимости от компилятора (некоторые варианты названий и расширений ресурсных DLL можно посмотреть в PASSOLO).

Нюансы:

Ресурсная DLL может быть создана в редакторе ресурсов из оригинального PE-файла. Это умеют делать PASSOLO, Multilizer и Language Localizer. Обычно в этом нет необходимости - можно переводить уже имеющиеся DLL для других языков.

C ресурсными DLL могут работать многие программы, а не только те, что имеют внутри переключение между языками. Это напрямую зависит от компилятора: так все программы на Delphi могут работать с ресурсными DLL, для остальных компиляторов - лишь программы, специально оптимизированные авторами под эту технологию. В этом случае Windows при загрузке программы ищет ресурсную DLL для нее на дефолтовом языке системы, и, в случае обнаружения оной, подгружает ресурсы из нее. Дефолтовый язык системы - это то, что прописано в Региональных стандартах [Панель управления > Язык и стандарты > Региональные стандарты]

Примеры использования:

Интересным примером использования ресурсных DLL является опыт http://edfoxrus.narod.ru при перводе CD Box Labeler Pro 1.9.5: программа выпускается только на английском языке, и поддержка других языков не предусмотрена. Однако программа написана на Delphi. EXE-файл программы запакован PEtite, и распаковать его корректно http://edfoxrus.narod.ru не удалось. Но в полученном дампе оказались распакованы ресурсы, что позволило создать ресурсную DLL для программы и перевести ее.

Еще одним примером использования этой технологии, является создание ресурсных DLL для файлов проверяющих контрольную сумму файла (например, CRC). Подобные файлы нельзя редактировать, так как любое изменение в файле (хотя бы на одну букву) ведет к изменению контрольной суммы, программа проверяет ее при загрузке и просто откажется грузиться. Примером может служить ZoneAlarm, защищенный сертификатом VeriSign, и проверяющий контрольную сумму файла по алгоритму MD5. Программа выпускается только на английском, однако частично (к сожалению, не все файлы) оптимизирована под работу с ресурсными DLL. Это хорошо видно, загружая программу из-под File Monitor: при загрузке Windows ищет 4 русские ресурсные DLL для основных EXE-файлов (ZaProLang0419.dll и др.). В результате использования ресурсной DLL, программа проверяет контрольную сумму оригинального (неизмененного) EXE-файла и удовлетворяется этим, а ресурсы грузятся из русской ресурсной DLL.

Достоинства и недостатки:

Зачастую ресурсная DLL может работать как с оригинальным, так и с крякнутым файлом.
Обычно в качестве достоинства данного метода указывают и на то, что этот способ не вносит изменений в оригинальные файлы программы - однако это миф. Любая ошибка в ресурсах программы проявит себя одинаково, будет ли она сделана в EXE-файле или в ресурсной DLL.
С другой стороны достаточно часто случается, что некоторое количество строк находится не в ресурсах, а в коде программы - и т.к. ресурсные DLL содержат только раздел ресурсов, то с помощью них строки в коде перевести нельзя.
Еще одной проблемой, на мой взгляд, является то, что ресурсные DLL обычно распространяются целиком (т.е. не проверяется версия и контрольная сумма файлов, с которыми им предстоит работать) и некоторые предприимчивые граждане пытаются использовать ресурсную DLL от одной версии программы с другой версией. И хотя, иногда, это удается сделать, но вообще-то это крайне некорректно...







Дата добавления: 2015-03-11; просмотров: 524. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

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

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

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

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия