帮你快速理解、总结文档立即下载

本地化管理

最近更新时间:2026-08-24 18:27:31
我的收藏
本文介绍在 TencentOS Server 上进行本地化管理的基础知识及相关配置方法。通过本地化管理,可以使系统更符合用户所在地区的使用习惯。
本地化管理通常涉及以下内容:
配置
说明
设置系统的显示语言、日期和时间格式、货币符号等。
时区
设置系统显示的本地时间。
不同的国家和地区可能使用不同的键盘布局,如 QWERTY、AZERTY 和 QWERTZ 等。
字体
设置系统中文本的显示样式。不同的字体可能支持不同的字符集和排版效果。
输入法
允许在系统中输入不同的字符集,如中文、日文等。

语言和地区

系统的语言和地区等设置通过 locale 变量控制。locale 环境变量是一组用于控制本地化设置的变量,影响系统中的语言、字符编码、日期等方面。主要的 locale 环境变量及其作用如下:
变量
说明
LANG
设置系统的默认语言和字符编码。其他未设置的 LC_* 变量将使用 LANG 变量的值。
LC_CTYPE
控制字符分类和转换,例如字符的大小写转换、字符集和编码等。还影响输入法和终端中的字符显示。
LC_NUMERIC
控制数字的显示格式,例如小数点符号和千位分隔符等。
LC_TIME
控制日期和时间的显示格式,例如星期名、月份名、日期顺序等。
LC_COLLATE
控制字符串比较和排序的规则。影响文件名排序和命令行参数排序等操作。
LC_MONETARY
控制货币的显示格式,例如货币符号、正负数表示等。
LC_MESSAGES
控制系统消息和提示的语言。影响程序的错误消息、帮助信息等文本输出。
LC_PAPER
控制打印和页面设置的默认纸张尺寸。
LC_NAME
控制个人名字的显示格式,例如姓名顺序、姓名缩写等。
LC_ADDRESS
控制地址的显示格式,例如国家名、城市名、邮政编码等。
LC_TELEPHONE
控制电话号码的显示格式,例如国家代码、区号等。
LC_MEASUREMENT
控制度量单位的显示格式,例如公制或英制单位。
LC_IDENTIFICATION
控制元数据的显示格式,例如语言代码、国家代码等。

查看当前 locale 配置

locale 配置记录于 /etc/locale.conf 文件,系统默认配置为 LANG="C.UTF-8",在 systemd 初始启动时会读取该文件进行系统环境配置。
查看 /etc/locale.conf 文件内容:
cat /etc/locale.conf
返回结果如下:
# This is the fallback locale configuration provided by systemd.
LANG="C.UTF-8"
通过 locale 命令查看当前 locale 配置,其他未设置的 LC_* 变量都将使用 LANG 变量的值:
locale
返回结果如下:
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

列出可用字符集

执行以下命令,列出系统支持的所有 locale 字符集,主要支持中文、英文以及默认的 C.UTF-8
localectl list-locales
返回结果如下:
C.UTF-8
en_AU.UTF-8
en_BW.UTF-8
en_CA.UTF-8
en_DK.UTF-8
en_GB.UTF-8
en_HK.UTF-8
en_IE.UTF-8
en_NZ.UTF-8
en_PH.UTF-8
en_SC.UTF-8
en_SG.UTF-8
en_US.UTF-8
en_ZA.UTF-8
en_ZW.UTF-8
zh_CN.UTF-8
zh_HK.UTF-8
zh_SG.UTF-8
zh_TW.UTF-8
locale 命名规则为:语言_地区.字符集编码。常见的中文和英文 locale 定义如下:
zh_CN.UTF-8:表示语言为中文 zh,地区为中国大陆 CN,字符集编码为 UTF-8
en_US.UTF-8:表示语言为英文 en,地区为美国 US,字符集编码为 UTF-8

查看当前语言和地区设置

