Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023)

Материал из 0x1.tv

Докладчик
Кирилл Изместьев

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

Но благодаря открытости инструментов свободного ПО это возможно.

Видео

Презентация

Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023).pdf

Thesis

Все начинается с добавления локали

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

Установка региональных параметров является частью большого процесса локализации. При этом изменение региональных настроек часто доступно конечному пользователю системы без перепрограммирования программного обеспечения (ПО), в отличие от перевода сообщений пользовательского интерфейса, который часто требует изменения программного кода разработчиками ПО. Обычно код языка — это 2 символа. Но если код языка 3-хсимвольный, то могут быть проблемы (в установщике есть регулярные выражения, которые рассчитаны на 2 символа: выделяется первые два и опускается 3-й символ).

Уже есть локаль для: лугового марийского, чувашского, татарского и других... Создана локаль для языка коми. Планируется для горно-марийского языка. В перспективе есть лингвисты, заинтересованные в том, чтобы их язык тоже был в виде локали. Формат переменной:

LANGUAGE="mhr_RU:ru_RU.UTF-8"

Смысл в том, что можно в переменной задать не один язык, а два и более. Если нет перевода для первого языка, выбирается следующий. Достаточно сделать «недоперевод», ведь народы России хорошо знают русский язык. Компьютерные термины на своём языке могут отсутствовать, и если в этом случае не будет перевода на родной язык, то это не только не критично, но и в отдельных случаях может быть даже плюсом.

Подбор фраз для перевода

Ресурсы на перевод обычно ограничены, поэтому перевести надо в первую очередь то, что пользователь чаще всего видит. Как определить список этих надписей? Для этого необходимо пропатчить glibc, чтобы выполнялось логирование при каждом переводе. Есть функция gettext в коде, и в эту функцию передаётся строка на английском языке. Потом в зависимости от переменной language выполняется поиск в таблице соответствий на том языке, на котором надо эту надпись отобразить. Можно в эту функцию вставить запись в файл и собрать профиль. У каждого пользователя профиль будет свой (список надписей, которые отображаются), но можно получить некоторый усреднённый список.

Как организовать перевод?

  1. Автоматический перевод по словарю. В большинстве программ есть, например, слова «открыть», «закрыть», «справка». Нет смысла переводить каждую — контекст совпадает, смысл не меняется. Так небольшими силами можно получить заметный эффект, который можно продемонстрировать. Программа автоматического перевода была написана на основе исходного кода проекта gettext.
  2. Перевод через weblate.org. Свободный сайт для удобного перевода можно установить на свой сервер и начать перевод. weblate.marsu.ru — на сайте Марийского государственного университета. Перевод планируется сделать силами студентов-филологов, есть договорённость с университетом.


Как внедрить перевод

До момента появления перевода в апстриме файлы .mo будут в отдельном пакете.

  • Национальная раскладка клавиатуры.
  • Добавление в систему по умолчанию.

Проверка орфографии — должно быть по умолчанию. Для марийской орфографии уже есть пакет в репозитории ОС «Альт» — hunspell-mhr

Пункты главного меню (переводятся иначе)

В xfce эти пункты переводятся с английского языка на национальный без учёта переменной language. Был пропатчен пакет libxfce4util, так как использовался Simply Linux. Для других DE это будет отличаться. Если какой-то из пунктов не переведён на марийский язык, то он должен отображаться на русском (без патча будет английский язык). В идеале, патч должен проверять переменную language, делить её на части (через: указаны локали, переменную надо поделить на список локалей - выделить в массив) и желательно, чтобы это было принято в апстриме. В планах доработать.

Сборка установочного образа

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

В основном приложения gtk. QT приложения локализуются отдельно, иным способом.

Своя спецификация локализации у LibreOffice и Firefox.

Опыт можно тиражировать на другие языки.


Свободное программное обеспечение, как инструмент изучения и развития языков народов России (Кирилл Изместьев, OSSDEVCONF-2023)!.jpg

Примечания и ссылки