r - 如何使用配置文件将 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_ALL
?en_US.UTF-8
~/.Renviron
我读过这个:如何更改 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_ALL
or设置的类别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_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
推荐阅读
- c++ - OpenGL 16 位模板缓冲区?
- python - 为什么删除字符串中非字母字符的正则表达式函数不起作用?
- javascript - 多字段搜索表单,无需为每个搜索条件复制组件
- python - 如何根据在 Django 的 ModelChoiceField 中选择的值命名模型实例?
- mysql - 如何使用 SELECT 和 IF 条件在 mysql 中触发?
- javascript - 如何在javascript中查找id和设置属性
- javascript - 在odoo中修改主仪表板
- javascript - 直接导航到内部 url 时反应 NextJS 502 BAD_GATEWAY
- python-3.x - 如何判断小数和日期(ex 12.4.5)
- gradle - Gradle 在构建时抛出 OutOfMemoryException