查看当前的语言和地区设置,其中 System Locale 指明系统使用的默认 LANG 值,默认为 C.UTF-8
localectl status
返回结果如下:
System Locale: LANG=C.UTF-8
VC Keymap: n/a
X11 Layout: n/a
说明:
C.UTF-8 采用标准 C 作为语言环境,但字符编码为 UTF-8。字符串排序和比较基于字节值而非特定语言规则,日期、时间和数字格式使用基本的英语表示。使用 C.UTF-8 不依赖特定的本地化设置,可确保程序在不同系统之间具有更好的兼容性和可移植性。本系统使用 C.UTF-8 作为默认 locale。

设置系统语言和地区

通常使用 localectl 命令对语言和地区进行设置,不建议直接修改 /etc/locale.conf 文件。
1. 将系统的本地化字符集设置为简体中文:
sudo localectl set-locale zh_CN.UTF-8
2. 设置完成后,执行以下命令重启系统使配置生效:
reboot
说明:
重启期间实例将无法正常提供服务,因此在重启之前,请确保实例已暂停业务请求。
如需查看更多参数及信息,请执行 localectl --help

时区

时区用于表示计算机的本地时间与协调世界时(UTC)之间的差异。正确设置时区对于确保系统时间准确、计划任务和日志记录等功能正常运行非常重要。

基本概念

概念
说明
世界协调时 UTC(Universal Time Coordinated)
最主要的世界时间标准,以原子时的秒长为基础,与时区无关。
时区
基于用户所在地区的时间标准。
硬件时钟(Real-Time Clock, RTC)
由主板上电池供电的物理时钟,系统电源掉电后仍可正常运行。
系统时钟(System Clock)
系统启动过程中根据硬件时钟计算初始值,启动后独立于硬件时钟运行。
timedatectldate 都是 Linux 系统中用于管理和显示日期和时间的命令,但功能有所不同:
命令
说明
timedatectl
systemd 工具,侧重于管理系统时钟和时区设置,可同时修改系统时间和硬件时间。
date
UNIX 工具,主要用于查看和设置当前日期和时间,只会修改系统时间,需配合 hwclock 修改硬件时间。

使用 timedatectl

列出当前所有可用时区:
timedatectl list-timezones
返回结果如下(部分显示):
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
...
查看系统当前的日期、时间及时间同步状态:
timedatectl status
返回结果如下:
Local time: Mon 2023-05-08 16:19:13 CST # 本地时间
Universal time: Mon 2023-05-08 08:19:13 UTC # UTC 时间
RTC time: Mon 2023-05-08 08:19:13 # RTC 时间
Time zone: Asia/Beijing (CST, +0800) # 时区
System clock synchronized: no # NTP 同步情况
NTP service: active # NTP 启用状态
RTC in local TZ: no # RTC 是否使用本地时间
修改系统时区。请将 <TIMEZONE> 替换为目标时区,例如 Asia/Shanghai
timedatectl set-timezone <TIMEZONE>
分别修改系统的日期和时间。请根据实际情况替换对应的日期和时间值:
timedatectl set-time <YYYY-MM-DD> # 仅修改系统日历的年月日部分,时间部分保持不变
timedatectl set-time <HH:MM:SS> # 仅修改系统时钟的时分秒部分,日期部分保持不变

设置 NTP 时间同步

网络时间协议 NTP(Network Time Protocol)用于使客户端和服务器之间进行时钟同步。NTP 服务器从权威时钟源(如原子钟、GPS)接收精确的世界协调时 UTC,客户端再从服务器请求和接收时间。
执行以下命令,开启或关闭 NTP 时间同步。将 <BOOL> 替换为 truefalse,该操作会修改 NTP service 的状态:
timedatectl set-ntp <BOOL>

使用 date 和 hwclock

查看系统时间

