web-dev-qa-db-ja.com

ターミナルで現在の地域の形式を取得したり、必要な地域形式を設定する方法は?

私は単一行の端末コマンドを探しています:

  • 現在の地域フォーマットを確認するか、
  • 地域の形式を米国英語に設定します。

現在、これを変更するには、[設定]-> [言語サポート]-> [地域の形式]に移動する必要があります

(ディストリビューション:Ubuntu 14.04 LTS。できれば16.04 LTSでも動作するはずです)

5
Gertjan

地域の形式は、次の変数を変更します。

LC_NUMERIC
LC_TIME
LC_MONETARY

localeを使用して、現在の設定形式を確認できます。

ron@ron:~$ locale
LANG=en_US
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

システムで使用可能なすべてのロケールを表示する場合は、次を使用できます。

ron@ron:~$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8

たとえば、日付形式を米国に変更するには、次を使用できます。

LC_TIME=en_US.UTF-8 

永続的に変更するには:

Sudo update-locale LC_TIME=en_US.UTF-8

必要に応じて、/etc/default/localeの代わりにupdate-localeファイルを手動で編集することもできます。次回ログイン時に変更が適用されます。

詳細については https://help.ubuntu.com/community/Locale を参照してください。 man 5 localeは、任意の形式を検索して調整するためのオプションをさらに提供します。

4
Ron

このコマンドは、言語サポートと同じ方法で地域フォーマットをen_US.UTF-8に設定します。

dbus-send --print-reply --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User.SetFormatsLocale string:'en_US.UTF-8'

Accountsserviceのユーザー設定とファイル~/.pam_environmentを更新します。

/etc/default/localeは、システム全体に適用ボタンをクリックした場合にのみ、言語サポートによって更新されます。

現在の形式を確認するための対応するコマンドを理解していません。

なぜそれをしたいのか疑問に思うことはできません。通常、Ubuntu Deskopでこれらの設定を手動で変更することはお勧めできません。言語サポートは正しいことを行います。

1

シェルのLANGUAGE変数を次の方法で確認できます。

echo $LANGUAGE

GB英語を実行しているシステムの出力は次のとおりです。

en_GB:en
1
Arronical