ROS Translation introduction
Содержание
Основы перевода ReactOS
Данная статья частично является переводом официальной вики. Последнее обновление 02-09-2016
Команда ReactOS рада приветствовать всех желающих принять участие в переводах. В этой статье рассказывается о том, что необходимо знать, чтобы начать переводить ReactOS.
Если вам понадобилась дополнительная информация о том, что не описано в этой статье, не стесняйтесь задавать ваши вопросы на форуме ReactOS (секция General Discussion) или на на IRC-каналах ReactOS. Вы также можете послать свои вопросы в электронном сообщении в список рассылок, посвященный переводам (ros-translate).
Первые шаги
Посмотрите, не работает ли уже кто-либо над переводом ReactOS на ваш язык, зайдя на страницу Список переводчиков, кроме того, вы можете попробовать связаться с ними на IRC-канале.
Если в списке имеются другие переводчики, то вы должны связаться с ними и сказать им о вашей заинтересованности в переводе ReactOS. Также вы можете уточнить у них текущее состояние перевода.
Если вашего языка нет в списке, не стесняйтесь и впишите его в этот список на странице Список переводчиков, кроме того, там же укажите и ваше имя.
Как переводить
Перевод ReactOS проводится путем редактирования различных файлов ресурсов (.rc). У некоторых людей возникают трудности с их поиском, поэтому здесь приведены пути к ним. ПОМНИТЕ: вы также должны редактировать директивы "#include" в файле rsrc.rc, если языкового файла не существует!
Перевод Wine
Файлы, полученные из Wine (список), должны переводиться в Wine, и позже они будут оттуда импортированы.
С порядком предоставления патчей в Wine можно ознакомиться на странице WineHQ.
Перевод ReactOS
Следующий список является результатом поиска "en-US.rc" или "En.rc" в документе, он не может отобразить все файлы, которые должны быть переведены.
Отдельные файлы en-US.rc / En.rc - главное дерево |
---|
\base\applications\cacls\
\base\applications\calc\ \base\applications\charmap\ \base\applications\cmdutils\doskey\ \base\applications\cmdutils\find\ \base\applications\cmdutils\more\ \base\applications\cmdutils\reg\ \base\applications\cmdutils\xcopy\ \base\applications\dxdiag\ \base\applications\findstr\ \base\applications\fontview\ \base\applications\games\solitaire\ \base\applications\games\spider\ \base\applications\games\winemine\ \base\applications\kbswitch\ \base\applications\logoff\ \base\applications\magnify\ \base\applications\mmc\ \base\applications\mplay32\ \base\applications\msconfig\ \base\applications\mscutils\devmgmt\ \base\applications\mscutils\eventvwr\ \base\applications\mscutils\servman\ \base\applications\mspaint\ \base\applications\mstsc\ \base\applications\network\ipconfig\ \base\applications\network\ping\ \base\applications\notepad\ \base\applications\rapps\ \base\applications\regedit\ \base\applications\regedit\clb\ \base\applications\screensavers\3dtext\ \base\applications\screensavers\logon\ \base\applications\shutdown\ \base\applications\sndrec32\ \base\applications\sndvol32\ \base\applications\taskmgr\ \base\applications\winhlp32\ \base\applications\wordpad\ \base\applications\write\ \base\setup\reactos\ \base\setup\usetup\ \base\setup\vmwinst\ \base\setup\welcome\ \base\shell\cmd\ \base\shell\explorer\ \base\shell\explorer-old\ \base\system\format\ \base\system\logonui\ \base\system\regsvr32\ \base\system\rundll32\ \base\system\runonce\ \base\system\subst\ \base\system\userinit\ \base\system\winlogon\ \boot\freeldr\fdebug\ \dll\cpl\access\ \dll\cpl\appwiz\ \dll\cpl\console\ \dll\cpl\desk\ \dll\cpl\hdwwiz\ \dll\cpl\inetcpl\ \dll\cpl\input\ \dll\cpl\intl\ \dll\cpl\joy\ \dll\cpl\liccpa\ \dll\cpl\main\ \dll\cpl\mmsys\ \dll\cpl\powercfg\ \dll\cpl\sysdm\ \dll\cpl\telephon\ \dll\cpl\timedate\ \dll\cpl\usrmgr\ \dll\win32\aclui\ \dll\win32\avifil32\ \dll\win32\browseui\ \dll\win32\comctl32\ \dll\win32\comdlg32\ \dll\win32\credui\ \dll\win32\crypt32\ \dll\win32\cryptdlg\ \dll\win32\cryptui\ \dll\win32\devmgr\ \dll\win32\hhctrl.ocx\ \dll\win32\iccvid\ \dll\win32\jscript\ \dll\win32\kernel32\winnls\ \dll\win32\localspl\ \dll\win32\localui\ \dll\win32\mapi32\ \dll\win32\modemui\ \dll\win32\mpr\ \dll\win32\msacm32\ \dll\win32\msgina\ \dll\win32\mshtml\ \dll\win32\msi\ \dll\win32\msports\ \dll\win32\msrle32\ \dll\win32\msvfw32\ \dll\win32\msvidc32\ \dll\win32\netcfgx\ \dll\win32\netid\ \dll\win32\netshell\ \dll\win32\newdev\ \dll\win32\oleacc\ \dll\win32\oleaut32\ \dll\win32\oledlg\ \dll\win32\rasdlg\ \dll\win32\serialui\ \dll\win32\setupapi\ \dll\win32\shdoclc\ \dll\win32\shdocvw\ \dll\win32\shell32\ \dll\win32\shimgvw\ \dll\win32\shlwapi\ \dll\win32\syssetup\ \dll\win32\tapiui\ \dll\win32\user32\ \dll\win32\userenv\ \dll\win32\wininet\ \dll\win32\winmm\ \dll\win32\wldap32\ \dll\shellext\deskadp\ \dll\shellext\deskmon\ \dll\shellext\slayer\ \subsystems\ntvdm\ \subsystems\win32\csrss\win32csr\ |
Откуда скачать файлы
Самые новые файлы находятся в нашем Subversion-репозитории. Убедитесь, что вы получили файлы оттуда, а не из релиза, так так релиз может быть устаревшим.
Вы можете просматривать и загружать одиночные файлы из SVN при помощи нашего ViewVC
Как переводить файлы
Ниже приведён пример файла ресурсов компонента "Редактор списка доступа ReactOS (aclui)".
(Обратите внимание, что несколько строк, содержание которых не важно для этой статьи, были удалены из этого примера для улучшения читаемости страницы).
include include include "resource.h" LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL IDD_SECPAGE DIALOGEX 0, 0, 227, 215 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION CAPTION "Security" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "&Group or user names:", -1, 7, 7, 105, 8 CONTROL "", IDC_ACELIST, "SysListView32", LVS_REPORT PUSHBUTTON "A&dd...", IDC_ACELIST_ADD, 116, 87, 50, 14 PUSHBUTTON "&Remove", IDC_ACELIST_REMOVE, 170, 87, 50, 14 LTEXT "Allow", -1, 135, 107, 32, 8, SS_CENTER LTEXT "Deny", -1, 176, 107, 32, 8, SS_CENTER END STRINGTABLE DISCARDABLE { IDS_PSP_TITLE "Permissions for %1" } |
Первым делом вы должны создать копию англоязычного rc-файла, обычно он называется en-US.rc, и переименовать его кодом вашего языка. Если вы не знаете код вашего языка, то просмотрите двухбуквенные коды внизу страницы ISO-639 (вы также можете найти список названий локалей на этой странице MSDN). Обратите внимание, что некоторые файлы могут отличаться от приведённых в этом списке, например файлы, взятые из Wine. Прежде чем приступать к переводу, убедитесь, что перевода на ваш язык не существует.
После того, как вы скопировали файл, можете начинать перевод.
- Вначале, измените LANG_ENGLISH на ваш язык (Например: LANG_RUSSIAN). В зависимости от вашего расположения и языка, возможно, вам потребуется изменить код языковой группы со значений по умолчанию SUBLANG_NEUTRAL или SUBLANG_DEFAULT
- Слова, которые необходимо переводить, заключены в кавычки. Тем не менее, не нужно переводить все встречающиеся слова в кавычках, поскольку имеются некоторые исключения. Чаще всего, увидеть, что необходимо переводить, а что нет, довольно просто. Например, вы не должны переводить "MS Shell Dlg" (это название шрифта, оно находится в начале строки) или "SysListView32".
- Поскольку большинство ресурсов имеют кодировку UTF-8, сохраняйте ваши файлы .rc в "UTF-8".
- В конце файла всегда оставляйте пустую строку, это облегчает процесс сборки.
Изменение размера элементов
Если некоторые поля, метки и т.п. слишком малы для вашего языка, вы можете изменить их размер.
Например, в: PUSHBUTTON "&Some text", IDC_ACELIST_REMOVE, 170, 87, 50, 14
Числа 170, 87, 50, 14 соответственно ЛЕВО, ВЕРХ, ШИРИНА, ВЫСОТА. Таким образом, изменив 50 на 60 мы увеличим ширину кнопки.
Если вы создаёте новый перевод, то необходимо отредактировать ещё несколько файлов.
В папке каждого приложения, DLL, и т.д., должен находиться файл с именем или rsrc.rc или <имяприложения>.rc. Вы должны открыть его и добавить в него путь к вашему языковому файлу.
Используемые символы
Символ | Комментарий |
& | Амперсанд, как видно в примере выше, он находится внутри некоторых слов. Он задаёт горячую клавишу; буква, идущая после амперсанда, становится горячей клавишей.
Горячей клавишей называется клавиша, позволяющая ускорить доступ к различным меню и т.п. Горячая клавиша обозначается подчёркиванием. |
% | Знак процента, после него идёт какой-либо символ, например '%1', это видно в приведённом выше `.rc'-файле. Эти символы не должны подвергаться изменению, так как они обычно указывают на выводимую на экран текстовую строку или значение. |
\n | Это конец строки. |
/* text */ | Это текст комментария. Стоит задуматься о том, чтобы оставить этот текст на языке оригинала, чтобы облегчить себе дальнейшую работу. |
Отправка вашего перевода
Для отправки вашего перевода, создайте для него файл патча и отправьте созданный файл в JIRA, приложив его к отчёту об ошибках.
Далее приведено небольшое пошаговое (для TortoiseSVN) руководство, посвящённое тому, как это сделать:
- Нажмите правой кнопкой на корневой папке исходных кодов ReactOS, и щёлкните на TortoiseSVN --> Create patch.
- Убедитесь, что все изменённые вами файлы выбраны в появившемся диалоговом окне, а затем нажмите OK. Сохраните полученный результат как файл ".patch".
- Отправка отчета описана здесь.
Терминология
Вы не обязаны делать перевод, как две капли воды похожий на перевод Windows. Если вы чувствуете, что сможете перевести что-либо лучше, чем это сделано в Windows, то дерзайте! Однако, рекомендуется соблюдать общие соглашения, например, в меню окон.
Кроме того, постарайтесь соблюдать последовательность в ваших переводах, т.е. постарайтесь не переводить один и тот же термин в разных местах по-разному.
Рекомендации
- Вычитка
Вы можете достигнуть более высокого качества перевода, если в вашей команде переводчиков будет участник, занимающийся вычиткой и оценкой качества переводов. В команде переводчиков на шведский язык появилась интересная идея, и вот как мы её реализовали:
- Кто-либо переводит файл, и, в нашем случае, загружает его на наш ftp-сервер.
- Другой участник команды вычитывает файл и даёт свои комментарии.
- Если автор первоначальной версии перевода согласен с этими комментариями, то вносит соответствующие изменения в перевод.
- Если двое участников не могут придти к общему мнению по какому-либо вопросу, мы объявляем голосование для всех участников команды.
Разумеется, вы не обязаны полностью повторять все эти пункты, но вычитывать переводы всё же крайне рекомендуется.
- Место для встреч и общения в чате
Если у вас имеется чат, то это значительно облегчает работы по переводу. Здесь имеются подсказки по использованию или созданию IRC-канала в сети freenode и общению в нём.
- Поддерживайте контакт с другими переводчиками по E-mail, IRC или в форумах.
- Ещё одна подсказка для пользователей Firefox
Плагин Dictionary Search для Firefox позволяет ускорить поиск перевода неизвестных вам слов. Вам лишь нужно их выделить, щёлкнуть на них правой клавишей мыши и выбрать Dictionary search. Dictionary search использует несколько веб-сайтов для перевода на столько языков, на сколько это возможно.