Заставить приложение автоматически определять язык системы

Официальная страница Ubuntu будет полезна.

1
задан 7 October 2012 в 14:01

1 ответ

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

Что должно быть разработано в рамках 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, по одному для каждого переведенного языка.

0
ответ дан 25 May 2018 в 05:46

Другие вопросы по тегам:

Похожие вопросы: