因为我需要我的语言环境fa_IR.UTF-8
,Ubuntu Server
所以我尝试通过它进行安装,(sudo) locale-gen "fa_IR.UTF-8"
但没有得到任何输出:
user@s1:~# sudo locale-gen "fa_IR.UTF-8"
user@s1:~#
并且它没有向我的语言环境添加任何语言环境!
当我尝试在我的上安装新的语言环境时,Ubuntu Desktop
我没有收到此错误并且它运行良好!如下所示:
user@s1:~# sudo locale-gen "fa_IR.UTF-8"
Generating locales...
fa_IR.UTF-8... done
Generation complete.
user@s1:~#
请帮帮我,这是什么问题,我该怎么办?
答案1
最后我通过手动做一些事情找到了解决方案:
检查支持哪些语言环境:
less /usr/share/i18n/SUPPORTED
将语言环境添加到生成的列表中
(sudo) echo fa_IR.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
重新生成列表(它将调用 locale-gen...)
(sudo) dpkg-reconfigure locales
答案2
发生这种情况的原因是,相当多的 UTF-8 语言环境的名称/usr/share/i18n/SUPPORTED
不包含代码集部分“.UTF-8”,而 fa_IR 就是其中之一。
$ grep -E '[a-z]+_[A-Z]+ UTF-8' /usr/share/i18n/SUPPORTED | grep fa
fa_IR UTF-8
在 Ubuntu 16.04 中locale-gen 脚本已更改,因此用户不需要知道 SUPPORTED 中的确切命名。因此在 16.04 中这将起作用:
sudo locale-gen fa_IR.UTF-8
对于以前的 Ubuntu 版本,创建这些区域设置之一的最简单方法是根据 SUPPORTED 使用确切的名称,例如:
sudo locale-gen fa_IR
所以,AbdolHosein,你的问题帮助我们改进了 Ubuntu。谢谢你。:)
答案3
据我根据手册页理解,local-gen 不接受任何参数,因此例如 sudo locale-gen "de_DE.UTF-8" 不执行任何操作。
从man locale-gen
:
locale-gen 是一个程序,读取文件 /etc/locale.gen并调用 localedef 来获取所选的本地化配置文件。运行 locale-gen修改 /etc/locale.gen 文件后。
解决方案很简单,使用以下命令修改 /etc/locale.gen:
echo "de_DE.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen de_DE.UTF-8
更新:根据 Gunnar Hjalmarsson 的评论,参数在 Ubuntu 中是可能的,但未反映在手册页中。这个答案可能仍然适用于从他们的 ubuntu 机器配置其他系统并想知道为什么它们没有按预期运行(就像我遇到的那样)的人。