|
Конкретные решения
Windows Commander v.4.0х / 4.5х
Этот условно-бесплатный
файл-менеджер является хорошим примером практически идеального решения,
- с точки зрения перевода на любой язык. Если представить соответствие
программы вышеизложенным условиям в виде кода, составленного из
номеров пунктов, то получится 1bd-2b-3bd.
Сразу после запуска
инсталятора (Install.exe) программы появляется меню выбора языка
интерфейса (1b), где предлагается выбрать
язык интерфейса программы. Затем предлагается установить все остальные
языковые модули, имеющиеся в дистрибутиве. По умолчанию предполагается
согласие пользователя, - фокус ввода стоит на кнопке "Yes",
хотя правильнее было бы "No". Вряд ли кому могут понадобиться
все 14 языков дистрибутива, целесообразнее было бы предусмотреть
возможность выбора, например, нужных 2-х или 3-х. Далее программа
корректно и без проблем устанавливается в указанный каталог и создается
соответствующая папка с ярлыками.
При запуске программы
все сообщения интерфейса корректно отображаются на предварительно
выбранном языке, поскольку, по умолчанию, для отображения сообщений
выбран шрифт "MS Sans Serif, 8". Это именно тот шрифт,
который по умолчанию используется в самой операционной системе.
В нем, как правило, только один набор символов, только тех, которые
нужны для правильного отображения информации на английском и локальном
национальном языках. В дальнейшем, через закладку "Конфигурация
- Настройка... - Шрифт", можно выбрать любой другой из шрифтов,
установленных в системе, однако, если это будет TrueType шрифт,
то придется выбрать и корректный набор символов (кодовую таблицу).
Для замены языка интерфейса
изнутри (1d) программы нужно открыть
закладку "Конфигурация - Настройка... - Язык", выбрать
нужный язык из меню и подтвердить выбор. Изменения будут отражены
немедленно. Маловероятно, что кто-нибудь захочет постоянно переключать
языки интерфейса при работе с программой, однако само наличие такой
возможности, позволяющее увидеть, как выглядит интерфейс на другом
языке, вносит в любую программу определенную изысканность и стильность.
К сожалению, нигде
в дистрибутиве и файле справки программы (и даже на сайте разработчика
www.ghisler.com) не говорится,
как осуществить локализацию интерфейса. Видимо, предполагается,
что желающие обратятся к автору и запросят необходимую информацию
и шаблоны у него. Обычно в качестве шаблонов для локализации используются
англоязычные языковые модули. Однако в этой программе они встроены
непосредственно в тело исполняемого файла, что и обусловливает необходимость
их получения с сайта разработчика.
Для каждого языка нужно иметь два модуля: один для сообщений интерфейса
(файл wcmd_xxx.lng), другой для меню (файл wcmd_xxx.mnu). В общем
случае, в качестве шаблонов могут использоваться любые из уже существующих
модулей интерфейса и меню, представляющих собой обычные текстовые
файлы определенной структуры.
Для создания нового
языкового модуля нужно сделать копию шаблона с соответствующим именем,
открыть ее в любом текстовом редакторе (2b),
который не добавляет никаких символов форматирования в текст (например,
Блокнот), и аккуратно, не затрагивая встречающиеся в тексте специальные
символы (\n, \r, \042%s\042 и т.п.) перевести заключенные в кавычки
сообщения интерфейса и меню. Ниже приведены фрагменты соответствующих
файлов для русского языка.
wcmd_rus.lng :
-------------------------------------------------------------------------------------------
Russian (Русский) Локализовал Михаил Жилин, http://www.aha.ru/~mwz,
mailto:mwz@aha.ru
Версия 4.50, 13 июня 2000г.
(Перевод Андрея Маньжова и Михаила Жилина)
0="Нет доступа, или файл\n%s\nуже используется!"
1="Укажите шаблон(ы) файлов (например: s*.doc;*.tx?)"
2="Создать новый каталог:"
3="Параметры командной строки"
4="&Удалить;&Все;Пропуст&ить;&Отмена"
5="&Заменить;&Все;Пропуст&ить;&Отмена"
6="Вы действительно хотите удалить\rфайл \042%s\042 ?"
. . .
------------------------------------------------------------------------------------------
wcmd_rus.mnu :
-------------------------------------------------------------------------------------------
POPUP "&Файл"
MENUITEM "Изменить &aтрибуты...",
cm_SetAttrib
MENUITEM "&Упаковать...\tALT+F5", cm_PackFiles
MENUITEM "&Распаковать...\tALT+F9", cm_UnpackFiles
MENUITEM "Про&верить архив(ы)\tALT+SHIFT+F9",518
MENUITEM "Сравнить &по содержимому...", 2022
MENUITEM "О&ткрыть с помощью...", cm_associate
MENUITEM "Сво&йства файла\tALT+ENTER", cm_versioninfo
MENUITEM "Под&считать занимаемое место", cm_GetFileSpace
MENUITEM "&Групповое переименование...\tCtrl+T", 2400
MENUITEM "&Печать\tCTRL+F9", cm_PrintFile
MENUITEM SEPARATOR
MENUITEM "Ра&збить файл...", 560
MENUITEM "Со&брать файл...", 561
MENUITEM SEPARATOR
MENUITEM "&Кодировать (MIME,UUE,XXE)...", 562
MENUITEM "&Декодировать (MIME,UUE,XXE,BinHex)...", 563
MENUITEM SEPARATOR
MENUITEM "В&ыход\tALT+F4", cm_Exit
END_POPUP
. . .
------------------------------------------------------------------------------------------
Для подключения созданных
модулей к уже установленной (3d) программе,
достаточно скопировать их в подкаталог "WinCmd\Language"
и выбрать новый язык изнутри программы. При желании, можно ввести
новый язык в дистрибутив программы (3b)
и сделать его языком по умолчанию. Для этого нужно распаковать файл
install.bin (zip-файл, до версии 4.03) или install.cab (с версии
4.50), добавить созданные языковые модули в каталог "\Language"
и переупаковать его, а также отредактировать скрипт инсталятора
"Install.inf" из дистрибутива. В приведенном ниже фрагменте
скрипта для русской версии 4.50, добавленные или измененные строки
выделены .
-------------------------------------------------------------------------------------------
[Installation]
program=Windows Commander 4.50 (32 bit)
copyright=Copyright © 1993-2000 by Christian Ghisler, All Rights
reserved
[Versioncheck]
Vernum=2
[Not running]
1=WINDOWSCMD,Windows Commander
2=TAPPLICATION,Windows Commander,Windows Commander
[Destination]
Dir=C:\Program Files\WinCmd
Ini=wincmd.ini,Configuration,InstallDir
[Languages]
Count=15
Default=15
1=English
. . .
14=Slovenski (Slovene),l
15=Russian (Русский),r
[LangName]
langdir=language
0=wcmd_eng
. . .
l=wcmd_svn
r=wcmd_rus
. . .
[ini]
1=wincmd.ini,configuration,languageini
2=wincmd.ini,configuration,Mainmenu
. . .
[inil]
1=wincmd.ini,configuration,languageini,wcmd_svn.lng
2=wincmd.ini,configuration,Mainmenu,wcmd_svn.mnu
[inir]
1=wincmd.ini,configuration,languageini,wcmd_rus.lng
2=wincmd.ini,configuration,Mainmenu,wcmd_rus.mnu
---------------------------------------------------------------------------------------------
Хотелось бы также отменить удобную структуру представления языков
в меню. Имеется в виду, что для каждого языка сначала приведено
его название на английском, а затем, в скобках, так, как он пишется
с применением национальной кодовой таблицы. Поэтому всегда можно
понять, о каком языке идет речь, даже если текущая кодовая таблица
не поддерживает символы национального языка.
|