Поддержка Консалтинг Обучение Jamf Pro Блог

AppleLanguages -array ru en

Кирилл Воронин 17.12.2009

Недавно обсуждал с одним голландским тренером (IT курсы Apple), как сделать так, чтобы пользователи, домашние папки которых созданы на сервере Mac OS X Server, зайдя первый раз в систему, сразу видели интерфейс на родном языке (русском или украинском, фламандском или фризском, … или …).
Чтобы пользователю не приходилось находить System Preferences, Language & Text, перетаскивать языки, выходить из системы (представьте на мгновение, что вы не знаете английский; тогда это все равно, что зайти в アップルメニュ и найти там 「システム環境設定).
Как это сделать? Конечно, сработает не только с сетевыми пользователями, но и с локальными.

Понятно, что настройки, – какой язык используется в интерфейсе, хранятся в каком-то файле (как и все прочие настройки, мы же в Mac OS X как-то без реестра перебиваемся).

Понятно, что этот файл – .plist в формате XML.
Все настройки на маке, от Adium (com.adiumX.adiumX.plist) до Yojimbo (com.barebones.yojimbo.plist) хранятся в таких файлах – атрибуты и их значения.

Пример из com.apple.finder.plist:

<key>AppleShowAllFiles</key>

<false/>

(- Показывать-с все файлы? – Нет, благодарю-с.)

Даже пользователь – это всего-навсего набор атрибутов.

Пример из /var/db/dslocal/nodes/Default/users/kirilka.plist

<key>home</key>
<array>
<string>/Users/kirilka</string>
</array>

<key>home</key>

<array>

<string>/Users/kirilka</string>

</array>

( -А где домашняя папка? – Вот, она, ваше высокоблагородие!)

Кстати, просматривать .plist можно и с помощью Quick Loook.

plist quicklook

Понятно, что все эти файлы можно редактировать руками (man plutil, man vi), Property List Editor, а можно и с помощью команды defaults.
Примеры использования defaults (с нашего сайта).

Изменить порядок языков интерфейса можно так –
defaults write -g AppleLanguages -array ru en

Убедитесь, что ваши настройки сохранились (например, qlmanage -p ~/Library/Preferences/.GlobalPreferences.plist) и копируйте этот файл в шаблон.

Кроме того, defaults write -g AppleLanguages -array ru en – полезная команда для использования в ARD (Используя “Send UNIX command”).