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ロケールをサーバーにインストールするにはどうすればよいですか?

回答:


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_RUし、ru_RU.UTF-8必要に応じて?ロケールについてあまり知りません。
ソパラホデアリエレス

15
php5- sudo service php5-fpm restart
fpmを使用

3
これはまさに私が必要としていたものでしたが、Apacheを再起動して動作させる必要がありました...ありがとう!
ジャバリ

53

Ubuntuスタイルに適したIMOである別のルートに移動します。提供されているパッケージを使用します。各ロケール用のパッケージがあり、それらはすべての作業を行います... / 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」の方法だと思う
ルーク・マダンガ

4
ただし、ロケールを生成すると、ローカライズされた日付形式、小数点、文字セットなどが提供されます。言語パックは翻訳も提供しますが、これは必ずしも意図したものではありません。
オスカーバーググレン

1
オスカーに同意します。このインストールがサーバー用であると考えるとさらに強力です-ほとんどのインターフェースはとにかく英語で表示されます。
igorsantos07

2
これにより現在のロケールも変更されるのではないかと心配しましたが、そうではありません。すべて順調。最高のアプローチのように見えます。「翻訳やその他のもの」は特に必要ありませんが、何らかの理由で特定のロケールを使用する場合は、完全であると考えています。
バルミプール

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
2番目の列を追加する必要がありました:echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/localUbuntu 15.04では(UTF-8が2回発生します)。それ以外の場合、動作します。
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-8してen_GB.UTF-8 UTF-8(余分なUTF-8が欠落していました)。
サミール・アギアー

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は、locales.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 -aと追加方法の構文の違いに注意してくださいlocale-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 14

この質問はでtaggetされるサーバー。そして、誰が、なぜこれをダウン票したのか、説明してください。
ニコスアレクサン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.