Ubah bahasa sistem OSX dalam skrip

3

Secara manual saya hanya masuk ke preferensi sistem, mengubah urutan bahasa, dan restart aplikasi saya sehingga dimulai dalam bahasa sistem default. Lalu saya bisa menjalankan tes otomatis dengan aplikasi berjalan dalam bahasa itu.

Di baris perintah, ada pengaturan bahasa utilitas OSX bawaan tetapi ini membutuhkan sudo dan harus meminta bahasa baru (mis. Tidak ada opsi baris perintah yang jelas).

Saya tidak tahu AppleScript cukup baik untuk menggunakannya tetapi saya akan terbuka untuk menggunakannya.

travis1097
sumber

Jawaban:

4

Anda dapat membuka aplikasi menggunakan bahasa yang berbeda dengan menambahkan -AppleLanguages pilihan:

/Applications/Calendar.app/Contents/MacOS/Calendar -AppleLanguages '(de)'

Pilihan lain adalah menambahkan AppleLanguages larik ke daftar properti aplikasi:

defaults write -app Calendar AppleLanguages -array de; open -a Calendar

languagesetup hanya mengubah item pertama di AppleLanguages array dalam /Library/Preferences/.GlobalPreferences.plist.

Lri
sumber
Meluncurkan aplikasi dengan bendera itu melakukan apa yang saya inginkan.
travis1097
1

Tidak perlu mengubah standar sistem bahasa (untuk sebagian besar aplikasi, setidaknya). Preferensi Sistem »Bahasa & amp; Teks tidak mengubah bahasa default sistem, itu hanya konfigurasi profil pengguna Anda.


Skrip berikut menulis daftar bahasa pilihan (Jerman pertama, lalu Inggris):

defaults write -g AppleLanguages -array de en

Jalankan ini, lalu buka aplikasi Anda. Tambahkan atau hapus ID bahasa sesuai kebutuhan.

Untuk daftar konfigurasi bahasa Anda saat ini:

$ defaults read -g AppleLanguages
(
    en,
    de
)
Daniel Beck
sumber
Daniel benar tetapi Anda mungkin ingin "membaca default" array terlebih dahulu dan menyalin semua kode bahasa terlebih dahulu sehingga Anda tidak harus kembali dan memeriksa masing-masing (jika Anda ingin menguji semuanya). Kode sampelnya hanya akan menampilkan bahasa Inggris dan Jerman di tingkat atas panel prefet setelah ditulis. Saya menggunakan saran pengaturannya dalam skrip untuk secara berkala mereset bahasa default ke Bahasa Inggris untuk siswa dalam program imersi Bahasa Inggris. (tentu saja add - killall Finder) Terima kasih, Daniel.