table of contents
| LOCALE::PO4A::VIMHELP.3PM(1) | User Contributed Perl Documentation | LOCALE::PO4A::VIMHELP.3PM(1) |
НАЗВАНИЕ¶
Locale::Po4a::VimHelp: преобразование файлов справки Vim из/в PO-файлы
ОПИСАНИЕ¶
Целью проекта po4a (PO for anything, PO везде и для всего) является облегчение процесса перевода (и что более важно — поддержки перевода), используя инструменты gettext в тех случаях, когда их применение может выглядеть неожиданным, например для документации.
"Locale::Po4a::VimHelp" — это модуль, предназначенным для помощи в переводе файлов справки Vim. См. также описание его синтаксиса в Writing help files <https://vimhelp.org/helphelp.txt.html#help-writing>.
СОСТОЯНИЕ ЭТОГО МОДУЛЯ¶
Этот модуль находится на ранней стадии разработки. Он успешно протестирован на простых файлах вроде "helphelp.txt". Однако он пока не тестировался на полных файлах справки, и способ их анализа может измениться в связи с исправлениями и улучшениями, особенно в отношении переноса абзацев.
РАЗРАБОТКА¶
Разбор файлов справки Vim для po4a является сложной задачей. Вот некоторые сложности, возникающие при разработке этого модуля. Если у вас есть идея получше, не стесняйтесь предлагать патч (с тестами).
- "1. foo" выглядит как нумерованный список
- Но это не
обязательно
так.
Обратите
внимание
на
следующий
абзац:
Есть 2 блуждающих тануки, а не 1. Он использует свою технику клонирования.По той же причине не удается распознать заголовок (например, "1.1 bar") или неупорядоченный список (например, "o baz").
- Теги, выровненные по правому краю, должны быть исключены из целевого перевода
- Эта тема
также
сложна,
поскольку
связана с
языковыми
различиями
в
реализации.
Рассмотрим следующий пример
Такое распространённое и краткое понятие в некоторых языках как *теги*которое может быть переведён как
Они незнакомы, нет соответствующих понятий и *тегов* в этом языке для их выражения требуется более длинное предложениеКогда это происходит, вам нужно решить, как добавить тег красиво. Вероятно, это будет непросто. Файл справки Vim имеет жесткий формат, даже для тех частей, которые не являются блоками кода.
То же самое относится к ссылкам на теги, таким как "|ref|".
- Контроль ширины текста с помощью "--wrapcol"
- Использование параметра "--wrapcol" для выдачи предупреждений при превышении заданных ограничений ширины текста представляется разумным подходом. В официальных файлах справки Vim есть специальная "режимная строка" (modeline), вроде такой "vim:tw=78:ts=8:noet:ft=help:norl:", см. в "runtime/doc/if_perl.txt" <https://github.com/vim/vim/blob/04cc8975930b7b2c5d6753d3eddf57dab2816518/runtime/doc/if_perl.txt#L307>. Однако есть ряд проблем, которые нужно учитывать:
- Поведение парсера
- Если параметр реализован, в идеале нужно сначала прочитать весь файл, выяснить, присутствует ли "режимная строка" и определить, какие разделы затронуты. К сожалению, механизм прогрессивного анализа в этом случае не применяется.
- Значения по умолчанию vs Пользовательские значения
- Стандартное значение параметра "--wrapcol" равно 76, в то время как в файлах справки Vim обычно используется 78. В большинстве случаев значение, передаваемое этому модулю по умолчанию равно 76, но непонятно, было ли это значение задано явно или применено неявно.
СМОТРИТЕ ТАКЖЕ¶
Locale::Po4a::TransTractor(3pm), po4a(7)
АВТОРЫ¶
gemmaro <gemmaro.dev@gmail.com>
АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ¶
Copyright © 2024, 2025 gemmaro.
Данная программа является свободным программным обеспечением; вы можете распространять и/или изменять её на условиях Универсальной общественной лицензии (GPL) GNU v2.0 или новее (см. файл COPYING).
| 2026-03-23 | perl v5.42.0 |