查看当前本地时间:
date
查看当前 UTC 时间:
date --utc
如需自定义日期输出格式,可通过 date +"format" 实现。关于 format 格式的详细说明,请执行 man date 查看手册:
示例一,输出当前日期的‌简写年份‌、‌月份‌和‌日期:
date +%y%m%d
返回结果如下:
230508
示例二,输出当前日期和时间,包含日期、小时、分钟和秒:
date +"%D %H:%M:%S"
返回结果如下:
05/08/23 17:48:31

修改系统时间

执行以下命令,分别修改系统的日期和时间。请根据实际情况替换对应的日期和时间值:
date --set <YYYY-MM-DD> # 将系统日期设置为指定值,时间部分保持不变
date --set <HH:MM:SS> # 将系统时间设置为指定值,日期部分保持不变

查看硬件时间

查看当前硬件时钟的日期和时间:
hwclock

修改硬件时间

执行以下命令,修改硬件时钟的日期和时间。注意将 MM/DD/YYYY HH:MM 替换为实际日期和时间:
hwclock --set --date "MM/DD/YYYY HH:MM"

同步硬件时间与系统时间

如果硬件时间与系统时间不一致,可通过以下命令进行双向同步。
将硬件时间同步到系统时间:
hwclock --hctosys
将系统时间同步到硬件时间:
hwclock --systohc
说明:
如果在虚拟机环境中启动后发现时间显示错误,可能是虚拟机将本地时间当成 UTC 时间进行了错误的硬件时间设置,从而影响了系统时间。可通过修改硬件时间并同步到系统时间来恢复。
如需查看更多参数及信息,请执行 timedatectl --help,或参考 man timedatectl(1)man date(1)man hwclock(8)

键盘布局

不同的国家和地区可能使用不同的键盘布局,通过 localectl 可以设置当前系统的键盘布局。
列出系统支持的所有键盘布局:
localectl list-keymaps
返回结果如下(部分显示):
al
al-plisi
at
at-mac
at-nodeadkeys
az
ba
...
查看当前的键盘布局设置:
localectl status
返回结果如下:
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: n/a
设置系统的键盘布局。以将 us 替换为目标键盘布局为例,需以 root 用户执行:
sudo localectl set-keymap us

字体

通过设置字体可以控制系统中文本的显示样式。本节介绍如何安装中文字体并使用 fontconfig 进行字体管理。

安装系统字体

首先安装 fontconfig 软件包,用于后续的字体管理操作。
1. 安装 fontconfig
yum install fontconfig
2. 安装完成后,执行以下命令,查看系统中当前可用的字体:
fc-list
如需筛选查看可用的中文字体,执行以下命令:
fc-list :lang=zh
执行以下命令,列出系统中可下载的简体中文字体包:
dnf list *cjk-sc*
返回结果如下:
Last metadata expiration check: 3:44:09 ago on Thu May 25 13:03:02 2023.
Available Packages
# 简体中文无衬线字体
google-noto-sans-cjk-sc-fonts.noarch 20201206-4.ocs23 AppStream
# 简体中文等宽字体
google-noto-sans-mono-cjk-sc-fonts.noarch 20201206-4.ocs23 AppStream
# 简体中文衬线字体
google-noto-serif-cjk-sc-fonts.noarch 20201206-4.ocs23 AppStream
3. 以下载简体中文无衬线字体为例,执行以下命令进行安装:
dnf install google-noto-sans-cjk-sc-fonts.noarch
安装完成后,执行以下命令,验证中文字体是否安装成功:
fc-list :lang=zh

安装第三方字体

如果系统未提供所需字体,也可自行获取字体文件进行安装。
1. 首先创建存放字体文件的目录,并将待安装的字体文件上传至该目录下。
为所有用户安装字体,建议将字体文件复制到 /usr/local/share/fonts/ 目录下:
mkdir -p /usr/local/share/fonts/new_fonts
cp example.ttf /usr/local/share/fonts/new_fonts
为单个用户安装字体,建议将字体文件复制到用户主目录下的 ~/.local/share/fonts/ 中:
mkdir -p ~/.local/share/fonts/new_fonts
cp example.ttf ~/.local/share/fonts/new_fonts
2. 字体文件放置完成后,执行以下命令,更新系统字体缓存使新字体生效:
fc-cache
3. 执行以下命令,检查新添加的字体是否已出现在可用字体列表中:
fc-list | grep -i new_fonts
4. (可选)如需验证系统为指定字体名称匹配到的实际字体文件,执行以下命令返回第一个匹配的字体:
fc-match Font-Name
说明:
如需查看更多参数及信息,请执行 fc-list --help

