我试图使用配置文件将我的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是否实现了这个目标?
换句话说,将LANGUAGE和LC_ALL设置为~/.Renviron中的en_US.UTF-8是否足以保证R控制台的语言始终是英语,而不管我的系统的默认语言和地区将来变成了什么?
我读过这样的文章:如何在R中更改语言设置,但答案不使用配置文件。
发布于 2020-05-29 09:21:08
我目前的
~/.Renviron是否实现了这个目标?
可能是的,但可能不是很好。
相关信息可在文档中找到。
应该始终支持以下类别:
"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"。… 注意,在大多数R平台上选择用于消息转换的语言时,LANGUAGE环境变量优先于"LC_MESSAGES"。
因此,您可能还需要设置那些LC_ALL或LANGUAGE未设置的类别。
LC_NUMERICLC_PAPERLC_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中设置了环境变量
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/%vhttps://stackoverflow.com/questions/62082536
复制相似问题