Спецкурс по Linux, весна 2007, 12 лекция (от 11 мая)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Авторский вариант:

Лекцию читает Андрей Черепанов, ведущий координатор перевода KDE на русский язык.

Содержание

[править] Про локализацию свободного ПО

Будет рассмотрено состояние дел вообще, а не только в среде KDE, хотя последняя будет использоваться как источник примеров.

Локализация сама по себе предназначена для того, чтобы адаптировать, сводить вместе народы, с тем, чтобы они могли общаться достаточно свободно. В наше время обмен информацией — первоочередная задача. В то же время, большинство не желает обучаться языкам, но желает получать информацию.

ПО обычно пишется на английском языке. С одной стороны, это удобно разработчику, ибо единое языковое пространство, но, в то же время, пользователю приходиться учить другой язык. Ему это не удобно.

Перевод на другой язык можно осуществлять механически, но надо также учитывать культурные различия. Например, если наш русский мужик услышит про футбол, он подумает про соккер, а не про регби, как мог иметь в виду автор-американец.

[править] Интернационализация

Сам процесс адаптации ПО состоит из двух частей:

Первый этап. Подготовка к международному использованию (Интернациолализация, i18n — от internationalization — i, n и 18 букв между ними). i18n подразделяется на глобализацию и локализацию. Глобализация - не завязывание кода на язык. Глобализованная программа должна позволять работать с любыми языками и системами письма.

Локаль — набор переменных окружения, указывающие культурные и языковые предпочтения.

ru_RU — в соответствии с ISO 3166 обозначает русский язык, Россия.

Глобализация позволяет производить локализацию без изменения исходного кода и распараллеливать разработку.

Сейчас имеются готовые средства для локализации.

Проблема отображения шрифтов была повсеместно решена с появленем юникода. Кроме того, использование gettext позволяет ... .

Локализация (l10n) — перевод ПО и адаптация его к языковым и культурным особенностям аудитории. То есть, l10n позволяет получить пакет на нужном языке.

В связи с возможностями, предоставляемыми свободным ПО, процесс с одной стороны стоит острее, с другой стороны, оно позволяет участвовать любому пользователю в процессе локализации.

[править] Области применения

Какие компоненты попадают под локализацию:

  • Текстовые элементы программ
  • Размещение виджетов (под Linux проблем нет, в в Windows такая проблема существует; необходимо учитывать направление письма, размещение текстовых надписей так, чтобы они вмещались)

В книжке про l10n от микрософт недвусмыслено написано, что кнопки и поля ввода должны быть настолько большими, чтобы вместить самый широкий перевод

  • Звуки и пр.
  • Использование культурно-нейтральных обозначений

Осуществлять перевод текстовой информации гораздо проще, чем графических и звуковых объектов.

  • Комбинации клавиш. Для иероглифического письма вызывает проблемы
  • Шрифты. Решена введением юникода, однако есть ряд ПО, которому недостаточно юникода, например, словари. Имеется два варианта: или использовать специлизированные шрифты, что не лучший вариант, или использовать несвободный эриал юникод. Хотя, вышел RedHat с GPL'ным шрифтом, у которого в лицензии указано, что документы с ним не обязательно долны быть GPL
  • Документация
  • Шаблоны документов, сопутствующие материалы

[править] Механизмы локализации в свободном ПО

GNU gettext - предоставляет интегрированное средство для локализации. С одной стороны, там набор соглашений по именованию, ... .

Пакет геттекст предоставляет возможность подключения директорий с локализованным содержимым и их использование.

Идея в том, чтобы все использования текста оборачиваются в gettext

Разработчик использует программу xgettext для поиска всех вызовов и формирования шаблона каталога сообщений.

Локализатор создаёт и обновляет каталог сообщений.

На 4 этапе каталог отправляется разработчику ... получается mo и хранится в usr/lib/share/locale

Если какая-то строка не переведена, то строка выводится на оригинальом языке.

Содержимое каталога: обычные текстовые файлы, состоящие из комментариев, строк сообщений, строк переводов.

Вопрос: можно ли в одном языке иметь несколько кодировоок?

Разработчики геттекст

Существует ряд утилит, например:

  • msgmerge --- сливать старые переводы с новыми шаблонами. Слияние происходит интеллектуально, при возможности, исползуетя старый перевод.

Черновой перевод --- уникальная возможность геттекста, позволяет сделать перевод, но при компиляции они вырезаются.

Ещё одна возможность --- поддержка множественных форм. возможность производить правильное спряжение: "1 файл", "2 файла", "5 файлов". В Windows эта возможность отсутствует как класс.

В этих сообщениях можо указывать символ подстановки: %1б %2...

[править] Альтернативные механизмы

Те инструменты, которые использовались Мозиллой и ОпенОфис.орг.

