Help:Howto/Создание нового перевода

From Miranda NG
Jump to: navigation, search
<translate> Tip</translate>
Предполагается, что вы клонировали весь репозиторий Miranda NG отсюда: https://github.com/miranda-ng/miranda-ng. Как минимум, вам требуюися папки langpacks и tools, которые должны располагаться в одном и том же месте.
Всю работу следует вести в вашем собственном форке репозитория.

Структура перевода Miranda NG

Последняя версия переводов находится здесь.

Папка english содержит шаблон перевода. Он регулярно обновляется, и содержит строки, нуждающиеся в переводе. Править его вручную нежелательно.

Important
Исключение составляют плагины, написанные на Pascal (Actman, HistoryPP, mRadio, QuickSearch, Watrack) — их шаблоны не генерируются автоматически.

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

=HEAD=.txt

Заголовочный файл. Содержит информацию о языке пакета, его авторах.

Miranda Language Pack Version 1
Language:
Locale:
Authors:
Author-email:
Last-Modified-Using:

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

=CORE=.txt

Строки, которые содержатся в ядре и Std-плагинах. Здесь и далее идут собственно строки перевода и комментарии (строки, начинающиеся со знака ;.).

Plugins\

В папке Plugins содержатся переводы плагинов.

Алгоритм поиска строк перевода таков: перевод каждого плагина начинается с его ID (#muuid {...}). Если строка не обнаружена в секции плагина, то ее поиск будет проводиться по всему файлу перевода, с самого начала.

Использование #muuid {...} позволяет переводить одинаковые английские строки по-разному в разных плагинах, например:

[Clear]
Ясно

для плагина Weather и

[Clear]
Очистить

во всех остальных случаях.

Note
Дублировать одинаковые строки в пределах перевода одного плагина не следует, так как Miranda будет использовать лишь первый найденный вариант.

Все строки регистрозависимы. Это означает различие между строками [Аbc] и [abc].

Пробел в конце строки (если он наличествует в оригинале) должен быть заменен на \s в переведенной строке (см. коммит 5674). Левый пробел сохраняется, например:

[ Actions ]
 Действия\s

Если оригинальная строка начинается с символа [ или #, он должен экранироваться слешем в переведённой строке, например:

[[Me]]
\[Я]

[# Solid color fill]
\# Заливка цветом

Файл перевода заканчивается пустой строкой.

Для облегчения процесса перевода существует постоянно пополняемый глоссарий, содержащий устоявшиеся варианты перевода часто употребляемых терминов.

Утилиты для языковых пакетов

lpgen.js

Скрипт автоматической генерации файла шаблона.

LangpackSuite.exe

Собирает перевод воедино. Также есть возможность создания перевода по вашему файлу Version Info.

Langpackmgr.exe

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

Для записи в файл перевода непереведенных строк в формате

[some untranslated string]
<пустая строка для перевода>

необходимо создать пустой файл clearstring.ini рядом с LangPackMgr.exe. Подробнее об утилите на форуме.

Refresh.bat

Обновляет файлы перевода в соответствии с англоязычным шаблоном. Непереведённые строки будут помещены в папку /langpacks/russian/Untranslated/.