Mac Catalina下R 4.2.3:能否仅将非消息类设置改为其他语言?
R语言区域设置问题解答
启动提示中“自然语言”的含义
这里的「自然语言」指R内置的多语言本地化支持能力——R原生适配不同地区的语言规范(包括界面文本、日期/数字格式、字符排序规则、货币格式等),但当前你的R运行在英文区域环境中,因此触发该提示。
核心需求:英文消息+波兰语其他设置的实现
你想要的「仅保留英文的消息/警告/错误,其余区域规则(日期、数字、排序等)用波兰语」完全可行,需分别配置两个系统级设置:
- 维持英文消息:保持
LANG或LANGUAGE环境变量为en_US.UTF-8,这两个变量确实仅控制R的提示类文本语言。 - 配置波兰语区域规则:使用
Sys.setlocale()针对不同类别单独设置,示例代码:
执行后可通过# 设置日期时间格式为波兰语规则 Sys.setlocale(category = "LC_TIME", locale = "pl_PL.UTF-8") # 设置数字、货币格式为波兰语规则 Sys.setlocale(category = "LC_NUMERIC", locale = "pl_PL.UTF-8") Sys.setlocale(category = "LC_MONETARY", locale = "pl_PL.UTF-8") # 设置字符排序规则为波兰语规则 Sys.setlocale(category = "LC_COLLATE", locale = "pl_PL.UTF-8")Sys.getlocale()查看各分类的当前设置,验证是否生效。
Sys.setenv()与Sys.setlocale()的优先级关系
Sys.setenv("LANG"="EN")仅会覆盖消息类语言,不会影响Sys.setlocale()设置的日期、数字等区域规则。Sys.setlocale()是针对特定业务类别的区域配置,和LANG/LANGUAGE控制的提示语言相互独立,不会被对方覆盖。
切换为法语的操作方式
无需重装R,也不需要仅修改键盘语言:
- 若要切换提示消息为法语:执行
Sys.setenv(LANG = "fr_FR.UTF-8") - 若要切换日期/数字等区域规则为法语:执行
Sys.setlocale(category = "LC_ALL", locale = "fr_FR.UTF-8")(也可单独设置某一类别) - 键盘语言仅影响输入字符的方式,只要系统支持UTF-8编码,R就能识别输入的法文字符,和区域设置无直接关联。
Sys.setenv("LANG"或"LANGUAGE"="EN")的作用范围
这两个设置仅修改消息、警告、错误的显示语言,不会改变日期格式、数字格式、字符排序等其他区域相关配置。
内容的提问来源于stack exchange,提问作者Abiologist
相关产品推荐
相关产品推荐

