DoudouLinux DoudouLinux

Дети любят такой компьютер!

Языки сайта [ar] [cs] [de] [en] [es] [fa] [fr] [it] [ms] [nl] [pt] [pt_br] [ro] [ru] [sr] [sr@latin] [th] [uk] [vi] [zh]

> Русский > Нужны помощники > Разработчикам > Генерировать DoudouLinux на другом языке

Генерировать DoudouLinux на другом языке

Октябрь 2010 — последнее обновление Май 2013

Все версии этой статьи: [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. Первое решение проще!

Примечания:

  • Если вы собираетесь просто прислать нам (по электронной почте) переведенные текстовые файлы существующего компакт-диска DoudouLinux, вам не надо читать Главу 2 “Добавление нового языка” и Главу 6 “Списки языковых пакетов”. Пакеты файлов для перевода можно загрузить на странице Файлы для перевода. Они также выложены онлайн на Transifex.
  • Если вы не собираетесь генерировать систему Live целиком, попросите нас выложить на сервер «сырую» версию DoudouLinux для вашего языка (пожалуйста, не забудьте уточнить полный код языка и раскладку клавиатуры). После того, как вы скачаете Live образ, мы вышлем вам необходимые для перевода файлы, а после окончания вашей работы интегрируем их в систему.
  • Для всех текстов используйте кодировку UTF-8! (кроме меню загрузки)
  • Документация пользователя компилируется с этого веб-сайта соответствующими утилитами, так что перевод зависит от платформы веб-сайта Spip

1- Содержимое дерева

Каталог локализации содержит следующее дерево:

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].

  1. файлы основных настроек копируются из config-base/ в build/config/
  2. файлы конкретных языков копируются из config-l10n/overwrite/xx/config-l10n/xx/ в build/config/
  3. файлы значков приложений и категорий копируются из config-l10n/desktop-entries/ в подкаталоги build/config/chroot_local-includes/
  4. переписывающие скрипты для перевода некоторых текстов запускаются напрямую из build/config/

После этих операций каталог реальной конфигурации build/config/ готов и запускается генерация LiveCD/LiveUSB при помощи live-helper.

2- Как добавить новый язык

Чтобы создать новый перевод, нужно создать:

  • каталог языковых настроек 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 сказано, как использовать эти коды.

3- Иконки приложений и вкладки LxLauncher

Тексты иконок приложений и вкладок 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.

4- Каталог скриптов замены

Скрипт замены создан для того, чтобы избежать повторения скриптов конфигурации путем замены одного текста другим. Единственный шаблон файла конфигурации из 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.

5- Файлы конфигурации

Каталоги config-l10n/xx/ содержат файлы конфигурации, которые могу тпереписывать файлы из config-base/. Предполагается, что в этих каталогах содержатся:

  • файлы, которые не изменялись ли которые не существуют на другом языке
  • файлы, которые не генерируются во время компиляции live-helper
  • файлы, которые не затрагиваются скриптами замены (наприме, бинарные файлы)

На данный момент, каталоги 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.

6- Списки языковых пакетов

К каждому языку прилагается список пакетов локализации, названный 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

7- Пакеты DoudouLinux

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

8- Пропатченные пакеты

DoudouLinux также содержит пропатченные пакеты Debian. Подобно пакетам DoudouLinux, лучше всего изменять пропатченные приложения и затем делать новый патч. Но если вы не хотите этим заниматься, прочитайте [страница в разработке…].

9- Как проверить измененные пакеты

Самый простой способ проверить измененные пакеты, это записать их на 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, используемый как шаблон.


identica logo facebook logo google+ logo

Географическое положение посетителя

DoudouLinux logo Debian logo TSPU logo Genesi logo Gandi logo Hosting Extreme logo Linux Jobs Reviewed by I love Free Software

Creative Commons Copyright © DoudouLinux.org team - Весь текст с данного сайта публикуется по условиям лицензии Creative Commons BY-SA

SPIP | squelette | Карта сайта| RSS и iCal RSS 2.0