В будущем, даже если они связаны, я предлагаю открыть отдельные вопросы для каждого. В любом случае, я отвечу на них:
Что должно быть разработано в рамках Linux-системы, например Ubuntu, для автоматического определения системного языка?Вам просто нужно инициализировать gettext в вашем приложении. Gettext - это стандартная технология интернационализации и локализации Ubuntu, и большинство других других дистрибутивов на основе Linux (если мы рассматриваем Android как дистрибутив, то это будет единственным исключением).
В самом основном случае и с использованием Python
import gettext
from gettext import gettext as _
locale.bindtextdomain('yourapp', '/usr/share/locale')
locale.textdomain('yourapp')
Примечания:
В Python для поддержки установки /opt вам понадобится для использования библиотеки locale вместо gettext (для большинства практических целей они эквивалентны). Существуют привязки gettext практически для любого языка программирования, а не только для Python.Что должно разрабатывать приложение под Linux-системой, например Ubuntu, для автоматического определения системного языка?
Если это будет поведение по умолчанию для всех программ?
Должен ли быть вариант в программе, чтобы позволить пользователю выбрать язык тем не менее?Да.
Должна ли быть опция в программе, чтобы позволить пользователю выбрать язык тем не менее?
Нет , Если вы хотите иметь такой вариант, вы сами по себе и должны будете его реализовать самостоятельно. Соглашение состоит в том, что существует только один язык для каждого пользователя, и вы меняете его только в одном месте, что влияет на все приложения в системе.
Что делать, если пользователь установил системный язык, недоступный в переводах программа?Все ли эти переводы идут вместе с самой программой?
Что делать, если пользователь установил системный язык, недоступный в переводах программы?
Да, они отправляются вместе с приложением в виде двоичных файлов .mo, по одному для каждого переведенного языка.