Eu tenho as seguintes duas funções no meu .bash_profile:
# default language order: German, Swiss German, Swiss French, French, ...
langreset() { defaults write NSGlobalDomain AppleLanguages "(de, de-CH, fr-CH, fr, en, es, it, en-US)"; }
langfoo() { defaults write NSGlobalDomain AppleLanguages "($1, de, de-CH, fr-CH, fr, en, es, it, en-US)"; }
Existem buracos óbvios na lógica da segunda função, mas ela funciona bem o suficiente. Se eu quiser iniciar um aplicativo em italiano, eu digito
langfoo it
# run the app, either as a unix command,
# double-click, QuickSilver, "open /path/to/app"...
# To return to the default language order, type
langreset
Isso não modifica a variável de ambiente do shell LANG, mas os programas unix parecem funcionar perfeitamente com o novo idioma. Se você não quiser operá-lo através da linha de comando, você pode, naturalmente, agrupar esses comandos no AppleScript, transformá-lo em um aplicativo e iniciá-lo dessa maneira. Applescripts podem solicitar entrada com uma pequena caixa de diálogo.
Se você tiver um aplicativo específico que deseja lançar em um idioma específico o tempo todo:
defaults write ch.sudo.cyberduck AppleLanguages "(Dutch,English)"
Você pode encontrar o arquivo prefs do app (por exemplo, ch.sudo.cyberduck) pesquisando em ~ / Library / Preferences /