В опенофис используются файлы ресурсов, в мозилле жар файлы с двумя файлами (используется в ранних версиях виндовз и в cms). Минус - разработчику приходиться метаться между двумя файлами.

В qt используется пропатченный геттекст. Для qt идёт linguist

МС Виндовз. Изначально локализация осуществлялась путём переноса из файлов ресурсов. Теперь же строки сообщений хранятся в dll. Проблемы с виджетами остались.

[править] Документация

Сделано ребятами из кде: берётся докбук, оттуда вытаскивается весь текст и складывается в геттекст. Потом сливаются два файла - оригинальный докбук и переведённый доктекст и получается переведённый докбук.

man по старинке, руками.

[править] Инструментарий

kbabel - из кде, поддерживает не только геттекст, но и кутэшный формат, проверка орфографии есть, минимальная проверка правильности. Проверяет набор аргументов.

  • Translation memory - список терминов.

Если человек начинает переводить специфичную программу, то хорошо бы почитать про предметную бласть.

Перевод можно переложить на сайты, например rosetta

Этот портал позволяет получить список того, что надо перевести, поля ввода для перевода, дальше попадает это на проверку и в убунту.

Кроме того, есть открытые аналоги --- pootle, в рамках дебиан, но не снискал популярности (/*G*/, да-да-да, а то, что на нём переводятся OOo и Mozilla -- это, конечно, не популярность: http://pootle.wordforge.org/projects/...).

Глоссарий --- engcom --- словарь терминов

Достпность локализации для широких масс резко снижает качество перевода. Проверять перевод гораздо сложнее, чем делать его с нуля.

Статистика: l10n.gnome.org, l10n.kde.org

[править] Организация процесса локализации

Предоставляются такие инструменты, открытое ПО предоставляет такие возможности, что ПО переводится на такие языки, что коммерческим проектам и не снилось.

На первых местах по переводах Эстония, Портгалия. Финны. В Эстонии, например, это финансируется государством.

Зачем всем этим занимаются?

Опенсорс - эгоизм в чистом виде. Люди, которые пишут открытое ПО, ленивые эгоисты. Желание угодить себе любимому стоит выше всего. Если возникает ситуация что возможно реализовать себя, то вот.

ГК: эгоисты считают, что в основе лежит эгоизм, коммунисты, что коммунизм...

Совершенно не обязательно знать английский, нужно всего две вещи:

  • Внимательность
  • Хорошее знание родного языка

Текстовая информация должна быть краткой и информативной.

Ещё по поводу мотивации: если человек активно себя зарекомендовал как хороший разработчик, то ему могут предложить работу. То же и с локализацией.

Что нужно знать, если решили помочь в локализации:

  • Взять файл перевода
  • Переводите и проверяете перевод
  • Отправляете разработчику
  • Дальше продолжать переводить


Команды локализации

Альтернативное меню кед - 161 сообщение KMyMoney - 1600 сообщений все кеды - 140000 сообщений

Всё это не считая документации.

KMoney - переводили вдвоём

KStars - таджики захотели КСтарс на таджикском, но английский они знаи ещё хуже, чем русский, поэтому они попросили перевести на русский. В итоге школьники 2 года переводили его на русский. В КСтарс города помечаются точками, белыми. США белая, Европа белая, а в России 5 точек было.

Координация действий команд перевода: l10n.lrn.ru

Есть люди, которые готовы взять разную ответственность. Новичок может стать руководителем, если он готов.

Люди:

  • Руководитель, отвечает за координацию с внешними пакетами, и так далее
  • Кординатор пакета, имеют доступ на запись в репозиторий, проверяют переводы рядовых
  • Ответственные за работу с новичками
  • Рядовые.

Костяк сам остаётся на протяжени нескольких лет. В КДЕ порядка 10 человек со страны.

Команды не могут существовать в информационной изоляции. Первая задача: составление глоссария, перевод трудных оборотов, обмен готовыми переводами, единая типографика (гном, кде и мозилла мигрируют на кавычки-ёлочки).

Ребята из гнома попросили перевести текстовую информацию, связанную с амортизацией и финансовыми вычислениями в их калкуляторе.


[править] Состояние дел

В мелких проектах это достаточно серьёзная проблема. Ибо не всегда удаётся поддерживать.

За перевод документации никто и не брался, ибо нужно ещё и знание литетратурноо русского

Процесс развивается, будутрадд новым членам..



Спецкурс по Linux, весна 2007


01 02 03 04 05 06 07 08 09 10 11 12


Календарь

Февраль
16
Март
02 09 16 23 30
Апрель
06 13 20 27
Май
04 11

18 мая 2007 года прошёл экзамен по курсу. Краткий конспект экзамена.
22 мая 2007 года прошёл экзамен по курсу для студентов 3 курса и тех, кто не сдал экзамен 18 мая. Подробности здесь.
12 июня 2007 года (вторник) пройдёт экзамен по курсу. Информация об экзамене отсюда.


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы