This question has been answered by doze. See the first response.
<?php
$modx->lexicon->load('en:mysnippet:default);
$message = $modx->lexicon('file_not_found'); // sets the English message
$modx->lexicon->load('de:mysnippet:default');
$message = $modx->lexicon('file_not_found'); // sets the German messagefunction lexicon($key) {
global $_lang;
return isset($_lang[$key])? $_lang[$key] : $key;
}
function lexicon($key, $language) {
global $en_lang, $de_lang;
if ($language == 'en') {
return isset($en_lang[$key])
? $en_lang[$key]
: $key;
} elseif ($language == 'de') {
return isset($de_lang[$key])
? $de_lang[$key]
: $key;
} else {
return $key;
}
}
$defaultLanguage = $this->modx->getOption('cultureKey',null,'en');[[!%key? &topic=`topicname` &namespace=`namespace_name` &language=`en`]]


$modx->setOption('cultureKey', 'en');<?php
/**
Create User Settings for a user group
*/
$userGroupName = 'WhateverUserGroupName';
$language = 'en'; // or whatever
$settingKey = 'cultureKey';
$userGroups = $modx->getObject('modUserGroup', array('name' => $userGroupName));
if ($userGroups) {
$ugms = $userGroups->getMany('UserGroupMembers');
} else {
return 'No User Groups Found';
}
if (!empty($ugms)) {
foreach ($ugms as $ugm) {
$user = $ugm->getOne('user');
$id = $user->get('id');
$settingName = $settingKey;
$setting = $modx->getObject('modUserSetting', array('key' => $settingName,
'user' => $id));
if (!$setting) {
$setting = $modx->newObject('modUserSetting');
$setting->set('user', $id);
$setting->set('key', $settingKey);
}
$setting->set('value', $language);
$setting->save();
}
} else {
return 'No users in group';
}
return 'Settings created';