如何将语言环境添加到ubuntu服务器?


178

我目前有这些语言环境:

locale -a

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

如何将ru_RU语言环境安装到服务器?

Answers:


254
  1. 检查支持哪些语言环境:

    locale -a
    
  2. 添加所需的语言环境(例如ru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. 运行此更新命令:

    sudo update-locale 
    

26
...然后奔跑sudo update-locale
贾斯汀原力

3
如果不支持该怎么办?
金布尔

4
能否请你扩大的原因都ru_RUru_RU.UTF-8需要?我对语言环境不太了解。
Sopalajo de Arrierez,2015年

15
如果您使用php5-fpm,则需要sudo service php5-fpm restart
Stalinko 2015年

3
这正是我所需要的,但是我必须重新启动Apache才能使其正常工作...谢谢!
Jabari 2015年

53

我会选择另一条路线,那就是IMO更适合Ubuntu风格。使用提供的软件包。每个语言环境都有相应的软件包,它们可以为您完成所有工作……无需编辑/ var文件,我一直认为这些文件不是要手动编辑的。

sudo apt-get install language-pack-XX

其中XX代表语言代码。安装语言还将安装所有国家/地区特定的变体(例如,安装language-pack-it将安装it_CH.utf8和it_IT.utf8,为NL安装将安装nl_AW,nl_AW.utf8,nl_BE.utf8和nl_NL.utf8 )。


我认为这是这样做的最好的,最“Ubuntu的方式
卢克Madhanga

4
但是生成语言环境可以提供诸如本地化日期格式,小数点分隔符,字符集等之类的东西。语言包还提供翻译,这不一定是故意的。
Oskar Berggren 2015年

1
同意奥斯卡。如果您认为此安装是针对服务器的,则更加强大-无论如何,大多数界面都是英文的。
igorsantos15年

2
我担心这也会改变当前的语言环境,但是没有。一切顺利。看起来是最好的方法imo。我特别不需要 “翻译或其他内容”,但是如果出于某种原因特别使用语言环境,我希望它是完整的。
Balmipour

43
  1. 检查支持哪些语言环境:

    less /usr/share/i18n/SUPPORTED
    
  2. 将语言环境添加到生成的列表中

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. 重新生成列表(它将调用locale-gen ...)

     sudo dpkg-reconfigure locales
    

4
我必须echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local在Ubuntu 15.04上添加第二列:(UTF-8发生两次)。否则,它将起作用。
jfs

16

我发现locale-gen是您的朋友。如(例如添加希伯来语utf8):

root@world:~# locale-gen he_IL.UTF-8

您甚至可以像这样重新哈希它:

root@world:~# dpkg-reconfigure locales

并检查您是否做得很好:

root@world:~# locale -a

我发现此解决方案比向文本文件添加内容更简单,即使它确实可以做到。


6
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local

我在点3收到以下消息:“错误:错误的条目'ru_RU.UTF8'”

这项工作对我来说:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local

这对我有用。就我而言,对于en_GB语言环境,我遇到了严重的输入错误。我已经更新了我的/var/lib/locales/supported.d/mintlocale文件以包含这些行en_GB UTF-8en_GB.UTF-8 UTF-8(缺少了多余的UTF-8)。
Samir Aguiar

4

使用Ubuntu语言包。默认存储库中提供所有受支持的语言:

apt-cache search language-pack

Ubuntu(服务器)版本中语言环境切换的完整示例:

jani@example:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

所有可用(即已安装)的语言环境都可以列出:

locale -a

我当前的语言环境是en_IE

jani@example:~$ locale
LANG=en_IE.UTF-8
LANGUAGE=
LC_CTYPE="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_COLLATE="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="en_IE.UTF-8"
LC_NAME="en_IE.UTF-8"
LC_ADDRESS="en_IE.UTF-8"
LC_TELEPHONE="en_IE.UTF-8"
LC_MEASUREMENT="en_IE.UTF-8"
LC_IDENTIFICATION="en_IE.UTF-8"
LC_ALL=
jani@example:~$ date
Sat Nov  1 15:36:51 UTC 2014
jani@example:~$

因为我没有ru语言环境,所以必须安装ru语言包:

jani@example:~$ sudo apt-get -y install language-pack-ru
[..]
Generating locales...
  ru_RU.UTF-8... done
  ru_UA.UTF-8... done
Generation complete.
jani@example:~$ 

现在可以使用ru语言环境。系统默认语言环境是通过编辑设置的/etc/default/locale

jani@example:~$ sudo vi /etc/default/locale
# Created by cloud-init v. 0.7.5 on Mon, 27 Oct 2014 18:46:13 +0000
LANG="ru_RU.UTF-8"
LC_MESSAGES=POSIX
jani@example:~$

重新登录并检查您的全新语言环境:

jani@example:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
jani@example:~$ date
Сб. нояб.  1 15:43:45 UTC 2014
jani@example:~$ 

2

修改/etc/locale.gen,取消注释或添加您希望生成的语言环境。然后运行sudo locale-gen

您可以检查是否添加了语言环境locale -a,它将显示所有语言环境。


哦,我的locale-gen创建了一个吨位的语言环境,而忽略了locale.gen文件。因此,请谨慎使用此建议。
Dzenly

0
  1. 检查您的发行版中已支持哪些语言环境。打开或打开cat文件,/usr/share/i18n/SUPPORTED然后复制要添加的所需语言环境。
  2. 在终端上输入sudo locale-gen locale_name

    例如 sudo locale-gen de_DE.iso885915@euro

  3. 输入 sudo update-locale

  4. 检查语言环境是否安装了 locale -a


0

无法发表评论,所以我必须将此添加为答案。

我需要在Ubuntu中添加特殊类型的语言环境sr_RS.utf8@latin。

命令:

sudo locale-gen sr_RS.utf8@latin

不会将@latin添加到可用的语言环境。为了成功实现,该命令应如下所示:

sudo locale-gen sr_RS@latin.utf8

命令:

sudo locale -a

现在显示:

sr_RS
sr_RS@latin
sr_RS.utf8
sr_RS.utf8@latin

注意结果locale -alocale-gen命令添加方式之间的语法差异。


-2

我以类似的方式进行了操作,以在不重新启动或注销的情况下将语言环境应用到整个系统。

首先,下载语言包:

sudo apt-get install language-pack-ru-base

接下来,检查支持哪些版本:

less /usr/share/i18n/SUPPORTED | grep ru_RU

现在,应用结果(几乎总是将UTF-8版本用于几乎所有语言!):

echo 'ru_RU.UTF-8 UTF-8' | sudo tee /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

最后,更新默认文件,获取源文件,然后完成:

echo 'LANG=ru_RU.UTF-8' | sudo tee /etc/default/locale

将更改应用到系统:

. /etc/default/locale
LANGUAGE=ru_RU.UTF-8

并检查结果:

locale

注意:如果您运行的是常规 Ubuntu,而不是 Ubuntu服务器,所做的更改将不会保留到控制台之外(如果您决定打开新选项卡或关闭终端),直到下次登录后。但是,使用Ubuntu服务器通常无论如何都必须登录才能打开新控制台,所以没关系。
mchid 2014年

这个问题是tagget与服务器。谁以及为什么反对这一点,请解释。
Nikos Alexandris
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.