首页 > 解决方案 > 如何使用配置文件将 R 控制台的语言设置为英语?

问题描述

我正在尝试使用配置文件将我的 R 控制台的语言设置为英语。我使用 Debian 和 Ubuntu 作为我的操作系统。要将 R 控制台的语言设置为英语,我创建了~/.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 控制台的语言是英语。我怎样才能做到这一点?我的当前是否~/.Renviron实现了这个目标?

换句话说,无论将来我的系统的默认语言和区域设置如何,设置和 to 是否足以保证 R 控制台的语言始终为LANGUAGE英语LC_ALLen_US.UTF-8~/.Renviron

我读过这个:如何更改 R 中的语言设置,但那里的答案不使用配置文件。

标签: r

解决方案


我的当前是否~/.Renviron实现了这个目标?

可能是的,但可能不完全是。

相关信息可以在locales文档中找到:

应始终支持以下类别:"LC_ALL""LC_COLLATE""LC_CTYPE""LC_MONETARY"和。一些系统(不是 Windows)也将支持,和. […]"LC_NUMERIC""LC_TIME""LC_MESSAGES""LC_PAPER""LC_MEASUREMENT"

请注意,设置类别仅"LC_ALL"设置类别"LC_COLLATE""LC_CTYPE"和。[…]"LC_MONETARY""LC_TIME"

请注意,在大多数 R 平台上,LANGUAGE环境变量优先"LC_MESSAGES"于选择消息翻译的语言。

因此,您可能还想设置那些不由LC_ALLor设置的类别LANGUAGE

  • LC_NUMERIC
  • LC_PAPER
  • LC_MEASUREMENT

最后,R“启动”文档告诉我们 using~/.Renviron是设置这些的好地方:

除非--no-environ在命令行中给出,否则 R 会搜索要处理的站点和用户文件以设置环境变量。[...] 用户文件的名称可以由R_ENVIRON_USER环境变量指定;如果未设置,则搜索的文件是当前或用户主目录中的“<code>.Renviron”(按此顺序)。

就我个人而言,我更喜欢整理我的主目录并将所有此类配置~/.config放在~/.config/R/REnviron. 但是,这样做需要做更多的工作,因为默认情况下 R 不遵守XDG 约定:为了解决这个问题,我正在设置环境变量R_ENVIRON_USERR_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

推荐阅读