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

From Miranda NG
< Help:Howto
Revision as of 15:14, 20 June 2018 by Dart Raiden (talk | contribs) (Created page with "== Структура перевода Miranda NG == Последняя версия переводов находится [https://github.com/miranda-ng/miranda-ng/tree/maste...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

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

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

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

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

=HEAD=.txt

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

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

Все строки, кроме первой, необязательны.

=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. Подробнее об утилите на форуме.

UpdateLang.bat

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