diff --git a/application/config/navigation.php b/application/config/navigation.php
index d76b8a7f2..78fe6c9cf 100644
--- a/application/config/navigation.php
+++ b/application/config/navigation.php
@@ -125,7 +125,7 @@ $config['navigation_header'] = array(
'description' => 'Extensions Manager',
'expand' => true,
'sort' => 10,
- 'requiredPermissions' => 'admin:r'
+ 'requiredPermissions' => 'system/extensions:r'
),
'logsviewer' => array(
'link' => site_url('system/LogsViewer'),
@@ -138,7 +138,14 @@ $config['navigation_header'] = array(
'link' => site_url('system/jq/JobsQueueViewer'),
'description' => 'Jobs Queue Viewer',
'expand' => true,
- 'sort' => 20,
+ 'sort' => 30,
+ 'requiredPermissions' => 'system/developer:r'
+ ),
+ 'phrasesviewer' => array(
+ 'link' => site_url('system/phrases/PhrasesViewer'),
+ 'description' => 'Phrases viewer',
+ 'expand' => true,
+ 'sort' => 40,
'requiredPermissions' => 'system/developer:r'
)
)
diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php
deleted file mode 100644
index 2bb003567..000000000
--- a/application/controllers/system/Phrases.php
+++ /dev/null
@@ -1,212 +0,0 @@
- 'system/phrase:r',
- 'table' => 'system/phrase:r',
- 'view' => 'system/phrase:r',
- 'deltext' => 'system/phrase:rw',
- 'edit' => 'system/phrase:rw',
- 'save' => 'system/phrase:rw',
- 'newText' => 'system/phrase:rw',
- 'editText' => 'system/phrase:rw',
- 'saveText' => 'system/phrase:rw'
- )
- );
-
- // Loads the phrases library
- $this->load->library('PhrasesLib');
-
- // Loads the widget library
- $this->load->library('WidgetLib');
- }
-
- /**
- *
- */
- public function index()
- {
- $this->load->view('system/phrases/phrases.php');
- }
-
- /**
- *
- */
- public function table()
- {
- $phrases = $this->phraseslib->getPhraseByApp('aufnahme');
- if ($phrases->error)
- show_error(getError($phrases));
-
- $data = array(
- 'app' => 'aufnahme',
- 'phrases' => $phrases->retval
- );
-
- $this->load->view('system/phrases/phrasesList.php', $data);
- }
-
- /**
- *
- */
- public function view($phrase_id)
- {
- if (!is_numeric($phrase_id))
- show_error('Invalid phrase_id parameter');
-
- $phrase = $this->phraseslib->getPhrase($phrase_id);
-
- $phrase_inhalt = $this->phraseslib->getPhraseInhalt($phrase_id);
- if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt));
-
- $data = array(
- 'phrase_id' => $phrase_id,
- 'phrase' => $phrase->retval[0]->phrase,
- 'phrase_inhalt' => $phrase_inhalt->retval
- );
-
- $this->load->view('system/phrases/phrasesinhaltList.php', $data);
- }
-
- /**
- *
- */
- public function deltext($phrasentext_id, $phrase_id)
- {
- if (!is_numeric($phrasentext_id) || !is_numeric($phrase_id))
- show_error('Invalid phrasentext_id or phrase_id parameter');
-
- $phrase_inhalt = $this->phraseslib->delPhrasentext($phrasentext_id);
- if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt));
-
- redirect('/system/Phrases/view/'.$phrase_id);
- }
-
- /**
- *
- */
- public function edit($phrase_id = null)
- {
- if (!is_numeric($phrase_id)) return;
-
- $phrase = $this->phraseslib->getPhrase($phrase_id);
- if ($phrase->error)
- show_error(getError($phrase));
-
- if (count($phrase->retval) != 1)
- show_error('Phrase nicht vorhanden! ID: '.$phrase_id);
-
- $data = array(
- 'phrase' => $phrase->retval[0]
- );
-
- $this->load->view('system/phrases/phrasesEdit', $data);
- }
-
- /**
- *
- */
- public function save()
- {
- $phrase_id = $this->input->post('phrase_id');
- $data = array('phrase' => $this->input->post('phrase'));
-
- $phrase = $this->phraseslib->savePhrase($phrase_id, $data);
- if ($phrase->error)
- show_error(getError($phrase));
-
- $phrase_id = $phrase->retval;
-
- redirect('/system/Phrases/edit/'.$phrase_id);
- }
-
- /**
- *
- */
- public function newText()
- {
- $phrase_id = $this->input->post('phrase_id');
-
- $this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
-
- $this->OrganisationseinheitModel->addLimit(1);
- $this->OrganisationseinheitModel->addOrder('oe_kurzbz');
-
- $resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null));
- if ($resultOE->error)
- show_error(getError($resultOE));
-
- if (hasData($resultOE))
- {
- $orgeinheit_kurzbz = $resultOE->retval[0]->oe_kurzbz;
-
- $data = array(
- 'phrase_id' => $phrase_id,
- 'sprache' => 'German',
- 'text' => '',
- 'description' => '',
- 'orgeinheit_kurzbz' => $orgeinheit_kurzbz
- );
-
- $phrase_inhalt = $this->phraseslib->insertPhraseinhalt($data);
- if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt));
-
- $phrase_inhalt_id = $phrase_inhalt->retval;
-
- redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
- }
- else
- {
- show_error('No valid organisation unit found');
- }
- }
-
- /**
- *
- */
- public function editText($phrasentext_id)
- {
- $phrase_inhalt = $this->phraseslib->getPhrasentextById($phrasentext_id);
- if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt));
-
- $data = $phrase_inhalt->retval[0];
-
- $this->load->view('system/phrases/phraseinhaltEdit', $data);
- }
-
- /**
- *
- */
- public function saveText()
- {
- $phrase_inhalt_id = $this->input->post('phrase_inhalt_id');
-
- $data = array(
- 'orgeinheit_kurzbz' => $this->input->post('oe_kurzbz'),
- 'orgform_kurzbz' => $this->input->post('orgform_kurzbz'),
- 'text' => $this->input->post('text'),
- 'description' => $this->input->post('description'),
- 'sprache' => $this->input->post('sprache')
- );
-
- $phrase_inhalt = $this->phraseslib->updatePhraseInhalt($phrase_inhalt_id, $data);
- if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt));
-
-
- redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
- }
-}
diff --git a/application/controllers/system/phrases/Manager.php b/application/controllers/system/phrases/Manager.php
new file mode 100644
index 000000000..357867827
--- /dev/null
+++ b/application/controllers/system/phrases/Manager.php
@@ -0,0 +1,30 @@
+ 'admin:rw'
+ )
+ );
+
+ // Loads PhrasesLib
+ $this->load->library('PhrasesLib');
+ }
+
+ /**
+ *
+ */
+ public function installFromCore()
+ {
+ $this->phraseslib->installFromCore();
+ }
+}
+
diff --git a/application/controllers/system/phrases/PhrasesViewer.php b/application/controllers/system/phrases/PhrasesViewer.php
new file mode 100644
index 000000000..9f537d2bf
--- /dev/null
+++ b/application/controllers/system/phrases/PhrasesViewer.php
@@ -0,0 +1,45 @@
+ 'system/developer:r'
+ )
+ );
+
+ // Loads WidgetLib
+ $this->load->library('WidgetLib');
+
+ // Loads phrases system
+ $this->loadPhrases(
+ array(
+ 'global',
+ 'ui',
+ 'filter'
+ )
+ );
+ }
+
+ // -----------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ /**
+ * Everything has a beginning
+ */
+ public function index()
+ {
+ $this->load->view('system/phrases/phrasesViewer.php');
+ }
+}
+
diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php
index f8bbb9ad2..92138e9b7 100644
--- a/application/helpers/hlp_header_helper.php
+++ b/application/helpers/hlp_header_helper.php
@@ -98,7 +98,7 @@ function generateJSPhrasesStorageObject($phrases)
$toPrint = "\n";
$toPrint .= '';
$toPrint .= "\n\n";
diff --git a/application/libraries/ExtensionsLib.php b/application/libraries/ExtensionsLib.php
index cec40a753..1ae238255 100644
--- a/application/libraries/ExtensionsLib.php
+++ b/application/libraries/ExtensionsLib.php
@@ -15,6 +15,8 @@ class ExtensionsLib
const EXTENSION_JSON_NAME = 'extension.json'; // file that contains extension data
const EXTENSIONS_DIR_NAME = 'extensions'; // name of the directories where will be created the symlinks
+ const PHRASES_DIRECTORY = 'phrases/'; // directory name where phrases files are
+
private $_ci;
private $ARCHIVE_EXTENSIONS = array('.tgz', '.tbz2'); // accepted file extensions for an uploaded extension
@@ -37,6 +39,7 @@ class ExtensionsLib
{
$this->UPLOAD_PATH = APPPATH.'tmp/';
$this->EXTENSIONS_PATH = APPPATH.'extensions/';
+
// Get code igniter instance
$this->_ci =& get_instance();
@@ -45,6 +48,8 @@ class ExtensionsLib
// Loads EPrintfLib
$this->_ci->load->library('EPrintfLib');
+ // Loads PhrasesLib
+ $this->_ci->load->library('PhrasesLib');
// Loading models
$this->_ci->load->model('system/Extensions_model', 'ExtensionsModel');
@@ -116,7 +121,7 @@ class ExtensionsLib
if (!$this->_errorOccurred) // if no error occurred
{
- // Loads and executes neede SQL scripts
+ // Loads and executes the needed SQL scripts
$this->_loadSQLs(
$this->UPLOAD_PATH.$extensionJson->name.'/'.ExtensionsLib::SQL_DIRECTORY,
$extensionJson
@@ -134,6 +139,12 @@ class ExtensionsLib
// Create the symlinks to the installed extension
$this->_createSymLinks($extensionJson->name);
}
+
+ if (!$this->_errorOccurred) // if no error occurred
+ {
+ // Create the symlinks to the installed extension
+ $this->_installPhrases($extensionJson->name);
+ }
}
else
{
@@ -907,4 +918,13 @@ class ExtensionsLib
{
$this->_printInfo('------------------------------------------------------------------------------------------');
}
+
+ /**
+ * Install the phrases from the given extension
+ */
+ private function _installPhrases($extensionName)
+ {
+ $this->_ci->phraseslib->installFrom($this->EXTENSIONS_PATH.$extensionName.'/'.self::PHRASES_DIRECTORY);
+ }
}
+
diff --git a/application/libraries/PhrasesLib.php b/application/libraries/PhrasesLib.php
index dec3d54c0..f713fd4a8 100644
--- a/application/libraries/PhrasesLib.php
+++ b/application/libraries/PhrasesLib.php
@@ -4,95 +4,73 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class PhrasesLib
{
+ // Directory name where all the category files are
+ const CORE_PHRASES_DIRECTORY = 'phrases/';
+
+ // Who adds phrases into the database
+ const INSERT_BY = 'PhrasesManager';
+
+ // Array elements names
+ const APP = 'app';
+ const CATEGORY = 'category';
+ const PHRASE = 'phrase';
+ const SPRACHE = 'sprache';
+ const TEXT = 'text';
+ const DESCRIPTION = 'description';
+
private $_ci; // Code igniter instance
private $_phrases; // Contains the retrieved phrases
/**
* Loads parser library
*/
- public function __construct()
- {
+ public function __construct()
+ {
$this->_ci =& get_instance();
$this->_phrases = null; // set the property _phrases as null by default
// CI parser
$this->_ci->load->library('parser');
+ // Loads EPrintfLib
+ $this->_ci->load->library('EPrintfLib');
+ // Loads the PhraseModel
$this->_ci->load->model('system/Phrase_model', 'PhraseModel');
+ // Loads the PhrasentextModel
$this->_ci->load->model('system/Phrasentext_model', 'PhrasentextModel');
// Workaround to use more parameters in the construct since PHP doesn't support many constructors
$this->_extend_construct(func_get_args());
- }
+ }
// -----------------------------------------------------------------------------------------------------------------
// Public methods
- /**
- * getPhrase() - loads a specific Phrase
- */
- public function getPhrase($phrase_id)
- {
- if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
-
- return $this->_ci->PhraseModel->load($phrase_id);
- }
-
- /**
- * getSubMessages() - will return all Messages subordinated from a specified message.
- */
- public function getPhraseByApp($app = null)
- {
- return $this->_ci->PhraseModel->loadWhere(array('app' => $app));
- }
-
- /**
- * getPhraseInhalt
- */
- public function getPhraseInhalt($phrase_id)
- {
- if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
-
- return $this->_ci->PhrasentextModel->loadWhere(array('phrase_id' => $phrase_id));
- }
-
- /**
- * delPhrasentext
- */
- public function delPhrasentext($phrasentext_id)
- {
- if (isEmptyString($phrasentext_id)) return error(MSG_ERR_INVALID_MSG_ID);
-
- return $this->_ci->PhrasentextModel->delete(array('phrasentext_id' => $phrasentext_id));
- }
-
/**
- * savePhrase() - will save a spezific Phrase.
- */
- public function savePhrase($phrase_id, $data)
- {
- if (isEmptyString($data)) return error(MSG_ERR_INVALID_MSG_ID);
-
- return $this->_ci->PhraseModel->update($phrase_id, $data);
- }
-
- /**
- * getVorlagetextByVorlage() - will load tbl_vorlagestudiengang for a spezific Template.
- */
- public function getPhrasentextById($phrasentext_id)
+ * Return the phrases in JSON format
+ */
+ public function toJSON()
{
- if (isEmptyString($phrasentext_id)) return error('Not a valid phrasentext_id');
-
- return $this->_ci->PhrasentextModel->load($phrasentext_id);
- }
+ return json_encode($this->_phrases);
+ }
/**
- * getPhrases() - Retrieves phrases from the DB
+ * getPhrase() - loads a specific Phrase
+ */
+ public function getPhrase($phrase_id)
+ {
+ if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
+
+ return $this->_ci->PhraseModel->load($phrase_id);
+ }
+
+ /**
+ * getPhrases() - Retrieves phrases from the DB
* The given parameter are the same needed to read from the table system.tb_phrase
- */
- public function getPhrases($app, $sprache, $phrase = null, $orgeinheit_kurzbz = null, $orgform_kurzbz = null, $blockTags = null)
- {
+ */
+ public function getPhrases($app, $sprache, $phrase = null, $orgeinheit_kurzbz = null, $orgform_kurzbz = null, $blockTags = null)
+ {
if (isset($app) && isset($sprache))
{
$result = $this->_ci->PhraseModel->getPhrases($app, $sprache, $phrase, $orgeinheit_kurzbz, $orgform_kurzbz);
@@ -138,31 +116,7 @@ class PhrasesLib
}
return $result;
- }
-
- /**
- * insertPhraseinhalt() - will load tbl_vorlagestudiengang for a spezific Template.
- */
- public function insertPhraseinhalt($data)
- {
- return $this->_ci->PhrasentextModel->insert($data);
- }
-
- /**
- * getVorlagetextById() - will load tbl_vorlagestudiengang for a spezific Template.
- */
- public function getVorlagetextById($vorlagestudiengang_id)
- {
- return $this->_ci->VorlageStudiengangModel->load($vorlagestudiengang_id);
- }
-
- /**
- * saveVorlagetext() - will load tbl_vorlagestudiengang for a spezific Template.
- */
- public function updatePhraseInhalt($phrasentext_id, $data)
- {
- return $this->_ci->PhrasentextModel->update($phrasentext_id, $data);
- }
+ }
/**
* Retrieves a phrases from the the property _phrases with the given parameters
@@ -175,7 +129,7 @@ class PhrasesLib
public function t($category, $phrase, $parameters = array(), $orgeinheit_kurzbz = null, $orgform_kurzbz = null)
{
// If the property _phrases is populated
- if (is_array($this->_phrases))
+ if (!isEmptyArray($this->_phrases))
{
// Loops through the _phrases property
for ($i = 0; $i < count($this->_phrases); $i++)
@@ -200,6 +154,22 @@ class PhrasesLib
return '<< PHRASE '.$phrase.' >>';
}
+ /**
+ * Install phrases from the core
+ */
+ public function installFromCore()
+ {
+ $this->_installPhrases(APPPATH.self::CORE_PHRASES_DIRECTORY);
+ }
+
+ /**
+ * Install phrases from the given path
+ */
+ public function installFrom($phrasesDirectory)
+ {
+ $this->_installPhrases($phrasesDirectory);
+ }
+
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -215,19 +185,17 @@ class PhrasesLib
private function _extend_construct($params)
{
// Checks if the $params is an array with at least one element
- if (is_array($params) && count($params) > 0)
+ if (!isEmptyArray($params))
{
$parameters = $params[0]; // temporary variable
$isIndexArray = false; //flag for indexed array
// If there are parameters
- if (is_array($parameters) && count($parameters) > 0)
+ if (!isEmptyArray($parameters))
{
$categories = $parameters[0]; // categories is always the first parameter
- if (!is_array($categories)) // if it is not an array, then convert into one
- {
- $categories = array($categories);
- }
+ // If it is not an array, then convert into one
+ if (!is_array($categories)) $categories = array($categories);
// Retrieves the language of the logged user
$language = getUserLanguage(count($parameters) == 2 ? $parameters[1] : null);
@@ -267,7 +235,7 @@ class PhrasesLib
// If language is not default language and phrasentext is null -> fallback to default language
if ($language != DEFAULT_LANGUAGE)
{
- // get array with phrasentexte in the default language
+ // Get array with phrasentexte in the default language
$defaultPhrases = null;
if ($isIndexArray)
{
@@ -278,19 +246,19 @@ class PhrasesLib
$defaultPhrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndPhrasesAndLanguage($categories, DEFAULT_LANGUAGE);
}
- // combine array with phrasentexte in users language and in default language
+ // Combine array with phrasentexte in users language and in default language
// (default used if phrasentext in users language is null or not set)
if (hasData($phrases) && hasData($defaultPhrases))
{
- // loop through phrases in default language
+ // Loop through phrases in default language
foreach ($defaultPhrases->retval as $defaultPhrase)
{
$found = false; // flag for found phrase
- // loop through phrases in users language
+ // Loop through phrases in users language
foreach ($phrases->retval as $phrase)
{
- // if same phrase and category found and text is not null
+ // If same phrase and category found and text is not null
// use phrase in users language
if ($phrase->phrase == $defaultPhrase->phrase
&& $phrase->category == $defaultPhrase->category
@@ -301,13 +269,11 @@ class PhrasesLib
}
}
- // otherwise use phrase in default language
- if (!$found)
- {
- array_push($phrases->retval, $defaultPhrase);
- }
+ // Otherwise use phrase in default language
+ if (!$found) array_push($phrases->retval, $defaultPhrase);
}
}
+ // Otherwise if only defaultPhrases have data
elseif (hasData($defaultPhrases))
{
$phrases = $defaultPhrases;
@@ -315,18 +281,226 @@ class PhrasesLib
}
// If there are phrases loaded then store them in the property _phrases
- if (hasData($phrases))
- {
- $this->_phrases = $phrases->retval;
- }
+ if (hasData($phrases)) $this->_phrases = $phrases->retval;
}
/**
- * Returns the property _phrases JSON encoded
- * @return json encoded property _phrases
+ * Install phrases from the given directory
*/
- public function getJSON()
+ private function _installPhrases($phrasesDirectory)
{
- return json_encode($this->_phrases);
+ $this->_ci->eprintflib->printInfo('------------------------------------------------------------------------------------------');
+ $this->_ci->eprintflib->printInfo('Phrases installation started from: '.$phrasesDirectory);
+
+ // If the given directory name does not exist
+ if (!is_dir($phrasesDirectory))
+ {
+ $this->_ci->eprintflib->printError('The directory '.$phrasesDirectory.' does not exist');
+ }
+ else // otherwise install the phrases from the given directory
+ {
+ // Get the list of category files from the given directory
+ $phrasesCategoryFiles = scandir($phrasesDirectory);
+
+ if ($phrasesCategoryFiles == false)
+ {
+ $this->_ci->eprintflib->printError('An error occurred while trying to access to the given directory: '.$phrasesDirectory);
+ }
+ else
+ {
+ // If no files are inside the given directory
+ if (count($phrasesCategoryFiles) == 2)
+ {
+ $this->_ci->eprintflib->printInfo('No phrases files are inside the given directory: '.$phrasesDirectory);
+ }
+
+ // For each file in this directory that represents a phrases category
+ foreach ($phrasesCategoryFiles as $phrasesCategoryFile)
+ {
+ // Gets the infos about the file
+ $pathInfo = pathinfo($phrasesDirectory.$phrasesCategoryFile);
+
+ // Skip the upper directory, the same directory and files that are not a php file
+ if ($phrasesCategoryFile != '.'
+ && $phrasesCategoryFile != '..'
+ && $pathInfo['extension'] == 'php')
+ {
+ // Include the php file that contains phrases for that category
+ require_once($phrasesDirectory.$phrasesCategoryFile);
+
+ // If this file contains an array called phrases
+ if (isset($phrases) && is_array($phrases))
+ {
+ $addPhrases = $this->_addPhrases($phrases); // add them to the database
+
+ // If a blocking error occurred then print an error and stop the execution
+ if (isError($addPhrases))
+ {
+ $this->_ci->eprintflib->printError(getError($addPhrases));
+ break;
+ }
+ }
+ else // otherwise print an error and continue with the next file
+ {
+ $this->_ci->eprintflib->printInfo(
+ 'The file '.$phrasesDirectory.$phrasesCategoryFile.' does not contain an array called "phrases"'
+ );
+ }
+
+ // Clean for the next file
+ unset($phrases);
+ }
+ }
+ }
+ }
+
+ $this->_ci->eprintflib->printInfo('Phrases installation ended');
+ $this->_ci->eprintflib->printInfo('------------------------------------------------------------------------------------------');
+ }
+
+ /**
+ * Add new phrases to the database
+ */
+ private function _addPhrases($phrases)
+ {
+ // For eache given phrase
+ foreach ($phrases as $phrase)
+ {
+ $phrase_id = null; // The id of the new/existing phrase
+
+ // Checks the mandatory fields, if one of them is not valid continue with the next phrase
+ if (!$this->_isValidElement($phrase, self::APP)) continue;
+ if (!$this->_isValidElement($phrase, self::CATEGORY)) continue;
+ if (!$this->_isValidElement($phrase, self::PHRASE)) continue;
+
+ // Checks if the phrase already exists in the database
+ $phraseResult = $this->_ci->PhraseModel->loadWhere(
+ array(
+ 'app' => $phrase[self::APP],
+ 'category' => $phrase[self::CATEGORY],
+ 'phrase' => $phrase[self::PHRASE]
+ )
+ );
+
+ // If an error occurred then return the error itself
+ if (isError($phraseResult)) return $phraseResult;
+
+ // If no phrase has been found
+ if (!hasData($phraseResult))
+ {
+ // Then add the phrase to the database
+ $phraseInsertResult = $this->_ci->PhraseModel->insert(
+ array(
+ 'app' => $phrase[self::APP],
+ 'category' => $phrase[self::CATEGORY],
+ 'phrase' => $phrase[self::PHRASE],
+ 'insertamum' => 'NOW()',
+ 'insertvon' => self::INSERT_BY
+ )
+ );
+
+ // If an error occurred then return the error itself
+ if (isError($phraseInsertResult)) return $phraseInsertResult;
+
+ $phrase_id = getData($phraseInsertResult); // the phrase_id of the new added phrase
+
+ // Prints info about the new added phrase
+ $this->_ci->eprintflib->printMessage(
+ sprintf(
+ 'A new phrase has been added into the database: '.
+ 'phrase_id => %s | app => %s | category => %s | phrase => %s',
+ $phrase_id,
+ $phrase[self::APP],
+ $phrase[self::CATEGORY],
+ $phrase[self::PHRASE]
+ )
+ );
+
+ }
+ else // otherwise if the phrase already exists in the database
+ {
+ $phrase_id = getData($phraseResult)[0]->phrase_id; // gets the phrase_id
+ }
+
+ // If not a valid phrase_id
+ if ($phrase_id == null) return error('Not a valid phrase id');
+
+ // For each phrase text, one text for each language
+ foreach ($phrase['phrases'] as $phraseText)
+ {
+ // Checks the mandatory fields, if one of them is not valid continue with the next phrase text
+ if (!$this->_isValidElement($phraseText, self::SPRACHE)) continue;
+ if (!$this->_isValidElement($phraseText, self::TEXT)) continue;
+
+ // Set the not optional fields if they have not been set
+ if (!isset($phraseText[self::DESCRIPTION])) $phraseText[self::DESCRIPTION] = null;
+
+ // Checks if the phrase already exists in the database
+ $phraseTextResult = $this->_ci->PhrasentextModel->loadWhere(
+ array(
+ 'phrase_id' => $phrase_id,
+ 'sprache' => $phraseText[self::SPRACHE]
+ )
+ );
+
+ // If an error occurred then return the error itself
+ if (isError($phraseTextResult)) return $phraseTextResult;
+
+ // If no text for the phrase was found
+ if (!hasData($phraseTextResult))
+ {
+ // Then add the text phrase to the database
+ $phraseTextInsertResult = $this->_ci->PhrasentextModel->insert(
+ array(
+ 'phrase_id' => $phrase_id,
+ 'sprache' => $phraseText[self::SPRACHE],
+ 'text' => $phraseText[self::TEXT],
+ 'description' => $phraseText[self::DESCRIPTION],
+ 'insertvon' => self::INSERT_BY,
+ 'insertamum' => 'NOW()',
+ 'orgeinheit_kurzbz' => null,
+ 'orgform_kurzbz' => null
+ )
+ );
+
+ // If an error occurred then return the error itself
+ if (isError($phraseTextInsertResult)) return $phraseTextInsertResult;
+
+ // Prints info about the new added text phrase
+ $this->_ci->eprintflib->printMessage(
+ sprintf(
+ 'A new text has been added into the database: '.
+ 'phrase_id => %s | sprache => %s | text => %s | description => %s',
+ $phrase_id,
+ $phraseText[self::SPRACHE],
+ substr($phraseText[self::TEXT], 0, 42).'...',
+ substr($phraseText[self::DESCRIPTION], 0, 42).'...'
+ )
+ );
+ }
+ }
+ }
+
+ // If here then no blocking errors occurred
+ return success();
+ }
+
+ /**
+ * Checks if the given array element exists in the given array and if it is a valid string and then returns true
+ * Otherwise prints an info and then returns false
+ */
+ private function _isValidElement($array, $elementName)
+ {
+ // If a not valid text is set
+ if ((isset($array[$elementName]) && isEmptyString($array[$elementName])) || !isset($array[$elementName]))
+ {
+ $this->_ci->eprintflib->printInfo('Not a valid element "'.$elementName.'":');
+ var_dump($array); // KEEP IT!!!
+ $this->_ci->eprintflib->printEOL();
+ return false;
+ }
+
+ return true;
}
}
+
diff --git a/application/phrases/abschlusspruefung.php b/application/phrases/abschlusspruefung.php
new file mode 100644
index 000000000..8f6d5403a
--- /dev/null
+++ b/application/phrases/abschlusspruefung.php
@@ -0,0 +1,867 @@
+ 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'einfuehrungstext',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hier sehen Sie alle Abschlussprüfungen zu denen Sie als Vorsitz zugeteilt sind. Klicken Sie auf den entsprechenden Link um das Prüfungsprotokoll zu erstellen.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Here you can see all the Examination where you are assigned as a chair. Select the entry to create the protocol.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'kommissionelle Bachelorprüfung',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Bachelor Examination before a Committee',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungMaster',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'kommissionelle Masterprüfung',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Master Examination before a Committee',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'arbeitBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bachelorarbeit',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Bachelor Paper',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'arbeitMaster',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Masterarbeit',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Master\'s Thesis',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsprotokoll',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsprotokoll',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Record of Examination',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'protokoll',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Protokoll',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Record of',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'abgehaltenAmBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'abgehalten am FH-Bachelorstudiengang',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'held in the UAS Bachelor\'s Degree Program',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'abgehaltenAmMaster',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'abgehalten am FH-Masterstudiengang',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'held in the UAS Master\'s Degree Program',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'studiengangskennzahl',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studiengangskennzahl',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Classification Number',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'personenkennzeichen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Personenkennzeichen',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Personal identity number',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungssenat',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungssenat',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Examining Committee',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'vorsitz',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vorsitzende/r',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Chair',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'erstpruefer',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '1. Prüfer/in',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '1st Examiner',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'zweitpruefer',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '2. Prüfer/in',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '2nd Examiner',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsdatum',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsdatum',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Exam Date',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsbeginn',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsbeginn',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Time of Start',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsende',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsende',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Time of Finish',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsantritt',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsantritt',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Examination Attempt',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'einverstaendniserklaerungName',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Einverständniserklärung',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Statement of agreement',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'einverstaendniserklaerungText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Der/Die Studierende bestätigt, sich in guter körperlicher und geistiger Verfassung zu befinden,
+ um die Prüfung durchzuführen und dass die technischen Voraussetzungen gegeben sind.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The student confirms to be in a physical and mental condition to take the exam and that the technical requirements are met.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'themaBeurteilung',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Thema und Beurteilung der',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Topic and Assessment of',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsgegenstand',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsgegenstand',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Subject of the Examination',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsnotizenBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsteil/e in Englisch (Optional - entsprechend der Vorgabe des Studiengangs):
+ << Nichtzutreffendes löschen >>
+ * Präsentation der Bachelorarbeit
+ * Prüfungsgespräch über die Bachelorarbeit
+ Fragen zur Eröffnung des Prüfungsgesprächs
+ << Bitte ausfüllen >>
+ Gründe für negative Beurteilung ODER allfällige Anmerkungen bei positiver Beurteilung
+ << Bitte ausfüllen >>
+ Allfällige besondere Vorkommnisse
+ << Bitte ausfüllen >>',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Parts of the examination held in English (Optional - in line with the degree program\'s guidelines):
+ << Delete as appropriate >>
+ * Presentation of the Bachelor Paper
+ * Examination interview on the Bachelor Paper
+ Question(s) to open the examination interview
+ << Please fill out >>
+ Reasons for failing OR any possible explanatory notes on a passing grade
+ << Please fill out >>
+ Any unusual occurrences
+ << Please fill out >>',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsnotizenMaster',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsteil/e in Englisch (Optional - entsprechend der Vorgabe des Studiengangs):
+ << Nichtzutreffendes löschen >>
+ * Präsentation der Masterarbeit
+ * Prüfungsgespräch über die Masterarbeit und Querverbindungen zu Fächern des Studienplans
+ * Prüfungsgespräch über sonstige studienplanrelevante Inhalte
+ Fragen zur Eröffnung des Prüfungsgesprächs
+ << Bitte ausfüllen >>
+ Gründe für negative Beurteilung ODER allfällige Anmerkungen bei positiver Beurteilung
+ << Bitte ausfüllen >>
+ Allfällige besondere Vorkommnisse
+ << Bitte ausfüllen >>',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Parts of the examination held in English (Optional - in line with the degree program\'s guidelines):
+ << Delete as appropriate >>
+ * Presentation of the Master\'s Thesis
+ * Examination interview on the Master\'s Thesis and its links to the subjects of the curriculum
+ * Examination interview on other subjects relevant to the curriculum
+ Question(s) to open the examination interview
+ << Please fill out >>
+ Reasons for failing OR any possible explanatory notes on a passing grade
+ << Please fill out >>
+ Any unusual occurrences
+ << Please fill out >>',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsgegenstandBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsgespräch über die Bachelorarbeit',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Presentation and Examination interview on the Bachelor Paper and its links to subjects of the curriculum',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'pruefungsgegenstandMaster',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfungsgespräch über die Masterarbeit und deren Querverbindungen zu Fächern des Studienplans sowie Prüfungsgespräch über das Stoffgebiet',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Examination interview on the Master’s Thesis and its links to subjects of the curriculum as well as examination interview on a curricular theme',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abschlusspruefung',
+ 'phrase' => 'beurteilungKriterienBachelor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Beurteilung und Kriterien Bachelorprüfung
+
+
+ Mit ausgezeichnetem Erfolg bestanden
+ Der oder die KandidatIn ist in der Lage, Wissen aus verschiedenen Lernbereichen fachlich korrekt in einem weit über das Wesentliche hinausgehenden Ausmaß souverän auf neue Situationen anzuwenden, und das noch dazu auf einem sehr hohen argumentativen Niveau.
+
+
+
+ Mit gutem Erfolg bestanden
+ Der oder die KandidatIn ist in der Lage, Wissen aus verschiedenen Lernbereichen fachlich korrekt in einem über das Wesentliche hinausgehenden Ausmaß auf neue Situationen anzuwenden, und das noch dazu auf einem hohen argumentativen Niveau.
+
+
+
+ Bestanden
+ Alle Lehrveranstaltungen (einschl. Bachelorarbeit) und Bachelorprüfung wurden positiv beurteilt.
+
+
+
+ Nicht bestanden
+
+
',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Criteria for the assessment of the Bachelor Examination
+
+
+ Passed with distinction
+ The candidate is within the scope of the task able to apply knowledge from various learning areas to new situations in a technically correct manner, far beyond what is essential, and at a very high level of argument.
+
+
+
+ Passed with merit
+ The candidate is within the scope of the task able to apply knowledge from various learning areas in a technically correct manner to an extent beyond what is essential to new situations, and at a high level of argument.
+
+
+
+ Passed
+ All courses (including Bachelor thesis) and Bachelor examination were successfully completed.
+
Der oder die KandidatIn ist in der Lage, Wissen aus verschiedenen Lernbereichen fachlich korrekt in einem weit über das Wesentliche hinausgehenden Ausmaß souverän auf neue Situationen anzuwenden, und das noch dazu auf einem sehr hohen argumentativen Niveau.
+
+
+
+
+ Mit gutem Erfolg bestanden
+
+
Masterarbeit mit "Sehr gut" oder mit "Gut" beurteilt
+
Der oder die KandidatIn ist in der Lage, Wissen aus verschiedenen Lernbereichen fachlich korrekt in einem über das Wesentliche hinausgehenden Ausmaß auf neue Situationen anzuwenden, und das noch dazu auf einem hohen argumentativen Niveau.
+
+
+
+
+ Bestanden
+ Masterarbeit und Masterprüfung wurden positiv beurteilt.
+
+
+
+ Nicht bestanden
+
+
',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Criteria for the assessment of the Master Examination
+
+
+ Passed with distinction
+
+
Master thesis was graded "excellent"
+
The candidate is within the scope of the task able to apply knowledge from various learning areas to new situations in a technically correct manner, far beyond what is essential, and at a very high level of argument.
+
+
+
+
+ Passed with merit
+
+
Master thesis graded not worse than "good"
+
The candidate is within the scope of the task able to apply knowledge from various learning areas in a technically correct manner to an extent beyond what is essential to new situations, and at a high level of argument.
+
+
+
+
+ Passed
+ Master thesis and Master examination were successfully completed.
+
+ Bitte laden Sie das Zeugnis und weitere Nachweis-Dokumente (z.B. Syllabus, Lehrpläne,
+ Modulbeschreibung…) hoch.
+
Die folgenden Informationen müssen enthalten sein: Name der das Zeugnis ausstellenden Institution;
+ Beschreibung der Lehrinhalte und / oder Lernergebnisse;
+ Zeitlicher Umfang der Lehrveranstaltung (z. B. SWS, ECTS, Unterrichtsstunden…)
+
+
Beantragung aufgrund nachgewiesener beruflicher Praxis
+ Soll die Anrechnung auf der Grundlage der beruflichen Praxis erfolgen, laden Sie bitte eine detaillierte
+ Tätigkeitsbeschreibung hoch. Dies kann durch betriebliche Ausbildungsnachweise und / oder Nachweise von
+ einschlägigen beruflichen Tätigkeiten mit Zeitangaben (z. B. durch ein qualifiziertes Arbeitszeugnis
+ oder durch Bestätigungen des Arbeitgebers) erfolgen.
+
Falls Sie für den Nachweis der Gleichwertigkeit in Bundesgesetzblättern veröffentlichte Lehrpläne (vgl. HTL, HAK…) verwenden, laden Sie bitte nur die für die Anrechnung relevanten Teile hoch oder markieren Sie diese entsprechend.
+
Falls diese Informationen nicht enthalten sind, können wir den Antrag nicht prüfen und er wird abgelehnt.
+ ",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
Application for recognition based on a certificate
+ Please upload the certificate and other supporting documents (e.g. syllabus, curricula, module description ...).
+
The following information must be included:
+ name of the institution issuing the certificate;
+ description of the teaching content and / or learning outcomes;
+ duration of the course (e.g. ECTS, contact hours per week, total number of hours taught...)
+
+
Application for recognition based on professional practice
+ If the exemption is to be based on professional practice, please upload a detailed job description. This can be done through proof of company training and / or proof of relevant occupational activities with time information (e.g. through a qualified job reference or through confirmation from the employer).
+
If you use curricula published in federal law gazettes (cf. HTL, HAK ...) to prove equivalence, please upload only the parts relevant for recognition or mark them accordingly.
+
If this information is not included, we will not be able to check the application and it will be rejected.",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungGrundAllgemeinTooltipText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Falls Sie für den Nachweis der Gleichwertigkeit in Bundesgesetzblättern veröffentlichte Lehrpläne (vgl. HTL, HAK…) verwenden, laden Sie bitte nur die für die Anrechnung relevanten Teile hoch oder markieren Sie diese entsprechend.
+
Falls diese Informationen nicht enthalten sind, können wir den Antrag nicht prüfen und er wird abgelehnt.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "If you use curricula published in federal law gazettes (cf. HTL, HAK ...) to prove equivalence, please upload only the parts relevant for recognition or mark them accordingly.
+
If this information is not included, we will not be able to check the application and it will be rejected.",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungGrundZeugnisTooltipText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "
Beantragung aufgrund eines Zeugnisses
+ Bitte laden Sie das Zeugnis und weitere Nachweis-Dokumente (z.B. Syllabus, Lehrpläne,
+ Modulbeschreibung…) hoch.
+
Die folgenden Informationen müssen enthalten sein: Name der das Zeugnis ausstellenden Institution;
+ Beschreibung der Lehrinhalte und / oder Lernergebnisse;
+ Zeitlicher Umfang der Lehrveranstaltung (z. B. SWS, ECTS, Unterrichtsstunden…)",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
Application for recognition based on a certificate
+ Please upload the certificate and other supporting documents (e.g. syllabus, curricula, module description ...).
+
The following information must be included:
+ name of the institution issuing the certificate;
+ description of the teaching content and / or learning outcomes;
+ duration of the course (e.g. ECTS, contact hours per week, total number of hours taught...)
+ ",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungGrundBerufTooltipText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "
Beantragung aufgrund nachgewiesener beruflicher Praxis
+ Soll die Anrechnung auf der Grundlage der beruflichen Praxis erfolgen, laden Sie bitte eine detaillierte
+ Tätigkeitsbeschreibung hoch. Dies kann durch betriebliche Ausbildungsnachweise und / oder Nachweise von
+ einschlägigen beruflichen Tätigkeiten mit Zeitangaben (z. B. durch ein qualifiziertes Arbeitszeugnis
+ oder durch Bestätigungen des Arbeitgebers) erfolgen.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
Application for recognition based on professional practice
+ If the exemption is to be based on professional practice, please upload a detailed job description. This can be done through proof of company training and / or proof of relevant occupational activities with time information (e.g. through a qualified job reference or through confirmation from the employer).",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoFristenTitle',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Beantragung: Fristen',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadlines',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoFristenBody',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Bitte laden Sie den Antrag in deutscher oder englischer Sprache für das
+
+
Wintersemester spätestens bis 22. September
+
Sommersemester spätestens bis 22. Februar hoch.
+
+ Die Entscheidung über den Antrag erfolgt in der Regel innerhalb von zwei Wochen ab dem 22. September
+ bzw. 22. Februar.
+
Für jede Lehrveranstaltung ist ein gesonderter Antrag beizubringen.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Please upload the application in German or English
+
+
by September 22nd for the winter semester
+
by February 22nd for the summer semester at the latest.
+
+ The decision on the application is usually made within two weeks from September 22 (winter semester) or February 22 (summer semester).
+
Falls für den Nachweis der Gleichwertigkeit in Bundesgesetzblättern veröffentlichte Lehrpläne (vgl. HTL, HAK…) verwendet werden,
+ sind die für die Anrechnung relevanten Teile entsprechend zu markieren.
+
Falls das nicht gemacht wird, wird der Antrag aus formalen Gründen abgelehnt.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Please combine and upload more than one verification document in one PDF document.
+
If you use curricula published in federal law gazettes (cf. HTL, HAK ...) to prove equivalence, please mark the parts relevant for recognition accordingly.
+
Bei Anrechnungen von schulischen bzw. hochschulischen Zeugnissen
+ Bitte geben Sie an, wo Sie die Kenntnisse erworben haben: (Hoch-)Schultyp, Standort, Fachrichtung.
+ Beispiel Schule: HTL Mödling, Fahrzeugtechnik; Beispiel Hochschule: TU Wien, Bachelor
+ Wirtschaftsinformatik
+
+
Bei Anrechnungen von beruflicher Praxis
+ Bitte geben Sie Unternehmen, Position und Funktion sowie Dauer der Beschäftigung an.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
If school or university certificates are to be recognized
+ Please indicate where you acquired the knowledge: type of (university) school, location, subject area. Example school: HTL Mödling, vehicle technology; Example university: Vienna University of Technology, Bachelor of Business Informatics
+
+
If professional practice is to be recognized
+ Please state company, position and function as well as length of employment.",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoFristenTitle',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Beantragung: Fristen',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadlines',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoFristenBody',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Die Entscheidung über den Antrag durch die Studiengangsleitung sollte
+
+
innerhalb von zwei Wochen ab dem 22. September (Wintersemester)
+
innerhalb von zwei Wochen ab dem 22. Februar (Sommersemester) erfolgen.
+
",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "The decision on the application is usually made by the program director
+
+
within two weeks from September 22 (winter semester)
+
within two weeks from February 22 (summer semester).
Positiv absolvierte Prüfungen von allgemein- und berufsbildenden höheren Schulen sind anzurechnen, sofern sie hinsichtlich Inhalt und Umfang mit der zu erlassenden Lehrveranstaltung gleichwertig sind (vgl. Satzungsteil Studienrechtliche Bestimmungen / Prüfungsordnung, § 4 Abs. 8).
+
+ Umfangmäßige Gleichwertigkeit Schule - Hochschule:
+ 1 ECTS an der FH Technikum Wien entspricht einem Arbeitsaufwand von 25 Stunden, ein Schulhalbjahr besteht aus ca. 20 Wochen.
+ Das heißt eine Unterrichtsstunde pro Woche sind insgesamt ca. 20 Stunden.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "A prerequisite for recognition is that the knowledge acquired is equivalent to the content and scope of the course.
+
Successfully completed examinations from general and vocational secondary schools are to be recognized as long as they are equivalent to the course to be exempted with regard to content and scope (cf. Statute on Studies Act Provisions / Examination Regulations, § 4 Para. 8).
+
+Equivalence school - university in terms of scope:
+ 1 ECTS at the UAS Technikum Wien corresponds to a workload of 25 hours, a school semester consists of approx. 20 weeks.
+ i.e. one teaching hour per week is a total of approx. 20 hours.",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoNachweisdokumenteTitle',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nachweisdokumente: Voraussetzung',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Prerequisites for Verification Documents',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoNachweisdokumenteBody',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "
Beantragung aufgrund eines Zeugnisses
+ Falls für den Nachweis der Gleichwertigkeit in Bundesgesetzblättern veröffentlichte Lehrpläne (vgl. HTL, HAK…) verwendet werden, sind entweder nur die für die Anrechnung relevanten Teile hochzuladen oder entsprechend zu markieren.
+
Die folgenden Informationen müssen enthalten sein:
+
+
Name der das Zeugnis ausstellenden Institution
+
Beschreibung der Lehrinhalte und / oder Lernergebnisse
+
Zeitlicher Umfang der Lehrveranstaltung (z. B. SWS, ECTS, Unterrichtsstunden…)
+
+
+
Beantragung aufgrund nachgewiesener beruflicher Praxis
+ Es wird eine detaillierte Tätigkeitsbeschreibung benötigt. Dies kann durch betriebliche Ausbildungsnachweise und / oder Nachweise von
+ einschlägigen beruflichen Tätigkeiten mit Zeitangaben (z. B. durch ein qualifiziertes Arbeitszeugnis
+ oder durch Bestätigungen des Arbeitgebers) erfolgen.
+
Falls diese Informationen nicht enthalten sind, kann der Antrag nicht geprüft werden und er wird abgelehnt.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '
Application for recognition based on a certificate
+ To prove equivalence of curricula published in federal law gazettes (cf. HTL, HAK ...), only the parts relevant for recognition should be uploaded or marked accordingly.
+
The following information must be included:
+
+
name of the institution issuing the certificate
+
description of the teaching content and / or learning outcomes
+
duration of the course (e.g. ECTS, contact hours per week, total number of hours taught...)
+
+
+
Application for recognition based on professional practice
+ If the exemption is to be based on professional practice, an upload of a detailed job description is required. This can be done through proof of company training and / or proof of relevant occupational activities with time information (e.g. through a qualified job reference or through confirmation from the employer).
+
If this information is not included, the application can not be checked adequately and it might need to be rejected.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoHerkunftKenntnisseTitle',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Herkunft der Kenntnisse: Angaben',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Prerequisites for Origin of previous Knowledge',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'reviewAnrechnungInfoHerkunftKenntnisseBody',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "
Bei Anrechnungen von schulischen bzw. hochschulischen Zeugnissen
+ Angabe, wo die Kenntnisse erworben worden sind: (Hoch-)Schultyp, Standort, Fachrichtung. Beispiel Schule: HTL Mödling, Fahrzeugtechnik; Beispiel Hochschule: TU Wien, Bachelor
+ Wirtschaftsinformatik
+
+
Bei Anrechnungen von beruflicher Praxis
+ Angabe von Unternehmen, Position und Funktion sowie Dauer der Beschäftigung.",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
If school or university certificates are to be recognized
+ Indication where the knowledge has been acquired: type of (university) school, location, subject area. Example school: HTL Mödling, vehicle technology; Example university: Vienna University of Technology, Bachelor of Business Informatics
+
+
+ Sie können sich die vorgenommenen Änderungen anzeigen lassen, indem Sie mit der Maus über
+ dem Status-Icon am Beginn der Zeile fahren. ',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'In FAS, working hours / hourly rates can be changed as long as they were not accepted by the
+ teacher. After each change, the lectureship needs to be re-ordered.
+ In case changes are made to lectureships, that have already been ordered or approved,
+ you may want to have a deeper look into what have changed. You can display that information by
+ moving the mouse over the status icon at the beginning of the line. ',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'geaenderteLehrauftraegeTextBeiErteilung',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags
+ durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.
+ Diese müssen dann von der Studiengangsleitung erneut bestellt werden.
+ Waren diese Lehraufträge zuvor bereits erteilt, wird deren Status auf \'neu\' zurückgesetzt .
+',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'In FAS, working hours / hourly rates can be changed as long as they were not accepted by the
+ teacher. After each change, the lectureship needs to be be re-ordered.
+ If the lectureship was already approved, the status will be reset to \'new\' ',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeNichtAuswaehlbar',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Warum kann ich manche Lehraufträge nicht auswählen?',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Why can\'t I select some lectureships?',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeNichtAuswaehlbarText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nur Lehraufträge mit dem Status \'neu\' und \'geändert\' können bestellt werden.
+ Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher
+ NICHT wählbar.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Only lectureships with the status \'new\' and \'changed\' can be ordered.
+ Lectureships with the status \'approved\' or \'accepted\' are only shown for your information and
+ are therefore NOT selectable.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nur Lehraufträge mit dem Status \'bestellt\' können erteilt werden.
+ Neue, angenommene und geänderte Lehraufträge werden nur zu Ihrer Information
+ angezeigt und sind daher NICHT wählbar.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Only lectureships with the status \'ordered\' can be ordered.
+ Lectureships with the status \'new\', \'accepted\' or \'changed\' are only shown for your
+ information and are therefore NOT selectable.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nur Lehraufträge mit dem Status \'erteilt\' können angenommen werden.
+ Bereits angenommene oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information
+ angezeigt und sind daher NICHT wählbar.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Only approved teaching lectureships are selectable. (status MUST be approved).
+ Lectureships, that were already accepted or that are in process are only shown for your
+ information and are therefore NOT selectable.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterAlle',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Alle Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'All All teaching lectureships (any status)',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterAlleBeiAnnahme',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Alle Alle Lehraufträge mit jedem Status',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'All All teaching lectureships (any status)',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterNeu',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Neu Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer
+ Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'New Only lectureships, that had been created in FAS. They are not ordered yet',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterBestellt',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bestellt Nur bestellte Lehraufträge (auch bestellte, die nachträglich geändert wurden)',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Ordered Only ordered lectureships. (Also ordered lectureships that have been changed)',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterErteilt',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erteilt Nur erteilte Lehraufträge (auch erteilte, die nachträglich geändert wurden)',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Approved Only approved lectureships. (Also approved lectureships that have been changed)',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterErteiltBeiAnnahme',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erteilt Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Approved Only approved teaching lectureships and such which are in process',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterAngenommen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angenommen Nur angenommene Lehraufträge',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Accepted Only accepted lectureships',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterGeaendert',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geändert Nur Lehraufträge, die geändert wurden, nachdem sie bereits
+ bestellt oder erteilt worden sind',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Changed Only lectureships, that have been changed. (After they had already been
+ ordered or approved)',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'filterDummies',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Dummies Nur Lehraufträge, die mit einem Dummylektor angelegt sind',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Dummies Only lectureships, that were assigend to a dummy lector',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeAnnehmen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wie nehme ich Lehraufträge an?',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'How do I accept lectureships?',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeAnnehmenText',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'As soon as a lectureship has been approved (status = approved), you can accept it.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeAnnehmenKlickStatusicon',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Klicken Sie unten auf das Status-Icon \'Nur erteilte anzeigen\' oder \'Alle anzeigen\'',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Click on the status icon \'Show only approved\' or \'Show all\' below',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeAnnehmenLehrauftraegeWaehlen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button \'Alle auswählen\'.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Select the teaching assignments you would like to accept either by selecting them individually or by using the \'Select all\' button.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrauftraegeAnnehmenMitKlickAnnehmen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Enter your CIS password and click on \'Accept lectureships\'.',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'sehrGut',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sehr Gut',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Excellent',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'gut',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Gut',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Good',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'befriedigend',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Befriedigend',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Satisfactory',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'genuegend',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Genügend',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Sufficient',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'nichtGenuegend',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nicht genügend',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Insufficient',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'notenschluessel',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Notenschlüssel',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'criteria',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lektorInnen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'LektorInnen',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Lectors',
+ 'description' => '',
+ )
+ )
+ )
+);
+
diff --git a/application/phrases/oehbeitrag.php b/application/phrases/oehbeitrag.php
new file mode 100644
index 000000000..52e677fe1
--- /dev/null
+++ b/application/phrases/oehbeitrag.php
@@ -0,0 +1,192 @@
+ 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'oehbeitragsVerwaltung',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "ÖH-Beitragsverwaltung",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Student Union Fee Management",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'oehbeitragHinzufuegen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Neuen ÖH-Beitrag hinzufügen",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Add new student union fee",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'studierendenbetrag',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "studierendenbetrag",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "student amount",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'versicherungsbetrag',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "versicherungsbetrag",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "insurance amount",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'oehbeitraegeFestgelegt',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "ÖH-Beiträge für alle Studiensemester festgelegt",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "show menu",
+ 'description' => 'Student union fees set for all semesters',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'fehlerHolenOehbeitraege',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehler beim Holen der Öhbeiträge",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Error when getting student union fees",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'fehlerHolenSemester',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehler beim Holen der Semester",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Error when getting semester",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'fehlerHinzufuegenOehbeitrag',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehler beim Hinzufügen des ÖH-Beitrags",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Error when adding student union fee",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'fehlerAktualisierenOehbeitrag',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehler beim Aktualisieren des ÖH-Beitrags",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Error when updating student union fee",
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'oehbeitrag',
+ 'phrase' => 'fehlerLoeschenOehbeitrag',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehler beim Löschen des ÖH-Beitrags",
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Error when deleting student union fee",
+ 'description' => '',
+ )
+ )
+ )
+);
+
diff --git a/application/phrases/password.php b/application/phrases/password.php
new file mode 100644
index 000000000..603676ff9
--- /dev/null
+++ b/application/phrases/password.php
@@ -0,0 +1,447 @@
+ 'core',
+ 'category' => 'password',
+ 'phrase' => 'changeFor',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Passwort ändern für',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Changing password for',
+ 'description' => '',
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'password',
+ 'phrase' => 'usage',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe, 1 Kleinbuchstabe und eine Ziffer. Das Passwort darf keine Leerzeichen und Umlaute enthalten. Erlaubte Sonderzeichen sind: -$#[]{}!().,*:;_',
+ 'description' => '',
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The password must contain at least 8 characters, of which 1 must be upper case, 1 lower case and 1 a numeral.
Max. Uploadvolumen: 2MB Max. Anzahl Dokumente: 1 Tipp: Um mehrere Einzelseiten zu einer Datei zusammenfügen zu können, empfehlen wir Ihnen kostenlose Programme wie bspw. PDF Merge.