在 Linux 上阅读设置语言环境(3) http://man7.org/linux/man-pages/man3/setlocale.3.html and 语言环境(7) http://man7.org/linux/man-pages/man7/locale.7.html手册页。另请阅读国际化和本地化 https://en.wikipedia.org/wiki/Internationalization_and_localization维基页面。
在 Debian 和 Ubuntu 上,您可以(以 root 身份)运行dpkg-reconfigure locales
添加更多语言环境。
然后你可以设置你的LANG
(and LC_ALL
和其他)环境变量(参见环境(7) http://man7.org/linux/man-pages/man7/environ.7.html) 更改消息语言。
例如,我安装了法语 UTF-8 语言环境。如果我做
% env LC_ALL=fr_FR.UTF-8 ls /tmp/nonexisting
我收到法语错误消息:
ls: impossible d'accéder à '/tmp/nonexisting': Aucun fichier ou dossier de ce type
如果我使用C
语言环境(这是默认的),它是英文的:
% env LC_ALL=C ls /tmp/nonexisting
ls: cannot access '/tmp/nonexisting': No such file or directory
根据经验,您想要export LC_ALL=C LANG=C
在运行您在此论坛上展示的命令之前(例如,因为您不想用法语显示来自编译器或 shell 的错误消息)。
如果你是coding一个你想要国际化的程序(例如,让只懂法语或中文的人可以轻松使用),你至少需要使用获取文本(3) http://man7.org/linux/man-pages/man3/gettext.3.html(特别是对于printf
格式化字符串!)也许文本域(3) http://man7.org/linux/man-pages/man3/textdomain.3.html你需要使用消息(1) http://man7.org/linux/man-pages/man1/msgfmt.1.html用于处理消息目录。当然,您需要构建翻译消息的目录。
本地化还影响数字的解析和打印方式(用逗号或点分隔千位或小数位)以及金钱和时间的打印和解析方式(例如时间(3) http://man7.org/linux/man-pages/man3/strftime.3.html).