2009-03-19 27 views
7

Tôi cần phát hiện ngôn ngữ hiện tại trong OS X từ dòng lệnh. Trên Linux/Unix tôi có thể dựa vào LANG, nhưng nó không phải luôn luôn thiết lập:Cách phát hiện ngôn ngữ hiện tại trong Mac OS X từ vỏ

http://henrik.nyh.se/2007/10/displaying-utf-8-correctly-in-leopard-terminal

Tôi đang tìm kiếm các tiện ích dòng lệnh hoặc mã AppleScript cho phép tôi để tìm thông tin đó. Lý tưởng nhất là họ sẽ làm việc từ 10,2 trở đi

Gần nhất tôi đã tìm thấy cho đến nay là

defaults read -g AppleLocale 

mà hoạt động trên 10,3 trở đi

Trả lời

12

apropos yeilds lệnh locale

10.4 và sau đó mặc dù

Chỉnh sửa:

defaults read .GlobalPreferences AppleLanguages | tr -d [:space:] | cut -c2-3 

được đề cập here. Tôi không có quyền truy cập vào một hệ thống 10.2 mặc dù, vì vậy tôi không biết nếu nó hoạt động.

+0

Đúng, tôi đã chạy ngang qua nó nhưng chỉ 10.4 và sau đó là, như bạn đề cập đến –

+0

Cảm ơn đã gợi ý. Nó hoạt động trong 10.2, nhưng trong trả về tiếng Anh, trong khi ở 10.3 và sau đó trả về mã ngôn ngữ –

+2

mặc định đọc -g AppleLocale hoạt động trên 10.3 và sau đó –

4
locale 

hoặc nếu đó không phải disponible

env | grep LC_ 
+1

Thật không may, không có LC_ có sẵn theo mặc định trong nhiều lượt cài đặt –

0
export LANG=$(defaults read -g AppleLanguages | \ 
    sed '/"/!d;s/["[:space:]]//g;s/-/_/').UTF-8 
Các vấn đề liên quan