Вопрос или проблема
На основе отличных инструкций в этой теме я создал пользовательскую локаль en_CH, комбинируя записи из de_CH и en_US. Единственное, что я пытаюсь сделать иначе, это получить даты и время в формате ISO / 24-часовом формате. Я пробовал многие варианты в LC_TIME, но всегда получаю даты либо в американском, либо в британском формате. Вот соответствующая часть моего текущего раздела LC_TIME:
% Подходящее представление даты и времени (%c)
d_t_fmt "%F %T"
% Подходящее представление даты и времени для date(1). Это
% отличается от d_t_fmt по историческим причинам и было другим
% с 2000 года, когда date_fmt был добавлен как расширение GNU. В конце
% 2018 года он был скорректирован для использования 12-часового формата (ошибка 24046) вместо 24-часового.
date_fmt "%a %x %X %Z"
% Подходящее представление даты (%x)
d_fmt "%Y-%m-%d"
% Подходящее представление времени (%X)
t_fmt "%H:%M:%S"
am_pm "";""
% Подходящее представление времени AM/PM (%r)
t_fmt_ampm ""
Когда я выбираю en_CH для других разделов в настройках региона и языка, результаты ожидаемы. В настройках региона и языка я нашел en_SE. Это, похоже, дает результаты, которые я хочу для форматов даты и времени, но в /usr/share/i18n/locales/ нет соответствующего файла, также я не нахожу такую локаль в https://lh.2xlibre.net/locales/.
Что может переопределять настройки LC_TIME в моей локали en_CH? Откуда берется локаль en_SE?
P.S. Выполнение “locale -k LC_TIME” возвращает следующее:
am_pm=";"
d_t_fmt="%F %T"
d_fmt="%Y-%m-%d"
t_fmt="%H:%M:%S"
t_fmt_ampm=""
что, похоже, указывает на то, что мои настройки загружаются, но как Krusader, так и системный трей отображают дату в британском формате.
Ответ или решение
Проблемы с настройкой локали в Ubuntu Studio 24.04.1 LTS
Настройка локали в Linux-дистрибутивах, таких как Ubuntu Studio, может вызывать разнообразные трудности, особенно когда требуется создать кастомизированную локаль на основе существующих. В данном случае вы настраиваете локаль en_CH
, комбинируя элементы из de_CH
и en_US
. Основной задачей является корректная настройка формата даты и времени, чтобы они отображались в ISO/24-часовом формате. Ваша текущая настройка LC_TIME
создаёт некоторые проблемы, поэтому давайте подробно разберём возможные причины и решения.
Потенциальные проблемы с LC_TIME
-
Кэширование локали:
После изменений в локали можно столкнуться с тем, что система продолжает использовать кэшированные настройки. Это особенно актуально для сервисов и приложений, которые могут не обновить свои переменные окружения сразу после изменений. Убедитесь, что вы выполнили командуsudo locale-gen
для пересоздания кэша локалей. После этого перезагрузите систему или хотя бы перезапустите нужные приложения, чтобы новые настройки вступили в силу. -
Конфликты с другими локалями:
Если на системе установлены другие локали (например,en_SE
), возможно, что они влияют на вывод даты и времени. Локали могут иметь приоритет в зависимости от конфигурации системы. Посмотрите, какие переменныеLC_TIME
применяются по умолчанию, выполнив командуlocale
. Убедитесь, чтоLANG
и другие переменные окружения не переопределяютLC_TIME
. -
Настройки программного обеспечения:
Приложения, такие как Krusader и панель задач, могут использовать собственные методы для отображения даты и времени, игнорируя системные настройки локали. Проверьте настройки этих приложений на наличие опций, касающихся формата даты и времени. В некоторых случаях требуется вручную изменить настройки в самом приложении. -
Проблемы с локализацией в GNOME или KDE:
Если у вас установлен графический интерфейс GNOME или KDE, проверьте настройки локали в их интерфейсе. Эти среды рабочего стола могут иметь свои собственные настройки, влияющие на формат даты и времени, иногда отличные от системных. -
Ограниченные возможности
date_fmt
:
Вы упомянули использование расширений GNU вdate_fmt
. Обратите внимание, что некоторые варианты форматирования могут нарушать стабильность отображения в стандартных системных приложениях. Возможно, вам следует использовать более простые форматы, которые широко поддерживаются.
Источник локали en_SE
Что касается изначального вопроса о локали en_SE
, стоит отметить, что данная локаль может быть частью стандартной библиотеки локалей, но не имеет отдельного файла в /usr/share/i18n/locales/
. Некоторые локали могут быть представлены несколькими способами и использовать общие файлы. Например, en_SE
может наследовать характеристики от en
с модификациями для шведского рынка, но не иметь отдельной настройки для файлов.
Рекомендации по настройке
- Проверьте наличие и удалите кэш локалей.
- Убедитесь, что переменные окружения настроены корректно.
- Исследуйте настройки приложений, которые отображают дату и время, на соответствие установленным локалям.
- Попробуйте задать значениями
t_fmt
иd_fmt
более простые форматы, которые могут обеспечить лучшую совместимость.
Заключение
Сложности с настройкой локали в Ubuntu Studio 24.04.1 LTS могут быть вызваны различными факторами, включая кэширование, конфликты локалей и специфику отдельных приложений. Используйте предложенные рекомендации для устранения проблем и достижения желаемого формата отображения даты и времени.