diff --git a/build/libifm.php b/build/libifm.php
index 771d0f9..86ba089 100644
--- a/build/libifm.php
+++ b/build/libifm.php
@@ -496,7 +496,7 @@ f00bar;
@@ -564,20 +564,42 @@ f00bar;
"delete": "Delete",
"directoryname": "Directory Name",
"editor_options": "Editor Options",
+ "error": "Error:",
"extract": "Extract",
"extract_filename": "Extract file - ",
+ "file_copy_to": "to",
"file_delete_confirm": "Do you really want to delete the following file -",
+ "file_delete_error": "File(s) could not be deleted",
+ "file_delete_success": "File(s) successfully deleted",
+ "file_display_error": "This file can not be displayed or edited",
"file_edit_success": "File successfully edited / created.",
+ "file_extract_error": "File could not be extracted: ",
+ "file_extract_success": "File successfully extracted",
+ "file_load_error": "The content of this file cannot be fetched",
"file_multi_delete_confirm": "Do you really want to delete these files -",
"file_new": "New File",
+ "file_rename": "Rename File",
+ "file_rename_error": "File could not be renamed: ",
+ "file_rename_success": "File successfully renamed",
"file_save_confirm": "Do you want to save the following file -",
+ "file_save_error": "File could not be edited or created: ",
+ "file_upload_error": "File could not be uploaded: ",
+ "file_upload_success": "File successfully uploaded",
"filename": "Filename",
"filename_new": "New Filename",
+ "folder_create_error": "Directory could not be created: ",
+ "folder_create_success": "Directory sucessfully created",
"folder_new": "New Folder",
+ "folder_tree_load_error": "Error while fetching the folder tree",
"footer": "IFM - improved file manager | ifm.php hidden |",
+ "general_error": "General error occured: No or broken response",
"github": "Visit the project on GitHub",
"group": "Group",
+ "invalid_data": "Invalid data from server",
"last_modified": "Last Modified",
+ "load_config_error": "Could not load configuration",
+ "load_template_error": "Could not load templates",
+ "load_text_error": "Could not load texts",
"login": "Login",
"logout": "Log Off",
"method": "Method",
@@ -586,6 +608,8 @@ f00bar;
"owner": "Owner",
"password": "Password",
"path_content": "Content of",
+ "permission_change_error": "Permissions could not be changed: ",
+ "permission_change_success": "Permissions successfully changed",
"permissions": "Permissions",
"refresh": "Refresh",
"rename": "Rename",
@@ -611,6 +635,93 @@ f00bar;
}
f00bar;
$i18n["en"] = json_decode( $i18n["en"], true );
+$i18n["de"] = <<<'f00bar'
+{
+ "ajax_request": "AJAX Request",
+ "archivename": "Name des Archivs",
+ "cancel": "Abbrechen",
+ "close": "Schließen",
+ "copy": "Kopieren",
+ "data": "Daten",
+ "delete": "Löschen",
+ "directoryname": "Ordner Name",
+ "editor_options": "Editor Optionen",
+ "error": "Fehler:",
+ "extract": "Auspacken",
+ "extract_filename": "Folgende Datei auspacken -",
+ "file_copy_to": "zu",
+ "file_delete_confirm": "Soll die folgende Datei wirklich gelöscht werden:",
+ "file_delete_error": "Datei(en) konnten nicht gelöscht werden",
+ "file_delete_success": "Datei(en) erfolgreich gelöscht",
+ "file_display_error": "Die Datei kann nicht angezeigt oder geändert werden",
+ "file_edit_success": "Datei erfolgreich geändert / angelegt.",
+ "file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden:",
+ "file_new": "Neue Datei",
+ "file_save_confirm": "Soll diese Datei wirklich gelöscht werden:",
+ "file_extract_error": "Datei konnte nicht entpackt werden: ",
+ "file_extract_success": "Datei erfolgreich entpackt",
+ "file_load_error": "Der Inhalt der Datei konnte nicht geladen werden",
+ "file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden -",
+ "file_new": "Neue Datei",
+ "file_rename": "Datei umbenennen",
+ "file_rename_error": "Datei konnte nicht umbenannt werden: ",
+ "file_rename_success": "Datei erfogreich umbenannt",
+ "file_save_confirm": "Soll diese Datei wirklich gelöscht werden -",
+ "file_save_error": "Datei konnte nicht geändert oder angelegt werden: ",
+ "file_upload_error": "Datei konnte nicht hochgeladen werden: ",
+ "file_upload_success": "Datei erfolgreich hochgeladen",
+ "filename": "Dateiname",
+ "filename_new": "Neuer Dateiname",
+ "folder_create_error": "Verzeichnis konnte nicht angelegt werden: ",
+ "folder_create_success": "Verzeichnis erfolgreich angelegt",
+ "folder_new": "Neue Ordner",
+ "folder_tree_load_error": "Fehler bei Laden des Verzeichnisbaums",
+ "footer": "IFM - verbesserter file manager | ifm.php versteckt |",
+ "general_error": "Genereller Fehler aufgetreten: Keine oder unvollständige Antwort",
+ "github": "Besuche das Projekt auf GitHub",
+ "group": "Gruppe",
+ "invalid_data": "Fehlerhafte Daten vom Server erhalten",
+ "last_modified": "Zuletzt geändert",
+ "load_config_error": "Konfiguration konnte nicht geladen werden",
+ "load_template_error": "Vorlagen konnten nicht geladen werden",
+ "load_text_error": "Texte konnten nicht geladen werden",
+ "login": "Anmeldung",
+ "logout": "Abmelden",
+ "method": "Methode",
+ "move": "Verschieben",
+ "options": "Optionen",
+ "owner": "Besitzer",
+ "password": "Passwort",
+ "path_content": "Inhalt von",
+ "permission_change_error": "Berechtigungen konnten nicht geändert werden: ",
+ "permission_change_success": "Berechtigungen erfolgreich geändert",
+ "permissions": "Berechtigungen",
+ "refresh": "Auffrischen",
+ "rename": "Umbenennen",
+ "rename_filename": "Folgende Datei umbenennen -",
+ "request": "Anfrage",
+ "response": "Antwort",
+ "save": "Speichen",
+ "save_wo_close": "Speichen ohne Schließen",
+ "search": "Suchen",
+ "search_pattern": "Muster",
+ "select_destination": "Zielort auswählen",
+ "size": "Größe",
+ "soft_tabs": "Leichte Tabulatoren",
+ "tab_size": "Tabulatoren Größe",
+ "tasks": "Aufgaben",
+ "toggle_nav": "Navigation umschalten",
+ "upload": "Hochladen",
+ "upload_drop": "Dateien zum hochladen hier hinziehen",
+ "upload_file": "Datei hochladen",
+ "upload_remote": "Hochladen von ausserhalb",
+ "upload_remote_url": "Entfernte URL zum hochladen",
+ "username": "Benutzername",
+ "word_wrap": "Zeilenumbruch"
+}
+
+f00bar;
+$i18n["de"] = json_decode( $i18n["de"], true );
$this->i18n = $i18n;
}
@@ -1067,7 +1178,7 @@ function IFM( params ) {
},
dataType: "json",
success: self.rebuildFileTable,
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( taskid ); }
});
};
@@ -1082,7 +1193,7 @@ function IFM( params ) {
this.showMessage( data.message, "e" );
return;
} else if ( ! Array.isArray( data ) ) {
- this.showMessage( "Invalid data from server", "e" );
+ this.showMessage( self.i18n.invalid_data, "e" );
return;
}
data.forEach( function( item ) {
@@ -1359,7 +1470,7 @@ function IFM( params ) {
$( "#currentDir" ).val( self.currentDir );
if( config.pushState ) history.pushState( { dir: self.currentDir }, self.currentDir, "#"+encodeURIComponent( self.currentDir ) );
},
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1454,9 +1565,9 @@ function IFM( params ) {
if( data.status == "OK" ) {
self.showMessage( self.i18n.file_edit_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be edited/created:" + data.message, "e" );
+ } else self.showMessage( self.i18n.file_save_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
self.fileChanged = false;
};
@@ -1481,11 +1592,11 @@ function IFM( params ) {
self.showFileDialog( data.data.filename, data.data.content );
}
else if( data.status == "OK" && data.data.content == null ) {
- self.showMessage( "The content of this file cannot be fetched.", "e" );
+ self.showMessage( self.i18n.file_load_error, "e" );
}
- else self.showMessage( "Error: "+data.message, "e" );
+ else self.showMessage( self.i18n.error +data.message, "e" );
},
- error: function() { self.showMessage( "This file can not be displayed or edited.", "e" ); }
+ error: function() { self.showMessage( self.i18n.file_display_error, "e" ); }
});
};
@@ -1529,14 +1640,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Directory sucessfully created.", "s" );
+ self.showMessage( self.i18n.folder_create_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Directory could not be created: "+data.message, "e" );
+ self.showMessage( self.i18n.folder_create_error +data.message, "e" );
}
},
- error: function() { self.showMessage( "General error occured.", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1582,11 +1693,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File(s) successfully deleted", "s" );
+ self.showMessage( self.i18n.file_delete_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File(s) could not be deleted", "e" );
+ } else self.showMessage( self.i18n.file_delete_error, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1635,11 +1746,11 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- ifm.showMessage("File successfully renamed", "s");
+ ifm.showMessage( self.i18n.file_rename_success, "s");
ifm.refreshFileTable();
- } else ifm.showMessage("File could not be renamed: "+data.message, "e");
+ } else ifm.showMessage( self.i18n.file_rename_error +data.message, "e");
},
- error: function() { ifm.showMessage("General error occured", "e"); }
+ error: function() { ifm.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -1679,7 +1790,7 @@ function IFM( params ) {
}
});
},
- error: function() { self.hideModal(); self.showMessage( "Error while fetching the folder tree.", "e" ) }
+ error: function() { self.hideModal(); self.showMessage( self.i18n.folder_tree_load_error, "e" ) }
});
var form = document.forms.formCopyMove;
form.addEventListener( 'click', function( e ) {
@@ -1706,8 +1817,10 @@ function IFM( params ) {
* @params {string} action - action (copy|move)
*/
this.copyMove = function( sources, destination, action ) {
+ if( ! Array.isArray( sources ) )
+ sources = [sources];
var id = self.generateGuid();
- self.task_add( { id: id, name: action.charAt(0).toUpperCase() + action.slice(1) + " files to " + destination } );
+ self.task_add( { id: id, name: self.i18n[action] + " " + ( sources.length > 1 ? sources.length : sources[0].name ) + " " + self.i18n.file_copy_to + " " + destination } );
$.ajax({
url: self.api,
type: "POST",
@@ -1728,7 +1841,7 @@ function IFM( params ) {
self.refreshFileTable();
},
error: function() {
- self.showMessage( "General error occured.", "e" );
+ self.showMessage( self.i18n.general_error, "e" );
},
complete: function() {
self.task_done( id );
@@ -1790,11 +1903,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File successfully extracted", "s" );
+ self.showMessage( self.i18n.file_extract_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be extracted. Error: " + data.message, "e" );
+ } else self.showMessage( self.i18n.file_extract_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( id ); }
});
};
@@ -1855,11 +1968,11 @@ function IFM( params ) {
},
success: function(data) {
if(data.status == "OK") {
- self.showMessage("File successfully uploaded", "s");
+ self.showMessage( self.i18n.file_upload_success, "s");
if(data.cd == self.currentDir) self.refreshFileTable();
- } else self.showMessage("File could not be uploaded: "+data.message, "e");
+ } else self.showMessage( self.i18n.file_upload_error +data.message, "e");
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Upload " + file.name } );
@@ -1884,14 +1997,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Permissions successfully changed.", "s" );
+ self.showMessage( self.i18n.permission_change_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Permissions could not be changed: "+data.message, "e");
+ self.showMessage( self.i18n.permission_change_error +data.message, "e");
}
},
- error: function() { self.showMessage("General error occured.", "e"); }
+ error: function() { self.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -1942,12 +2055,12 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- self.showMessage( "File successfully uploaded", "s" );
+ self.showMessage( self.i18n.file_upload_success, "s" );
self.refreshFileTable();
} else
- self.showMessage( "File could not be uploaded:
" + data.message, "e" );
+ self.showMessage( self.i18n.file_upload_error + data.message, "e" );
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Remote upload: "+filename } );
@@ -2550,7 +2663,7 @@ function IFM( params ) {
self.initLoadTemplates();
},
error: function() {
- throw new Error( "IFM: could not load configuration" );
+ throw new Error( self.i18n.load_config_error );
}
});
};
@@ -2570,7 +2683,7 @@ function IFM( params ) {
self.initLoadI18N();
},
error: function() {
- throw new Error( "IFM: could not load templates" );
+ throw new Error( self.i18n.load_template_error );
}
});
};
@@ -2590,7 +2703,7 @@ function IFM( params ) {
self.initApplication();
},
error: function() {
- throw new Error( "IFM: could not load I18N" );
+ throw new Error( self.i18n.load_text_error );
}
});
};
@@ -2776,7 +2889,6 @@ function IFM( params ) {
$this->getConfig();
}
elseif( $_REQUEST["api"] == "getFolders" ) {
- sleep( 5 );
$this->getFolders( $_REQUEST );
} elseif( $_REQUEST["api"] == "getTemplates" ) {
$this->jsonResponse( $this->templates );
@@ -3057,11 +3169,11 @@ function IFM( params ) {
$this->jsonResponse( array( "status" => "OK", "message" => "File(s) $action successfully", "errflag" => "1" ) );
}
else {
- $errmsg = "The following files could not be deleted:";
+ $errmsg = "The following files could not be copied/moved:";
foreach($err as $item)
$errmsg .= "- ".$item."
";
$errmsg .= "
";
- $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFLAG ) );
+ $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFlag ) );
}
}
diff --git a/ifm.php b/ifm.php
index 5843bbd..1427dda 100644
--- a/ifm.php
+++ b/ifm.php
@@ -496,7 +496,7 @@ f00bar;
@@ -564,20 +564,42 @@ f00bar;
"delete": "Delete",
"directoryname": "Directory Name",
"editor_options": "Editor Options",
+ "error": "Error:",
"extract": "Extract",
"extract_filename": "Extract file - ",
+ "file_copy_to": "to",
"file_delete_confirm": "Do you really want to delete the following file -",
+ "file_delete_error": "File(s) could not be deleted",
+ "file_delete_success": "File(s) successfully deleted",
+ "file_display_error": "This file can not be displayed or edited",
"file_edit_success": "File successfully edited / created.",
+ "file_extract_error": "File could not be extracted: ",
+ "file_extract_success": "File successfully extracted",
+ "file_load_error": "The content of this file cannot be fetched",
"file_multi_delete_confirm": "Do you really want to delete these files -",
"file_new": "New File",
+ "file_rename": "Rename File",
+ "file_rename_error": "File could not be renamed: ",
+ "file_rename_success": "File successfully renamed",
"file_save_confirm": "Do you want to save the following file -",
+ "file_save_error": "File could not be edited or created: ",
+ "file_upload_error": "File could not be uploaded: ",
+ "file_upload_success": "File successfully uploaded",
"filename": "Filename",
"filename_new": "New Filename",
+ "folder_create_error": "Directory could not be created: ",
+ "folder_create_success": "Directory sucessfully created",
"folder_new": "New Folder",
+ "folder_tree_load_error": "Error while fetching the folder tree",
"footer": "IFM - improved file manager | ifm.php hidden |",
+ "general_error": "General error occured: No or broken response",
"github": "Visit the project on GitHub",
"group": "Group",
+ "invalid_data": "Invalid data from server",
"last_modified": "Last Modified",
+ "load_config_error": "Could not load configuration",
+ "load_template_error": "Could not load templates",
+ "load_text_error": "Could not load texts",
"login": "Login",
"logout": "Log Off",
"method": "Method",
@@ -586,6 +608,8 @@ f00bar;
"owner": "Owner",
"password": "Password",
"path_content": "Content of",
+ "permission_change_error": "Permissions could not be changed: ",
+ "permission_change_success": "Permissions successfully changed",
"permissions": "Permissions",
"refresh": "Refresh",
"rename": "Rename",
@@ -611,6 +635,93 @@ f00bar;
}
f00bar;
$i18n["en"] = json_decode( $i18n["en"], true );
+$i18n["de"] = <<<'f00bar'
+{
+ "ajax_request": "AJAX Request",
+ "archivename": "Name des Archivs",
+ "cancel": "Abbrechen",
+ "close": "Schließen",
+ "copy": "Kopieren",
+ "data": "Daten",
+ "delete": "Löschen",
+ "directoryname": "Ordner Name",
+ "editor_options": "Editor Optionen",
+ "error": "Fehler:",
+ "extract": "Auspacken",
+ "extract_filename": "Folgende Datei auspacken -",
+ "file_copy_to": "zu",
+ "file_delete_confirm": "Soll die folgende Datei wirklich gelöscht werden:",
+ "file_delete_error": "Datei(en) konnten nicht gelöscht werden",
+ "file_delete_success": "Datei(en) erfolgreich gelöscht",
+ "file_display_error": "Die Datei kann nicht angezeigt oder geändert werden",
+ "file_edit_success": "Datei erfolgreich geändert / angelegt.",
+ "file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden:",
+ "file_new": "Neue Datei",
+ "file_save_confirm": "Soll diese Datei wirklich gelöscht werden:",
+ "file_extract_error": "Datei konnte nicht entpackt werden: ",
+ "file_extract_success": "Datei erfolgreich entpackt",
+ "file_load_error": "Der Inhalt der Datei konnte nicht geladen werden",
+ "file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden -",
+ "file_new": "Neue Datei",
+ "file_rename": "Datei umbenennen",
+ "file_rename_error": "Datei konnte nicht umbenannt werden: ",
+ "file_rename_success": "Datei erfogreich umbenannt",
+ "file_save_confirm": "Soll diese Datei wirklich gelöscht werden -",
+ "file_save_error": "Datei konnte nicht geändert oder angelegt werden: ",
+ "file_upload_error": "Datei konnte nicht hochgeladen werden: ",
+ "file_upload_success": "Datei erfolgreich hochgeladen",
+ "filename": "Dateiname",
+ "filename_new": "Neuer Dateiname",
+ "folder_create_error": "Verzeichnis konnte nicht angelegt werden: ",
+ "folder_create_success": "Verzeichnis erfolgreich angelegt",
+ "folder_new": "Neue Ordner",
+ "folder_tree_load_error": "Fehler bei Laden des Verzeichnisbaums",
+ "footer": "IFM - verbesserter file manager | ifm.php versteckt |",
+ "general_error": "Genereller Fehler aufgetreten: Keine oder unvollständige Antwort",
+ "github": "Besuche das Projekt auf GitHub",
+ "group": "Gruppe",
+ "invalid_data": "Fehlerhafte Daten vom Server erhalten",
+ "last_modified": "Zuletzt geändert",
+ "load_config_error": "Konfiguration konnte nicht geladen werden",
+ "load_template_error": "Vorlagen konnten nicht geladen werden",
+ "load_text_error": "Texte konnten nicht geladen werden",
+ "login": "Anmeldung",
+ "logout": "Abmelden",
+ "method": "Methode",
+ "move": "Verschieben",
+ "options": "Optionen",
+ "owner": "Besitzer",
+ "password": "Passwort",
+ "path_content": "Inhalt von",
+ "permission_change_error": "Berechtigungen konnten nicht geändert werden: ",
+ "permission_change_success": "Berechtigungen erfolgreich geändert",
+ "permissions": "Berechtigungen",
+ "refresh": "Auffrischen",
+ "rename": "Umbenennen",
+ "rename_filename": "Folgende Datei umbenennen -",
+ "request": "Anfrage",
+ "response": "Antwort",
+ "save": "Speichen",
+ "save_wo_close": "Speichen ohne Schließen",
+ "search": "Suchen",
+ "search_pattern": "Muster",
+ "select_destination": "Zielort auswählen",
+ "size": "Größe",
+ "soft_tabs": "Leichte Tabulatoren",
+ "tab_size": "Tabulatoren Größe",
+ "tasks": "Aufgaben",
+ "toggle_nav": "Navigation umschalten",
+ "upload": "Hochladen",
+ "upload_drop": "Dateien zum hochladen hier hinziehen",
+ "upload_file": "Datei hochladen",
+ "upload_remote": "Hochladen von ausserhalb",
+ "upload_remote_url": "Entfernte URL zum hochladen",
+ "username": "Benutzername",
+ "word_wrap": "Zeilenumbruch"
+}
+
+f00bar;
+$i18n["de"] = json_decode( $i18n["de"], true );
$this->i18n = $i18n;
}
@@ -1067,7 +1178,7 @@ function IFM( params ) {
},
dataType: "json",
success: self.rebuildFileTable,
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( taskid ); }
});
};
@@ -1082,7 +1193,7 @@ function IFM( params ) {
this.showMessage( data.message, "e" );
return;
} else if ( ! Array.isArray( data ) ) {
- this.showMessage( "Invalid data from server", "e" );
+ this.showMessage( self.i18n.invalid_data, "e" );
return;
}
data.forEach( function( item ) {
@@ -1359,7 +1470,7 @@ function IFM( params ) {
$( "#currentDir" ).val( self.currentDir );
if( config.pushState ) history.pushState( { dir: self.currentDir }, self.currentDir, "#"+encodeURIComponent( self.currentDir ) );
},
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1454,9 +1565,9 @@ function IFM( params ) {
if( data.status == "OK" ) {
self.showMessage( self.i18n.file_edit_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be edited/created:" + data.message, "e" );
+ } else self.showMessage( self.i18n.file_save_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
self.fileChanged = false;
};
@@ -1481,11 +1592,11 @@ function IFM( params ) {
self.showFileDialog( data.data.filename, data.data.content );
}
else if( data.status == "OK" && data.data.content == null ) {
- self.showMessage( "The content of this file cannot be fetched.", "e" );
+ self.showMessage( self.i18n.file_load_error, "e" );
}
- else self.showMessage( "Error: "+data.message, "e" );
+ else self.showMessage( self.i18n.error +data.message, "e" );
},
- error: function() { self.showMessage( "This file can not be displayed or edited.", "e" ); }
+ error: function() { self.showMessage( self.i18n.file_display_error, "e" ); }
});
};
@@ -1529,14 +1640,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Directory sucessfully created.", "s" );
+ self.showMessage( self.i18n.folder_create_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Directory could not be created: "+data.message, "e" );
+ self.showMessage( self.i18n.folder_create_error +data.message, "e" );
}
},
- error: function() { self.showMessage( "General error occured.", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1582,11 +1693,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File(s) successfully deleted", "s" );
+ self.showMessage( self.i18n.file_delete_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File(s) could not be deleted", "e" );
+ } else self.showMessage( self.i18n.file_delete_error, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -1635,11 +1746,11 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- ifm.showMessage("File successfully renamed", "s");
+ ifm.showMessage( self.i18n.file_rename_success, "s");
ifm.refreshFileTable();
- } else ifm.showMessage("File could not be renamed: "+data.message, "e");
+ } else ifm.showMessage( self.i18n.file_rename_error +data.message, "e");
},
- error: function() { ifm.showMessage("General error occured", "e"); }
+ error: function() { ifm.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -1679,7 +1790,7 @@ function IFM( params ) {
}
});
},
- error: function() { self.hideModal(); self.showMessage( "Error while fetching the folder tree.", "e" ) }
+ error: function() { self.hideModal(); self.showMessage( self.i18n.folder_tree_load_error, "e" ) }
});
var form = document.forms.formCopyMove;
form.addEventListener( 'click', function( e ) {
@@ -1706,8 +1817,10 @@ function IFM( params ) {
* @params {string} action - action (copy|move)
*/
this.copyMove = function( sources, destination, action ) {
+ if( ! Array.isArray( sources ) )
+ sources = [sources];
var id = self.generateGuid();
- self.task_add( { id: id, name: action.charAt(0).toUpperCase() + action.slice(1) + " files to " + destination } );
+ self.task_add( { id: id, name: self.i18n[action] + " " + ( sources.length > 1 ? sources.length : sources[0].name ) + " " + self.i18n.file_copy_to + " " + destination } );
$.ajax({
url: self.api,
type: "POST",
@@ -1728,7 +1841,7 @@ function IFM( params ) {
self.refreshFileTable();
},
error: function() {
- self.showMessage( "General error occured.", "e" );
+ self.showMessage( self.i18n.general_error, "e" );
},
complete: function() {
self.task_done( id );
@@ -1790,11 +1903,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File successfully extracted", "s" );
+ self.showMessage( self.i18n.file_extract_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be extracted. Error: " + data.message, "e" );
+ } else self.showMessage( self.i18n.file_extract_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( id ); }
});
};
@@ -1855,11 +1968,11 @@ function IFM( params ) {
},
success: function(data) {
if(data.status == "OK") {
- self.showMessage("File successfully uploaded", "s");
+ self.showMessage( self.i18n.file_upload_success, "s");
if(data.cd == self.currentDir) self.refreshFileTable();
- } else self.showMessage("File could not be uploaded: "+data.message, "e");
+ } else self.showMessage( self.i18n.file_upload_error +data.message, "e");
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Upload " + file.name } );
@@ -1884,14 +1997,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Permissions successfully changed.", "s" );
+ self.showMessage( self.i18n.permission_change_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Permissions could not be changed: "+data.message, "e");
+ self.showMessage( self.i18n.permission_change_error +data.message, "e");
}
},
- error: function() { self.showMessage("General error occured.", "e"); }
+ error: function() { self.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -1942,12 +2055,12 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- self.showMessage( "File successfully uploaded", "s" );
+ self.showMessage( self.i18n.file_upload_success, "s" );
self.refreshFileTable();
} else
- self.showMessage( "File could not be uploaded:
" + data.message, "e" );
+ self.showMessage( self.i18n.file_upload_error + data.message, "e" );
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Remote upload: "+filename } );
@@ -2550,7 +2663,7 @@ function IFM( params ) {
self.initLoadTemplates();
},
error: function() {
- throw new Error( "IFM: could not load configuration" );
+ throw new Error( self.i18n.load_config_error );
}
});
};
@@ -2570,7 +2683,7 @@ function IFM( params ) {
self.initLoadI18N();
},
error: function() {
- throw new Error( "IFM: could not load templates" );
+ throw new Error( self.i18n.load_template_error );
}
});
};
@@ -2590,7 +2703,7 @@ function IFM( params ) {
self.initApplication();
},
error: function() {
- throw new Error( "IFM: could not load I18N" );
+ throw new Error( self.i18n.load_text_error );
}
});
};
@@ -2776,7 +2889,6 @@ function IFM( params ) {
$this->getConfig();
}
elseif( $_REQUEST["api"] == "getFolders" ) {
- sleep( 5 );
$this->getFolders( $_REQUEST );
} elseif( $_REQUEST["api"] == "getTemplates" ) {
$this->jsonResponse( $this->templates );
@@ -3057,11 +3169,11 @@ function IFM( params ) {
$this->jsonResponse( array( "status" => "OK", "message" => "File(s) $action successfully", "errflag" => "1" ) );
}
else {
- $errmsg = "The following files could not be deleted:";
+ $errmsg = "The following files could not be copied/moved:";
foreach($err as $item)
$errmsg .= "- ".$item."
";
$errmsg .= "
";
- $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFLAG ) );
+ $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFlag ) );
}
}
diff --git a/src/i18n/de.json b/src/i18n/de.json
index 26b6e4e..a57a2fd 100644
--- a/src/i18n/de.json
+++ b/src/i18n/de.json
@@ -8,20 +8,45 @@
"delete": "Löschen",
"directoryname": "Ordner Name",
"editor_options": "Editor Optionen",
+ "error": "Fehler:",
"extract": "Auspacken",
"extract_filename": "Folgende Datei auspacken -",
+ "file_copy_to": "zu",
"file_delete_confirm": "Soll die folgende Datei wirklich gelöscht werden:",
+ "file_delete_error": "Datei(en) konnten nicht gelöscht werden",
+ "file_delete_success": "Datei(en) erfolgreich gelöscht",
+ "file_display_error": "Die Datei kann nicht angezeigt oder geändert werden",
"file_edit_success": "Datei erfolgreich geändert / angelegt.",
"file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden:",
"file_new": "Neue Datei",
"file_save_confirm": "Soll diese Datei wirklich gelöscht werden:",
+ "file_extract_error": "Datei konnte nicht entpackt werden: ",
+ "file_extract_success": "Datei erfolgreich entpackt",
+ "file_load_error": "Der Inhalt der Datei konnte nicht geladen werden",
+ "file_multi_delete_confirm": "Sollen diese Dateien wirklich gelöscht werden -",
+ "file_new": "Neue Datei",
+ "file_rename": "Datei umbenennen",
+ "file_rename_error": "Datei konnte nicht umbenannt werden: ",
+ "file_rename_success": "Datei erfogreich umbenannt",
+ "file_save_confirm": "Soll diese Datei wirklich gelöscht werden -",
+ "file_save_error": "Datei konnte nicht geändert oder angelegt werden: ",
+ "file_upload_error": "Datei konnte nicht hochgeladen werden: ",
+ "file_upload_success": "Datei erfolgreich hochgeladen",
"filename": "Dateiname",
"filename_new": "Neuer Dateiname",
+ "folder_create_error": "Verzeichnis konnte nicht angelegt werden: ",
+ "folder_create_success": "Verzeichnis erfolgreich angelegt",
"folder_new": "Neue Ordner",
+ "folder_tree_load_error": "Fehler bei Laden des Verzeichnisbaums",
"footer": "IFM - verbesserter file manager | ifm.php versteckt |",
+ "general_error": "Genereller Fehler aufgetreten: Keine oder unvollständige Antwort",
"github": "Besuche das Projekt auf GitHub",
"group": "Gruppe",
+ "invalid_data": "Fehlerhafte Daten vom Server erhalten",
"last_modified": "Zuletzt geändert",
+ "load_config_error": "Konfiguration konnte nicht geladen werden",
+ "load_template_error": "Vorlagen konnten nicht geladen werden",
+ "load_text_error": "Texte konnten nicht geladen werden",
"login": "Anmeldung",
"logout": "Abmelden",
"method": "Methode",
@@ -30,6 +55,8 @@
"owner": "Besitzer",
"password": "Passwort",
"path_content": "Inhalt von",
+ "permission_change_error": "Berechtigungen konnten nicht geändert werden: ",
+ "permission_change_success": "Berechtigungen erfolgreich geändert",
"permissions": "Berechtigungen",
"refresh": "Auffrischen",
"rename": "Umbenennen",
diff --git a/src/i18n/en.json b/src/i18n/en.json
index c564d46..1300946 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -7,20 +7,42 @@
"delete": "Delete",
"directoryname": "Directory Name",
"editor_options": "Editor Options",
+ "error": "Error:",
"extract": "Extract",
"extract_filename": "Extract file - ",
+ "file_copy_to": "to",
"file_delete_confirm": "Do you really want to delete the following file -",
+ "file_delete_error": "File(s) could not be deleted",
+ "file_delete_success": "File(s) successfully deleted",
+ "file_display_error": "This file can not be displayed or edited",
"file_edit_success": "File successfully edited / created.",
+ "file_extract_error": "File could not be extracted: ",
+ "file_extract_success": "File successfully extracted",
+ "file_load_error": "The content of this file cannot be fetched",
"file_multi_delete_confirm": "Do you really want to delete these files -",
"file_new": "New File",
+ "file_rename": "Rename File",
+ "file_rename_error": "File could not be renamed: ",
+ "file_rename_success": "File successfully renamed",
"file_save_confirm": "Do you want to save the following file -",
+ "file_save_error": "File could not be edited or created: ",
+ "file_upload_error": "File could not be uploaded: ",
+ "file_upload_success": "File successfully uploaded",
"filename": "Filename",
"filename_new": "New Filename",
+ "folder_create_error": "Directory could not be created: ",
+ "folder_create_success": "Directory sucessfully created",
"folder_new": "New Folder",
+ "folder_tree_load_error": "Error while fetching the folder tree",
"footer": "IFM - improved file manager | ifm.php hidden |",
+ "general_error": "General error occured: No or broken response",
"github": "Visit the project on GitHub",
"group": "Group",
+ "invalid_data": "Invalid data from server",
"last_modified": "Last Modified",
+ "load_config_error": "Could not load configuration",
+ "load_template_error": "Could not load templates",
+ "load_text_error": "Could not load texts",
"login": "Login",
"logout": "Log Off",
"method": "Method",
@@ -29,6 +51,8 @@
"owner": "Owner",
"password": "Password",
"path_content": "Content of",
+ "permission_change_error": "Permissions could not be changed: ",
+ "permission_change_success": "Permissions successfully changed",
"permissions": "Permissions",
"refresh": "Refresh",
"rename": "Rename",
diff --git a/src/ifm.js b/src/ifm.js
index 1e5cc28..a721411 100644
--- a/src/ifm.js
+++ b/src/ifm.js
@@ -77,7 +77,7 @@ function IFM( params ) {
},
dataType: "json",
success: self.rebuildFileTable,
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( taskid ); }
});
};
@@ -92,7 +92,7 @@ function IFM( params ) {
this.showMessage( data.message, "e" );
return;
} else if ( ! Array.isArray( data ) ) {
- this.showMessage( "Invalid data from server", "e" );
+ this.showMessage( self.i18n.invalid_data, "e" );
return;
}
data.forEach( function( item ) {
@@ -369,7 +369,7 @@ function IFM( params ) {
$( "#currentDir" ).val( self.currentDir );
if( config.pushState ) history.pushState( { dir: self.currentDir }, self.currentDir, "#"+encodeURIComponent( self.currentDir ) );
},
- error: function() { self.showMessage( "General error occured: No or broken response", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -464,9 +464,9 @@ function IFM( params ) {
if( data.status == "OK" ) {
self.showMessage( self.i18n.file_edit_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be edited/created:" + data.message, "e" );
+ } else self.showMessage( self.i18n.file_save_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
self.fileChanged = false;
};
@@ -491,11 +491,11 @@ function IFM( params ) {
self.showFileDialog( data.data.filename, data.data.content );
}
else if( data.status == "OK" && data.data.content == null ) {
- self.showMessage( "The content of this file cannot be fetched.", "e" );
+ self.showMessage( self.i18n.file_load_error, "e" );
}
- else self.showMessage( "Error: "+data.message, "e" );
+ else self.showMessage( self.i18n.error +data.message, "e" );
},
- error: function() { self.showMessage( "This file can not be displayed or edited.", "e" ); }
+ error: function() { self.showMessage( self.i18n.file_display_error, "e" ); }
});
};
@@ -539,14 +539,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Directory sucessfully created.", "s" );
+ self.showMessage( self.i18n.folder_create_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Directory could not be created: "+data.message, "e" );
+ self.showMessage( self.i18n.folder_create_error +data.message, "e" );
}
},
- error: function() { self.showMessage( "General error occured.", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -592,11 +592,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File(s) successfully deleted", "s" );
+ self.showMessage( self.i18n.file_delete_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File(s) could not be deleted", "e" );
+ } else self.showMessage( self.i18n.file_delete_error, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); }
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); }
});
};
@@ -645,11 +645,11 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- ifm.showMessage("File successfully renamed", "s");
+ ifm.showMessage( self.i18n.file_rename_success, "s");
ifm.refreshFileTable();
- } else ifm.showMessage("File could not be renamed: "+data.message, "e");
+ } else ifm.showMessage( self.i18n.file_rename_error +data.message, "e");
},
- error: function() { ifm.showMessage("General error occured", "e"); }
+ error: function() { ifm.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -689,7 +689,7 @@ function IFM( params ) {
}
});
},
- error: function() { self.hideModal(); self.showMessage( "Error while fetching the folder tree.", "e" ) }
+ error: function() { self.hideModal(); self.showMessage( self.i18n.folder_tree_load_error, "e" ) }
});
var form = document.forms.formCopyMove;
form.addEventListener( 'click', function( e ) {
@@ -716,8 +716,10 @@ function IFM( params ) {
* @params {string} action - action (copy|move)
*/
this.copyMove = function( sources, destination, action ) {
+ if( ! Array.isArray( sources ) )
+ sources = [sources];
var id = self.generateGuid();
- self.task_add( { id: id, name: action.charAt(0).toUpperCase() + action.slice(1) + " files to " + destination } );
+ self.task_add( { id: id, name: self.i18n[action] + " " + ( sources.length > 1 ? sources.length : sources[0].name ) + " " + self.i18n.file_copy_to + " " + destination } );
$.ajax({
url: self.api,
type: "POST",
@@ -738,7 +740,7 @@ function IFM( params ) {
self.refreshFileTable();
},
error: function() {
- self.showMessage( "General error occured.", "e" );
+ self.showMessage( self.i18n.general_error, "e" );
},
complete: function() {
self.task_done( id );
@@ -800,11 +802,11 @@ function IFM( params ) {
dataType: "json",
success: function( data ) {
if( data.status == "OK" ) {
- self.showMessage( "File successfully extracted", "s" );
+ self.showMessage( self.i18n.file_extract_success, "s" );
self.refreshFileTable();
- } else self.showMessage( "File could not be extracted. Error: " + data.message, "e" );
+ } else self.showMessage( self.i18n.file_extract_error + data.message, "e" );
},
- error: function() { self.showMessage( "General error occured", "e" ); },
+ error: function() { self.showMessage( self.i18n.general_error, "e" ); },
complete: function() { self.task_done( id ); }
});
};
@@ -865,11 +867,11 @@ function IFM( params ) {
},
success: function(data) {
if(data.status == "OK") {
- self.showMessage("File successfully uploaded", "s");
+ self.showMessage( self.i18n.file_upload_success, "s");
if(data.cd == self.currentDir) self.refreshFileTable();
- } else self.showMessage("File could not be uploaded: "+data.message, "e");
+ } else self.showMessage( self.i18n.file_upload_error +data.message, "e");
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Upload " + file.name } );
@@ -894,14 +896,14 @@ function IFM( params ) {
dataType: "json",
success: function( data ){
if( data.status == "OK" ) {
- self.showMessage( "Permissions successfully changed.", "s" );
+ self.showMessage( self.i18n.permission_change_success, "s" );
self.refreshFileTable();
}
else {
- self.showMessage( "Permissions could not be changed: "+data.message, "e");
+ self.showMessage( self.i18n.permission_change_error +data.message, "e");
}
},
- error: function() { self.showMessage("General error occured.", "e"); }
+ error: function() { self.showMessage( self.i18n.general_error, "e"); }
});
};
@@ -952,12 +954,12 @@ function IFM( params ) {
dataType: "json",
success: function(data) {
if(data.status == "OK") {
- self.showMessage( "File successfully uploaded", "s" );
+ self.showMessage( self.i18n.file_upload_success, "s" );
self.refreshFileTable();
} else
- self.showMessage( "File could not be uploaded:
" + data.message, "e" );
+ self.showMessage( self.i18n.file_upload_error + data.message, "e" );
},
- error: function() { self.showMessage("General error occured", "e"); },
+ error: function() { self.showMessage( self.i18n.general_error, "e"); },
complete: function() { self.task_done(id); }
});
self.task_add( { id: id, name: "Remote upload: "+filename } );
@@ -1560,7 +1562,7 @@ function IFM( params ) {
self.initLoadTemplates();
},
error: function() {
- throw new Error( "IFM: could not load configuration" );
+ throw new Error( self.i18n.load_config_error );
}
});
};
@@ -1580,7 +1582,7 @@ function IFM( params ) {
self.initLoadI18N();
},
error: function() {
- throw new Error( "IFM: could not load templates" );
+ throw new Error( self.i18n.load_template_error );
}
});
};
@@ -1600,7 +1602,7 @@ function IFM( params ) {
self.initApplication();
},
error: function() {
- throw new Error( "IFM: could not load I18N" );
+ throw new Error( self.i18n.load_text_error );
}
});
};
diff --git a/src/main.php b/src/main.php
index 8453ff8..4039368 100644
--- a/src/main.php
+++ b/src/main.php
@@ -240,7 +240,6 @@ f00bar;
$this->getConfig();
}
elseif( $_REQUEST["api"] == "getFolders" ) {
- sleep( 5 );
$this->getFolders( $_REQUEST );
} elseif( $_REQUEST["api"] == "getTemplates" ) {
$this->jsonResponse( $this->templates );
@@ -521,11 +520,11 @@ f00bar;
$this->jsonResponse( array( "status" => "OK", "message" => "File(s) $action successfully", "errflag" => "1" ) );
}
else {
- $errmsg = "The following files could not be deleted:";
+ $errmsg = "The following files could not be copied/moved:";
foreach($err as $item)
$errmsg .= "- ".$item."
";
$errmsg .= "
";
- $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFLAG ) );
+ $this->jsonResponse( array( "status" => "OK", "message" => $errmsg, "flag" => $errFlag ) );
}
}
diff --git a/src/templates/modal.renamefile.html b/src/templates/modal.renamefile.html
index 65f00eb..d5de338 100644
--- a/src/templates/modal.renamefile.html
+++ b/src/templates/modal.renamefile.html
@@ -6,7 +6,7 @@