ru_TranslatingTheProgram
Сейчас локализация не может быть применена к программе без перекомпиляции. Поэтому локализация происходит следующим образом: вы берёте файлы с исходным кодом, переводите, отправляете мне. Я смотрю перевод, добавляю его в проект и перекомпилирую программу. Если уже доступен перевод на тот же язык инсталлятора, я выкладываю новую версию keyla.
Скачайте файлы ресурсов (первый, второй) и для каждого из них проделайте действия, описанные ниже.
Скопируйте секцию, соответствующую какому-либо языку, и вставьте её в конец файла. Например, если хотите создавать свой перевод на основе перевода на английский, скопируйте кусок, начиная с
// === english resources ======================================================
и кончая
// === russian resources ======================================================
(последнюю строчку включать не надо).
Измените комментарий в названии секции и название языка. Например, если переводите на украинский, вместо
// === english resources ======================================================
LANGUAGE LANG_ENGLISH,SUBLANG_DEFAULT
запишите
// === ukrainian resources=====================================================
LANGUAGE LANG_UKRAINIAN,SUBLANG_DEFAULT
Информация о версии располагается под комментарием
// ------- version info -------------------------------------------------------
найдите в разделе код вида
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
и замените первые четыре цифры на код, соответствующий языку, на который переводите, без символов 0x.
Список кодов можно посмотреть на странице MSDN. Если страница не найдена, воспользуйтесь поиском по ключевым словам "Language Identifier Constants and Strings".
Найдите по всему файлу инструкции, начинающиеся со слов VALUE "Translation"
, и добавьте в список параметров через запятую код языка и число 1200. В этом случае символы 0x отбрасывать не надо.
Переведите все строки, располагающиеся на втором месте после ключевого слова VALUE
.
Информация о диалоговых окнах располагается под комментарием
// ------- dialogs ------------------------------------------------------------
Каждому диалоговому окну соответствует участок кода вида
... DIALOG ...
...
BEGIN
...
END
Переводить требуется лишь строки, располагающиеся внутри блока, ограниченного ключевыми словами BEGIN
и END
, где перечисляются элементы управления, располагающиеся в окне. Начало и конец описания элемента управления легко определить по выравниванию строк. Описание элемента управления содержит ключевое слово и список параметров через запятую. Если первым параметром идёт строка, её надо перевести. Остальные строки трогать не надо.
Информация о меню располагается под комментарием
// ------- menus --------------------------------------------------------------
Каждому меню соответствует участок кода вида
... MENU
BEGIN
...
END
Переводить требуется все строки, располагающиеся внутри блока, ограниченного ключевыми словами BEGIN
и END
.
Таблица строк располагается под комментарием
// ------- string table -------------------------------------------------------
Она описывается кодом вида
STRINGTABLE
BEGIN
...
END
Переводить требуется все строки, располагающиеся внутри блока, ограниченного ключевыми словами BEGIN
и END
.
Напишите Issue и вложите все файлы, либо просто пришлите pull request.