mirror of https://github.com/MISP/MISP
new: [i18n] Added tools to switch between languages via the server settings
parent
1f65f9ef45
commit
a930fdeaeb
|
@ -114,6 +114,11 @@ class AppController extends Controller {
|
|||
$this->set('queryVersion', $this->__queryVersion);
|
||||
$this->loadModel('User');
|
||||
$auth_user_fields = $this->User->describeAuthFields();
|
||||
$language = Configure::read('MISP.language');
|
||||
if (!empty($language) && $language !== 'eng') {
|
||||
Configure::write('Config.language', $language);
|
||||
}
|
||||
|
||||
//if fresh installation (salt empty) generate a new salt
|
||||
if (!Configure::read('Security.salt')) {
|
||||
$this->loadModel('Server');
|
||||
|
|
|
@ -725,6 +725,10 @@ class ServersController extends AppController {
|
|||
$this->render('/Elements/healthElements/settings_row');
|
||||
}
|
||||
|
||||
private function __loadAvailableLanguages() {
|
||||
return $this->Server->loadAvailableLanguages();
|
||||
}
|
||||
|
||||
private function __loadLocalOrgs() {
|
||||
$this->loadModel('Organisation');
|
||||
$local_orgs = $this->Organisation->find('list', array(
|
||||
|
|
|
@ -148,6 +148,16 @@ class Server extends AppModel {
|
|||
'test' => 'testLive',
|
||||
'type' => 'boolean',
|
||||
),
|
||||
'language' => array(
|
||||
'level' => 0,
|
||||
'description' => 'Select the language MISP should use. The default is english.',
|
||||
'value' => 'eng',
|
||||
'errorMessage' => '',
|
||||
'test' => 'testLanguage',
|
||||
'type' => 'string',
|
||||
'optionsSource' => 'AvailableLanguages',
|
||||
'afterHook' => 'cleanCacheFiles'
|
||||
),
|
||||
'enable_advanced_correlations' => array(
|
||||
'level' => 0,
|
||||
'description' => 'Enable some performance heavy correlations (currently CIDR correlation)',
|
||||
|
@ -2387,6 +2397,22 @@ class Server extends AppModel {
|
|||
return $leafValue;
|
||||
}
|
||||
|
||||
public function loadAvailableLanguages() {
|
||||
$dirs = glob(APP . 'Locale/*', GLOB_ONLYDIR);
|
||||
$languages = array('eng' => 'eng');
|
||||
foreach ($dirs as $k => $dir) {
|
||||
$dir = str_replace(APP . 'Locale' . DS, '', $dir);
|
||||
$languages[$dir] = $dir;
|
||||
}
|
||||
return $languages;
|
||||
}
|
||||
|
||||
public function testLanguage($value) {
|
||||
$languages = $this->loadAvailableLanguages();
|
||||
if (!isset($languages[$value])) return 'Invalid language.';
|
||||
return true;
|
||||
}
|
||||
|
||||
public function testForNumeric($value) {
|
||||
if (!is_numeric($value)) return 'This setting has to be a number.';
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue