RU/Работа с исходным кодом в Lokalize: Difference between revisions
Aspotashev (talk | contribs) |
Aspotashev (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
== Настройка Lokalize == | == Настройка Lokalize == | ||
Для того чтобы использовать какой-либо сценарий в Lokalize, в файле l10n- | Для того чтобы использовать какой-либо сценарий в Lokalize, в файле l10n-kf5/ru/lokalize-scripts/scripts.rc должна присутствовать ссылка на этот сценарий (в случае, если вы работаете с проектом l10n-kf5/ru/index.lokalize). | ||
В стандартном scripts.rc находится ссылка на сценарий ../../scripts/lokalize/opensrc.py, поэтому '''нужно просто извлечь из репозитория SVN каталог l10n- | В стандартном scripts.rc находится ссылка на сценарий ../../scripts/lokalize/opensrc.py, поэтому '''нужно просто извлечь из репозитория SVN каталог l10n-kf5/scripts/lokalize'''. | ||
== Где ищутся исходники == | == Где ищутся исходники == | ||
Line 12: | Line 12: | ||
Конечно, в случае отсутствия исходников в стандартном каталоге, Lokalize пытается найти их при помощи утилиты locate. Однако, locate работает относительно медленно, и он может найти не тот файл, который вам нужен. | Конечно, в случае отсутствия исходников в стандартном каталоге, Lokalize пытается найти их при помощи утилиты locate. Однако, locate работает относительно медленно, и он может найти не тот файл, который вам нужен. | ||
Для работы с исходниками других программ, а также если вы не хотите придерживаться структуры каталогов, сложившейся в репозитории, вам нужно отредактировать файл l10n- | Для работы с исходниками других программ, а также если вы не хотите придерживаться структуры каталогов, сложившейся в репозитории, вам нужно отредактировать файл l10n-kf5/scripts/lokalize/opensrc_list.py и перезапустить Lokalize. Можно редактировать этот файл вручную, а можно зайти в каталог l10n-kf5/scripts/lokalize и запустить сценарий opensrc_generate_list.rb , который найдёт файлы Messages.sh в каталогах исходного кода и по ним составит файл opensrc_list.py . | ||
Пример файла opensrc_list.py: | Пример файла opensrc_list.py: | ||
< | {{Input|1=<nowiki> | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
mapSrc = { | mapSrc = { | ||
Line 22: | Line 22: | ||
'kdesvn': u'/home/aspotashev/kde-git/kdesvn', | 'kdesvn': u'/home/aspotashev/kde-git/kdesvn', | ||
} | } | ||
</ | </nowiki>}} | ||
=== Сценарий opensrc_generate_list === | === Сценарий opensrc_generate_list === |
Latest revision as of 00:42, 15 August 2019
Зачем?
Автоматически созданные комментарии к строкам в шаблонах переводов не всегда дают полную информацию о строке, а иногда и вовсе отсутствуют. Поэтому при отсутствии уверенности в переводе строки рекомендуется обращаться к исходному коду переводимой программы.
Настройка Lokalize
Для того чтобы использовать какой-либо сценарий в Lokalize, в файле l10n-kf5/ru/lokalize-scripts/scripts.rc должна присутствовать ссылка на этот сценарий (в случае, если вы работаете с проектом l10n-kf5/ru/index.lokalize).
В стандартном scripts.rc находится ссылка на сценарий ../../scripts/lokalize/opensrc.py, поэтому нужно просто извлечь из репозитория SVN каталог l10n-kf5/scripts/lokalize.
Где ищутся исходники
Сценарий opensrc сначала пытается найти каталог исходного кода по заранее подготовленной таблице (файл opensrc_list.py). Файл opensrc_list.py, находящийся в репозитории SVN, содержит информацию о расположении исходных кодов всех программ из koffice, extragear, playground и KDE. Для работы с этими исходниками достаточно извлечь их из SVN в соответствующий каталог (так, чтобы сохранялась структура каталогов как в SVN).
Конечно, в случае отсутствия исходников в стандартном каталоге, Lokalize пытается найти их при помощи утилиты locate. Однако, locate работает относительно медленно, и он может найти не тот файл, который вам нужен.
Для работы с исходниками других программ, а также если вы не хотите придерживаться структуры каталогов, сложившейся в репозитории, вам нужно отредактировать файл l10n-kf5/scripts/lokalize/opensrc_list.py и перезапустить Lokalize. Можно редактировать этот файл вручную, а можно зайти в каталог l10n-kf5/scripts/lokalize и запустить сценарий opensrc_generate_list.rb , который найдёт файлы Messages.sh в каталогах исходного кода и по ним составит файл opensrc_list.py .
Пример файла opensrc_list.py:
# -*- coding: utf-8 -*- mapSrc = { 'okular': u'/home/aspotashev/kde-git/okular', 'kdesvn': u'/home/aspotashev/kde-git/kdesvn', }
Сценарий opensrc_generate_list
- По умолчанию, сценарий opensrc_generate_list.rb будет сканировать каталог trunk (точнее, каталог на 3 уровня выше от каталога, в котором находится opensrc_generate_list.rb).
- Если вы хотите просканировать весь каталог /home при помощи locate, нужно запустить
./opensrc_generate_list.rb global-home
- Если у вас есть исходники из trunk и другие исходники, разбросанные про /home, то рекомендуется запустить
./opensrc_generate_list.rb kde-trunk global-home
тогда каталог trunk будет иметь приоритет перед другими каталогами.
Как читать исходный код
По исходному коду часто бывает проще узнать контекст, в котором та или иная строка появляется в интерфейсе программы, чем если бы вы устанавливали, запускали программу и вручную искали меню или диалоговое окно с интересующей строкой.
Среди всех переводимых строк можно выделить несколько категорий:
- Заголовки окон. Строка является заголовком диалогового окна, в частности, если она передаётся в вызов одной из следующих функций: KInputDialog::getText (как первый аргумент), setCaption, setWindowTitle. Иногда к строке, являющейся заголовком окна, разработчики добавляют контекстную строку "@title:window".
- Всплывающие подсказки. Строка является заголовком диалогового окна, в частности, если она передаётся в вызов функции setToolTip.