Atur vars lingkungan terkait bahasa untuk proses _all_ (tidak hanya di dalam Terminal)

1

Pada MBP saya yang agak berderit menjalankan Yosemite, saya menemukan bahwa variabel lingkungan POSIX untuk mengendalikan lokal ( LANGdan LC_*) diatur dengan benar di dalam jendela Terminal ...

$ printenv | grep -E '^(LANG|LC_)'
LANG=en_US.UTF-8
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

... tetapi tidak diatur dengan benar di lingkungan yang disediakan untuk aplikasi GUI; misalnya, di dalam jendela shell Emacs , perintah di atas dicetak

$ printenv | grep -E '^(LANG|LC_)'

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Bagaimana saya memastikan bahwa setiap proses yang berjalan di komputer, terlepas dari bagaimana itu dimulai melihat pengaturan LANG = lingkungan yang tepat? Poin bonus untuk jawaban yang tidak memerlukan tindakan manual untuk tetap sinkron dengan pengaturan bahasa di Preferensi Sistem.

(Pertanyaan terkait: Di mana variabel $ LANG diatur di Mac OS X? Menunjukkan bahwa itu adalah Terminal.app yang mencerminkan pengaturan bahasa dari Preferensi Sistem ke lingkungan shell. Di mana variabel lingkungan sistem diatur dalam Mountain Lion? Menyarankan bahwa yang tepat cara untuk membuat pengaturan lingkungan global manual terus berubah dengan setiap versi baru dari sistem operasi, huek.)

zwol
sumber
Apa yang terjadi ketika Anda memulai Emacs dari shell? -open -a Emacs
fd0
@ fd0 Itu menarik, pengaturannya benar jika saya melakukannya dengan cara itu. Tapi saya ingin mereka benar jika dibuka dari Dock atau di mana pun. Juga, Emacs hanyalah sebuah contoh; ini berpotensi mempengaruhi beberapa aplikasi GUI lain yang saya miliki.
zwol
Maka Anda perlu meretas OS dengan salah satu solusi yang sesuai dengan sistem operasi Anda saat ini. Jika Anda ingin mengubah alur kerja Anda, solusi yang saya usulkan telah bekerja untuk setidaknya tujuh versi OS.
fd0