Langpacks/ru: Difference between revisions
Dart Raiden (talk | contribs) |
Dart Raiden (talk | contribs) |
||
Line 24: | Line 24: | ||
== Переводчикам == | == Переводчикам == | ||
=== Структура перевода Miranda NG === | === Структура перевода Miranda NG === | ||
Последняя версия переводов находится | Последняя версия переводов находится [https://github.com/miranda-ng/miranda-ng/tree/master/langpacks здесь]. | ||
Папка english содержит шаблон перевода. Он регулярно обновляется, и содержит строки, нуждающиеся в переводе. Править его вручную нежелательно. Исключение составляют плагины, написанные на | Папка <tt>english</tt> содержит шаблон перевода. Он регулярно обновляется, и содержит строки, нуждающиеся в переводе. Править его вручную нежелательно. | ||
{{TNT|Important|Исключение составляют плагины, написанные на Pascal (Actman, HistoryPP, ImportTXT, mRadio, QuickSearch, Watrack) — их шаблоны не генерируются автоматически.}} | |||
Необходимо учитывать, что иногда по разным причинам некоторые строки не попадают в английский шаблон (имена разделов и подразделов в настройке значков, например). Это происходит потому, что данные строки одновременно являются именами разделов или настроек в базе, вследствие чего их нельзя пометить в исходном коде как доступные для перевода (иначе настройки в базе начнут сбрасываться при изменении языка). Однако, эти строки все равно нуждаются в переводе, поэтому их перевод осуществляется в [https://github.com/miranda-ng/miranda-ng/blob/master/langpacks/russian/Plugins/_Various.txt отдельном файле]. | |||
==== | ==== =HEAD=.txt ==== | ||
Заголовочный файл. Содержит информацию о языке пакета, его авторах. | Заголовочный файл. Содержит информацию о языке пакета, его авторах. | ||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
Line 38: | Line 40: | ||
Author-email: | Author-email: | ||
</pre> | </pre> | ||
Все строки, кроме первой, необязательны | Все строки, кроме первой, необязательны. | ||
==== | ==== =CORE=.txt ==== | ||
Строки, которые содержатся в ядре и | Строки, которые содержатся в ядре и Std-плагинах. | ||
Здесь и далее идут собственно строки перевода и комментарии (строки, начинающиеся со знака | Здесь и далее идут собственно строки перевода и комментарии (строки, начинающиеся со знака <tt>;</tt>.). | ||
==== Plugins\ ==== | ==== Plugins\ ==== | ||
В папке <tt>Plugins</tt> содержатся переводы плагинов | В папке <tt>Plugins</tt> содержатся переводы плагинов. | ||
Алгоритм поиска строк перевода таков: перевод каждого плагина начинается с его ID (#muuid {...}). Если строка не обнаружена в секции плагина, то ее поиск будет проводиться | Алгоритм поиска строк перевода таков: перевод каждого плагина начинается с его ID (<tt>#muuid {...}</tt>). Если строка не обнаружена в секции плагина, то ее поиск будет проводиться по всему файлу перевода, с самого начала. | ||
Использование #muuid {...} позволяет переводить одинаковые английские строки по-разному в разных плагинах, например: | Использование #muuid {...} позволяет переводить одинаковые английские строки по-разному в разных плагинах, например: | ||
Line 62: | Line 63: | ||
во всех остальных случаях. | во всех остальных случаях. | ||
{{TNT|Note|Дублировать одинаковые строки в пределах перевода ''одного плагина'' не следует, так как Miranda будет использовать лишь первый найденный вариант.}} | |||
Все строки регистрозависимы. Это означает различие между строками [Аbc] и [abc]. | Все строки регистрозависимы. Это означает различие между строками [Аbc] и [abc]. | ||
Line 72: | Line 73: | ||
</pre> | </pre> | ||
Если оригинальная строка начинается с символа [ или #, он должен экранироваться слешем в переведённой строке, например: | Если оригинальная строка начинается с символа <tt>[</tt> или <tt>#</tt>, он должен экранироваться слешем в переведённой строке, например: | ||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
[[Me]] | [[Me]] | ||
Line 90: | Line 91: | ||
==== LangpackSuite.exe ==== | ==== LangpackSuite.exe ==== | ||
Собирает | Собирает перевод воедино. Также есть возможность создания перевода по вашему файлу [[Информация о версиях|Version Info]]. | ||
==== Langpackmgr.exe ==== | ==== Langpackmgr.exe ==== | ||
Line 104: | Line 105: | ||
==== UpdateLang.bat ==== | ==== UpdateLang.bat ==== | ||
Обновляет файлы перевода в соответствии с англоязычным шаблоном. Непереведённые строки будут помещены в <tt>/langpacks/russian/Untranslated</tt>, а в языковой пакет не попадут. | Обновляет файлы перевода в соответствии с англоязычным шаблоном. Непереведённые строки будут помещены в <tt>/langpacks/russian/Untranslated</tt>, а в языковой пакет не попадут. | ||
== См. также == | |||
* [[mirandaboot.ini/en#DefaultLanguage|mirandaboot.ini]] | |||
* [[Help:Howto/How to translate langpacks|How to translate langpacks]] | |||
[[Category:Заглавная страница]] | [[Category:Заглавная страница]] |
Revision as of 14:37, 20 June 2018
Языковой пакет (также лэнгпак, лангпак, лэнг) — текстовый файл langpack_*.txt для перевода интерфейса Миранды на какой-либо язык, отличный от английского. Языковые пакеты находятся в папке Languages внутри папки Миранды.
Пользователям
Установка и использование
Установить дополнительные языки можно с помощью PluginUpdater (Главное меню → Компоненты для установки), либо вручную: скачать нужный перевод и распаковать содержимое архива, включающее папку Languages с содержащимся в ней лэнгпаком, в корень программы.
Чтобы выбрать и применить один лангпак из нескольких установленных, откройте Настройки → Тонкая настройка → Языки.
Если в папке Languages есть несколько переводов, то при запуске программы (например, в менеджере профилей) будет использован первый по алфавиту. Задать перевод по умолчанию на старте можно в файле Mirandaboot.ini, указав желаемый лангпак в параметре DefaultLanguage (секция [Language]), например:
DefaultLanguage=langpack_russian.txt
Скачать переводы
Ниже представлены переводы, которые уже существуют. К сожалению, их сейчас можно пересчитать по пальцам, и не все они верны. Но если вы хотите помочь — как с существующим переводом, или добавить какой-то другой — добро пожаловать в ряды переводчиков Миранды.
- Беларуская (Belarusian langpack)
- Български (Bulgarian langpack)
- Český (Czech langpack)
- Deutsch (German langpack)
- British English (British English langpack)
- Español (Spanish langpack)
- Français (French langpack)
- Polski (Polish langpack)
- Русский (Russian langpack)
- Українська (Ukrainian langpack)
Переводчикам
Структура перевода Miranda NG
Последняя версия переводов находится здесь.
Папка english содержит шаблон перевода. Он регулярно обновляется, и содержит строки, нуждающиеся в переводе. Править его вручную нежелательно.
Исключение составляют плагины, написанные на 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] Очистить
во всех остальных случаях.
Дублировать одинаковые строки в пределах перевода одного плагина не следует, так как 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, а в языковой пакет не попадут.