Как установить язык консоли R на Engli sh с помощью файла конфигурации? - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь установить язык моей консоли R на английский sh с помощью файла конфигурации. В качестве ОС я использую Debian и Ubuntu. Чтобы установить язык консоли R на Engli sh, я создал ~/.Renviron, содержащий:

LANGUAGE = 'en_US.UTF-8'
LC_ALL = 'en_US.UTF-8'

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

$ env | grep "LANG\|LC_"                                                           
LANG=fr_FR.UTF-8
LANGUAGE=fr_FR.UTF-8:zh_CN.UTF-8:en_US.UTF-8
LC_ADDRESS=en_SG.UTF-8
LC_IDENTIFICATION=en_SG.UTF-8
LC_MONETARY=en_SG.UTF-8
LC_MEASUREMENT=en_SG.UTF-8
LC_NAME=en_SG.UTF-8
LC_NUMERIC=en_SG.UTF-8
LC_PAPER=en_SG.UTF-8
LC_TELEPHONE=en_SG.UTF-8
LC_TIME=en_SG.UTF-8

Я хочу убедиться, что независимо от того, какими будут LANG, LANGUAGE, LC_* моей будущей системы, значения в ~/.Renviron гарантирует, что язык консоли R - английский sh. Как я могу это сделать? Достигает ли мой текущий ~/.Renviron этой цели?

Другими словами, установка LANGUAGE и LC_ALL на en_US.UTF-8 в ~/.Renviron достаточна, чтобы гарантировать, что языком консоли R всегда будет английский sh независимо от того, какими языками и локали по умолчанию в моей системе станут в будущем?

Я читал это: Как изменить языковые настройки в R , но ответы там не используют конфигурацию файл.

1 Ответ

1 голос
/ 29 мая 2020

Достигает ли мой текущий ~/.Renviron этой цели?

Возможно, да, но потенциально не совсем.

Соответствующую информацию можно найти в locales документация :

Всегда должны поддерживаться следующие категории: "LC_ALL", "LC_COLLATE", "LC_CTYPE", "LC_MONETARY", "LC_NUMERIC" и "LC_TIME". Некоторые системы (кроме Windows) также поддерживают "LC_MESSAGES", "LC_PAPER" и "LC_MEASUREMENT". […]

Обратите внимание, что установка категории "LC_ALL" устанавливает только категории "LC_COLLATE", "LC_CTYPE", "LC_MONETARY" и "LC_TIME". […]

Обратите внимание, что переменная среды LANGUAGE имеет приоритет над "LC_MESSAGES" при выборе языка для перевода сообщений на большинстве платформ R.

Так что вы можете также захотеть установите те категории, которые не установлены LC_ALL или LANGUAGE:

  • LC_NUMERIC
  • LC_PAPER
  • LC_MEASUREMENT

Наконец, документация R «Запуск» сообщает нам, что использование ~/.Renviron - хорошее место для их установки:

Если в команде не было указано --no-environ В строке R ищет файлы сайта и пользователя для обработки для установки переменных среды. […] Имя пользовательского файла можно указать с помощью переменной среды R_ENVIRON_USER; если этот параметр не установлен, ищутся файлы «.Renviron» в текущем или домашнем каталоге пользователя (в этом порядке).

Лично я предпочитаю убрать загроможденный домашний каталог и поместить вся такая конфигурация под ~/.config, например ~/.config/R/REnviron. Однако для этого потребуется немного больше работы, поскольку R по умолчанию не соблюдает соглашения XDG : чтобы исправить это, я устанавливаю переменные среды R_ENVIRON_USER, R_LIBS_USER и R_PROFILE_USER в моем .bashrc:

export R_ENVIRON_USER=$HOME/.config/R/Renviron

# Need to be set here rather than in REnviron so that they can be overridden
# temporarily:

export R_PROFILE_USER=${XDG_CONFIG_HOME-$HOME/.config}/R/init.r
export R_LIBS_USER=${XDG_DATA_HOME-$HOME/.local/share}/R/x86_64-pc-linux-gnu-library/%v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...