Дети любят такой компьютер!
Языки сайта [ar] [cs] [de] [en] [es] [fa] [fr] [it] [ms] [nl] [pt] [pt_br] [ro] [ru] [sr] [sr@latin] [th] [uk] [vi] [zh]
Все версии этой статьи: [English] [Bahasa Malaysia] [русский]
DoudouLinux компилируется при помощи утилиты создания LiveCD, как сказано на странице Как создать образ CD/USB image. Утилита под названием live-helper читает файлы конфигурации в данном каталоге и затем компилирует образ LiveCD/LiveUSB. В файлах конфигурации сказано, какой язык и раскладку клавиатуры использовать, какие приложения устанавливать и т.д. Чтобы добиться полной настройки, можно даже переписать любой файл перед тем, как файл образа LiveCD/LiveUSB будет готов. Такая возможность также используется, когда нужно перевести несколько текстов.
Поскольку в наших планах компиляция DoudouLinux для множества разных языков, файлы конфигурации нельзя изменять напрямую в стандартном каталоге live-helper. Вместо этого существует каталог базовой конфигурации config-base/
и локализации 1. Базовый каталог не привязан к языку, а каталог локализации содержит только конкретные языковые настройки. Для упрощения перевода на новый язык DoudouLinux предоставляет скрипт init-lang.sh, который генерирует набор конфигурации нового языка.
Некоторые приложения сами могут нуждаться в переводе (или доработке перевода). Файлы конфигурации управляют только окружением DoudouLinux. Для перевода текста в приложениях надо создать файлы интернационализации. Эти файлы можно интегрировать в каталоги локализации или использовать как патч к приложению и сгенерировать новый пакет Debian. Первое решение проще!
Примечания:
Каталог локализации содержит следующее дерево:
config-l10n/ ├── apps/ = SVN externals coming from lang/trunk/apps/ ├── desktop-entries/ = SVN externals coming from lang/trunk/env/icons/ ├── overwrite/ │ ├── ar/ │ ├── en/ │ ├── es/ │ ├── fr/ │ ├── … ├── packagelists/ └── rewrite/ ├── settings/ └── templates/Теперь вам понятно, что дерево состоит из:
apps/
, зеркало SVN для файлов перевода приложений из ветви SVN lang/trunk/apps/
desktop-entries/
, зеркало SVN для файлов со значками приложений и категорий (вкладки LxLauncher) из ветви SVN lang/trunk/env/icons/
overwrite/
, для файлов, переписывающих некоторые другие файлы, они упорядочены по языкам при помощи двухбуквенных каталогов (fr/
, es/
и т.под.)packagelists/
, для списков пакетов конкретных языков (словари и проч.) rewrite/
, для скриптов, которые переписывают некоторые файлы основных настроекПоймите, что apps/
и desktop-entries/
появляются, когда вы загружаете код SVN на свой компьютер. Все каталоги и файлы описываются в данном документе. Чтобы понять, почему каталогов так много, нужно понять, как запускается процесс компиляции образа LiveCD/LiveUSB:
[1].
config-base/
в build/config/
config-l10n/overwrite/xx/
config-l10n/xx/ в build/config/
config-l10n/desktop-entries/
в подкаталоги build/config/chroot_local-includes/
build/config/
После этих операций каталог реальной конфигурации build/config/
готов и запускается генерация LiveCD/LiveUSB при помощи live-helper.
Чтобы создать новый перевод, нужно создать:
config-l10n/rewrite/settings/xx
config-l10n/packagelists/doudoulinux-l10n-xx
config-l10n/overwrite/xx/
Скрипт init-lang.sh
поможет вам в создании всех этих файлов и каталогов. Просто перейдите в doudoulinux/live/trunk/
и наберите:
./init-lang.sh xx
где xx – это двухбуквенный код языка. Каждый существующий файл не будет изменен или удален, и языковые каталоги можно будет обновить, когда это понадобится. Обратите внимание, что двухбуквенные коды Debian берет из спецификации ISO. В the FAQ developer page сказано, как использовать эти коды.
Тексты иконок приложений и вкладок LxLauncher хранятся в файлах *.directory
и *.desktop
. Эти файлы находятся в дереве “lang/”: lang/trunk/env/icons/applications/
и lang/trunk/env/icons/desktop-directories/
. Они уже многоязычные, и их надо не дублировать, а редактировать напрямую. [2]. Пожалуйста, не редактируйте копию SVN в live/trunk/config-l10n/desktop-entries/
за исключением тестирования, потому что вы не сможете закоммитить изменения из этого каталога.
Содержимое файла значка или категории выглядит примерно так:
[Desktop Entry] Type=Application Version=1.0 Encoding=UTF-8 Name=SuperTux GenericName=A Platform Game GenericName[fr]=Un jeu de saut et course GenericName[de]=Ein Jump&Run Spiel GenericName[cs]=Plošinová hra Comment=A Super Mario inspired penguin platform game Comment[fr]=Un jeu de pingouin inspiré de Super Mario® Comment[de]=Ein von Super Mario inspiriertes Pinguin Jump&Run Spiel Comment[cs]=Plošinovka inspirovaná SuperMariem s tučňákem Tuxem v hlavní roli Icon=supertux.png Exec=supertux Terminal=false StartupNotify=false Categories=Application;Game;ArcadeGame
Вам необходимо перевести или доработать по меньшей мере строки Comment
и возможно, Name
. Name
- это имя иконки приложения, отображаемое на рабочем столе DoudouLinux. Comment
- это всплывающее описание, отображаемое при наведении мышки на иконку. Будет хорошо, если вы добавите недостающие Comment[xx]
или Name[xx]
для вашего языка.
Обратите внимание, что базовый текст для описаний – английский и французский. Их значение может отличаться от любого существующего перевода, поскольку мы создаем тексты, предназначенные для детей. Поймите также, что вам, вероятно, придется скопировать дополнительные файлы *.desktop
в lang/trunk/env/icons/applications/</code code>config-l10n/desktop-entries/applications/</code >, если вы найдете значки, непереводимые на ваш язык или переведенные неправильно. Такие файлы можно скопировать из <code>/usr/share/applications/
или /usr/share/desktop-directories/
при запуске LiveCD.
Скрипт замены создан для того, чтобы избежать повторения скриптов конфигурации путем замены одного текста другим. Единственный шаблон файла конфигурации из config-base/
можно использовать снова и снова для каждого языка. Скрипты замены после запуска изменяют шаблоны в каталоге build/config/
. Каталог скриптов замены в корне содержит библиотеки замены, и скрипты замены названы одинаково в подкаталоге каждого языка. Например, в каталоге config-l10n/rewrite/
сейчас у нас есть 4 скрипта 90session-user и библиотечный скрипт:
$ find config-l10n/rewrite/ -name 90session-user config-l10n/rewrite/90session-user config-l10n/rewrite/es/90session-user config-l10n/rewrite/ar/90session-user config-l10n/rewrite/fr/90session-user config-l10n/rewrite/en/90session-user
Библиотека находится в config-l10n/rewrite/90session-user
. Если вы делаете перевод на арабский, надо отредактировать только config-l10n/rewrite/ar/90session-user
. В силу этого можно модифицировать библиотеку, не трогая связанные с ней скрипты, относящиеся к конкретным языкам.
NB: Поскольку процесс замены работает перед тем, как LiveCD/LiveUSB будет скомпилирован, вы не сможете переписать файлы, появляющиеся в процессе установки пакетов. Это значит, что скрипты замены направлены на файлы конфигурации. Исправление багов или изменения загрузки должны работать при помощи config-l10n/xx/
или компилировать хуки, что позволяет live-helper.
На данный момент существуют следующие скрипты замены:
скрипт замены | что изменяет |
---|---|
01binary | язык системы и раскладка клавиатуры |
01bootstrap | зеркало репозитория Debian (ближайшее к вам зеркало можно найти на http://www.debian.org/mirror/list) |
01set-grub-syslinux | тексты загрузки (Grub/Syslinux) |
05translate-shutdown | последний перед завершением работы текст, отображенный в консоли |
10lxlauncher-session | заголовок диалога окончания сеанса |
12lxpanel-lowbat | диалог разрядки батарей |
20cups-pdf | определение принтера PDF |
90session-user | элементы меню сессии (GDM) |
92skel-profile | аккаунт Telepathy Salut |
Это может измениться в будущих версиях DoudouLinux.
Каталоги config-l10n/xx/
содержат файлы конфигурации, которые могу тпереписывать файлы из config-base/
. Предполагается, что в этих каталогах содержатся:
На данный момент, каталоги config-l10n/xx/
могут содержать следующие файлы:
файл конфигурации | что меняет |
---|---|
chroot_local-includes/etc/localtime | локальное время компьютера |
chroot_local-includes/etc/timezone | локальный часовой пояс компьютера |
fr/chroot_local-includes/etc/skel/.vkeybdmap | набор клавишей vkeybd, зависит от раскладки клавиатуры |
chroot_local-includes/etc/skel/poster-xx.png | рисунок плаката DoudouLinux |
Это может измениться в будущих версиях DoudouLinux.
К каждому языку прилагается список пакетов локализации, названный doudoulinux-l10n-xx
в каталоге config-l10n/packagelists/
. Этот список пакетов автоматически сливается с файлом списка всего пакета во время запуска. Обычно в этом файле находятся пакеты переводов, но иногда некоторые приложения ограничены узким набором языков (например, французские глаголы, испанские глаголы и т.д.).
Файлы списков пакетов – это обыкновенные текстовые файлы с именами пакетов. Можно записывать несколько имен пакетов в одну строку с пробелом в качестве разделителя. Комментарии следуют за значком “#”. Например:
# Файл локализации DoudouLinux # # описывает языковые пакеты # словарь / язык verbiste-gnome dict-freedict-fra-eng dict-freedict-eng-fra dict-freedict-fra-deu dict-freedict-deu-fra dict-freedict-fra-nld dict-freedict-nld-fra apertium-tolk apertium-fr-es # игры для малышей gcompris-sound-fr childsplay-alphabet-sounds-fr childsplay-lfc-names-fr etc.
Пакеты, привязанные к конкретному языку, можно найти с помощью команды “apt-cache search
”:
$ apt-cache search freedict english | cut -d ’ ’ -f 1
Можно также использовать табуляцию для завершения такой команды:
$ dpkg -l childsplay-lfc-names-<нажмите TAB> childsplay-lfc-names-ca childsplay-lfc-names-fr childsplay-lfc-names-nl
DoudouLinux также включает в себя несколько маленьких приложений. Имея полный доступ к их исходникам и соответствующий Debian репозиторий, мы обновляем эти пакеты, а не пишем файлы в 1 [3]. Файлы, которые надо изменить, находятся в дереве packages/trunk/apps/
. Если нужно найти файлы *.desktop
, воспользуйтесь таким кодом:
$ find packages/trunk/apps/ -name ’*.desktop’ packages/trunk/apps/vkeybd-timidity/source/vkeybd-timidity.desktop packages/trunk/apps/live-persistence/source/share/applications/persistence-gui.desktop packages/trunk/apps/doudou-mouse/source/share/applications/mouse-settings.desktop packages/trunk/apps/doudou-sound/source/share/applications/set-alsa-output.desktop
Если надо найти файл перевода, который надо обновить из-за ошибки или неполного перевода, воспользуйтесь таким кодом:
$ find packages/trunk/apps/ -name ’*.po’ apps/liveusb-write/source/share/locale/fr/LC_MESSAGES/liveusb-write.po apps/live-persistence/source/share/locale/fr/LC_MESSAGES/live-persistence.po apps/doudoulinux-mouse/source/share/locale/fr/LC_MESSAGES/doudoulinux-mouse.po apps/doudoulinux-sound/source/share/locale/fr/LC_MESSAGES/doudoulinux-sound.po
Файлы PO – это просто текстовые файлы, которые можно изменять с помощью текстового редактора, такого как PoEdit. Наконец, если вам необходимо создать новый файл “*.po”, воспользуйтесь скриптом помощника ./init-lang.sh
в каталоге doudoulinux/packages/trunk/
:
$ ./init-lang.sh xx packagename
xx - это код вашего языка, а packagename – это название приложения. Эта команда также обновляет шаблон файла перевода, файл POT. При помощи этого скрипта можно обновлять конкретный файл перевода, если (английский) текст приложения изменился [4]. Чтобы найти эти файлы шаблонов, наберите вот что:
$ find packages/trunk/apps/ -name ’*.pot’ apps/liveusb-write/source/lib/liveusb-write/messages.pot apps/live-persistence/source/lib/live-persistence/messages.pot apps/doudoulinux-mouse/source/lib/doudoulinux-mouse/messages.pot apps/doudoulinux-sound/source/lib/doudoulinux-sound/messages.pot
DoudouLinux также содержит пропатченные пакеты Debian. Подобно пакетам DoudouLinux, лучше всего изменять пропатченные приложения и затем делать новый патч. Но если вы не хотите этим заниматься, прочитайте [страница в разработке…].
Самый простой способ проверить измененные пакеты, это записать их на USB-носитель DoudouLinux с активацией полного сохранения, а не только сохранения пользовательских данных. Во время работы DoudouLinux, вы можете что-то менять, и эти изменения автоматически записываются на USB-носитель. Если вы не знаете, какой файл должен быть изменен в данном пакете, используйте команду, подобную этой:
$ dpkg -L supertuxkart | grep ’.desktop$’ /usr/share/applications/supertuxkart.desktop
Команда dpkg -L
выдает список всех установленных файлов пакетов. Обратите внимание, что файлы PO компилируются в файлы MO, чтобы ускорить поиск перевода. Компиляция происходит с помощью соответствующих графических приложений.
Другой способ заключается в копировании измененных файлов в соответствующий подкаталог
config-base/chroot_local-includes/
или config-l10n/xx/chroot_local-includes/
и затем перекомпилировать весь образ CD/USB. Наконец, еще один способ состоит в перекомпиляции измененного пакета (*.deb
file) и перемещении его в каталог live/trunk/localpackages/
.
Как только изменения начнут вас устраивать, пришлите их нам, пожалуйста!
[1] Externals are not duplication nor links, you need to update externals to fetch their latest updates
[2] Вот почему они находятся не в своем каталоге config-base/chroot_local-includes/usr/share/
[3] В любом случае, если вы хотите проверить изменения, используйте этот каталог.
[4] PoEdit обновляет существующий файл *.po
новой версией файла *.pot
, используемый как шаблон.
Copyright © DoudouLinux.org team - Весь текст с данного сайта публикуется по условиям лицензии Creative Commons BY-SA