summaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authorraul2014-07-07 15:50:47 +0200
committerraul2014-07-07 15:50:47 +0200
commit0793e760df82502748ea47062dfd601684e7e163 (patch)
tree68548fac6d8805978eedf65c5236fac5ce461820 /lang
parent[i18n]finished translation with sql, queries and translated hardcoded message (diff)
downloadslx-admin-0793e760df82502748ea47062dfd601684e7e163.tar.gz
slx-admin-0793e760df82502748ea47062dfd601684e7e163.tar.xz
slx-admin-0793e760df82502748ea47062dfd601684e7e163.zip
[i18n]separated jsons by template, and finished other php details
Diffstat (limited to 'lang')
-rw-r--r--lang/dictionary.json13
-rw-r--r--lang/dictionary.php25
-rw-r--r--lang/english/messages.json39
-rw-r--r--lang/german/messages.json39
-rw-r--r--lang/portuguese/messages.json39
-rw-r--r--lang/translations/dialog-generic.json7
-rw-r--r--lang/translations/main-menu-login.json52
-rw-r--r--lang/translations/main-menu-logout.json52
-rw-r--r--lang/translations/messagebox-error.json1
-rw-r--r--lang/translations/messagebox-info.json1
-rw-r--r--lang/translations/messagebox-success.json1
-rw-r--r--lang/translations/messagebox-warning.json1
-rw-r--r--lang/translations/messages.json187
-rw-r--r--lang/translations/minilinux/download.json1
-rw-r--r--lang/translations/minilinux/filelist.json37
-rw-r--r--lang/translations/page-adduser.json32
-rw-r--r--lang/translations/page-baseconfig.json27
-rw-r--r--lang/translations/page-login.json32
-rw-r--r--lang/translations/page-main-guest.json17
-rw-r--r--lang/translations/page-main.json42
-rw-r--r--lang/translations/page-minilinux.json7
-rw-r--r--lang/translations/page-news.json52
-rw-r--r--lang/translations/page-remote-tgz-list.json17
-rw-r--r--lang/translations/page-sysconfig-main.json77
-rw-r--r--lang/translations/page-syslog.json42
-rw-r--r--lang/translations/page-vmstore.json67
-rw-r--r--lang/translations/pagenav.json1
-rw-r--r--lang/translations/serversetup/ipaddress.json27
-rw-r--r--lang/translations/serversetup/ipxe.json67
-rw-r--r--lang/translations/sysconfig/ad-checkconnection.json17
-rw-r--r--lang/translations/sysconfig/ad-finish.json27
-rw-r--r--lang/translations/sysconfig/ad-start.json67
-rw-r--r--lang/translations/sysconfig/cfg-finish.json12
-rw-r--r--lang/translations/sysconfig/cfg-start.json27
-rw-r--r--lang/translations/sysconfig/custom-filelist.json7
-rw-r--r--lang/translations/sysconfig/custom-fileselect.json17
-rw-r--r--lang/translations/sysconfig/custom-upload.json27
-rw-r--r--lang/translations/sysconfig/start.json12
-rw-r--r--lang/translations/systemstatus/_page.json32
-rw-r--r--lang/translations/systemstatus/addresses.json1
-rw-r--r--lang/translations/systemstatus/diskstat.json22
-rw-r--r--lang/translations/systemstatus/services.json1
-rw-r--r--lang/translations/systemstatus/systeminfo.json67
-rw-r--r--lang/translations/vmstore/mount.json17
44 files changed, 1220 insertions, 135 deletions
diff --git a/lang/dictionary.json b/lang/dictionary.json
index b93fd231..f89f59ba 100644
--- a/lang/dictionary.json
+++ b/lang/dictionary.json
@@ -150,7 +150,7 @@
"portuguese": "Criar Menu de Boot"
},
"lang_bootMenuWarning": {
- "english": "The boot menu is outdated or has not been generated. ",
+ "english": "The boot menu is outdated or has not been generated.",
"german": "Das Bootmenü ist veraltet oder wurde noch nicht generiert.",
"portuguese": "O menu de boot está desatualizado ou ainda não foi gerado."
},
@@ -179,11 +179,6 @@
"german": "Bitte wählen Sie die IP-Adresse, über die der Server von den Clients zum Booten angesprochen werden soll.",
"portuguese": "Por favor, selecione o endereço IP que o servidor do cliente utilizará realizar o boot."
},
- "lang_client": {
- "english": "Client",
- "german": "Client",
- "portuguese": "Cliente"
- },
"lang_centralConfiguration": {
"english": "Central configurations available",
"german": "Zentral verfügbare Konfigurationen",
@@ -255,9 +250,9 @@
"portuguese": "Configurar"
},
"lang_confirmation": {
- "english": "Confirmation",
+ "english": "Repeat Password",
"german": "Wiederholen",
- "portuguese": "Confirmação"
+ "portuguese": "Repita Senha"
},
"lang_connectionWait": {
"english": "The connection to the specified AD server is now checked. Please wait a moment.",
@@ -452,7 +447,7 @@
"lang_menuCustomHint1": {
"english": "Here you have the opportunity to add your own menu code to the displayed PXE menu, eg to refer to other PXE server. The format corresponds to the syslinux menu format.",
"german": "Hier haben Sie die Möglichkeit, eigenen Menü-Code zum angezeigten PXE-Menü hinzuzufügen, um z.B. auf weitere PXE-Server zu verweisen. Das Format entspricht dem syslinux Menüformat.",
- "portuguese": "Aqui você tem a oportunidade de adicionar seu pModul hinzufügenróprio código de menu para o menu PXE exibido, por exemplo, para se referir a outro servidor PXE. O formato corresponde ao formato de menu syslinux."
+ "portuguese": "Aqui você tem a oportunidade de adicionar seu próprio código de menu para o menu PXE exibido, por exemplo, para se referir a outro servidor PXE. O formato corresponde ao formato de menu syslinux."
},
"lang_menuCustomHint2": {
"english": "You can create one or more entries. If you want to create an entry that starts automatically when the user makes a selection, assign as",
diff --git a/lang/dictionary.php b/lang/dictionary.php
index 25f28a76..e1281dd1 100644
--- a/lang/dictionary.php
+++ b/lang/dictionary.php
@@ -2,27 +2,34 @@
class Dictionary{
private static $dictionary;
- private static $langArray;
private static $messageArray;
function build(){
- self::$dictionary = json_decode(file_get_contents("lang/dictionary.json"),true);
- foreach(self::$dictionary as $key => $text){
- self::$langArray[$key] = $text[LANG];
- }
- self::$messageArray = json_decode(file_get_contents("lang/".LANG."/messages.json"),true);
+ self::$dictionary = self::sliceArray(json_decode(file_get_contents("lang/dictionary.json"),true));
+ self::$messageArray = self::sliceArray(json_decode(file_get_contents("lang/translations/messages.json"),true));
}
-
+
public static function getArray(){
- return self::$langArray;
+ return self::$dictionary;
+ }
+
+ public static function getArrayTemplate($template){
+ return self::sliceArray(json_decode(file_get_contents("lang/translations/" . $template . ".json"),true));
}
public static function translate($string){
- return self::$langArray[$string];
+ return self::$dictionary[$string];
}
public static function getMessages(){
return self::$messageArray;
}
+
+ private static function sliceArray($array){
+ foreach($array as $key => $text){
+ $array[$key] = $text[LANG];
+ }
+ return $array;
+ }
}
diff --git a/lang/english/messages.json b/lang/english/messages.json
deleted file mode 100644
index 0aecff38..00000000
--- a/lang/english/messages.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "loginfail": "Username or Password incorrect",
- "token": "Invalid token. CSRF attack?",
- "adduser-disabled": "Insufficient privileges to add more users",
- "password-mismatch": "Password and password confirmation do not match",
- "empty-field": "A field was not filled",
- "adduser-success": "User successfully added",
- "no-permission": "No sufficient privileges to access this page",
- "settings-updated": "Settings have been updated",
- "debug-mode": "The debug mode is active!",
- "value-invalid": "The value {{1}} is invalid for option {{0}} and has been ignored",
- "invalid-action": "Invalid action: {{0}}",
- "remote-timeout": "Could not download resource {{0}} ({{1}})",
- "remote-parse-failed": "Parsing the received data failed ({{0}})",
- "missing-file": "There was no file selected!",
- "invalid-file": "The file {{0}} does not exist!",
- "upload-complete": "Upload of {{0}} was successful",
- "upload-failed": "Upload failed: {{0}}",
- "config-activated": "Configuration {{0}} has been activated",
- "config-invalid": "Configuration with id {{0}} does not exist",
- "error-write": "Failed to write {{0}}",
- "error-read": "Error reading {{0}}",
- "error-archive": "Corrupted archive or unsupported format",
- "error-rename": "Could not rename {{0}} into {{1}}",
- "error-nodir": "The directory {{0}} does not exist.",
- "empty-archive": "The archive contains no files or directories",
- "error-extract": "Could not unpack archive {{0}} to {{1}}",
- "module-added": "Module successfully added",
- "module-deleted": "Module {{0}} was deleted",
- "module-in-use": "Module {{0}} is still used by Configuration {{1}}",
- "taskmanager-error": "Failed to connect to the Task Manager",
- "taskmanager-format": "Task Manager has returned invalid data",
- "task-error": "Execution failed: {{0}}",
- "invalid-ip": "No interface is configured with the address {{0}}",
- "news-set-success": "News updated successfully",
- "news-empty": "There was no news found in the database",
- "news-del-success": "News deleted",
- "reboot-unconfirmed": "Confirmation prompt to reboot not confirmed"
-}
diff --git a/lang/german/messages.json b/lang/german/messages.json
deleted file mode 100644
index 21c5316f..00000000
--- a/lang/german/messages.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "loginfail": "Benutzername oder Kennwort falsch",
- "token": "Ungültiges Token. CSRF Angriff?",
- "adduser-disabled": "Keine ausreichenden Rechte, um weitere Benutzer hinzuzufügen",
- "password-mismatch": "Passwort und Passwortbestätigung stimmen nicht überein",
- "empty-field": "Ein Feld wurde nicht ausgefüllt",
- "adduser-success": "Benutzer erfolgreich hinzugefügt",
- "no-permission": "Keine ausreichenden Rechte, um auf diese Seite zuzugreifen",
- "settings-updated": "Einstellungen wurden aktualisiert",
- "debug-mode": "Der Debug-Modus ist aktiv!",
- "value-invalid": "Der Wert {{1}} ist ungültig für die Option {{0}} und wurde ignoriert",
- "invalid-action": "Ungültige Aktion: {{0}}",
- "remote-timeout": "Konnte Ressource {{0}} nicht herunterladen ({{1}})",
- "remote-parse-failed": "Parsen der empfangenen Daten fehlgeschlagen ({{0}})",
- "missing-file": "Es wurde keine Datei ausgewählt!",
- "invalid-file": "Die Datei {{0}} existiert nicht!",
- "upload-complete": "Upload von {{0}} war erfolgreich",
- "upload-failed": "Upload schlug fehl: {{0}}",
- "config-activated": "Konfiguration {{0}} wurde aktiviert",
- "config-invalid": "Konfiguration mit ID {{0}} existiert nicht",
- "error-write": "Fehler beim Schreiben von {{0}}",
- "error-read": "Fehler beim Lesen von {{0}}",
- "error-archive": "Korruptes Archiv oder nicht unterstütztes Format",
- "error-rename": "Konnte {{0}} nicht in {{1}} umbenennen",
- "error-nodir": "Das Verzeichnis {{0}} existiert nicht.",
- "empty-archive": "Das Archiv enthält keine Dateien oder Verzeichnisse",
- "error-extract": "Konnte Archiv nicht nach {{0}} entpacken - {{1}}",
- "module-added": "Modul erfolgreich hinzugefügt",
- "module-deleted": "Modul {{0}} wurde gelöscht",
- "module-in-use": "Modul {{0}} wird noch durch Konfiguration {{1}} verwendet",
- "taskmanager-error": "Verbindung zum Taskmanager fehlgeschlagen",
- "taskmanager-format": "Taskmanager hat ungültige Daten zurückgeliefert",
- "task-error": "Ausführung fehlgeschlagen: {{0}}",
- "invalid-ip": "Kein Interface ist auf die Adresse {{0}} konfiguriert",
- "news-set-success": "News erfolgreich aktualisiert",
- "news-empty": "Es wurde keine News in der Datenbank gefunden",
- "news-del-success": "News gelöscht",
- "reboot-unconfirmed": "Sicherheitsabfrage zum Reboot nicht bestätigt"
-}
diff --git a/lang/portuguese/messages.json b/lang/portuguese/messages.json
deleted file mode 100644
index 61c2d986..00000000
--- a/lang/portuguese/messages.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "loginfail": "Nome de usuário ou senha incorreta",
- "token": "Token inválido. Ataque CSRF?",
- "adduser-disabled": "Privilégios insuficientes para adicionar mais usuários",
- "password-mismatch": "Senha e confirmação de senha não são iguais",
- "empty-field": "Um campo não foi preenchido",
- "adduser-success": "Usuário adicionado com sucesso",
- "no-permission": "Não há privilégios suficientes para acessar essa página",
- "settings-updated": "As configurações foram atualizadas",
- "debug-mode": "O modo de depuração está ativo!",
- "value-invalid": "O valor {{1}} é inválido para opção {{0}} e foi ignorado",
- "invalid-action": "Ação inválida: {{0}}",
- "remote-timeout": "Não foi possível baixar o recurso {{0}} ({{1}})",
- "remote-parse-failed": "Análise dos dados recebidos falhou ({{0}})",
- "missing-file": "Não havia nenhum arquivo selecionado!",
- "invalid-file": "O arquivo {{0}} não existe!",
- "upload-complete": "Envio de {{0}} foi bem sucedido",
- "upload-failed": "Envio falhou: {{0}}",
- "config-activated": "Configuração {{0}} foi ativado",
- "config-invalid": "Configuração com id {{0}} não existe",
- "error-write": "Falha ao escrever {{0}}",
- "error-read": "Erro ao ler {{0}}",
- "error-archive": "Arquivo corrompido ou formato não suportado",
- "error-rename": "Não foi possível renomear {{0}} em {{1}}",
- "error-nodir": "O diretório {{0}} não existe.",
- "empty-archive": "O arquivo não contém arquivos ou diretórios",
- "error-extract": "Não foi possível descompactar arquivo {{0}} para {{1}}",
- "module-added": "Módulo adicionado com sucesso",
- "module-deleted": "Módulo {{0}} foi excluído",
- "module-in-use": "Módulo {{0}} ainda é usado pela configuração {{1}}",
- "taskmanager-error": "Falha ao conectar-se ao Gerenciador de Tarefas",
- "taskmanager-format": "Gerenciador de Tarefas retornou dados inválidos",
- "task-error": "Falha na execução: {{0}}",
- "invalid-ip": "Nenhuma interface está configurada com o endereço {{0}}",
- "news-set-success": "Notícia atualizada com sucesso",
- "news-empty": "Não havia notícias no banco de dados",
- "news-del-success": "Notícia excluída",
- "reboot-unconfirmed": "Confirmação para reinicializar não foi confirmado"
-}
diff --git a/lang/translations/dialog-generic.json b/lang/translations/dialog-generic.json
new file mode 100644
index 00000000..344e6f2d
--- /dev/null
+++ b/lang/translations/dialog-generic.json
@@ -0,0 +1,7 @@
+{
+ "lang_next": {
+ "english": "Next",
+ "german": "Weiter",
+ "portuguese": "Próximo"
+ }
+}
diff --git a/lang/translations/main-menu-login.json b/lang/translations/main-menu-login.json
new file mode 100644
index 00000000..6371d85a
--- /dev/null
+++ b/lang/translations/main-menu-login.json
@@ -0,0 +1,52 @@
+{
+ "lang_clientLog": {
+ "english": "Client Log",
+ "german": "Client Log",
+ "portuguese": "Log dos Clientes"
+ },
+ "lang_settings": {
+ "english": "Settings",
+ "german": "Einstellungen",
+ "portuguese": "Opções"
+ },
+ "lang_client": {
+ "english": "Client",
+ "german": "Client",
+ "portuguese": "Cliente"
+ },
+ "lang_localization": {
+ "english": "Localization",
+ "german": "Lokalisierung",
+ "portuguese": "Localização"
+ },
+ "lang_configurationVariables": {
+ "english": "Configuration Variables",
+ "german": "KonfigurationsVariablen",
+ "portuguese": "Variáveis de Configuração"
+ },
+ "lang_server": {
+ "english": "Server",
+ "german": "Server",
+ "portuguese": "Servidor"
+ },
+ "lang_configurationBasic": {
+ "english": "Basic Configuration",
+ "german": "Grundkonfiguration",
+ "portuguese": "Configuração Básica"
+ },
+ "lang_vmLocation": {
+ "english": "VM Location",
+ "german": "VM Speicherort",
+ "portuguese": "Localização da VM"
+ },
+ "lang_news": {
+ "english": "News",
+ "german": "News",
+ "portuguese": "Novidades"
+ },
+ "lang_login": {
+ "english": "Login",
+ "german": "Anmelden",
+ "portuguese": "Entrar"
+ }
+}
diff --git a/lang/translations/main-menu-logout.json b/lang/translations/main-menu-logout.json
new file mode 100644
index 00000000..f2160065
--- /dev/null
+++ b/lang/translations/main-menu-logout.json
@@ -0,0 +1,52 @@
+{
+ "lang_clientLog": {
+ "english": "Client Log",
+ "german": "Client Log",
+ "portuguese": "Log dos Clientes"
+ },
+ "lang_settings": {
+ "english": "Settings",
+ "german": "Einstellungen",
+ "portuguese": "Opções"
+ },
+ "lang_client": {
+ "english": "Client",
+ "german": "Client",
+ "portuguese": "Cliente"
+ },
+ "lang_localization": {
+ "english": "Localization",
+ "german": "Lokalisierung",
+ "portuguese": "Localização"
+ },
+ "lang_configurationVariables": {
+ "english": "Configuration Variables",
+ "german": "KonfigurationsVariablen",
+ "portuguese": "Variáveis de Configuração"
+ },
+ "lang_server": {
+ "english": "Server",
+ "german": "Server",
+ "portuguese": "Servidor"
+ },
+ "lang_configurationBasic": {
+ "english": "Basic Configuration",
+ "german": "Grundkonfiguration",
+ "portuguese": "Configuração Básica"
+ },
+ "lang_vmLocation": {
+ "english": "VM Location",
+ "german": "VM Speicherort",
+ "portuguese": "Localização da VM"
+ },
+ "lang_news": {
+ "english": "News",
+ "german": "News",
+ "portuguese": "Novidades"
+ },
+ "lang_logout": {
+ "english": "Logout",
+ "german": "Abmelden",
+ "portuguese": "Sair"
+ }
+}
diff --git a/lang/translations/messagebox-error.json b/lang/translations/messagebox-error.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/messagebox-error.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/messagebox-info.json b/lang/translations/messagebox-info.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/messagebox-info.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/messagebox-success.json b/lang/translations/messagebox-success.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/messagebox-success.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/messagebox-warning.json b/lang/translations/messagebox-warning.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/messagebox-warning.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/messages.json b/lang/translations/messages.json
new file mode 100644
index 00000000..b4e7963e
--- /dev/null
+++ b/lang/translations/messages.json
@@ -0,0 +1,187 @@
+{
+ "loginfail":{
+ "english": "Username or Password incorrect",
+ "german": "Benutzername oder Kennwort falsch",
+ "portuguese": "Nome de usuário ou senha incorreta"
+ },
+ "token":{
+ "english": "Invalid token. CSRF attack?",
+ "german": "Ungültiges Token. CSRF Angriff?",
+ "portuguese": "Token inválido. Ataque CSRF?"
+ },
+ "adduser-disabled":{
+ "english": "Insufficient privileges to add more users",
+ "german": "Keine ausreichenden Rechte, um weitere Benutzer hinzuzufügen",
+ "portuguese": "Privilégios insuficientes para adicionar mais usuários"
+ },
+ "password-mismatch":{
+ "english": "Password and password confirmation do not match",
+ "german": "Passwort und Passwortbestätigung stimmen nicht überein",
+ "portuguese": "Senha e confirmação de senha não são iguais"
+ },
+ "empty-field":{
+ "english": "A field was not filled",
+ "german": "Ein Feld wurde nicht ausgefüllt",
+ "portuguese": "Um campo não foi preenchido"
+ },
+ "adduser-success":{
+ "english": "User successfully added",
+ "german": "Benutzer erfolgreich hinzugefügt",
+ "portuguese": "Usuário adicionado com sucesso"
+ },
+ "no-permission":{
+ "english": "No sufficient privileges to access this page",
+ "german": "Keine ausreichenden Rechte, um auf diese Seite zuzugreifen",
+ "portuguese": "Não há privilégios suficientes para acessar essa página"
+ },
+ "settings-updated":{
+ "english": "Settings have been updated",
+ "german": "Einstellungen wurden aktualisiert",
+ "portuguese": "As configurações foram atualizadas"
+ },
+ "debug-mode":{
+ "english": "The debug mode is active!",
+ "german": "Der Debug-Modus ist aktiv!",
+ "portuguese": "O modo de depuração está ativo!"
+ },
+ "value-invalid":{
+ "english": "The value {{1}} is invalid for option {{0}} and has been ignored",
+ "german": "Der Wert {{1}} ist ungültig für die Option {{0}} und wurde ignoriert",
+ "portuguese": "O valor {{1}} é inválido para opção {{0}} e foi ignorado"
+ },
+ "invalid-action":{
+ "english": "Invalid action: {{0}}",
+ "german": "Ungültige Aktion: {{0}}",
+ "portuguese": "Ação inválida: {{0}}"
+ },
+ "remote-timeout":{
+ "english": "Could not download resource {{0}} ({{1}})",
+ "german": "Konnte Ressource {{0}} nicht herunterladen ({{1}})",
+ "portuguese": "Não foi possível baixar o recurso {{0}} ({{1}})"
+ },
+ "remote-parse-failed":{
+ "english": "Parsing the received data failed ({{0}})",
+ "german": "Parsen der empfangenen Daten fehlgeschlagen ({{0}})",
+ "portuguese": "Análise dos dados recebidos falhou ({{0}})"
+ },
+ "missing-file":{
+ "english": "There was no file selected!",
+ "german": "Es wurde keine Datei ausgewählt!",
+ "portuguese": "Não havia nenhum arquivo selecionado!"
+ },
+ "invalid-file":{
+ "english": "The file {{0}} does not exist!",
+ "german": "Die Datei {{0}} existiert nicht!",
+ "portuguese": "O arquivo {{0}} não existe!"
+ },
+ "upload-complete":{
+ "english": "Upload of {{0}} was successful",
+ "german": "Upload von {{0}} war erfolgreich",
+ "portuguese": "Envio de {{0}} foi bem sucedido"
+ },
+ "upload-failed":{
+ "english": "Upload failed: {{0}}",
+ "german": "Upload schlug fehl: {{0}}",
+ "portuguese": "Envio falhou: {{0}}"
+ },
+ "config-activated":{
+ "english": "Configuration {{0}} has been activated",
+ "german": "Konfiguration {{0}} wurde aktiviert",
+ "portuguese": "Configuração {{0}} foi ativada"
+ },
+ "config-invalid":{
+ "english": "Configuration with id {{0}} does not exist",
+ "german": "Konfiguration mit ID {{0}} existiert nicht",
+ "portuguese": "Configuração com id {{0}} não existe"
+ },
+ "error-write":{
+ "english": "Failed to write {{0}}",
+ "german": "Fehler beim Schreiben von {{0}}",
+ "portuguese": "Erro ao escrever {{0}}"
+ },
+ "error-read":{
+ "english": "Error reading {{0}}",
+ "german": "Fehler beim Lesen von {{0}}",
+ "portuguese": "Erro ao ler {{0}}"
+ },
+ "error-archive":{
+ "english": "Corrupted archive or unsupported format",
+ "german": "Korruptes Archiv oder nicht unterstütztes Format",
+ "portuguese": "Arquivo corrompido ou formato não suportado"
+ },
+ "error-rename":{
+ "english": "Could not rename {{0}} into {{1}}",
+ "german": "Konnte {{0}} nicht in {{1}} umbenennen",
+ "portuguese": "Não foi possível renomear {{0}} em {{1}}"
+ },
+ "error-nodir":{
+ "english": "The directory {{0}} does not exist.",
+ "german": "Das Verzeichnis {{0}} existiert nicht.",
+ "portuguese": "O diretório {{0}} não existe."
+ },
+ "empty-archive":{
+ "english": "The archive contains no files or directories",
+ "german": "Das Archiv enthält keine Dateien oder Verzeichnisse",
+ "portuguese": "O arquivo não contém arquivos ou diretórios"
+ },
+ "error-extract":{
+ "english": "Could not unpack archive {{0}} to {{1}}",
+ "german": "Konnte Archiv nicht nach {{0}} entpacken - {{1}}",
+ "portuguese": "Não foi possível descompactar arquivo {{0}} para {{1}}"
+ },
+ "module-added":{
+ "english": "Module successfully added",
+ "german": "Modul erfolgreich hinzugefügt",
+ "portuguese": "Módulo adicionado com sucesso"
+ },
+ "module-deleted":{
+ "english": "Module {{0}} was deleted",
+ "german": "Modul {{0}} wurde gelöscht",
+ "portuguese": "Módulo {{0}} foi excluído"
+ },
+ "module-in-use":{
+ "english": "Module {{0}} is still used by Configuration {{1}}",
+ "german": "Modul {{0}} wird noch durch Konfiguration {{1}} verwendet",
+ "portuguese": "Módulo {{0}} ainda é usado pela configuração {{1}}"
+ },
+ "taskmanager-error":{
+ "english": "Failed to connect to the Task Manager",
+ "german": "Verbindung zum Taskmanager fehlgeschlagen",
+ "portuguese": "Falha ao conectar-se ao Gerenciador de Tarefas"
+ },
+ "taskmanager-format":{
+ "english": "Task Manager has returned invalid data",
+ "german": "Taskmanager hat ungültige Daten zurückgeliefert",
+ "portuguese": "Gerenciador de Tarefas retornou dados inválidos"
+ },
+ "task-error":{
+ "english": "Execution failed: {{0}}",
+ "german": "Ausführung fehlgeschlagen: {{0}}",
+ "portuguese": "Falha na execução: {{0}}"
+ },
+ "invalid-ip":{
+ "english": "No interface is configured with the address {{0}}",
+ "german": "Kein Interface ist auf die Adresse {{0}} konfiguriert",
+ "portuguese": "Nenhuma interface está configurada com o endereço {{0}}"
+ },
+ "news-set-success":{
+ "english": "News updated successfully",
+ "german": "News erfolgreich aktualisiert",
+ "portuguese": "Notícia atualizada com sucesso"
+ },
+ "news-empty":{
+ "english": "There was no news found in the database",
+ "german": "Es wurde keine News in der Datenbank gefunden",
+ "portuguese": "Não havia notícias no banco de dados"
+ },
+ "news-del-success":{
+ "english": "News deleted",
+ "german": "News gelöscht",
+ "portuguese": "Notícia excluída"
+ },
+ "reboot-unconfirmed":{
+ "english": "Confirmation prompt to reboot not confirmed",
+ "german": "Sicherheitsabfrage zum Reboot nicht bestätigt",
+ "portuguese": "Confirmação para reinicializar não foi confirmado"
+ }
+}
diff --git a/lang/translations/minilinux/download.json b/lang/translations/minilinux/download.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/minilinux/download.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/minilinux/filelist.json b/lang/translations/minilinux/filelist.json
new file mode 100644
index 00000000..77460359
--- /dev/null
+++ b/lang/translations/minilinux/filelist.json
@@ -0,0 +1,37 @@
+{
+ "lang_canUpdate1": {
+ "english": "At least one component of",
+ "german": "Mindestens eine Komponente von",
+ "portuguese": "Pelo menos um componente de"
+ },
+ "lang_canUpdate2": {
+ "english": "can be updated. For a smooth operation, it is recommended to keep all components up to date.",
+ "german": "kann aktualisiert werden. Für einen reibungslosen Betrieb wird empfohlen, alle Komponenten auf dem aktuellen Stand zu halten.",
+ "portuguese": "pode ser atualizado. Para um bom funcionamento, recomenda-se manter todos os componentes atualizados."
+ },
+ "lang_update": {
+ "english": "Update",
+ "german": "Aktualisieren",
+ "portuguese": "Atualizar"
+ },
+ "lang_systemUpdated": {
+ "english": "The system is up to date.",
+ "german": "Das System ist auf dem aktuellen Stand.",
+ "portuguese": "O sistema está atualizado."
+ },
+ "lang_actual": {
+ "english": "Actual",
+ "german": "Aktuell",
+ "portuguese": "Atual"
+ },
+ "lang_outdated": {
+ "english": "Outdated",
+ "german": "Veraltet",
+ "portuguese": "Desatualizado"
+ },
+ "lang_configurationPackageNotFound": {
+ "english": "Configuration package not found!",
+ "german": "Keine Konfigurationspakete gefunden!",
+ "portuguese": "Pacote de configuração não encontrado!"
+ }
+}
diff --git a/lang/translations/page-adduser.json b/lang/translations/page-adduser.json
new file mode 100644
index 00000000..60b57df3
--- /dev/null
+++ b/lang/translations/page-adduser.json
@@ -0,0 +1,32 @@
+{
+ "lang_createUser": {
+ "english": "Create User",
+ "german": "Benutzer anlegen",
+ "portuguese": "Criar Usuário"
+ },
+ "lang_username": {
+ "english": "Username",
+ "german": "Benutzerkennung",
+ "portuguese": "Nome de Usuário"
+ },
+ "lang_password": {
+ "english": "Password",
+ "german": "Passwort",
+ "portuguese": "Senha"
+ },
+ "lang_confirmation": {
+ "english": "Repeat Password",
+ "german": "Wiederholen",
+ "portuguese": "Repita Senha"
+ },
+ "lang_fullName": {
+ "english": "Full Name",
+ "german": "Vollständiger Name",
+ "portuguese": "Nome Completo"
+ },
+ "lang_telephone": {
+ "english": "Telephone",
+ "german": "Telefon",
+ "portuguese": "Telefone"
+ }
+}
diff --git a/lang/translations/page-baseconfig.json b/lang/translations/page-baseconfig.json
new file mode 100644
index 00000000..ef5548ab
--- /dev/null
+++ b/lang/translations/page-baseconfig.json
@@ -0,0 +1,27 @@
+{
+ "lang_basicConfiguration": {
+ "english": "Basic Configuration",
+ "german": "Basiskonfiguration",
+ "portuguese": "Configuração Básica"
+ },
+ "lang_help": {
+ "english": "Help",
+ "german": "Hilfe",
+ "portuguese": "Ajuda"
+ },
+ "lang_close": {
+ "english": "Close",
+ "german": "Schließen",
+ "portuguese": "Fechar"
+ },
+ "lang_save": {
+ "english": "Save",
+ "german": "Speichern",
+ "portuguese": "Salvar"
+ },
+ "lang_reset": {
+ "english": "Reset",
+ "german": "Zurücksetzen",
+ "portuguese": "Limpar"
+ }
+}
diff --git a/lang/translations/page-login.json b/lang/translations/page-login.json
new file mode 100644
index 00000000..2594e763
--- /dev/null
+++ b/lang/translations/page-login.json
@@ -0,0 +1,32 @@
+{
+ "lang_enter": {
+ "english": "Enter",
+ "german": "Anmeldung",
+ "portuguese": "Entrar"
+ },
+ "lang_username": {
+ "english": "Username",
+ "german": "Benutzerkennung",
+ "portuguese": "Nome de Usuário"
+ },
+ "lang_password": {
+ "english": "Password",
+ "german": "Passwort",
+ "portuguese": "Senha"
+ },
+ "lang_rememberID": {
+ "english": "Remeber ID",
+ "german": "Angemeldet bleiben",
+ "portuguese": "Lembrar ID"
+ },
+ "lang_login": {
+ "english": "Login",
+ "german": "Anmelden",
+ "portuguese": "Entrar"
+ },
+ "lang_register": {
+ "english": "Register",
+ "german": "Registrieren",
+ "portuguese": "Registrar"
+ }
+}
diff --git a/lang/translations/page-main-guest.json b/lang/translations/page-main-guest.json
new file mode 100644
index 00000000..802b5ecc
--- /dev/null
+++ b/lang/translations/page-main-guest.json
@@ -0,0 +1,17 @@
+{
+ "lang_welcome": {
+ "english": "Welcome",
+ "german": "Willkommen",
+ "portuguese": "Bem-vindo"
+ },
+ "lang_introGuest": {
+ "english": "This is the administration interface of the local bwLehrpool intallation. Please authenticate yourself to adjust settings.",
+ "german": "Dies ist das Administrations-Interface der lokalen bwLehrpool-Installation. Bitte authentifizieren Sie sich, um Einstellungen vorzunehmen.",
+ "portuguese": "Esta é a interface de administração da instalação local do bwLehrpool. Por favor, autentique-se para ajustar opções;"
+ },
+ "lang_login": {
+ "english": "Login",
+ "german": "Anmelden",
+ "portuguese": "Entrar"
+ }
+}
diff --git a/lang/translations/page-main.json b/lang/translations/page-main.json
new file mode 100644
index 00000000..d62b69b8
--- /dev/null
+++ b/lang/translations/page-main.json
@@ -0,0 +1,42 @@
+{
+ "lang_welcome": {
+ "english": "Welcome",
+ "german": "Willkommen",
+ "portuguese": "Bem-vindo"
+ },
+ "lang_intro": {
+ "english": "This is the bwLehrpool configuration interface.",
+ "german": "Dies ist die bwLehrpool Konfigurationsoberfläche.",
+ "portuguese": "Esta é a interface de configuração do bwLehrpool."
+ },
+ "lang_vmLocationNotSet": {
+ "english": "A location for the virtual machine is not set yet.",
+ "german": "Es ist noch kein Speicherort für die Virtuellen Maschinen festgelegt.",
+ "portuguese": "Uma localização para a máquina virtual ainda não foi escolhida."
+ },
+ "lang_configure": {
+ "english": "Configure",
+ "german": "Konfigurieren",
+ "portuguese": "Configurar"
+ },
+ "lang_bootMenuWarning": {
+ "english": "The boot menu is outdated or has not been generated.",
+ "german": "Das Bootmenü ist veraltet oder wurde noch nicht generiert.",
+ "portuguese": "O menu de boot está desatualizado ou ainda não foi gerado."
+ },
+ "lang_minilinuxMissing": {
+ "english": "Important files from the mini Linux installation are missing.",
+ "german": "Wichtige Dateien der MiniLinux-Installation fehlen.",
+ "portuguese": "Arquivos importantes da instalação do minilinux estão faltando."
+ },
+ "lang_systemConfigurationNotChosen": {
+ "english": "A system configuration has not been chosen yet.",
+ "german": "Es wurde noch keine Systemkonfiguration ausgewählt.",
+ "portuguese": "Uma configuração de sistema ainda não foi escolhida."
+ },
+ "lang_systemConfiguration": {
+ "english": "System Configuration",
+ "german": "Systemkonfiguration",
+ "portuguese": "Confguração do Sistema"
+ }
+}
diff --git a/lang/translations/page-minilinux.json b/lang/translations/page-minilinux.json
new file mode 100644
index 00000000..d7adcdf9
--- /dev/null
+++ b/lang/translations/page-minilinux.json
@@ -0,0 +1,7 @@
+{
+ "lang_listObtained": {
+ "english": "List is obtained...",
+ "german": "Liste wird abgerufen...",
+ "portuguese": "A lista é carregada..."
+ }
+}
diff --git a/lang/translations/page-news.json b/lang/translations/page-news.json
new file mode 100644
index 00000000..3b110393
--- /dev/null
+++ b/lang/translations/page-news.json
@@ -0,0 +1,52 @@
+{
+ "lang_newsIntro": {
+ "english": "Here you have the possibility to edit the news displayed to the bwLehrpool clients.",
+ "german": "Hier haben Sie die Möglichkeit, die von bwLehrpool-Clients angezeigten News zu editieren.",
+ "portuguese": "Aqui você tem a possibilidade de editar as novidades que são mostradas para os clientes do bwLehrpool."
+ },
+ "lang_activeNews": {
+ "english": "Active News",
+ "german": "Aktive News",
+ "portuguese": "Novidades"
+ },
+ "lang_latestUpdate": {
+ "english": "Latest update",
+ "german": "Letzte Aktualisierung",
+ "portuguese": "Última atualização"
+ },
+ "lang_title": {
+ "english": "Title",
+ "german": "Titel",
+ "portuguese": "Título"
+ },
+ "lang_content": {
+ "english": "Content",
+ "german": "Inhalt",
+ "portuguese": "Conteúdo"
+ },
+ "lang_save": {
+ "english": "Save",
+ "german": "Speichern",
+ "portuguese": "Salvar"
+ },
+ "lang_newsOld": {
+ "english": "Old News",
+ "german": "Alte News",
+ "portuguese": "Novidades Antigas"
+ },
+ "lang_date": {
+ "english": "Date",
+ "german": "Datum",
+ "portuguese": "Data"
+ },
+ "lang_show": {
+ "english": "Show",
+ "german": "Ansehen",
+ "portuguese": "Mostrar"
+ },
+ "lang_delete": {
+ "english": "Delete",
+ "german": "Löschen",
+ "portuguese": "Deletar"
+ }
+}
diff --git a/lang/translations/page-remote-tgz-list.json b/lang/translations/page-remote-tgz-list.json
new file mode 100644
index 00000000..c6752cf3
--- /dev/null
+++ b/lang/translations/page-remote-tgz-list.json
@@ -0,0 +1,17 @@
+{
+ "lang_systemConfiguration": {
+ "english": "System Configuration",
+ "german": "Systemkonfiguration",
+ "portuguese": "Confguração do Sistema"
+ },
+ "lang_centralConfiguration": {
+ "english": "Central configurations available",
+ "german": "Zentral verfügbare Konfigurationen",
+ "portuguese": "Configurações centrais disponíveis"
+ },
+ "lang_configurationPackageNotFound": {
+ "english": "Configuration package not found!",
+ "german": "Keine Konfigurationspakete gefunden!",
+ "portuguese": "Pacote de configuração não encontrado!"
+ }
+}
diff --git a/lang/translations/page-sysconfig-main.json b/lang/translations/page-sysconfig-main.json
new file mode 100644
index 00000000..7a72afcc
--- /dev/null
+++ b/lang/translations/page-sysconfig-main.json
@@ -0,0 +1,77 @@
+{
+ "lang_availableSystem": {
+ "english": "Available System Configuration",
+ "german": "Verfügbare Systemkonfigurationen",
+ "portuguese": "Configurações de Sistema Disponíveis"
+ },
+ "lang_activate": {
+ "english": "Activate",
+ "german": "Aktivieren",
+ "portuguese": "Ativar"
+ },
+ "lang_close": {
+ "english": "Close",
+ "german": "Schließen",
+ "portuguese": "Fechar"
+ },
+ "lang_systemConfigurationNotFound": {
+ "english": "No system configurations found.\n Create a new configuration from the configuration modules listed below.",
+ "german": "Keine Systemkonfigurationen gefunden.Erstellen Sie eine neue Konfiguration aus den unten aufgeführten Konfigurationsmodulen.",
+ "portuguese": "Nenhuma configuração de sistena encontrada. Crie uma nova configuração a partir dos módulos de configuração abaixo."
+ },
+ "lang_systemConfigurationAlert": {
+ "english": "Before you can create a system configuration, you must first create a configuration module.",
+ "german": "Bevor Sie eine Systemkonfiguration erstellen können, müssen Sie zunächst ein Konfigurationsmodul erzeugen.",
+ "portuguese": "Antes de criar uma configuração de sistema, você deve criar primeiro um módulo de configuração."
+ },
+ "lang_newConfiguration": {
+ "english": "New Configuration",
+ "german": "Neue Konfiguration",
+ "portuguese": "Nova configuração"
+ },
+ "lang_availableModules": {
+ "english": "Available Configuration Modules",
+ "german": "Verfügbare Konfigurationsmodule",
+ "portuguese": "Módulos de Configuração Disponíveis"
+ },
+ "lang_show": {
+ "english": "Show",
+ "german": "Ansehen",
+ "portuguese": "Mostrar"
+ },
+ "lang_delete": {
+ "english": "Delete",
+ "german": "Löschen",
+ "portuguese": "Deletar"
+ },
+ "lang_configurationModuleNotFound": {
+ "english": "Configuration module not found!",
+ "german": "Keine Konfigurationsmodule gefunden!",
+ "portuguese": "Módulo de configuração não encontrado!"
+ },
+ "lang_newModule": {
+ "english": "New Module",
+ "german": "Neues Modul",
+ "portuguese": "Novo Módulo"
+ },
+ "lang_systemConfiguration": {
+ "english": "System Configuration",
+ "german": "Systemkonfiguration",
+ "portuguese": "Confguração do Sistema"
+ },
+ "lang_helpSystemConfiguration": {
+ "english": "The fundamental localization of the bwLehrpool system is done through a system configuration. These include aspects such as the authentication method for users (eg Active Directory, LDAP), printer configuration, home directories, etc. A system configuration is composed of one or more configuration modules, which can be managed at the bottom of this page.",
+ "german": "Über eine Systemkonfiguration wird die grundlegende Lokalisierung des bwLehrpool-Systems durchgeführt. Dazu gehören Aspekte wie das Authentifizierungsverfahren für Benutzer (z.B. Active Directory, LDAP), Druckerkonfiguration, Home-Verzeichnisse, etc. Eine Systemkonfiguration setzt sich aus einem oder mehreren Konfigurationsmodulen zusammen, welche im unteren Bereich dieser Seite verwaltet werden können.",
+ "portuguese": "A localização fundamental do sistema bwLehrpool é feita através de uma configuração de sistema. Isso inclui aspectos como o método de autenticação de usuários (por exemplo, Diretório Ativo, LDAP), configuração de impressora, diretórios home, etc. Uma configuração de sistema é composta por um ou mais módulo de configuração, que podem ser gerenciados na parte inferior da página."
+ },
+ "lang_moduleConfiguration": {
+ "english": "Module Configuration",
+ "german": "Konfigurationsmodule",
+ "portuguese": "Configuração de Módulo"
+ },
+ "lang_helpModuleConfiguration": {
+ "english": "Configuration modules are the building blocks from which a system configuration is created. Here you can create both generic modules by a wizard, as well as create completely custom modules (advanced Linux knowledge required).",
+ "german": "Konfigurationsmodule sind die Bausteine, aus denen eine Systemkonfiguration erstellt wird. Hier lassen sich sowohl generische Module durch einen Wizard anlegen, als auch komplett eigene Module erstellen (fortgeschritten, Linuxkenntnisse erforderlich).",
+ "portuguese": "Módulos de configuração são as peças fundamentais para a criação de uma configuração de sistema. Aqui você pode criar tanto módulos genéricos através de nossa interface, tanto quanto criar módulos completamente customizados (é necessário conhecimento de Linux avançado)."
+ }
+}
diff --git a/lang/translations/page-syslog.json b/lang/translations/page-syslog.json
new file mode 100644
index 00000000..9d0a0bd9
--- /dev/null
+++ b/lang/translations/page-syslog.json
@@ -0,0 +1,42 @@
+{
+ "lang_clientLog": {
+ "english": "Client Log",
+ "german": "Client Log",
+ "portuguese": "Log dos Clientes"
+ },
+ "lang_filter": {
+ "english": "Filter",
+ "german": "Filter",
+ "portuguese": "Filtro"
+ },
+ "lang_not": {
+ "english": "not",
+ "german": "not",
+ "portuguese": "não"
+ },
+ "lang_go": {
+ "english": "Go",
+ "german": "Los",
+ "portuguese": "Ir"
+ },
+ "lang_when": {
+ "english": "When",
+ "german": "Wann",
+ "portuguese": "Quando"
+ },
+ "lang_client": {
+ "english": "Client",
+ "german": "Client",
+ "portuguese": "Cliente"
+ },
+ "lang_event": {
+ "english": "Event",
+ "german": "Ereignis",
+ "portuguese": "Evento"
+ },
+ "lang_details": {
+ "english": "Details",
+ "german": "Details",
+ "portuguese": "Detalhes"
+ }
+}
diff --git a/lang/translations/page-vmstore.json b/lang/translations/page-vmstore.json
new file mode 100644
index 00000000..0cfaf596
--- /dev/null
+++ b/lang/translations/page-vmstore.json
@@ -0,0 +1,67 @@
+{
+ "lang_vmLocation": {
+ "english": "VM Location",
+ "german": "VM Speicherort",
+ "portuguese": "Localização da VM"
+ },
+ "lang_vmLocationChoose": {
+ "english": "Please choose where the images of virtual machines will be stored.",
+ "german": "Bitte wählen Sie, wo die Images der Virtuellen Maschinen gespeichert werden sollen.",
+ "portuguese": "Por favor, escolha aonde as imagens das máquinas virtuais serão armazenadas."
+ },
+ "lang_intern": {
+ "english": "Intern",
+ "german": "Intern",
+ "portuguese": "Interno"
+ },
+ "lang_noAdditionalInformation": {
+ "english": "No additional cofiguration required",
+ "german": "Keine Weitere Konfiguration notwendig",
+ "portuguese": "Nenhuma configuração adicional necessária"
+ },
+ "lang_readWrite": {
+ "english": "Read/Write Access",
+ "german": "Lese/Schreib-Zugangsdaten",
+ "portuguese": "Acesso Leitura/Escrita"
+ },
+ "lang_username": {
+ "english": "Username",
+ "german": "Benutzerkennung",
+ "portuguese": "Nome de Usuário"
+ },
+ "lang_password": {
+ "english": "Password",
+ "german": "Passwort",
+ "portuguese": "Senha"
+ },
+ "lang_readOnly": {
+ "english": "Read-only Access",
+ "german": "Nur-Lese-Zugangsdaten",
+ "portuguese": "Acesso Somente Leitura"
+ },
+ "lang_save": {
+ "english": "Save",
+ "german": "Speichern",
+ "portuguese": "Salvar"
+ },
+ "lang_close": {
+ "english": "Close",
+ "german": "Schließen",
+ "portuguese": "Fechar"
+ },
+ "lang_vmLocationHelp1": {
+ "english": "For test purposes, the VMs can be stored directly on the Satellite server. However, if you operate the delivered satellite vmdk please remember that you have only about 100GB of memory.",
+ "german": "Für Testzwecke können die VMs direkt auf dem Satellitenserver gespeichert werden. Sofern Sie jedoch die ausgelieferte Satelliten-vmdk betreiben bedenken Sie bitte, dass Sie dann nur ca. 100GB Speicher zur Verfügung haben.",
+ "portuguese": "Para fins de teste, as VMs podem ser armazenados diretamente no servidor satélite. No entanto, se você operar o vmdk do satélite entregue por favor lembre-se que você tem apenas cerca de 100 GB de memória."
+ },
+ "lang_vmLocationHelp2": {
+ "english": "In productive operation, it makes sense for this to use a high-performance network storage. This network storage can be integrated via NFS or CIFS / SMB. In any case, it must be ensured that the satellite server has write access to this network storage to add a new Virtual Machine . When using NFSv3 this can be set up IP-based, for the use of CIFS / SMB, you can access data disclosures that would entitle them to write.",
+ "german": "Im Produktivbetrieb bietet es sich an, hierfür einen performanten Netzwerkspeicher zu benutzen. Dieser Netzwerkspeicher kann per NFS oder CIFS/SMB eingebunden werden. In jedem Fall muss sichergestellt werden, dass der Satellitenserver zum Hinzufügen neuer Virtueller Maschinen Schreibzugriff auf diesen Netzwerkspeicher hat. Bei der Nutzung von NFSv3 kann dies IP-Basiert eingerichtet werden, für die Nutzung von CIFS/SMB können Sie Zugangsdaten angaben, die zum Schreiben berechtigen.",
+ "portuguese": "Em operação, faz sentido para este usar um armazenamento de rede de alto desempenho. Este armazenamento de rede pode ser integrado através de NFS ou CIFS / SMB. Em qualquer caso, deve-se assegurar de que o servidor de satélite tenha acesso de gravação para este armazenamento de rede para poder adicionar uma nova máquina virtual. Ao utilizar NFSv3 este pode ser configurado com base em IP, para o uso de CIFS / SMB, você pode acessar as divulgações de dados que lhe permitiria escrever."
+ },
+ "lang_vmLocationHelp3": {
+ "english": "The bwLehrpool clients only need read access to the network storage (and for security reasons, really can only read). In CIFS / SMB You can do this most easily by allowing passwordless guest access with read access to the share.",
+ "german": "Die bwLehrpool-Clients brauchen lediglich Lesezugriff auf den Netzwerkspeicher (und sollten aus Sicherheitsgründen auch wirklich nur lesen können). Bei CIFS/SMB erreichen Sie dies am einfachsten, indem Sie passwortlosen Gastzugriff mit Leserechten auf die Freigabe erlauben.",
+ "portuguese": "Os clientes bwLehrpool só precisam ter acesso de leitura ao armazenamento de rede (e por razões de segurança, realmente só pode ler). Em CIFS / SMB Você pode fazer isso mais facilmente, permitindo o acesso a visitantes sem senha com acesso de leitura."
+ }
+}
diff --git a/lang/translations/pagenav.json b/lang/translations/pagenav.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/pagenav.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/serversetup/ipaddress.json b/lang/translations/serversetup/ipaddress.json
new file mode 100644
index 00000000..a4e36fd2
--- /dev/null
+++ b/lang/translations/serversetup/ipaddress.json
@@ -0,0 +1,27 @@
+{
+ "lang_bootAddress": {
+ "english": "Boot Address of the Server",
+ "german": "Boot-Adresse des Servers",
+ "portuguese": "Endereço Boot do Servidor"
+ },
+ "lang_chooseIP": {
+ "english": "Please select the IP address that the client server will use to boot.",
+ "german": "Bitte wählen Sie die IP-Adresse, über die der Server von den Clients zum Booten angesprochen werden soll.",
+ "portuguese": "Por favor, selecione o endereço IP que o servidor do cliente utilizará realizar o boot."
+ },
+ "lang_active": {
+ "english": "Active",
+ "german": "Aktiv",
+ "portuguese": "Ativo"
+ },
+ "lang_set": {
+ "english": "Set",
+ "german": "Setzen",
+ "portuguese": "Conjunto"
+ },
+ "lang_bootHint": {
+ "english": "The Boot menu must be recreated after changing the IP address. Usually this is done automatically, but the process can also be triggered manually in the section of the boot menu.",
+ "german": "Das Bootmenü muss nach einer Änderung der IP-Adresse neu generiert werden. In der Regel geschieht dies automatisch, der Vorgang kann in der Sektion Bootmenü allerdings auch manuell ausgelöst werden.",
+ "portuguese": "O menu de boot deve ser recriado após alterar o endereço IP. Geralmente isso é feito automaticamente, mas o processo também pode ser acionado manualmente na seção do menu de boot."
+ }
+}
diff --git a/lang/translations/serversetup/ipxe.json b/lang/translations/serversetup/ipxe.json
new file mode 100644
index 00000000..35c1447d
--- /dev/null
+++ b/lang/translations/serversetup/ipxe.json
@@ -0,0 +1,67 @@
+{
+ "lang_bootMenu": {
+ "english": "Boot Menu",
+ "german": "Bootmenü",
+ "portuguese": "Menu de Boot"
+ },
+ "lang_bootInfo": {
+ "english": "Here adjustments can be made to the appearance of the boot menu.",
+ "german": "Hier können Anpassungen am Erscheinungsbild des Bootmenüs vorgenommen werden.",
+ "portuguese": "Aqui ajustes podem ser feitos na aparência do menu de boot."
+ },
+ "lang_bootBehavior": {
+ "english": "Default Boot Behavior",
+ "german": "Standard-Bootverhalten",
+ "portuguese": "Comportamento Padrão de Boot"
+ },
+ "lang_localHDD": {
+ "english": "Local HDD",
+ "german": "Lokale HDD",
+ "portuguese": "HDD Local"
+ },
+ "lang_menuDisplayTime": {
+ "english": "Menu Display Time",
+ "german": "Anzeigedauer des Menüs",
+ "portuguese": "Tempo de Exibição do Menu"
+ },
+ "lang_seconds": {
+ "english": "Seconds",
+ "german": "Sekunden",
+ "portuguese": "Segundos"
+ },
+ "lang_menuCustom": {
+ "english": "Custom Extra Menu",
+ "german": "Benutzerdefinierter Menüzusatz",
+ "portuguese": "Menu Adicional Customizado"
+ },
+ "lang_bootMenuCreate": {
+ "english": "Create Boot Menu",
+ "german": "Bootmenü erzeugen",
+ "portuguese": "Criar Menu de Boot"
+ },
+ "lang_menuCustomHint1": {
+ "english": "Here you have the opportunity to add your own menu code to the displayed PXE menu, eg to refer to other PXE server. The format corresponds to the syslinux menu format.",
+ "german": "Hier haben Sie die Möglichkeit, eigenen Menü-Code zum angezeigten PXE-Menü hinzuzufügen, um z.B. auf weitere PXE-Server zu verweisen. Das Format entspricht dem syslinux Menüformat.",
+ "portuguese": "Aqui você tem a oportunidade de adicionar seu próprio código de menu para o menu PXE exibido, por exemplo, para se referir a outro servidor PXE. O formato corresponde ao formato de menu syslinux."
+ },
+ "lang_menuCustomHint2": {
+ "english": "You can create one or more entries. If you want to create an entry that starts automatically when the user makes a selection, assign as",
+ "german": "Sie können ein oder mehrere Einträge erzeugen. Wenn Sie einen Eintrag erzeugen möchten, der automatisch gestartet wird, wenn der Benutzer keine Auswahl tätigt, vergeben Sie als",
+ "portuguese": "Você pode criar uma ou mais entradas. Se você quiser criar uma entrada que é iniciada automaticamente quando o usuário faz uma seleção, atribua como"
+ },
+ "lang_menuCustomHint3": {
+ "english": "and select as the default boot behavior my-entry as well.",
+ "german": "und wählen Sie als Standard-Bootverhalten ebenfalls my-entry.",
+ "portuguese": "e selecione como o comportamento de boot padrão também my-entry."
+ },
+ "lang_example": {
+ "english": "Example",
+ "german": "Beispiel",
+ "portuguese": "Por Exemplo"
+ },
+ "lang_close": {
+ "english": "Close",
+ "german": "Schließen",
+ "portuguese": "Fechar"
+ }
+}
diff --git a/lang/translations/sysconfig/ad-checkconnection.json b/lang/translations/sysconfig/ad-checkconnection.json
new file mode 100644
index 00000000..8ff1fb6c
--- /dev/null
+++ b/lang/translations/sysconfig/ad-checkconnection.json
@@ -0,0 +1,17 @@
+{
+ "lang_connectionWait": {
+ "english": "The connection to the specified AD server is now checked. Please wait a moment.",
+ "german": "Die Verbindung zum angegebenen AD-Server wird nun überprüft. Bitte haben Sie einen Moment Geduld.",
+ "portuguese": "A conexão com o servidor AD especificado agora está checada. Por favor, aguarde um momento."
+ },
+ "lang_back": {
+ "english": "Back",
+ "german": "Zurück",
+ "portuguese": "Voltar"
+ },
+ "lang_skip": {
+ "english": "Skip",
+ "german": "Überspringen",
+ "portuguese": "Pular"
+ }
+}
diff --git a/lang/translations/sysconfig/ad-finish.json b/lang/translations/sysconfig/ad-finish.json
new file mode 100644
index 00000000..d3edde83
--- /dev/null
+++ b/lang/translations/sysconfig/ad-finish.json
@@ -0,0 +1,27 @@
+{
+ "lang_adStarted": {
+ "english": "The AD-proxy is now configured and started ...",
+ "german": "Der AD-Proxy wird nun konfiguriert und gestartet...",
+ "portuguese": "O AD-proxy está configurado e começou ..."
+ },
+ "lang_generateModule": {
+ "english": "Generate Module",
+ "german": "Modul erzeugen",
+ "portuguese": "Gerar Módulo"
+ },
+ "lang_restartWizard": {
+ "english": "Restart Wizard",
+ "german": "Assistent neustarten",
+ "portuguese": "Reiniciar Assistente"
+ },
+ "lang_to": {
+ "english": "To",
+ "german": "Zur",
+ "portuguese": "Para"
+ },
+ "lang_systemConfiguration": {
+ "english": "System Configuration",
+ "german": "Systemkonfiguration",
+ "portuguese": "Confguração do Sistema"
+ }
+}
diff --git a/lang/translations/sysconfig/ad-start.json b/lang/translations/sysconfig/ad-start.json
new file mode 100644
index 00000000..2e18248e
--- /dev/null
+++ b/lang/translations/sysconfig/ad-start.json
@@ -0,0 +1,67 @@
+{
+ "lang_adText1": {
+ "english": "To set up user authentication through Active Directory, a dedicated user is required in AD next to the address of the server, which is addressed by the AD.",
+ "german": "Zum Einrichten der Benutzerauthentifizierung über ein Active Directory wird neben der Adresse des anzusprechenden Servers ein dedizierter Benutzer im AD benötigt, über welchen das AD angesprochen wird.",
+ "portuguese": "Para configurar a autenticação de usuário por meio do Active Directory, um usuário dedicado é necessário no AD próximo ao endereço do servidor, que é endereçado pelo AD."
+ },
+ "lang_adText2": {
+ "english": "This user does not need special rights, you can follow this user to evade security and the rights to log on. The user only needs to have sufficient permissions to perform an LDAP Bind on AD, and search for users.",
+ "german": "Dieser Benutzer benötigt keine besonderen Rechte, Sie können diesem Benutzer zur Sicherheit auch die Rechte zum Anmelden entziehen. Der Benutzer muss lediglich ausreichende Berechtigungen haben, um einen LDAP-Bind am AD durchzuführen, und nach Benutzern zu suchen.",
+ "portuguese": "Este usuário não precisa de direitos especiais, você pode seguir este usuário para escapar da segurança e dos direitos para fazer logon. O usuário só precisa ter permissões suficientes para executar a ligação LDAP no AD, e procurar por usuários."
+ },
+ "lang_adText3": {
+ "english": "Next the distinguished name of the user must be specified. You can determine this by dsquery command line program on a domain controller as the following call:",
+ "german": "Im Folgenden muss der Distinguished Name des Benutzers angegeben werden. Diesen können Sie ermitteln, indem Sie das Kommandozeilenprogramm dsquery auf einem Domain Controller wie folgt aufrufen:",
+ "portuguese": "A seguir o nome distinto do usuário deve ser especificado. Você pode determinar isso pelo programa de linha de comando dsquery em um controlador de domínio como a seguinte chamada:"
+ },
+ "lang_adText4": {
+ "english": "After entering all required data in the next step, it checks whether communication is possible with the AD.",
+ "german": "Im Folgenden muss der Distinguished Name des Benutzers angegeben werden. Diesen können Sie ermitteln, indem Sie das Kommandozeilenprogramm dsquery auf einem Domain Controller wie folgt aufrufen:",
+ "portuguese": "Depois de inserir todos os dados necessários na próxima etapa, ela verifica se a comunicação é possível com o AD."
+ },
+ "lang_searchBase": {
+ "english": "Search Base",
+ "german": "Suchbasis",
+ "portuguese": "Base de Pesquisa"
+ },
+ "lang_bindDN": {
+ "english": "Bind DN",
+ "german": "Bind DN",
+ "portuguese": "Vincular DN"
+ },
+ "lang_password": {
+ "english": "Password",
+ "german": "Passwort",
+ "portuguese": "Senha"
+ },
+ "lang_next": {
+ "english": "Next",
+ "german": "Weiter",
+ "portuguese": "Próximo"
+ },
+ "lang_userDirectory": {
+ "english": "User Directory",
+ "german": "Benutzerverzeichnis",
+ "portuguese": "Diretório de Usuário"
+ },
+ "lang_userDirectoryInfo1": {
+ "english": "Optional: If the clients should embed a separate directory (home directory, user directory) from a server for the user, please enter here the format in UNC notation, eg",
+ "german": "Optionale Angabe: Wenn die Clients für die Benutzer ein eigenes Verzeichnis (Homeverzeichnis, Benutzerverzeichnis) von einem Server einbinden sollen, geben Sie bitte hier das Format in UNC-Notation an, also z.B. ",
+ "portuguese": "Opcional: Se os clientes devem incorporar um diretório separado (diretório home, diretório de usuário) de um servidor para o usuário, digite aqui o formato em notação UNC, por exemplo,"
+ },
+ "lang_userDirectoryInfo2": {
+ "english": "%s is a placeholder for the user's login name.",
+ "german": "%s ist dabei ein Platzhalter für den Login-Namen des Benutzers.",
+ "portuguese": "%s é um marcador para o nome de login do usuário."
+ },
+ "lang_userDirectoryInfo3": {
+ "english": "The directory is loaded with the same credentials that the user specifies when login. (That is no Kerberos support, etc.)",
+ "german": "Das Verzeichnis wird mit den gleichen Zugangsdaten eingebunden, die der Benutzer beim Login angibt. (D.h. kein Kerberos Support o.ä.)",
+ "portuguese": "O diretório é carregado com as mesmas credenciais que o usuário especifica quando entra. (Isto é, não há suporte Kerberos, etc)"
+ },
+ "lang_close": {
+ "english": "Close",
+ "german": "Schließen",
+ "portuguese": "Fechar"
+ }
+}
diff --git a/lang/translations/sysconfig/cfg-finish.json b/lang/translations/sysconfig/cfg-finish.json
new file mode 100644
index 00000000..778970a8
--- /dev/null
+++ b/lang/translations/sysconfig/cfg-finish.json
@@ -0,0 +1,12 @@
+{
+ "lang_configurationSuccess": {
+ "english": "The configuration has been successfully created.",
+ "german": "Die Konfiguration wurde erfolgreich erstellt.",
+ "portuguese": "A configuração foi criada com sucesso."
+ },
+ "lang_configurationActive": {
+ "english": "Enable configuration",
+ "german": "Konfiguration aktivieren",
+ "portuguese": "Ativar configuração"
+ }
+}
diff --git a/lang/translations/sysconfig/cfg-start.json b/lang/translations/sysconfig/cfg-start.json
new file mode 100644
index 00000000..435bb256
--- /dev/null
+++ b/lang/translations/sysconfig/cfg-start.json
@@ -0,0 +1,27 @@
+{
+ "lang_name": {
+ "english": "Name",
+ "german": "Name",
+ "portuguese": "Nome"
+ },
+ "lang_configuration": {
+ "english": "Configuration",
+ "german": "Konfiguration",
+ "portuguese": "Configuração"
+ },
+ "lang_configurationChoose": {
+ "english": "Please select which modules will be used for this configuration.",
+ "german": "Bitte wählen Sie, welche Module für diese Konfiguration verwendet werden sollen.",
+ "portuguese": "Por favor, selecione qual os módulos serão usados ​​para esta configuração."
+ },
+ "lang_new": {
+ "english": "New",
+ "german": "Neu",
+ "portuguese": "Novo"
+ },
+ "lang_next": {
+ "english": "Next",
+ "german": "Weiter",
+ "portuguese": "Próximo"
+ }
+}
diff --git a/lang/translations/sysconfig/custom-filelist.json b/lang/translations/sysconfig/custom-filelist.json
new file mode 100644
index 00000000..4a195114
--- /dev/null
+++ b/lang/translations/sysconfig/custom-filelist.json
@@ -0,0 +1,7 @@
+{
+ "lang_back": {
+ "english": "Back",
+ "german": "Zurück",
+ "portuguese": "Voltar"
+ }
+}
diff --git a/lang/translations/sysconfig/custom-fileselect.json b/lang/translations/sysconfig/custom-fileselect.json
new file mode 100644
index 00000000..cf1d3304
--- /dev/null
+++ b/lang/translations/sysconfig/custom-fileselect.json
@@ -0,0 +1,17 @@
+{
+ "lang_moduleName": {
+ "english": "Module Name",
+ "german": "Modulname",
+ "portuguese": "Nome do Módulo"
+ },
+ "lang_checkFileContent": {
+ "english": "Here you have the possibility to check the contents of the archive again.",
+ "german": "Hier haben Sie die Möglichkeit, den Inhalt des Archivs noch einmal zu überprüfen.",
+ "portuguese": "Aqui você tem a possibilidade de verificar o conteúdo do arquivo novamente."
+ },
+ "lang_next": {
+ "english": "Next",
+ "german": "Weiter",
+ "portuguese": "Próximo"
+ }
+}
diff --git a/lang/translations/sysconfig/custom-upload.json b/lang/translations/sysconfig/custom-upload.json
new file mode 100644
index 00000000..4ce1d307
--- /dev/null
+++ b/lang/translations/sysconfig/custom-upload.json
@@ -0,0 +1,27 @@
+{
+ "lang_customModuleInfo1": {
+ "english": "About a custom module, it is possible to add arbitrary files to a Linux system that is booted clients. For this purpose, an archive can be uploaded using a file system structure that is extracted in this form 1:1 in the booted Linux.",
+ "german": "Über ein benutzerdefiniertes Modul ist es möglich, beliebige Dateien zum Linux-Grundsystem, das auf den Clients gebootet wird, hinzuzufügen. Dazu kann ein Archiv mit einer Dateisystemstruktur hochgeladen werden, die in dieser Form 1:1 in das gebootete Linux extrahiert wird.",
+ "portuguese": "Sobre um módulo personalizado, é possível adicionar arquivos arbitrários para um sistema Linux que é inicializado clientes. Para isso, um arquivo pode ser carregado através de uma estrutura do sistema de arquivos que é extraído desta forma 1:1 no Linux inicializado."
+ },
+ "lang_customModuleInfo2": {
+ "english": "Example: If the uploaded archive is the file etc/example.conf, this file will be located as /etc/example.conf to a booted client.",
+ "german": "Beispiel: Enthält das hochgeladene Archiv eine Datei etc/beispiel.conf, so wird auf einem gebooteten Client diese Datei als /etc/beispiel.conf zu finden sein.",
+ "portuguese": "Exemplo: Se o arquivo enviado for etc/examplo.conf, este arquivo estará localizado em /etc/examplo.conf para um cliente inicializado."
+ },
+ "lang_file": {
+ "english": "File",
+ "german": "Archiv",
+ "portuguese": "Arquivo"
+ },
+ "lang_supportedFiles": {
+ "english": "Supported File Formats",
+ "german": "Unterstützte Archivformate",
+ "portuguese": "Formatos de Arquivos Suportados"
+ },
+ "lang_upload": {
+ "english": "Upload",
+ "german": "Hochladen",
+ "portuguese": "Carregar"
+ }
+}
diff --git a/lang/translations/sysconfig/start.json b/lang/translations/sysconfig/start.json
new file mode 100644
index 00000000..dafab7c4
--- /dev/null
+++ b/lang/translations/sysconfig/start.json
@@ -0,0 +1,12 @@
+{
+ "lang_moduleChoose": {
+ "english": "Please select which type of configuration module you want to create.",
+ "german": "Bitte wählen Sie aus, welche Art Konfigurationsmodul Sie erstellen möchten.",
+ "portuguese": "Por favor, selecione qual tipo de módulo de configuração que você deseja criar."
+ },
+ "lang_add": {
+ "english": "Add",
+ "german": "Hinzufügen",
+ "portuguese": "Adicionar"
+ }
+}
diff --git a/lang/translations/systemstatus/_page.json b/lang/translations/systemstatus/_page.json
new file mode 100644
index 00000000..f7b46720
--- /dev/null
+++ b/lang/translations/systemstatus/_page.json
@@ -0,0 +1,32 @@
+{
+ "lang_space": {
+ "english": "Space",
+ "german": "Speicherplatz",
+ "portuguese": "Espaço"
+ },
+ "lang_services": {
+ "english": "Services",
+ "german": "Dienste",
+ "portuguese": "Serviços"
+ },
+ "lang_addressConfiguration": {
+ "english": "Address Configuration",
+ "german": "Adresskonfiguration",
+ "portuguese": "Configuração do Endereço"
+ },
+ "lang_system": {
+ "english": "System",
+ "german": "System",
+ "portuguese": "Sistema"
+ },
+ "lang_maintenance": {
+ "english": "Maintenance",
+ "german": "Wartung",
+ "portuguese": "Manutenção"
+ },
+ "lang_iAmSure": {
+ "english": "Yes, I am sure",
+ "german": "Ja, ich bin sicher",
+ "portuguese": "Sim, tenho certeza"
+ }
+}
diff --git a/lang/translations/systemstatus/addresses.json b/lang/translations/systemstatus/addresses.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/systemstatus/addresses.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/systemstatus/diskstat.json b/lang/translations/systemstatus/diskstat.json
new file mode 100644
index 00000000..9c6e15e5
--- /dev/null
+++ b/lang/translations/systemstatus/diskstat.json
@@ -0,0 +1,22 @@
+{
+ "lang_systemPartition": {
+ "english": "System Partition",
+ "german": "Systempartition",
+ "portuguese": "Partição do Sistema"
+ },
+ "lang_capacity": {
+ "english": "Capacity",
+ "german": "Kapazität",
+ "portuguese": "Capacidade"
+ },
+ "lang_vmStore": {
+ "english": "VM Store",
+ "german": "VM-Speicher",
+ "portuguese": "Loja da VM"
+ },
+ "lang_vmStoreError": {
+ "english": "Error when determining the available disk space on the VM location. Please check the configuration.",
+ "german": "Fehler beim Ermitteln des verfügbaren Speicherplatzes am VM-Speicherort. Bitte überprüfen Sie die Konfiguration.",
+ "portuguese": "Erro ao determinar o espaço em disco disponível no local da VM. Por favor, verifique a configuração."
+ }
+}
diff --git a/lang/translations/systemstatus/services.json b/lang/translations/systemstatus/services.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/lang/translations/systemstatus/services.json
@@ -0,0 +1 @@
+{}
diff --git a/lang/translations/systemstatus/systeminfo.json b/lang/translations/systemstatus/systeminfo.json
new file mode 100644
index 00000000..2682ac10
--- /dev/null
+++ b/lang/translations/systemstatus/systeminfo.json
@@ -0,0 +1,67 @@
+{
+ "lang_uptimeOS": {
+ "english": "OS Uptime",
+ "german": "OS Uptime",
+ "portuguese": "Tempo de Atividade do SO"
+ },
+ "lang_cpuLoad": {
+ "english": "CPU Load",
+ "german": "CPU-Last",
+ "portuguese": "Carga da CPU"
+ },
+ "lang_average": {
+ "english": "Average",
+ "german": "Durchschnitt",
+ "portuguese": "Média"
+ },
+ "lang_onlyOS": {
+ "english": "OS Only",
+ "german": "Nur OS",
+ "portuguese": "Apenas SO"
+ },
+ "lang_logicCPUs": {
+ "english": "Logic CPUs",
+ "german": "Logische CPUs",
+ "portuguese": "CPUs Lógicas"
+ },
+ "lang_notDetermined": {
+ "english": "Could not be determined",
+ "german": "Konnte nicht ermittelt werden",
+ "portuguese": "Não foi possível determinar"
+ },
+ "lang_ramUsage": {
+ "english": "RAM Usage",
+ "german": "RAM-Nutzung",
+ "portuguese": "Uso da RAM"
+ },
+ "lang_total": {
+ "english": "Total",
+ "german": "Gesamt",
+ "portuguese": "Total"
+ },
+ "lang_free": {
+ "english": "Free",
+ "german": "Frei",
+ "portuguese": "Livre"
+ },
+ "lang_swapUsage": {
+ "english": "swap Usage",
+ "german": "swap-Nutzung",
+ "portuguese": "Uso do swap"
+ },
+ "lang_occupied": {
+ "english": "Occupied",
+ "german": "Belegt",
+ "portuguese": "Ocupado"
+ },
+ "lang_attention": {
+ "english": "Attention!",
+ "german": "Achtung!",
+ "portuguese": "Atenção!"
+ },
+ "lang_swapWarning": {
+ "english": "Memory swap is being used. This may be an indication that the satellite server does not have enough physical memory available. In the case of performance problems or server instability you should consider equipping the server with more RAM.",
+ "german": "Es wird swap-Speicher genutzt. Dies kann ein Hinweis darauf sein, dass dem Satelliten-Server zu wenig physikalischer Speicher zur Verfügung steht. Im Falle von Performance-Problemen oder Instabilität des Servers sollten Sie erwägen, den Server mit mehr RAM auszustatten.",
+ "portuguese": "Swap de memória está sendo usado. Isso pode ser uma indicação de que o servidor de satélite não tem memória física suficiente disponível. No caso de problemas de desempenho ou instabilidade do servidor você deve considerar equipar o servidor com mais memória RAM."
+ }
+}
diff --git a/lang/translations/vmstore/mount.json b/lang/translations/vmstore/mount.json
new file mode 100644
index 00000000..377d25b9
--- /dev/null
+++ b/lang/translations/vmstore/mount.json
@@ -0,0 +1,17 @@
+{
+ "lang_vmLocationConfiguration": {
+ "english": "VM location is configured",
+ "german": "VM Speicherort wird konfiguriert",
+ "portuguese": "Localização da VM está configurada"
+ },
+ "lang_configure": {
+ "english": "Configure",
+ "german": "Konfigurieren",
+ "portuguese": "Configurar"
+ },
+ "lang_back": {
+ "english": "Back",
+ "german": "Zurück",
+ "portuguese": "Voltar"
+ }
+}