输入法

本节为您介绍如何通过 IBus(Intelligent Input Bus)输入法框架在图形界面中使用拼音输入法和五笔输入法。

(可选)安装图形界面

如当前系统已是图形界面,可跳过本步骤。
1. 执行以下命令,安装图形界面:
dnf groupinstall 'Server with GUI'
2. 执行以下命令,设置图形模式为默认启动目标:
systemctl set-default graphical.target
3. 执行以下命令,重启系统使配置生效:
注意:
重启期间实例将无法正常提供服务,因此在重启之前,请确保实例已暂停业务请求。
reboot

安装中文输入法

执行以下命令,安装拼音输入法:
dnf install ibus-libpinyin
系统提供了"海峰五笔"和"极点五笔"两种五笔输入法,根据需要选择安装。执行以下命令,安装海峰五笔输入法:
dnf install ibus-table-chinese-wubi-haifeng
执行以下命令,安装极点五笔输入法:
dnf install ibus-table-chinese-wubi-jidian
安装完成后,执行以下命令,重启系统使输入法生效:
注意:
重启期间实例将无法正常提供服务,因此在重启之前,请确保实例已暂停业务请求。
reboot

配置输入法

重启进入图形界面后,进入系统设置界面,选择键盘中的输入源,单击+添加输入法,选择 Chinese(China),添加所需的输入法。GNOME 在菜单栏上会显示当前选择的输入源,默认切换输入法快捷键为 Super + 空格,其中 Super 键通常为 Windows 键(徽标键)。
如需了解系统提供的全部中文输入法,执行以下命令查看可用列表:
dnf list ibus-table-chinese*
返回结果如下:
Last metadata expiration check: 2:34:07 ago on Thu May 25 13:03:02 2023.
Available Packages
ibus-table-chinese.noarch 1.8.11-3.ocs23 AppStream
# 行列输入法
ibus-table-chinese-array.noarch 1.8.11-3.ocs23 AppStream
# 仓颉输入法
ibus-table-chinese-cangjie.noarch 1.8.11-3.ocs23 AppStream
# 广东话输入法
ibus-table-chinese-cantonese.noarch 1.8.11-3.ocs23 AppStream
# 基于耶鲁拼音的粤语输入法
ibus-table-chinese-cantonyale.noarch 1.8.11-3.ocs23 AppStream
# 轻松输入法
ibus-table-chinese-easy.noarch 1.8.11-3.ocs23 AppStream
# 二笔输入法
ibus-table-chinese-erbi.noarch 1.8.11-3.ocs23 AppStream
# 速成输入法
ibus-table-chinese-quick.noarch 1.8.11-3.ocs23 AppStream
# 快速仓颉输入法
ibus-table-chinese-scj.noarch 1.8.11-3.ocs23 AppStream
# 笔顺五码输入法
ibus-table-chinese-stroke5.noarch 1.8.11-3.ocs23 AppStream
# 上海吳语注音输入法
ibus-table-chinese-wu.noarch 1.8.11-3.ocs23 AppStream
# 海峰五笔输入法
ibus-table-chinese-wubi-haifeng.noarch 1.8.11-3.ocs23 AppStream
# 极点五笔86输入法 极爽词库 6.0
ibus-table-chinese-wubi-jidian.noarch 1.8.11-3.ocs23 AppStream
# 永码输入法
ibus-table-chinese-yong.noarch 1.8.11-3.ocs23 AppStream