linux系统语言命令行,Linux 通过终端命令行切换系统语言

通过命令的形式修改系统的语言,比较详细的讲解了来龙去脉;

0 前言

如果不想看前面比比赖赖可以直接跳到3 解决方案,此处省略一万字。

1 locale 文件

locale是linux本土化和国际化的一个系统标准,包括语言,国家,软件运行的环境等等信息,在终端输入可以查看locale的使用信息;

man locale

找到两个文档;

/usr/lib/locale/locale-archive:Usual default locale archive location.

/usr/share/i18n/locales:Usual default path for locale definition files.

如下所示;

7efbadca1644e1abdaf352de5c8ba5eb.png

然后直接在终端输入locale,可以查看系统当前的相关信息,具体如下;

jackma@alibaba:locale

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:en

LC_CTYPE="en_US.UTF-8"

LC_NUMERIC=zh_CN.UTF-8

LC_TIME=zh_CN.UTF-8

LC_COLLATE="en_US.UTF-8"

LC_MONETARY=zh_CN.UTF-8

LC_MESSAGES="en_US.UTF-8"

LC_PAPER=zh_CN.UTF-8

LC_NAME=zh_CN.UTF-8

LC_ADDRESS=zh_CN.UTF-8

LC_TELEPHONE=zh_CN.UTF-8

LC_MEASUREMENT=zh_CN.UTF-8

LC_IDENTIFICATION=zh_CN.UTF-8

LC_ALL=

在这里我们发现两个参数LANG和LANGUAGE;

2 查找相关文件

通常linux的系统配置文件都放在/etc路径下,因此我们尝试搜索一下;

jackma@alibaba:sudo find /etc/ -name locale

/etc/default/locale

很明显,打开这个文件/etc/default/locale;

sudo vi /etc/default/locale

具体如下所示;

# File generated by update-locale

LANG="zh_CN.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_MONETARY="zh_CN.UTF-8"

LC_PAPER="zh_CN.UTF-8"

LC_NAME="zh_CN.UTF-8"

LC_ADDRESS="zh_CN.UTF-8"

LC_TELEPHONE="zh_CN.UTF-8"

LC_MEASUREMENT="zh_CN.UTF-8"

LC_IDENTIFICATION="zh_CN.UTF-8"

LANGUAGE="zh_CN:en"

可见当前系统是中文,应该主要修改LANG和LANGUAGE

3 解决方案

如果希望将系统改为英文,则将zh_CN替换为en_US即可,修改完的内容具体如下:

# File generated by update-locale

LANG="en_US.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_MONETARY="zh_CN.UTF-8"

LC_PAPER="zh_CN.UTF-8"

LC_NAME="zh_CN.UTF-8"

LC_ADDRESS="zh_CN.UTF-8"

LC_TELEPHONE="zh_CN.UTF-8"

LC_MEASUREMENT="zh_CN.UTF-8"

LC_IDENTIFICATION="zh_CN.UTF-8"

LANGUAGE="en_US:en"

如果需要修改编码,那么则将UTF-8改成其他的编码格式就行;

保存文件,重启即可;

LANG和LANGUAGE的区别:

LANGUAGE是设置应用程序的界面语言,比如终端。而LANG是优先级很低的一个变量,它指定所有与locale有关的变量的默认值。

4 相关信息

4.1 locale属性的含义

语言符号及其分类(LC_CTYPE)

数字(LC_NUMERIC)

比较和排序习惯(LC_COLLATE)

时间显示格式(LC_TIME)

货币单位(LC_MONETARY)

信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)

姓名书写方式(LC_NAME)

地址书写方式(LC_ADDRESS)

电话号码书写方式(LC_TELEPHONE)

度量衡表达方式 (LC_MEASUREMENT)

默认纸张尺寸大小(LC_PAPER)

对locale自身包含信息的概述(LC_IDENTIFICATION)。

4.2 LANGUAGE 属性

感觉解决乱码的关键应该是这个属性;

进入到路径/usr/share/i18n/locales,可以看到很多文件,如下所示;

cd575f79791110e02947a67a358df4cb.png

根据这几年读过的书,大概可以猜测到是哪些国家,当然这些都是文本文件,可以直接打开en_US;

LC_IDENTIFICATION

title "English locale for the USA"

source "Free Software Foundation, Inc."

address "http:www.gnu.org//software//libc//"

contact ""

email "bug-glibc-locales@gnu.org"

tel ""

fax ""

language "American English"

territory "United States"

revision "1.0"

date "2000-06-24"

category "i18n:2012";LC_IDENTIFICATION

category "i18n:2012";LC_CTYPE

category "i18n:2012";LC_COLLATE

category "i18n:2012";LC_TIME

category "i18n:2012";LC_NUMERIC

category "i18n:2012";LC_MONETARY

category "i18n:2012";LC_MESSAGES

category "i18n:2012";LC_PAPER

category "i18n:2012";LC_NAME

category "i18n:2012";LC_ADDRESS

category "i18n:2012";LC_TELEPHONE

category "i18n:2012";LC_MEASUREMENT

END LC_IDENTIFICATION

果不其然是美国英语;

5 总结

对于locale还不是很深入的了解,只是遇到了问题,整体地查阅了一遍,本人能力有限,难免存在错误或者纰漏,如果有什么更好的办法,请大佬不吝赐教。

本文同步分享在 博客“小麦大叔”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值