Merge in master

This commit is contained in:
Tom Needham 2013-02-09 12:05:48 +00:00
commit 5d14a2cc46
838 changed files with 21078 additions and 10805 deletions

12
.gitignore vendored
View File

@ -6,6 +6,17 @@ config/mount.php
apps/inc.php apps/inc.php
3rdparty 3rdparty
# ignore all apps except core ones
apps/*
!apps/files
!apps/files_encryption
!apps/files_external
!apps/files_sharing
!apps/files_trashbin
!apps/files_versions
!apps/user_ldap
!apps/user_webdavauth
# just sane ignores # just sane ignores
.*.sw[po] .*.sw[po]
*.bak *.bak
@ -45,6 +56,7 @@ nbproject
# Cloud9IDE # Cloud9IDE
.settings.xml .settings.xml
.c9revisions
# vim ex mode # vim ex mode
.vimrc .vimrc

View File

@ -11,8 +11,10 @@ $dir = stripslashes($_POST["dir"]);
$file = stripslashes($_POST["file"]); $file = stripslashes($_POST["file"]);
$target = stripslashes(rawurldecode($_POST["target"])); $target = stripslashes(rawurldecode($_POST["target"]));
$l = OC_L10N::get('files');
if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) { if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) {
OCP\JSON::error(array("data" => array( "message" => "Could not move $file - File with this name already exists" ))); OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s - File with this name already exists", array($file)) )));
exit; exit;
} }
@ -22,8 +24,8 @@ if ($dir != '' || $file != 'Shared') {
if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file )));
} else { } else {
OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
} }
}else{ }else{
OCP\JSON::error(array("data" => array( "message" => "Could not move $file" ))); OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
} }

View File

@ -11,14 +11,16 @@ $dir = stripslashes($_GET["dir"]);
$file = stripslashes($_GET["file"]); $file = stripslashes($_GET["file"]);
$newname = stripslashes($_GET["newname"]); $newname = stripslashes($_GET["newname"]);
$l = OC_L10N::get('files');
if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') { if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') {
$targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname);
$sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file);
if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname )));
} else { } else {
OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") )));
} }
}else{ }else{
OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" ))); OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") )));
} }

View File

@ -49,7 +49,7 @@ foreach ($files['size'] as $size) {
$totalSize += $size; $totalSize += $size;
} }
if ($totalSize > \OC\Files\Filesystem::free_space($dir)) { if ($totalSize > \OC\Files\Filesystem::free_space($dir)) {
OCP\JSON::error(array('data' => array('message' => $l->t('Not enough space available'), OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'),
'uploadMaxFilesize' => $maxUploadFilesize, 'uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize))); 'maxHumanFilesize' => $maxHumanFilesize)));
exit(); exit();

View File

@ -3,7 +3,7 @@
See the COPYING-README file. */ See the COPYING-README file. */
/* FILE MENU */ /* FILE MENU */
.actions { padding:.3em; float:left; height:2em; } .actions { padding:.3em; height:2em; width: 100%; }
.actions input, .actions button, .actions .button { margin:0; float:left; } .actions input, .actions button, .actions .button { margin:0; float:left; }
#new { #new {
@ -23,7 +23,7 @@
#new>ul>li>p { cursor:pointer; } #new>ul>li>p { cursor:pointer; }
#new>ul>li>form>input { padding:0.3em; margin:-0.3em; } #new>ul>li>form>input { padding:0.3em; margin:-0.3em; }
#trash { height:17px; margin:0 0 0 1em; z-index:1010; position:absolute; right:13.5em; } #trash { height:17px; margin: 0 1em; z-index:1010; float: right; }
#upload { #upload {
height:27px; padding:0; margin-left:0.2em; overflow:hidden; height:27px; padding:0; margin-left:0.2em; overflow:hidden;
@ -44,7 +44,7 @@
z-index:20; position:relative; cursor:pointer; overflow:hidden; z-index:20; position:relative; cursor:pointer; overflow:hidden;
} }
#uploadprogresswrapper { position:absolute; right:13.5em; top:0em; } #uploadprogresswrapper { float: right; position: relative; }
#uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; } #uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; }
/* FILE TABLE */ /* FILE TABLE */
@ -55,7 +55,7 @@
font-size:1.5em; font-weight:bold; font-size:1.5em; font-weight:bold;
color:#888; text-shadow:#fff 0 1px 0; color:#888; text-shadow:#fff 0 1px 0;
} }
table { position:relative; top:37px; width:100%; } table { position:relative; width:100%; }
tbody tr { background-color:#fff; height:2.5em; } tbody tr { background-color:#fff; height:2.5em; }
tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; }
tbody tr.selected { background-color:#eee; } tbody tr.selected { background-color:#eee; }

View File

@ -92,7 +92,7 @@ foreach (explode('/', $dir) as $i) {
$list = new OCP\Template('files', 'part.list', ''); $list = new OCP\Template('files', 'part.list', '');
$list->assign('files', $files, false); $list->assign('files', $files, false);
$list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false); $list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false);
$list->assign('downloadURL', OCP\Util::linkTo('files', 'download.php') . '?file=', false); $list->assign('downloadURL', OCP\Util::linkToRoute('download', array('file' => '/')), false);
$list->assign('disableSharing', false); $list->assign('disableSharing', false);
$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', ''); $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');
$breadcrumbNav->assign('breadcrumb', $breadcrumb, false); $breadcrumbNav->assign('breadcrumb', $breadcrumb, false);

View File

@ -112,9 +112,8 @@ var FileActions = {
if (img.call) { if (img.call) {
img = img(file); img = img(file);
} }
// NOTE: Temporary fix to allow unsharing of files in root of Shared folder if (typeof trashBinApp !== 'undefined' && trashBinApp) {
if ($('#dir').val() == '/Shared') { var html = '<a href="#" original-title="' + t('files', 'Delete permanently') + '" class="action delete" />';
var html = '<a href="#" original-title="' + t('files', 'Unshare') + '" class="action delete" />';
} else { } else {
var html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" />'; var html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" />';
} }

View File

@ -15,7 +15,7 @@ var FileList={
extension=false; extension=false;
} }
html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />'; html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+escapeHTML(name)+'"><span class="nametext">'+escapeHTML(basename); html+='<a class="name" href="' +OC.Router.generate('download', { file: $('#dir').val()+'/'+name }) +'"><span class="nametext">'+escapeHTML(basename);
if(extension){ if(extension){
html+='<span class="extension">'+escapeHTML(extension)+'</span>'; html+='<span class="extension">'+escapeHTML(extension)+'</span>';
} }
@ -216,9 +216,6 @@ var FileList={
}, },
replace:function(oldName, newName, isNewFile) { replace:function(oldName, newName, isNewFile) {
// Finish any existing actions // Finish any existing actions
if (FileList.lastAction || !FileList.useUndo) {
FileList.lastAction();
}
$('tr').filterAttr('data-file', oldName).hide(); $('tr').filterAttr('data-file', oldName).hide();
$('tr').filterAttr('data-file', newName).hide(); $('tr').filterAttr('data-file', newName).hide();
var tr = $('tr').filterAttr('data-file', oldName).clone(); var tr = $('tr').filterAttr('data-file', oldName).clone();
@ -321,7 +318,6 @@ $(document).ready(function(){
// Delete the new uploaded file // Delete the new uploaded file
FileList.deleteCanceled = false; FileList.deleteCanceled = false;
FileList.deleteFiles = [FileList.replaceOldName]; FileList.deleteFiles = [FileList.replaceOldName];
FileList.finishDelete(null, true);
} else { } else {
$('tr').filterAttr('data-file', FileList.replaceOldName).show(); $('tr').filterAttr('data-file', FileList.replaceOldName).show();
} }
@ -348,7 +344,6 @@ $(document).ready(function(){
if ($('#notification').data('isNewFile')) { if ($('#notification').data('isNewFile')) {
FileList.deleteCanceled = false; FileList.deleteCanceled = false;
FileList.deleteFiles = [$('#notification').data('oldName')]; FileList.deleteFiles = [$('#notification').data('oldName')];
FileList.finishDelete(null, true);
} }
}); });
FileList.useUndo=(window.onbeforeunload)?true:false; FileList.useUndo=(window.onbeforeunload)?true:false;

View File

@ -262,12 +262,6 @@ $(document).ready(function() {
return; return;
} }
totalSize+=files[i].size; totalSize+=files[i].size;
if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file
FileList.finishDelete(function(){
$('#file_upload_start').change();
});
return;
}
} }
} }
if(totalSize>$('#max_upload').val()){ if(totalSize>$('#max_upload').val()){

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", "No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে", "Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে",
"Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", "Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ",
"Not enough space available" => "যথেষ্ঠ পরিমাণ স্থান নেই",
"Invalid directory." => "ভুল ডিরেক্টরি", "Invalid directory." => "ভুল ডিরেক্টরি",
"Files" => "ফাইল", "Files" => "ফাইল",
"Unshare" => "ভাগাভাগি বাতিল ", "Unshare" => "ভাগাভাগি বাতিল ",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "El fitxer no s'ha pujat", "No file was uploaded" => "El fitxer no s'ha pujat",
"Missing a temporary folder" => "S'ha perdut un fitxer temporal", "Missing a temporary folder" => "S'ha perdut un fitxer temporal",
"Failed to write to disk" => "Ha fallat en escriure al disc", "Failed to write to disk" => "Ha fallat en escriure al disc",
"Not enough space available" => "No hi ha prou espai disponible",
"Invalid directory." => "Directori no vàlid.", "Invalid directory." => "Directori no vàlid.",
"Files" => "Fitxers", "Files" => "Fitxers",
"Unshare" => "Deixa de compartir", "Unshare" => "Deixa de compartir",
"Delete permanently" => "Esborra permanentment",
"Delete" => "Suprimeix", "Delete" => "Suprimeix",
"Rename" => "Reanomena", "Rename" => "Reanomena",
"{new_name} already exists" => "{new_name} ja existeix", "{new_name} already exists" => "{new_name} ja existeix",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Žádný soubor nebyl odeslán", "No file was uploaded" => "Žádný soubor nebyl odeslán",
"Missing a temporary folder" => "Chybí adresář pro dočasné soubory", "Missing a temporary folder" => "Chybí adresář pro dočasné soubory",
"Failed to write to disk" => "Zápis na disk selhal", "Failed to write to disk" => "Zápis na disk selhal",
"Not enough space available" => "Nedostatek dostupného místa",
"Invalid directory." => "Neplatný adresář", "Invalid directory." => "Neplatný adresář",
"Files" => "Soubory", "Files" => "Soubory",
"Unshare" => "Zrušit sdílení", "Unshare" => "Zrušit sdílení",
"Delete permanently" => "Trvale odstranit",
"Delete" => "Smazat", "Delete" => "Smazat",
"Rename" => "Přejmenovat", "Rename" => "Přejmenovat",
"{new_name} already exists" => "{new_name} již existuje", "{new_name} already exists" => "{new_name} již existuje",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.", "No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Temporärer Ordner fehlt.", "Missing a temporary folder" => "Temporärer Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
"Not enough space available" => "Nicht genug Speicherplatz verfügbar",
"Invalid directory." => "Ungültiges Verzeichnis.", "Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien", "Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben", "Unshare" => "Nicht mehr freigeben",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.", "No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Der temporäre Ordner fehlt.", "Missing a temporary folder" => "Der temporäre Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
"Not enough space available" => "Nicht genügend Speicherplatz verfügbar",
"Invalid directory." => "Ungültiges Verzeichnis.", "Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien", "Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben", "Unshare" => "Nicht mehr freigeben",
"Delete permanently" => "Entgültig löschen",
"Delete" => "Löschen", "Delete" => "Löschen",
"Rename" => "Umbenennen", "Rename" => "Umbenennen",
"{new_name} already exists" => "{new_name} existiert bereits", "{new_name} already exists" => "{new_name} existiert bereits",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε", "No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε",
"Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", "Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο", "Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο",
"Not enough space available" => "Δεν υπάρχει αρκετός διαθέσιμος χώρος",
"Invalid directory." => "Μη έγκυρος φάκελος.", "Invalid directory." => "Μη έγκυρος φάκελος.",
"Files" => "Αρχεία", "Files" => "Αρχεία",
"Unshare" => "Διακοπή κοινής χρήσης", "Unshare" => "Διακοπή κοινής χρήσης",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Neniu dosiero estas alŝutita", "No file was uploaded" => "Neniu dosiero estas alŝutita",
"Missing a temporary folder" => "Mankas tempa dosierujo", "Missing a temporary folder" => "Mankas tempa dosierujo",
"Failed to write to disk" => "Malsukcesis skribo al disko", "Failed to write to disk" => "Malsukcesis skribo al disko",
"Not enough space available" => "Ne haveblas sufiĉa spaco",
"Invalid directory." => "Nevalida dosierujo.", "Invalid directory." => "Nevalida dosierujo.",
"Files" => "Dosieroj", "Files" => "Dosieroj",
"Unshare" => "Malkunhavigi", "Unshare" => "Malkunhavigi",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "No se ha subido ningún archivo", "No file was uploaded" => "No se ha subido ningún archivo",
"Missing a temporary folder" => "Falta un directorio temporal", "Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "La escritura en disco ha fallado", "Failed to write to disk" => "La escritura en disco ha fallado",
"Not enough space available" => "No hay suficiente espacio disponible",
"Invalid directory." => "Directorio invalido.", "Invalid directory." => "Directorio invalido.",
"Files" => "Archivos", "Files" => "Archivos",
"Unshare" => "Dejar de compartir", "Unshare" => "Dejar de compartir",
"Delete permanently" => "Eliminar permanentemente",
"Delete" => "Eliminar", "Delete" => "Eliminar",
"Rename" => "Renombrar", "Rename" => "Renombrar",
"{new_name} already exists" => "{new_name} ya existe", "{new_name} already exists" => "{new_name} ya existe",
@ -20,9 +20,12 @@
"replaced {new_name}" => "reemplazado {new_name}", "replaced {new_name}" => "reemplazado {new_name}",
"undo" => "deshacer", "undo" => "deshacer",
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}", "replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"perform delete operation" => "Eliminar",
"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.", "'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
"File name cannot be empty." => "El nombre de archivo no puede estar vacío.", "File name cannot be empty." => "El nombre de archivo no puede estar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ",
"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizados o sincronizados!",
"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento esta lleno en un ({usedSpacePercent}%)",
"Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.", "Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes", "Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes",
"Upload Error" => "Error al subir el archivo", "Upload Error" => "Error al subir el archivo",
@ -54,11 +57,13 @@
"Text file" => "Archivo de texto", "Text file" => "Archivo de texto",
"Folder" => "Carpeta", "Folder" => "Carpeta",
"From link" => "Desde el enlace", "From link" => "Desde el enlace",
"Trash" => "Basura",
"Cancel upload" => "Cancelar subida", "Cancel upload" => "Cancelar subida",
"Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!", "Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!",
"Download" => "Descargar", "Download" => "Descargar",
"Upload too large" => "El archivo es demasiado grande", "Upload too large" => "El archivo es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.",
"Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.",
"Current scanning" => "Ahora escaneando" "Current scanning" => "Ahora escaneando",
"Upgrading filesystem cache..." => "Actualizando cache de archivos de sistema"
); );

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "El archivo no fue subido", "No file was uploaded" => "El archivo no fue subido",
"Missing a temporary folder" => "Falta un directorio temporal", "Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "Error al escribir en el disco", "Failed to write to disk" => "Error al escribir en el disco",
"Not enough space available" => "No hay suficiente espacio disponible",
"Invalid directory." => "Directorio invalido.", "Invalid directory." => "Directorio invalido.",
"Files" => "Archivos", "Files" => "Archivos",
"Unshare" => "Dejar de compartir", "Unshare" => "Dejar de compartir",
@ -20,6 +19,7 @@
"replaced {new_name}" => "reemplazado {new_name}", "replaced {new_name}" => "reemplazado {new_name}",
"undo" => "deshacer", "undo" => "deshacer",
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}", "replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"perform delete operation" => "Eliminar",
"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.", "'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
"File name cannot be empty." => "El nombre del archivo no puede quedar vacío.", "File name cannot be empty." => "El nombre del archivo no puede quedar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.",
@ -56,11 +56,13 @@
"Text file" => "Archivo de texto", "Text file" => "Archivo de texto",
"Folder" => "Carpeta", "Folder" => "Carpeta",
"From link" => "Desde enlace", "From link" => "Desde enlace",
"Trash" => "Papelera",
"Cancel upload" => "Cancelar subida", "Cancel upload" => "Cancelar subida",
"Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!", "Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!",
"Download" => "Descargar", "Download" => "Descargar",
"Upload too large" => "El archivo es demasiado grande", "Upload too large" => "El archivo es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ",
"Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá.", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá.",
"Current scanning" => "Escaneo actual" "Current scanning" => "Escaneo actual",
"Upgrading filesystem cache..." => "Actualizando el cache del sistema de archivos"
); );

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Ez da fitxategirik igo", "No file was uploaded" => "Ez da fitxategirik igo",
"Missing a temporary folder" => "Aldi baterako karpeta falta da", "Missing a temporary folder" => "Aldi baterako karpeta falta da",
"Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", "Failed to write to disk" => "Errore bat izan da diskoan idazterakoan",
"Not enough space available" => "Ez dago leku nahikorik.",
"Invalid directory." => "Baliogabeko karpeta.", "Invalid directory." => "Baliogabeko karpeta.",
"Files" => "Fitxategiak", "Files" => "Fitxategiak",
"Unshare" => "Ez elkarbanatu", "Unshare" => "Ez elkarbanatu",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "هیچ فایلی بارگذاری نشده", "No file was uploaded" => "هیچ فایلی بارگذاری نشده",
"Missing a temporary folder" => "یک پوشه موقت گم شده است", "Missing a temporary folder" => "یک پوشه موقت گم شده است",
"Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", "Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود",
"Not enough space available" => "فضای کافی در دسترس نیست",
"Invalid directory." => "فهرست راهنما نامعتبر می باشد.", "Invalid directory." => "فهرست راهنما نامعتبر می باشد.",
"Files" => "فایل ها", "Files" => "فایل ها",
"Unshare" => "لغو اشتراک", "Unshare" => "لغو اشتراک",

View File

@ -6,7 +6,6 @@
"No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty", "No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty",
"Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa", "Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa",
"Failed to write to disk" => "Levylle kirjoitus epäonnistui", "Failed to write to disk" => "Levylle kirjoitus epäonnistui",
"Not enough space available" => "Tilaa ei ole riittävästi",
"Invalid directory." => "Virheellinen kansio.", "Invalid directory." => "Virheellinen kansio.",
"Files" => "Tiedostot", "Files" => "Tiedostot",
"Unshare" => "Peru jakaminen", "Unshare" => "Peru jakaminen",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Aucun fichier n'a été téléversé", "No file was uploaded" => "Aucun fichier n'a été téléversé",
"Missing a temporary folder" => "Il manque un répertoire temporaire", "Missing a temporary folder" => "Il manque un répertoire temporaire",
"Failed to write to disk" => "Erreur d'écriture sur le disque", "Failed to write to disk" => "Erreur d'écriture sur le disque",
"Not enough space available" => "Espace disponible insuffisant",
"Invalid directory." => "Dossier invalide.", "Invalid directory." => "Dossier invalide.",
"Files" => "Fichiers", "Files" => "Fichiers",
"Unshare" => "Ne plus partager", "Unshare" => "Ne plus partager",
"Delete permanently" => "Supprimer de façon définitive",
"Delete" => "Supprimer", "Delete" => "Supprimer",
"Rename" => "Renommer", "Rename" => "Renommer",
"{new_name} already exists" => "{new_name} existe déjà", "{new_name} already exists" => "{new_name} existe déjà",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Non se enviou ningún ficheiro", "No file was uploaded" => "Non se enviou ningún ficheiro",
"Missing a temporary folder" => "Falta un cartafol temporal", "Missing a temporary folder" => "Falta un cartafol temporal",
"Failed to write to disk" => "Erro ao escribir no disco", "Failed to write to disk" => "Erro ao escribir no disco",
"Not enough space available" => "O espazo dispoñíbel é insuficiente",
"Invalid directory." => "O directorio é incorrecto.", "Invalid directory." => "O directorio é incorrecto.",
"Files" => "Ficheiros", "Files" => "Ficheiros",
"Unshare" => "Deixar de compartir", "Unshare" => "Deixar de compartir",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Nem töltődött fel semmi", "No file was uploaded" => "Nem töltődött fel semmi",
"Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa",
"Failed to write to disk" => "Nem sikerült a lemezre történő írás", "Failed to write to disk" => "Nem sikerült a lemezre történő írás",
"Not enough space available" => "Nincs elég szabad hely",
"Invalid directory." => "Érvénytelen mappa.", "Invalid directory." => "Érvénytelen mappa.",
"Files" => "Fájlok", "Files" => "Fájlok",
"Unshare" => "Megosztás visszavonása", "Unshare" => "Megosztás visszavonása",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Engin skrá skilaði sér", "No file was uploaded" => "Engin skrá skilaði sér",
"Missing a temporary folder" => "Vantar bráðabirgðamöppu", "Missing a temporary folder" => "Vantar bráðabirgðamöppu",
"Failed to write to disk" => "Tókst ekki að skrifa á disk", "Failed to write to disk" => "Tókst ekki að skrifa á disk",
"Not enough space available" => "Ekki nægt pláss tiltækt",
"Invalid directory." => "Ógild mappa.", "Invalid directory." => "Ógild mappa.",
"Files" => "Skrár", "Files" => "Skrár",
"Unshare" => "Hætta deilingu", "Unshare" => "Hætta deilingu",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Nessun file è stato caricato", "No file was uploaded" => "Nessun file è stato caricato",
"Missing a temporary folder" => "Cartella temporanea mancante", "Missing a temporary folder" => "Cartella temporanea mancante",
"Failed to write to disk" => "Scrittura su disco non riuscita", "Failed to write to disk" => "Scrittura su disco non riuscita",
"Not enough space available" => "Spazio disponibile insufficiente",
"Invalid directory." => "Cartella non valida.", "Invalid directory." => "Cartella non valida.",
"Files" => "File", "Files" => "File",
"Unshare" => "Rimuovi condivisione", "Unshare" => "Rimuovi condivisione",
"Delete permanently" => "Elimina definitivamente",
"Delete" => "Elimina", "Delete" => "Elimina",
"Rename" => "Rinomina", "Rename" => "Rinomina",
"{new_name} already exists" => "{new_name} esiste già", "{new_name} already exists" => "{new_name} esiste già",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "ファイルはアップロードされませんでした", "No file was uploaded" => "ファイルはアップロードされませんでした",
"Missing a temporary folder" => "テンポラリフォルダが見つかりません", "Missing a temporary folder" => "テンポラリフォルダが見つかりません",
"Failed to write to disk" => "ディスクへの書き込みに失敗しました", "Failed to write to disk" => "ディスクへの書き込みに失敗しました",
"Not enough space available" => "利用可能なスペースが十分にありません",
"Invalid directory." => "無効なディレクトリです。", "Invalid directory." => "無効なディレクトリです。",
"Files" => "ファイル", "Files" => "ファイル",
"Unshare" => "共有しない", "Unshare" => "共有しない",
"Delete permanently" => "完全に削除する",
"Delete" => "削除", "Delete" => "削除",
"Rename" => "名前の変更", "Rename" => "名前の変更",
"{new_name} already exists" => "{new_name} はすでに存在しています", "{new_name} already exists" => "{new_name} はすでに存在しています",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "업로드된 파일 없음", "No file was uploaded" => "업로드된 파일 없음",
"Missing a temporary folder" => "임시 폴더가 사라짐", "Missing a temporary folder" => "임시 폴더가 사라짐",
"Failed to write to disk" => "디스크에 쓰지 못했습니다", "Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Not enough space available" => "여유 공간이 부족합니다",
"Invalid directory." => "올바르지 않은 디렉터리입니다.", "Invalid directory." => "올바르지 않은 디렉터리입니다.",
"Files" => "파일", "Files" => "파일",
"Unshare" => "공유 해제", "Unshare" => "공유 해제",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Neviena datne netika augšupielādēta", "No file was uploaded" => "Neviena datne netika augšupielādēta",
"Missing a temporary folder" => "Trūkst pagaidu mapes", "Missing a temporary folder" => "Trūkst pagaidu mapes",
"Failed to write to disk" => "Neizdevās saglabāt diskā", "Failed to write to disk" => "Neizdevās saglabāt diskā",
"Not enough space available" => "Nepietiek brīvas vietas",
"Invalid directory." => "Nederīga direktorija.", "Invalid directory." => "Nederīga direktorija.",
"Files" => "Datnes", "Files" => "Datnes",
"Unshare" => "Pārtraukt dalīšanos", "Unshare" => "Pārtraukt dalīšanos",
"Delete permanently" => "Dzēst pavisam",
"Delete" => "Dzēst", "Delete" => "Dzēst",
"Rename" => "Pārsaukt", "Rename" => "Pārsaukt",
"{new_name} already exists" => "{new_name} jau eksistē", "{new_name} already exists" => "{new_name} jau eksistē",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Geen bestand geüpload", "No file was uploaded" => "Geen bestand geüpload",
"Missing a temporary folder" => "Een tijdelijke map mist", "Missing a temporary folder" => "Een tijdelijke map mist",
"Failed to write to disk" => "Schrijven naar schijf mislukt", "Failed to write to disk" => "Schrijven naar schijf mislukt",
"Not enough space available" => "Niet genoeg ruimte beschikbaar",
"Invalid directory." => "Ongeldige directory.", "Invalid directory." => "Ongeldige directory.",
"Files" => "Bestanden", "Files" => "Bestanden",
"Unshare" => "Stop delen", "Unshare" => "Stop delen",
"Delete permanently" => "Verwijder definitief",
"Delete" => "Verwijder", "Delete" => "Verwijder",
"Rename" => "Hernoem", "Rename" => "Hernoem",
"{new_name} already exists" => "{new_name} bestaat al", "{new_name} already exists" => "{new_name} bestaat al",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Nie przesłano żadnego pliku", "No file was uploaded" => "Nie przesłano żadnego pliku",
"Missing a temporary folder" => "Brak katalogu tymczasowego", "Missing a temporary folder" => "Brak katalogu tymczasowego",
"Failed to write to disk" => "Błąd zapisu na dysk", "Failed to write to disk" => "Błąd zapisu na dysk",
"Not enough space available" => "Za mało miejsca",
"Invalid directory." => "Zła ścieżka.", "Invalid directory." => "Zła ścieżka.",
"Files" => "Pliki", "Files" => "Pliki",
"Unshare" => "Nie udostępniaj", "Unshare" => "Nie udostępniaj",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Não foi enviado nenhum ficheiro", "No file was uploaded" => "Não foi enviado nenhum ficheiro",
"Missing a temporary folder" => "Falta uma pasta temporária", "Missing a temporary folder" => "Falta uma pasta temporária",
"Failed to write to disk" => "Falhou a escrita no disco", "Failed to write to disk" => "Falhou a escrita no disco",
"Not enough space available" => "Espaço em disco insuficiente!",
"Invalid directory." => "Directório Inválido", "Invalid directory." => "Directório Inválido",
"Files" => "Ficheiros", "Files" => "Ficheiros",
"Unshare" => "Deixar de partilhar", "Unshare" => "Deixar de partilhar",
"Delete permanently" => "Eliminar permanentemente",
"Delete" => "Apagar", "Delete" => "Apagar",
"Rename" => "Renomear", "Rename" => "Renomear",
"{new_name} already exists" => "O nome {new_name} já existe", "{new_name} already exists" => "O nome {new_name} já existe",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Niciun fișier încărcat", "No file was uploaded" => "Niciun fișier încărcat",
"Missing a temporary folder" => "Lipsește un dosar temporar", "Missing a temporary folder" => "Lipsește un dosar temporar",
"Failed to write to disk" => "Eroare la scriere pe disc", "Failed to write to disk" => "Eroare la scriere pe disc",
"Not enough space available" => "Nu este suficient spațiu disponibil",
"Invalid directory." => "Director invalid.", "Invalid directory." => "Director invalid.",
"Files" => "Fișiere", "Files" => "Fișiere",
"Unshare" => "Anulează partajarea", "Unshare" => "Anulează partajarea",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Файл не был загружен", "No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Невозможно найти временную папку", "Missing a temporary folder" => "Невозможно найти временную папку",
"Failed to write to disk" => "Ошибка записи на диск", "Failed to write to disk" => "Ошибка записи на диск",
"Not enough space available" => "Недостаточно свободного места",
"Invalid directory." => "Неправильный каталог.", "Invalid directory." => "Неправильный каталог.",
"Files" => "Файлы", "Files" => "Файлы",
"Unshare" => "Отменить публикацию", "Unshare" => "Отменить публикацию",
"Delete permanently" => "Удалено навсегда",
"Delete" => "Удалить", "Delete" => "Удалить",
"Rename" => "Переименовать", "Rename" => "Переименовать",
"{new_name} already exists" => "{new_name} уже существует", "{new_name} already exists" => "{new_name} уже существует",
@ -20,9 +20,13 @@
"replaced {new_name}" => "заменено {new_name}", "replaced {new_name}" => "заменено {new_name}",
"undo" => "отмена", "undo" => "отмена",
"replaced {new_name} with {old_name}" => "заменено {new_name} на {old_name}", "replaced {new_name} with {old_name}" => "заменено {new_name} на {old_name}",
"perform delete operation" => "выполняется операция удаления",
"'.' is an invalid file name." => "'.' - неправильное имя файла.", "'.' is an invalid file name." => "'.' - неправильное имя файла.",
"File name cannot be empty." => "Имя файла не может быть пустым.", "File name cannot be empty." => "Имя файла не может быть пустым.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.",
"Your storage is full, files can not be updated or synced anymore!" => "Ваше дисковое пространство полностью заполнено, произведите очистку перед загрузкой новых файлов.",
"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
"Your download is being prepared. This might take some time if the files are big." => "Загрузка началась. Это может потребовать много времени, если файл большого размера.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог", "Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог",
"Upload Error" => "Ошибка загрузки", "Upload Error" => "Ошибка загрузки",
"Close" => "Закрыть", "Close" => "Закрыть",
@ -53,11 +57,13 @@
"Text file" => "Текстовый файл", "Text file" => "Текстовый файл",
"Folder" => "Папка", "Folder" => "Папка",
"From link" => "Из ссылки", "From link" => "Из ссылки",
"Trash" => "Корзина",
"Cancel upload" => "Отмена загрузки", "Cancel upload" => "Отмена загрузки",
"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!",
"Download" => "Скачать", "Download" => "Скачать",
"Upload too large" => "Файл слишком большой", "Upload too large" => "Файл слишком большой",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.",
"Files are being scanned, please wait." => "Подождите, файлы сканируются.", "Files are being scanned, please wait." => "Подождите, файлы сканируются.",
"Current scanning" => "Текущее сканирование" "Current scanning" => "Текущее сканирование",
"Upgrading filesystem cache..." => "Обновление кеша файловой системы..."
); );

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Файл не был загружен", "No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Отсутствует временная папка", "Missing a temporary folder" => "Отсутствует временная папка",
"Failed to write to disk" => "Не удалось записать на диск", "Failed to write to disk" => "Не удалось записать на диск",
"Not enough space available" => "Не достаточно свободного места",
"Invalid directory." => "Неверный каталог.", "Invalid directory." => "Неверный каталог.",
"Files" => "Файлы", "Files" => "Файлы",
"Unshare" => "Скрыть", "Unshare" => "Скрыть",
"Delete permanently" => "Удалить навсегда",
"Delete" => "Удалить", "Delete" => "Удалить",
"Rename" => "Переименовать", "Rename" => "Переименовать",
"{new_name} already exists" => "{новое_имя} уже существует", "{new_name} already exists" => "{новое_имя} уже существует",
@ -20,9 +20,13 @@
"replaced {new_name}" => "заменено {новое_имя}", "replaced {new_name}" => "заменено {новое_имя}",
"undo" => "отменить действие", "undo" => "отменить действие",
"replaced {new_name} with {old_name}" => "заменено {новое_имя} с {старое_имя}", "replaced {new_name} with {old_name}" => "заменено {новое_имя} с {старое_имя}",
"perform delete operation" => "выполняется процесс удаления",
"'.' is an invalid file name." => "'.' является неверным именем файла.", "'.' is an invalid file name." => "'.' является неверным именем файла.",
"File name cannot be empty." => "Имя файла не может быть пустым.", "File name cannot be empty." => "Имя файла не может быть пустым.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.",
"Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище переполнено, фалы больше не могут быть обновлены или синхронизированы!",
"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти полно ({usedSpacePercent}%)",
"Your download is being prepared. This might take some time if the files are big." => "Идёт подготовка к скачке Вашего файла. Это может занять некоторое время, если фалы большие.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией", "Unable to upload your file as it is a directory or has 0 bytes" => "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией",
"Upload Error" => "Ошибка загрузки", "Upload Error" => "Ошибка загрузки",
"Close" => "Закрыть", "Close" => "Закрыть",
@ -53,6 +57,7 @@
"Text file" => "Текстовый файл", "Text file" => "Текстовый файл",
"Folder" => "Папка", "Folder" => "Папка",
"From link" => "По ссылке", "From link" => "По ссылке",
"Trash" => "Корзина",
"Cancel upload" => "Отмена загрузки", "Cancel upload" => "Отмена загрузки",
"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!",
"Download" => "Загрузить", "Download" => "Загрузить",

View File

@ -7,10 +7,10 @@
"No file was uploaded" => "Žiaden súbor nebol nahraný", "No file was uploaded" => "Žiaden súbor nebol nahraný",
"Missing a temporary folder" => "Chýbajúci dočasný priečinok", "Missing a temporary folder" => "Chýbajúci dočasný priečinok",
"Failed to write to disk" => "Zápis na disk sa nepodaril", "Failed to write to disk" => "Zápis na disk sa nepodaril",
"Not enough space available" => "Nie je k dispozícii dostatok miesta",
"Invalid directory." => "Neplatný adresár", "Invalid directory." => "Neplatný adresár",
"Files" => "Súbory", "Files" => "Súbory",
"Unshare" => "Nezdielať", "Unshare" => "Nezdielať",
"Delete permanently" => "Zmazať trvalo",
"Delete" => "Odstrániť", "Delete" => "Odstrániť",
"Rename" => "Premenovať", "Rename" => "Premenovať",
"{new_name} already exists" => "{new_name} už existuje", "{new_name} already exists" => "{new_name} už existuje",
@ -20,6 +20,7 @@
"replaced {new_name}" => "prepísaný {new_name}", "replaced {new_name}" => "prepísaný {new_name}",
"undo" => "vrátiť", "undo" => "vrátiť",
"replaced {new_name} with {old_name}" => "prepísaný {new_name} súborom {old_name}", "replaced {new_name} with {old_name}" => "prepísaný {new_name} súborom {old_name}",
"perform delete operation" => "vykonať zmazanie",
"'.' is an invalid file name." => "'.' je neplatné meno súboru.", "'.' is an invalid file name." => "'.' je neplatné meno súboru.",
"File name cannot be empty." => "Meno súboru nemôže byť prázdne", "File name cannot be empty." => "Meno súboru nemôže byť prázdne",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.",
@ -56,11 +57,13 @@
"Text file" => "Textový súbor", "Text file" => "Textový súbor",
"Folder" => "Priečinok", "Folder" => "Priečinok",
"From link" => "Z odkazu", "From link" => "Z odkazu",
"Trash" => "Kôš",
"Cancel upload" => "Zrušiť odosielanie", "Cancel upload" => "Zrušiť odosielanie",
"Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", "Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!",
"Download" => "Stiahnuť", "Download" => "Stiahnuť",
"Upload too large" => "Odosielaný súbor je príliš veľký", "Upload too large" => "Odosielaný súbor je príliš veľký",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.",
"Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.", "Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.",
"Current scanning" => "Práve prehliadané" "Current scanning" => "Práve prehliadané",
"Upgrading filesystem cache..." => "Aktualizujem medzipamäť súborového systému..."
); );

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Ingen fil blev uppladdad", "No file was uploaded" => "Ingen fil blev uppladdad",
"Missing a temporary folder" => "Saknar en tillfällig mapp", "Missing a temporary folder" => "Saknar en tillfällig mapp",
"Failed to write to disk" => "Misslyckades spara till disk", "Failed to write to disk" => "Misslyckades spara till disk",
"Not enough space available" => "Inte tillräckligt med utrymme tillgängligt",
"Invalid directory." => "Felaktig mapp.", "Invalid directory." => "Felaktig mapp.",
"Files" => "Filer", "Files" => "Filer",
"Unshare" => "Sluta dela", "Unshare" => "Sluta dela",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด", "No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด",
"Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย", "Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", "Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough space available" => "มีพื้นที่เหลือไม่เพียงพอ",
"Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", "Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" => "ไฟล์", "Files" => "ไฟล์",
"Unshare" => "ยกเลิกการแชร์ข้อมูล", "Unshare" => "ยกเลิกการแชร์ข้อมูล",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "Hiç dosya yüklenmedi", "No file was uploaded" => "Hiç dosya yüklenmedi",
"Missing a temporary folder" => "Geçici bir klasör eksik", "Missing a temporary folder" => "Geçici bir klasör eksik",
"Failed to write to disk" => "Diske yazılamadı", "Failed to write to disk" => "Diske yazılamadı",
"Not enough space available" => "Yeterli disk alanı yok",
"Invalid directory." => "Geçersiz dizin.", "Invalid directory." => "Geçersiz dizin.",
"Files" => "Dosyalar", "Files" => "Dosyalar",
"Unshare" => "Paylaşılmayan", "Unshare" => "Paylaşılmayan",

View File

@ -7,8 +7,10 @@
"No file was uploaded" => "Не відвантажено жодного файлу", "No file was uploaded" => "Не відвантажено жодного файлу",
"Missing a temporary folder" => "Відсутній тимчасовий каталог", "Missing a temporary folder" => "Відсутній тимчасовий каталог",
"Failed to write to disk" => "Невдалося записати на диск", "Failed to write to disk" => "Невдалося записати на диск",
"Invalid directory." => "Невірний каталог.",
"Files" => "Файли", "Files" => "Файли",
"Unshare" => "Заборонити доступ", "Unshare" => "Заборонити доступ",
"Delete permanently" => "Видалити назавжди",
"Delete" => "Видалити", "Delete" => "Видалити",
"Rename" => "Перейменувати", "Rename" => "Перейменувати",
"{new_name} already exists" => "{new_name} вже існує", "{new_name} already exists" => "{new_name} вже існує",
@ -18,7 +20,13 @@
"replaced {new_name}" => "замінено {new_name}", "replaced {new_name}" => "замінено {new_name}",
"undo" => "відмінити", "undo" => "відмінити",
"replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}", "replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}",
"perform delete operation" => "виконати операцію видалення",
"'.' is an invalid file name." => "'.' це невірне ім'я файлу.",
"File name cannot be empty." => " Ім'я файлу не може бути порожнім.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені.",
"Your storage is full, files can not be updated or synced anymore!" => "Ваше сховище переповнене, файли більше не можуть бути оновлені або синхронізовані !",
"Your storage is almost full ({usedSpacePercent}%)" => "Ваше сховище майже повне ({usedSpacePercent}%)",
"Your download is being prepared. This might take some time if the files are big." => "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт", "Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт",
"Upload Error" => "Помилка завантаження", "Upload Error" => "Помилка завантаження",
"Close" => "Закрити", "Close" => "Закрити",
@ -28,6 +36,7 @@
"Upload cancelled." => "Завантаження перервано.", "Upload cancelled." => "Завантаження перервано.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", "File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.",
"URL cannot be empty." => "URL не може бути пустим.", "URL cannot be empty." => "URL не може бути пустим.",
"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Невірне ім'я теки. Використання \"Shared\" зарезервовано Owncloud",
"Name" => "Ім'я", "Name" => "Ім'я",
"Size" => "Розмір", "Size" => "Розмір",
"Modified" => "Змінено", "Modified" => "Змінено",
@ -48,11 +57,13 @@
"Text file" => "Текстовий файл", "Text file" => "Текстовий файл",
"Folder" => "Папка", "Folder" => "Папка",
"From link" => "З посилання", "From link" => "З посилання",
"Trash" => "Смітник",
"Cancel upload" => "Перервати завантаження", "Cancel upload" => "Перервати завантаження",
"Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!", "Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!",
"Download" => "Завантажити", "Download" => "Завантажити",
"Upload too large" => "Файл занадто великий", "Upload too large" => "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.", "Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.",
"Current scanning" => "Поточне сканування" "Current scanning" => "Поточне сканування",
"Upgrading filesystem cache..." => "Оновлення кеша файлової системи..."
); );

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "文件没有上传", "No file was uploaded" => "文件没有上传",
"Missing a temporary folder" => "缺少临时目录", "Missing a temporary folder" => "缺少临时目录",
"Failed to write to disk" => "写入磁盘失败", "Failed to write to disk" => "写入磁盘失败",
"Not enough space available" => "没有足够可用空间",
"Invalid directory." => "无效文件夹。", "Invalid directory." => "无效文件夹。",
"Files" => "文件", "Files" => "文件",
"Unshare" => "取消分享", "Unshare" => "取消分享",

View File

@ -7,7 +7,6 @@
"No file was uploaded" => "無已上傳檔案", "No file was uploaded" => "無已上傳檔案",
"Missing a temporary folder" => "遺失暫存資料夾", "Missing a temporary folder" => "遺失暫存資料夾",
"Failed to write to disk" => "寫入硬碟失敗", "Failed to write to disk" => "寫入硬碟失敗",
"Not enough space available" => "沒有足夠的可用空間",
"Invalid directory." => "無效的資料夾。", "Invalid directory." => "無效的資料夾。",
"Files" => "檔案", "Files" => "檔案",
"Unshare" => "取消共享", "Unshare" => "取消共享",

View File

@ -37,7 +37,7 @@
</div> </div>
<?php if ($_['trash'] ): ?> <?php if ($_['trash'] ): ?>
<div id="trash" class="button"> <div id="trash" class="button">
<a><?php echo $l->t('Trash');?></a> <a><?php echo $l->t('Trash bin');?></a>
</div> </div>
<?php endif; ?> <?php endif; ?>
<div id="uploadprogresswrapper"> <div id="uploadprogresswrapper">
@ -59,7 +59,7 @@
<div id="emptyfolder"><?php echo $l->t('Nothing in here. Upload something!')?></div> <div id="emptyfolder"><?php echo $l->t('Nothing in here. Upload something!')?></div>
<?php endif; ?> <?php endif; ?>
<table> <table class="hascontrols">
<thead> <thead>
<tr> <tr>
<th id='headerName'> <th id='headerName'>

View File

@ -1,6 +1,6 @@
<?php if(count($_["breadcrumb"])):?> <?php if(count($_["breadcrumb"])):?>
<div class="crumb"> <div class="crumb">
<a href="<?php echo $_['baseURL'].urlencode($crumb['dir']); ?>"> <a href="<?php echo $_['baseURL']; ?>">
<img src="<?php echo OCP\image_path('core','places/home.svg');?>" /> <img src="<?php echo OCP\image_path('core','places/home.svg');?>" />
</a> </a>
</div> </div>

View File

@ -10,21 +10,31 @@ OC::$CLASSPATH['OCA\Encryption\Session'] = 'apps/files_encryption/lib/session.ph
OC_FileProxy::register( new OCA\Encryption\Proxy() ); OC_FileProxy::register( new OCA\Encryption\Proxy() );
OCP\Util::connectHook( 'OC_User','post_login', 'OCA\Encryption\Hooks', 'login' ); // User-related hooks
OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' );
OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'setPassphrase' );
// Sharing-related hooks
OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' );
OCP\Util::connectHook( 'OCP\Share', 'pre_unshare', 'OCA\Encryption\Hooks', 'preUnshare' );
OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' );
// Webdav-related hooks
OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' ); OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' );
OCP\Util::connectHook( 'OC_User','post_setPassword','OCA\Encryption\Hooks' ,'setPassphrase' );
stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' );
$session = new OCA\Encryption\Session(); $session = new OCA\Encryption\Session();
if ( if (
! $session->getPrivateKey( \OCP\USER::getUser() ) ! $session->getPrivateKey( \OCP\USER::getUser() )
&& OCP\User::isLoggedIn() && OCP\User::isLoggedIn()
&& OCA\Encryption\Crypt::mode() == 'server' && OCA\Encryption\Crypt::mode() == 'server'
) { ) {
// Force the user to re-log in if the encryption key isn't unlocked (happens when a user is logged in before the encryption app is enabled) // Force the user to log-in again if the encryption key isn't unlocked
// (happens when a user is logged in before the encryption app is
// enabled)
OCP\User::logout(); OCP\User::logout();
header( "Location: " . OC::$WEBROOT.'/' ); header( "Location: " . OC::$WEBROOT.'/' );
@ -33,5 +43,6 @@ if (
} }
OCP\App::registerAdmin( 'files_encryption', 'settings'); // Reguster settings scripts
OCP\App::registerAdmin( 'files_encryption', 'settings' );
OCP\App::registerPersonal( 'files_encryption', 'settings-personal' ); OCP\App::registerPersonal( 'files_encryption', 'settings-personal' );

View File

@ -0,0 +1,19 @@
Encrypted files
---------------
- Each encrypted file has at least two components: the encrypted data file
('catfile'), and it's corresponding key file ('keyfile'). Shared files have an
additional key file ('share key'). The catfile contains the encrypted data
concatenated with delimiter text, followed by the initialisation vector ('IV'),
and padding. e.g.:
[encrypted data string][delimiter][IV][padding]
[anhAAjAmcGXqj1X9g==][00iv00][MSHU5N5gECP7aAg7][xx] (square braces added)
Notes
-----
- The user passphrase is required in order to set up or upgrade the app. New
keypair generation, and the re-encryption of legacy encrypted files requires
it. Therefore an appinfo/update.php script cannot be used, and upgrade logic
is handled in the login hook listener.

View File

@ -1 +1 @@
0.2.1 0.3

View File

@ -1,4 +1,5 @@
<?php <?php
/** /**
* ownCloud * ownCloud
* *
@ -28,7 +29,8 @@ namespace OCA\Encryption;
class Hooks { class Hooks {
# TODO: use passphrase for encrypting private key that is separate to the login password // TODO: use passphrase for encrypting private key that is separate to
// the login password
/** /**
* @brief Startup encryption backend upon user login * @brief Startup encryption backend upon user login
@ -36,49 +38,65 @@ class Hooks {
*/ */
public static function login( $params ) { public static function login( $params ) {
// if ( Crypt::mode( $params['uid'] ) == 'server' ) { // Manually initialise Filesystem{} singleton with correct
// fake root path, in order to avoid fatal webdav errors
\OC\Files\Filesystem::init( $params['uid'] . '/' . 'files' . '/' );
# TODO: use lots of dependency injection here $view = new \OC_FilesystemView( '/' );
$view = new \OC_FilesystemView( '/' ); $util = new Util( $view, $params['uid'] );
$util = new Util( $view, $params['uid'] ); // Check files_encryption infrastructure is ready for action
if ( ! $util->ready() ) {
if ( ! $util->ready() ) { \OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started', \OC_Log::DEBUG );
\OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started' , \OC_Log::DEBUG ); return $util->setupServerSide( $params['password'] );
return $util->setupServerSide( $params['password'] ); }
} \OC_FileProxy::$enabled = false;
\OC_FileProxy::$enabled = false; $encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] );
$encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] ); \OC_FileProxy::$enabled = true;
\OC_FileProxy::$enabled = true; $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] );
# TODO: dont manually encrypt the private keyfile - use the config options of openssl_pkey_export instead for better mobile compatibility $session = new Session();
$privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); $session->setPrivateKey( $privateKey, $params['uid'] );
$session = new Session(); $view1 = new \OC_FilesystemView( '/' . $params['uid'] );
$session->setPrivateKey( $privateKey, $params['uid'] ); // Set legacy encryption key if it exists, to support
// depreciated encryption system
$view1 = new \OC_FilesystemView( '/' . $params['uid'] ); if (
// Set legacy encryption key if it exists, to support
// depreciated encryption system
if (
$view1->file_exists( 'encryption.key' ) $view1->file_exists( 'encryption.key' )
&& $legacyKey = $view1->file_get_contents( 'encryption.key' ) && $encLegacyKey = $view1->file_get_contents( 'encryption.key' )
) { ) {
$_SESSION['legacyenckey'] = Crypt::legacyDecrypt( $legacyKey, $params['password'] ); $plainLegacyKey = Crypt::legacyDecrypt( $encLegacyKey, $params['password'] );
} $session->setLegacyKey( $plainLegacyKey );
// }
}
$publicKey = Keymanager::getPublicKey( $view, $params['uid'] );
// Encrypt existing user files:
// This serves to upgrade old versions of the encryption
// app (see appinfo/spec.txt)
if (
$util->encryptAll( $publicKey, '/' . $params['uid'] . '/' . 'files', $session->getLegacyKey(), $params['password'] )
) {
\OC_Log::write(
'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" started at login'
, \OC_Log::INFO
);
}
return true; return true;
@ -95,8 +113,10 @@ class Hooks {
// the necessary keys) // the necessary keys)
if ( Crypt::mode() == 'server' ) { if ( Crypt::mode() == 'server' ) {
$session = new Session();
// Get existing decrypted private key // Get existing decrypted private key
$privateKey = $_SESSION['privateKey']; $privateKey = $session->getPrivateKey();
// Encrypt private key with new user pwd as passphrase // Encrypt private key with new user pwd as passphrase
$encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $privateKey, $params['password'] ); $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $privateKey, $params['password'] );
@ -104,9 +124,9 @@ class Hooks {
// Save private key // Save private key
Keymanager::setPrivateKey( $encryptedPrivateKey ); Keymanager::setPrivateKey( $encryptedPrivateKey );
# NOTE: Session does not need to be updated as the // NOTE: Session does not need to be updated as the
# private key has not changed, only the passphrase // private key has not changed, only the passphrase
# used to decrypt it has changed // used to decrypt it has changed
} }
@ -121,7 +141,10 @@ class Hooks {
if ( isset( $params['properties']['key'] ) ) { if ( isset( $params['properties']['key'] ) ) {
Keymanager::setFileKey( $params['path'], $params['properties']['key'] ); $view = new \OC_FilesystemView( '/' );
$userId = \OCP\User::getUser();
Keymanager::setFileKey( $view, $params['path'], $userId, $params['properties']['key'] );
} else { } else {
@ -138,6 +161,41 @@ class Hooks {
} }
} /**
* @brief
*/
public static function postShared( $params ) {
?> // Delete existing catfile
Keymanager::deleteFileKey( );
// Generate new catfile and env keys
Crypt::multiKeyEncrypt( $plainContent, $publicKeys );
// Save env keys to user folders
}
/**
* @brief
*/
public static function preUnshare( $params ) {
// Delete existing catfile
// Generate new catfile and env keys
// Save env keys to user folders
}
/**
* @brief
*/
public static function preUnshareAll( $params ) {
trigger_error( "preUnshareAll" );
}
}

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "التشفير", "Encryption" => "التشفير",
"Exclude the following file types from encryption" => "استبعد أنواع الملفات التالية من التشفير",
"None" => "لا شيء" "None" => "لا شيء"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Криптиране", "Encryption" => "Криптиране",
"Exclude the following file types from encryption" => "Изключване на следните файлови типове от криптирането",
"None" => "Няма" "None" => "Няма"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "সংকেতায়ন", "Encryption" => "সংকেতায়ন",
"Exclude the following file types from encryption" => "সংকেতায়ন থেকে নিম্নোক্ত ধরণসমূহ বাদ দাও",
"None" => "কোনটিই নয়" "None" => "কোনটিই নয়"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Canvia la contrasenya d'encriptació per la d'accés", "Change encryption password to login password" => "Canvia la contrasenya d'encriptació per la d'accés",
"Please check your passwords and try again." => "Comproveu les contrasenyes i proveu-ho de nou.", "Please check your passwords and try again." => "Comproveu les contrasenyes i proveu-ho de nou.",
"Could not change your file encryption password to your login password" => "No s'ha pogut canviar la contrasenya d'encriptació de fitxers per la d'accés", "Could not change your file encryption password to your login password" => "No s'ha pogut canviar la contrasenya d'encriptació de fitxers per la d'accés",
"Choose encryption mode:" => "Escolliu el mode d'encriptació:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptació per part del client (més segura però fa impossible l'accés a les dades des de la interfície web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptació per part del servidor (permet accedir als fitxers des de la interfície web i des del client d'escriptori)",
"None (no encryption at all)" => "Cap (sense encriptació)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Important: quan seleccioneu un mode d'encriptació no hi ha manera de canviar-lo de nou",
"User specific (let the user decide)" => "Específic per usuari (permet que l'usuari ho decideixi)",
"Encryption" => "Encriptatge", "Encryption" => "Encriptatge",
"Exclude the following file types from encryption" => "Exclou els tipus de fitxers següents de l'encriptatge", "File encryption is enabled." => "L'encriptació de fitxers està activada.",
"The following file types will not be encrypted:" => "Els tipus de fitxers següents no s'encriptaran:",
"Exclude the following file types from encryption:" => "Exclou els tipus de fitxers següents de l'encriptatge:",
"None" => "Cap" "None" => "Cap"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Změnit šifrovací heslo na přihlašovací", "Change encryption password to login password" => "Změnit šifrovací heslo na přihlašovací",
"Please check your passwords and try again." => "Zkontrolujte, prosím, své heslo a zkuste to znovu.", "Please check your passwords and try again." => "Zkontrolujte, prosím, své heslo a zkuste to znovu.",
"Could not change your file encryption password to your login password" => "Nelze změnit šifrovací heslo na přihlašovací.", "Could not change your file encryption password to your login password" => "Nelze změnit šifrovací heslo na přihlašovací.",
"Choose encryption mode:" => "Vyberte režim šifrování:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Šifrování na straně klienta (nejbezpečnější ale neumožňuje vám přistupovat k souborům z webového rozhraní)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Šifrování na straně serveru (umožňuje vám přistupovat k souborům pomocí webového rozhraní i aplikací)",
"None (no encryption at all)" => "Žádný (vůbec žádné šifrování)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Důležité: jak si jednou vyberete režim šifrování nelze jej opětovně změnit",
"User specific (let the user decide)" => "Definován uživatelem (umožní uživateli si vybrat)",
"Encryption" => "Šifrování", "Encryption" => "Šifrování",
"Exclude the following file types from encryption" => "Při šifrování vynechat následující typy souborů", "File encryption is enabled." => "Šifrování je povoleno.",
"The following file types will not be encrypted:" => "Následující typy souborů nebudou šifrovány:",
"Exclude the following file types from encryption:" => "Vyjmout následující typy souborů ze šifrování:",
"None" => "Žádné" "None" => "Žádné"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Udskift krypteringskode til login-adgangskode", "Change encryption password to login password" => "Udskift krypteringskode til login-adgangskode",
"Please check your passwords and try again." => "Check adgangskoder og forsøg igen.", "Please check your passwords and try again." => "Check adgangskoder og forsøg igen.",
"Could not change your file encryption password to your login password" => "Kunne ikke udskifte krypteringskode med login-adgangskode", "Could not change your file encryption password to your login password" => "Kunne ikke udskifte krypteringskode med login-adgangskode",
"Choose encryption mode:" => "Vælg krypteringsform:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kryptering på klientsiden (mere sikker, men udelukker adgang til dataene fra webinterfacet)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kryptering på serversiden (gør det muligt at tilgå filer fra webinterfacet såvel som desktopklienten)",
"None (no encryption at all)" => "Ingen (ingen kryptering)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Vigtigt: Når der er valgt krypteringsform, kan det ikke ændres tilbage igen.",
"User specific (let the user decide)" => "Brugerspecifik (lad brugeren bestemme)",
"Encryption" => "Kryptering", "Encryption" => "Kryptering",
"Exclude the following file types from encryption" => "Ekskluder følgende filtyper fra kryptering",
"None" => "Ingen" "None" => "Ingen"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort", "Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort",
"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.", "Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.",
"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.", "Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.",
"Choose encryption mode:" => "Wählen Sie die Verschlüsselungsart:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Clientseitige Verschlüsselung (am sichersten, aber macht es unmöglich auf ihre Daten über das Webinterface zuzugreifen)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Serverseitige Verschlüsselung (erlaubt es ihnen auf ihre Daten über das Webinterface und den Desktop-Client zuzugreifen)",
"None (no encryption at all)" => "Keine (ohne Verschlüsselung)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Wichtig: Sobald sie eine Verschlüsselungsmethode gewählt haben, können Sie diese nicht ändern!",
"User specific (let the user decide)" => "Benutzerspezifisch (der Benutzer kann entscheiden)",
"Encryption" => "Verschlüsselung", "Encryption" => "Verschlüsselung",
"Exclude the following file types from encryption" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen",
"None" => "Keine" "None" => "Keine"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort", "Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort",
"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.", "Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.",
"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.", "Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.",
"Choose encryption mode:" => "Wählen Sie die Verschlüsselungsmethode:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Clientseitige Verschlüsselung (am sichersten, aber macht es unmöglich auf ihre Daten über das Webinterface zuzugreifen)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Serverseitige Verschlüsselung (erlaubt es ihnen auf ihre Daten über das Webinterface und den Desktop-Client zuzugreifen)",
"None (no encryption at all)" => "Keine (ohne Verschlüsselung)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Wichtig: Sobald sie eine Verschlüsselungsmethode gewählt haben, können Sie diese nicht ändern!",
"User specific (let the user decide)" => "Benutzerspezifisch (der Benutzer kann entscheiden)",
"Encryption" => "Verschlüsselung", "Encryption" => "Verschlüsselung",
"Exclude the following file types from encryption" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen", "File encryption is enabled." => "Datei-Verschlüsselung ist aktiviert",
"The following file types will not be encrypted:" => "Die folgenden Datei-Typen werden nicht verschlüsselt:",
"Exclude the following file types from encryption:" => "Die folgenden Datei-Typen von der Verschlüsselung ausnehmen:",
"None" => "Keine" "None" => "Keine"
); );

View File

@ -2,8 +2,6 @@
"Change encryption password to login password" => "Αλλαγή συνθηματικού κρυπτογράφησης στο συνθηματικό εισόδου ", "Change encryption password to login password" => "Αλλαγή συνθηματικού κρυπτογράφησης στο συνθηματικό εισόδου ",
"Please check your passwords and try again." => "Παρακαλώ ελέγξτε το συνθηματικό σας και προσπαθήστε ξανά.", "Please check your passwords and try again." => "Παρακαλώ ελέγξτε το συνθηματικό σας και προσπαθήστε ξανά.",
"Could not change your file encryption password to your login password" => "Αδυναμία αλλαγής συνθηματικού κρυπτογράφησης αρχείων στο συνθηματικό εισόδου σας", "Could not change your file encryption password to your login password" => "Αδυναμία αλλαγής συνθηματικού κρυπτογράφησης αρχείων στο συνθηματικό εισόδου σας",
"Choose encryption mode:" => "Επιλογή κατάστασης κρυπτογράφησης:",
"Encryption" => "Κρυπτογράφηση", "Encryption" => "Κρυπτογράφηση",
"Exclude the following file types from encryption" => "Εξαίρεση των παρακάτω τύπων αρχείων από την κρυπτογράφηση",
"None" => "Καμία" "None" => "Καμία"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Ĉifrado", "Encryption" => "Ĉifrado",
"Exclude the following file types from encryption" => "Malinkluzivigi la jenajn dosiertipojn el ĉifrado",
"None" => "Nenio" "None" => "Nenio"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Cambie la clave de cifrado para su contraseña de inicio de sesión", "Change encryption password to login password" => "Cambie la clave de cifrado para su contraseña de inicio de sesión",
"Please check your passwords and try again." => "Por favor revise su contraseña e intentelo de nuevo.", "Please check your passwords and try again." => "Por favor revise su contraseña e intentelo de nuevo.",
"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión", "Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión",
"Choose encryption mode:" => "Elegir el modo de cifrado:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Cifrado del lado del Cliente ( es el más seguro, pero hace que sea imposible acceder a sus datos desde la interfaz web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Cifrado del lado del Servidor (le permite acceder a sus archivos desde la interfaz web y el cliente de escritorio)",
"None (no encryption at all)" => "Ninguno (ningún cifrado en absoluto)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de cifrado no existe forma de cambiarlo de nuevo",
"User specific (let the user decide)" => "Específico del usuario (dejar que el usuario decida)",
"Encryption" => "Cifrado", "Encryption" => "Cifrado",
"Exclude the following file types from encryption" => "Excluir del cifrado los siguientes tipos de archivo", "File encryption is enabled." => "La encriptacion de archivo esta activada.",
"The following file types will not be encrypted:" => "Los siguientes tipos de archivo no seran encriptados:",
"Exclude the following file types from encryption:" => "Excluir los siguientes tipos de archivo de la encriptacion:",
"None" => "Ninguno" "None" => "Ninguno"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Cambiá la clave de encriptado para tu contraseña de inicio de sesión", "Change encryption password to login password" => "Cambiá la clave de encriptado para tu contraseña de inicio de sesión",
"Please check your passwords and try again." => "Por favor, revisá tu contraseña e intentalo de nuevo.", "Please check your passwords and try again." => "Por favor, revisá tu contraseña e intentalo de nuevo.",
"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión", "Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión",
"Choose encryption mode:" => "Elegir el modo de encriptación:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptación por parte del cliente (es el modo más seguro, pero hace que sea imposible acceder a tus datos desde la interfaz web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptación por parte del servidor (te permite acceder a tus archivos desde la interfaz web y desde el cliente de escritorio)",
"None (no encryption at all)" => "Ninguno (ninguna encriptación en absoluto)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de encriptación, no existe forma de cambiarlo nuevamente",
"User specific (let the user decide)" => "Específico por usuario (deja que el usuario decida)",
"Encryption" => "Encriptación", "Encryption" => "Encriptación",
"Exclude the following file types from encryption" => "Exceptuar de la encriptación los siguientes tipos de archivo",
"None" => "Ninguno" "None" => "Ninguno"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Krüpteerimine", "Encryption" => "Krüpteerimine",
"Exclude the following file types from encryption" => "Järgnevaid failitüüpe ära krüpteeri",
"None" => "Pole" "None" => "Pole"
); );

View File

@ -1,9 +1,5 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Please check your passwords and try again." => "Mesedez egiaztatu zure pasahitza eta saia zaitez berriro:", "Please check your passwords and try again." => "Mesedez egiaztatu zure pasahitza eta saia zaitez berriro:",
"Choose encryption mode:" => "Hautatu enkriptazio modua:",
"None (no encryption at all)" => "Bat ere ez (enkriptaziorik gabe)",
"User specific (let the user decide)" => "Erabiltzaileak zehaztuta (utzi erabiltzaileari hautatzen)",
"Encryption" => "Enkriptazioa", "Encryption" => "Enkriptazioa",
"Exclude the following file types from encryption" => "Ez enkriptatu hurrengo fitxategi motak",
"None" => "Bat ere ez" "None" => "Bat ere ez"
); );

View File

@ -1,5 +1,5 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Please check your passwords and try again." => "لطفا گذرواژه خود را بررسی کنید و دوباره امتحان کنید.",
"Encryption" => "رمزگذاری", "Encryption" => "رمزگذاری",
"Exclude the following file types from encryption" => "نادیده گرفتن فایل های زیر برای رمز گذاری",
"None" => "هیچ‌کدام" "None" => "هیچ‌کدام"
); );

View File

@ -1,9 +1,5 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Please check your passwords and try again." => "Tarkista salasanasi ja yritä uudelleen.", "Please check your passwords and try again." => "Tarkista salasanasi ja yritä uudelleen.",
"Choose encryption mode:" => "Choose encryption mode:",
"None (no encryption at all)" => "Ei mitään (ei lainkaan salausta)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Tärkeä huomautus: Kun olet valinnut salaustatavan, sitä ei ole mahdollista vaihtaa",
"Encryption" => "Salaus", "Encryption" => "Salaus",
"Exclude the following file types from encryption" => "Jätä seuraavat tiedostotyypit salaamatta",
"None" => "Ei mitään" "None" => "Ei mitään"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Convertir le mot de passe de chiffrement en mot de passe de connexion", "Change encryption password to login password" => "Convertir le mot de passe de chiffrement en mot de passe de connexion",
"Please check your passwords and try again." => "Veuillez vérifier vos mots de passe et réessayer.", "Please check your passwords and try again." => "Veuillez vérifier vos mots de passe et réessayer.",
"Could not change your file encryption password to your login password" => "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion", "Could not change your file encryption password to your login password" => "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion",
"Choose encryption mode:" => "Choix du type de chiffrement :",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Chiffrement côté client (plus sécurisé, mais ne permet pas l'accès à vos données depuis l'interface web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Chiffrement côté serveur (vous permet d'accéder à vos fichiers depuis l'interface web et depuis le client de synchronisation)",
"None (no encryption at all)" => "Aucun (pas de chiffrement)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Important : Une fois le mode de chiffrement choisi, il est impossible de revenir en arrière",
"User specific (let the user decide)" => "Propre à l'utilisateur (laisse le choix à l'utilisateur)",
"Encryption" => "Chiffrement", "Encryption" => "Chiffrement",
"Exclude the following file types from encryption" => "Ne pas chiffrer les fichiers dont les types sont les suivants", "File encryption is enabled." => "Le chiffrement des fichiers est activé",
"The following file types will not be encrypted:" => "Les fichiers de types suivants ne seront pas chiffrés :",
"Exclude the following file types from encryption:" => "Ne pas chiffrer les fichiers dont les types sont les suivants :",
"None" => "Aucun" "None" => "Aucun"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Cifrado", "Encryption" => "Cifrado",
"Exclude the following file types from encryption" => "Excluír os seguintes tipos de ficheiro do cifrado",
"None" => "Nada" "None" => "Nada"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "הצפנה", "Encryption" => "הצפנה",
"Exclude the following file types from encryption" => "הוצא את סוגי הקבצים הבאים מהצפנה",
"None" => "כלום" "None" => "כלום"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Titkosítási jelszó módosítása a bejelentkezési jelszóra", "Change encryption password to login password" => "Titkosítási jelszó módosítása a bejelentkezési jelszóra",
"Please check your passwords and try again." => "Kérjük, ellenőrizze a jelszavait, és próbálja meg újra.", "Please check your passwords and try again." => "Kérjük, ellenőrizze a jelszavait, és próbálja meg újra.",
"Could not change your file encryption password to your login password" => "Nem módosíthatja a fájltitkosítási jelszavát a bejelentkezési jelszavára", "Could not change your file encryption password to your login password" => "Nem módosíthatja a fájltitkosítási jelszavát a bejelentkezési jelszavára",
"Choose encryption mode:" => "Válassza ki a titkosítási módot:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kliens oldali titkosítás (biztonságosabb, de lehetetlenné teszi a fájlok elérését a böngészőből)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kiszolgáló oldali titkosítás (lehetővé teszi a fájlok elérését úgy böngészőből mint az asztali kliensből)",
"None (no encryption at all)" => "Semmi (semmilyen titkosítás)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Fontos: Ha egyszer kiválasztotta a titkosítás módját, többé már nem lehet megváltoztatni",
"User specific (let the user decide)" => "Felhasználó specifikus (a felhasználó választhat)",
"Encryption" => "Titkosítás", "Encryption" => "Titkosítás",
"Exclude the following file types from encryption" => "A következő fájltípusok kizárása a titkosításból",
"None" => "Egyik sem" "None" => "Egyik sem"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "enkripsi", "Encryption" => "enkripsi",
"Exclude the following file types from encryption" => "pengecualian untuk tipe file berikut dari enkripsi",
"None" => "tidak ada" "None" => "tidak ada"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Dulkóðun", "Encryption" => "Dulkóðun",
"Exclude the following file types from encryption" => "Undanskilja eftirfarandi skráartegundir frá dulkóðun",
"None" => "Ekkert" "None" => "Ekkert"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Converti la password di cifratura nella password di accesso", "Change encryption password to login password" => "Converti la password di cifratura nella password di accesso",
"Please check your passwords and try again." => "Controlla la password e prova ancora.", "Please check your passwords and try again." => "Controlla la password e prova ancora.",
"Could not change your file encryption password to your login password" => "Impossibile convertire la password di cifratura nella password di accesso", "Could not change your file encryption password to your login password" => "Impossibile convertire la password di cifratura nella password di accesso",
"Choose encryption mode:" => "Scegli la modalità di cifratura.",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Cifratura lato client (più sicura ma rende impossibile accedere ai propri dati dall'interfaccia web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Cifratura lato server (ti consente di accedere ai tuoi file dall'interfaccia web e dal client desktop)",
"None (no encryption at all)" => "Nessuna (senza alcuna cifratura)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: una volta selezionata la modalità di cifratura non sarà possibile tornare indietro",
"User specific (let the user decide)" => "Specificato dall'utente (lascia decidere all'utente)",
"Encryption" => "Cifratura", "Encryption" => "Cifratura",
"Exclude the following file types from encryption" => "Escludi i seguenti tipi di file dalla cifratura", "File encryption is enabled." => "La cifratura dei file è abilitata.",
"The following file types will not be encrypted:" => "I seguenti tipi di file non saranno cifrati:",
"Exclude the following file types from encryption:" => "Escludi i seguenti tipi di file dalla cifratura:",
"None" => "Nessuna" "None" => "Nessuna"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "暗号化パスワードをログインパスワードに変更", "Change encryption password to login password" => "暗号化パスワードをログインパスワードに変更",
"Please check your passwords and try again." => "パスワードを確認してもう一度行なってください。", "Please check your passwords and try again." => "パスワードを確認してもう一度行なってください。",
"Could not change your file encryption password to your login password" => "ファイル暗号化パスワードをログインパスワードに変更できませんでした。", "Could not change your file encryption password to your login password" => "ファイル暗号化パスワードをログインパスワードに変更できませんでした。",
"Choose encryption mode:" => "暗号化モードを選択:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "クライアントサイドの暗号化最もセキュアですが、WEBインターフェースからデータにアクセスできなくなります",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "サーバサイド暗号化WEBインターフェースおよびデスクトップクライアントからファイルにアクセスすることができます",
"None (no encryption at all)" => "暗号化無し(何も暗号化しません)",
"Important: Once you selected an encryption mode there is no way to change it back" => "重要: 一度暗号化を選択してしまうと、もとに戻す方法はありません",
"User specific (let the user decide)" => "ユーザ指定(ユーザが選べるようにする)",
"Encryption" => "暗号化", "Encryption" => "暗号化",
"Exclude the following file types from encryption" => "暗号化から除外するファイルタイプ", "File encryption is enabled." => "ファイルの暗号化は有効です。",
"The following file types will not be encrypted:" => "次のファイルタイプは暗号化されません:",
"Exclude the following file types from encryption:" => "次のファイルタイプを暗号化から除外:",
"None" => "なし" "None" => "なし"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "암호화 암호를 로그인 암호로 변경", "Change encryption password to login password" => "암호화 암호를 로그인 암호로 변경",
"Please check your passwords and try again." => "암호를 확인한 다음 다시 시도하십시오.", "Please check your passwords and try again." => "암호를 확인한 다음 다시 시도하십시오.",
"Could not change your file encryption password to your login password" => "암호화 암호를 로그인 암호로 변경할 수 없습니다", "Could not change your file encryption password to your login password" => "암호화 암호를 로그인 암호로 변경할 수 없습니다",
"Choose encryption mode:" => "암호화 모드 선택:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "클라이언트 암호화 (안전하지만 웹에서 데이터에 접근할 수 없음)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "서버 암호화 (웹 및 데스크톱 클라이언트에서 데이터에 접근할 수 있음)",
"None (no encryption at all)" => "없음 (암호화하지 않음)",
"Important: Once you selected an encryption mode there is no way to change it back" => "알림: 암호화 모드를 선택하면 다른 것으로 변경할 수 없습니다",
"User specific (let the user decide)" => "사용자 지정 (사용자별 설정)",
"Encryption" => "암호화", "Encryption" => "암호화",
"Exclude the following file types from encryption" => "다음 파일 형식은 암호화하지 않음",
"None" => "없음" "None" => "없음"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "نهێنیکردن", "Encryption" => "نهێنیکردن",
"Exclude the following file types from encryption" => "به‌ربه‌ست کردنی ئه‌م جۆره‌ په‌ڕگانه له‌ نهێنیکردن",
"None" => "هیچ" "None" => "هیچ"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Šifravimas", "Encryption" => "Šifravimas",
"Exclude the following file types from encryption" => "Nešifruoti pasirinkto tipo failų",
"None" => "Nieko" "None" => "Nieko"
); );

View File

@ -0,0 +1,12 @@
<?php $TRANSLATIONS = array(
"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu.",
"switched to client side encryption" => "Pārslēdzās uz klienta puses šifrēšanu",
"Change encryption password to login password" => "Mainīt šifrēšanas paroli uz ierakstīšanās paroli",
"Please check your passwords and try again." => "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz.",
"Could not change your file encryption password to your login password" => "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli",
"Encryption" => "Šifrēšana",
"File encryption is enabled." => "Datņu šifrēšana ir aktivēta.",
"The following file types will not be encrypted:" => "Sekojošās datnes netiks šifrētas:",
"Exclude the following file types from encryption:" => "Sekojošos datņu tipus izslēgt no šifrēšanas:",
"None" => "Nav"
);

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Енкрипција", "Encryption" => "Енкрипција",
"Exclude the following file types from encryption" => "Исклучи ги следните типови на датотеки од енкрипција",
"None" => "Ништо" "None" => "Ништо"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Kryptering", "Encryption" => "Kryptering",
"Exclude the following file types from encryption" => "Ekskluder følgende filer fra kryptering",
"None" => "Ingen" "None" => "Ingen"
); );

View File

@ -1,12 +1,12 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Schakel om naar uw eigen ownCloud client en wijzig uw versleutelwachtwoord om de conversie af te ronden.",
"switched to client side encryption" => "overgeschakeld naar client side encryptie", "switched to client side encryption" => "overgeschakeld naar client side encryptie",
"Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord", "Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord",
"Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.", "Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.",
"Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord", "Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord",
"Choose encryption mode:" => "Kies encryptie mode:",
"None (no encryption at all)" => "Geen (zonder encryptie)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Belangrijk: Zodra er voor een encryptie mode is gekozen kan deze niet meer worden gewijzigd.",
"Encryption" => "Versleuteling", "Encryption" => "Versleuteling",
"Exclude the following file types from encryption" => "Versleutel de volgende bestand types niet", "File encryption is enabled." => "Bestandsversleuteling geactiveerd.",
"The following file types will not be encrypted:" => "De volgende bestandstypen zullen niet worden versleuteld:",
"Exclude the following file types from encryption:" => "Sluit de volgende bestandstypen uit van versleuteling:",
"None" => "Geen" "None" => "Geen"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Szyfrowanie", "Encryption" => "Szyfrowanie",
"Exclude the following file types from encryption" => "Wyłącz następujące typy plików z szyfrowania",
"None" => "Brak" "None" => "Brak"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Mudar senha de criptografia para senha de login", "Change encryption password to login password" => "Mudar senha de criptografia para senha de login",
"Please check your passwords and try again." => "Por favor, verifique suas senhas e tente novamente.", "Please check your passwords and try again." => "Por favor, verifique suas senhas e tente novamente.",
"Could not change your file encryption password to your login password" => "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login", "Could not change your file encryption password to your login password" => "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login",
"Choose encryption mode:" => "Escolha o modo de criptografia:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Criptografia por parte do cliente (mais segura, mas torna impossível acessar seus dados a partir da interface web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Criptografia por parte do servidor (permite que você acesse seus arquivos da interface web e do cliente desktop)",
"None (no encryption at all)" => "Nenhuma (sem qualquer criptografia)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Uma vez que tiver escolhido um modo de criptografia, não há um meio de voltar atrás",
"User specific (let the user decide)" => "Específico por usuário (deixa o usuário decidir)",
"Encryption" => "Criptografia", "Encryption" => "Criptografia",
"Exclude the following file types from encryption" => "Excluir os seguintes tipos de arquivo da criptografia",
"None" => "Nenhuma" "None" => "Nenhuma"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Alterar a password de encriptação para a password de login", "Change encryption password to login password" => "Alterar a password de encriptação para a password de login",
"Please check your passwords and try again." => "Por favor verifique as suas paswords e tente de novo.", "Please check your passwords and try again." => "Por favor verifique as suas paswords e tente de novo.",
"Could not change your file encryption password to your login password" => "Não foi possível alterar a password de encriptação de ficheiros para a sua password de login", "Could not change your file encryption password to your login password" => "Não foi possível alterar a password de encriptação de ficheiros para a sua password de login",
"Choose encryption mode:" => "Escolha o método de encriptação",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptação do lado do cliente (mais seguro mas torna possível o acesso aos dados através do interface web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptação do lado do servidor (permite o acesso aos seus ficheiros através do interface web e do cliente de sincronização)",
"None (no encryption at all)" => "Nenhuma (sem encriptação)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Uma vez escolhido o modo de encriptação, não existe maneira de o alterar!",
"User specific (let the user decide)" => "Escolhido pelo utilizador",
"Encryption" => "Encriptação", "Encryption" => "Encriptação",
"Exclude the following file types from encryption" => "Excluir da encriptação os seguintes tipo de ficheiros",
"None" => "Nenhum" "None" => "Nenhum"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "Schimbă parola de ecriptare în parolă de acces", "Change encryption password to login password" => "Schimbă parola de ecriptare în parolă de acces",
"Please check your passwords and try again." => "Verifică te rog parolele și înceracă din nou.", "Please check your passwords and try again." => "Verifică te rog parolele și înceracă din nou.",
"Could not change your file encryption password to your login password" => "Nu s-a putut schimba parola de encripție a fișierelor ca parolă de acces", "Could not change your file encryption password to your login password" => "Nu s-a putut schimba parola de encripție a fișierelor ca parolă de acces",
"Choose encryption mode:" => "Alege tipul de ecripție",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encripție locală (cea mai sigură, dar face ca datele să nu mai fie accesibile din interfața web)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encripție pe server (permite să accesezi datele tale din interfața web și din clientul pentru calculator)",
"None (no encryption at all)" => "Fără (nici un fel de ecriptare)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Important: Din moment ce ai setat un mod de encriptare, nu mai există metode de a-l schimba înapoi",
"User specific (let the user decide)" => "Spefic fiecărui utilizator (lasă utilizatorul să decidă)",
"Encryption" => "Încriptare", "Encryption" => "Încriptare",
"Exclude the following file types from encryption" => "Exclude următoarele tipuri de fișiere de la încriptare",
"None" => "Niciuna" "None" => "Niciuna"
); );

View File

@ -1,5 +1,12 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Пожалуйста переключитесь на Ваш клиент ownCloud и поменяйте пароль шиврования для завершения преобразования.",
"switched to client side encryption" => "переключён на шифрование со стороны клиента",
"Change encryption password to login password" => "Изменить пароль шифрования для пароля входа",
"Please check your passwords and try again." => "Пожалуйста проверьте пароли и попробуйте снова.",
"Could not change your file encryption password to your login password" => "Невозможно изменить Ваш пароль файла шифрования для пароля входа",
"Encryption" => "Шифрование", "Encryption" => "Шифрование",
"Exclude the following file types from encryption" => "Исключить шифрование следующих типов файлов", "File encryption is enabled." => "Шифрование файла включено.",
"The following file types will not be encrypted:" => "Следующие типы файлов не будут зашифрованы:",
"Exclude the following file types from encryption:" => "Исключить следующие типы файлов из шифрованных:",
"None" => "Ничего" "None" => "Ничего"
); );

View File

@ -2,13 +2,6 @@
"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации.", "Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации.",
"switched to client side encryption" => "переключено на шифрование на клиентской стороне", "switched to client side encryption" => "переключено на шифрование на клиентской стороне",
"Please check your passwords and try again." => "Пожалуйста, проверьте Ваш пароль и попробуйте снова", "Please check your passwords and try again." => "Пожалуйста, проверьте Ваш пароль и попробуйте снова",
"Choose encryption mode:" => "Выберите способ шифрования:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Шифрование на стороне клиента (наиболее безопасно, но делает невозможным получение доступа к Вашим данным по вэб-интерфейсу)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Шифрование на стороне сервера (позволяет Вам получить доступ к Вашим файлам по вэб-интерфейсу и десктопному клиенту)",
"None (no encryption at all)" => "Нет (шифрование полностью отсутствует)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Важно: Невозможно будет изменить выбранный способ шифрования",
"User specific (let the user decide)" => "Специфика пользователя (позволено решить пользователю)",
"Encryption" => "Шифрование", "Encryption" => "Шифрование",
"Exclude the following file types from encryption" => "Исключите следующие типы файлов из шифрования",
"None" => "Ни один" "None" => "Ни один"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "ගුප්ත කේතනය", "Encryption" => "ගුප්ත කේතනය",
"Exclude the following file types from encryption" => "මෙම ගොනු වර්ග ගුප්ත කේතනය කිරීමෙන් බැහැරව තබන්න",
"None" => "කිසිවක් නැත" "None" => "කිසිවක් නැත"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Zmeniť šifrovacie heslo na prihlasovacie", "Change encryption password to login password" => "Zmeniť šifrovacie heslo na prihlasovacie",
"Please check your passwords and try again." => "Skontrolujte si heslo a skúste to znovu.", "Please check your passwords and try again." => "Skontrolujte si heslo a skúste to znovu.",
"Could not change your file encryption password to your login password" => "Nie je možné zmeniť šifrovacie heslo na prihlasovacie", "Could not change your file encryption password to your login password" => "Nie je možné zmeniť šifrovacie heslo na prihlasovacie",
"Choose encryption mode:" => "Vyberte režim šifrovania:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Šifrovanie prostredníctvom klienta (najbezpečnejšia voľba, neumožňuje však prístup k súborom z webového rozhrania)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Šifrovanie na serveri (umožňuje pristupovať k súborom z webového rozhrania a desktopového klienta)",
"None (no encryption at all)" => "Žiadne (žiadne šifrovanie)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Dôležité: ak si zvolíte režim šifrovania, nie je možné ho znovu zrušiť",
"User specific (let the user decide)" => "Definovaný používateľom (umožňuje používateľovi vybrať si)",
"Encryption" => "Šifrovanie", "Encryption" => "Šifrovanie",
"Exclude the following file types from encryption" => "Vynechať nasledujúce súbory pri šifrovaní", "File encryption is enabled." => "Kryptovanie súborov nastavené.",
"The following file types will not be encrypted:" => "Uvedené typy súborov nebudú kryptované:",
"Exclude the following file types from encryption:" => "Nekryptovať uvedené typy súborov",
"None" => "Žiadne" "None" => "Žiadne"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Šifriranje", "Encryption" => "Šifriranje",
"Exclude the following file types from encryption" => "Navedene vrste datotek naj ne bodo šifrirane",
"None" => "Brez" "None" => "Brez"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Шифровање", "Encryption" => "Шифровање",
"Exclude the following file types from encryption" => "Не шифруј следеће типове датотека",
"None" => "Ништа" "None" => "Ништа"
); );

View File

@ -4,13 +4,9 @@
"Change encryption password to login password" => "Ändra krypteringslösenord till loginlösenord", "Change encryption password to login password" => "Ändra krypteringslösenord till loginlösenord",
"Please check your passwords and try again." => "Kontrollera dina lösenord och försök igen.", "Please check your passwords and try again." => "Kontrollera dina lösenord och försök igen.",
"Could not change your file encryption password to your login password" => "Kunde inte ändra ditt filkrypteringslösenord till ditt loginlösenord", "Could not change your file encryption password to your login password" => "Kunde inte ändra ditt filkrypteringslösenord till ditt loginlösenord",
"Choose encryption mode:" => "Välj krypteringsläge:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kryptering på klientsidan (säkraste men gör det omöjligt att komma åt dina filer med en webbläsare)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kryptering på serversidan (kan komma åt dina filer från webbläsare och datorklient)",
"None (no encryption at all)" => "Ingen (ingen kryptering alls)",
"Important: Once you selected an encryption mode there is no way to change it back" => "Viktigt: När du har valt ett krypteringsläge finns det inget sätt att ändra tillbaka",
"User specific (let the user decide)" => "Användarspecifik (låter användaren bestämma)",
"Encryption" => "Kryptering", "Encryption" => "Kryptering",
"Exclude the following file types from encryption" => "Exkludera följande filtyper från kryptering", "File encryption is enabled." => "Filkryptering är aktiverat.",
"The following file types will not be encrypted:" => "Följande filtyper kommer inte att krypteras:",
"Exclude the following file types from encryption:" => "Exkludera följande filtyper från kryptering:",
"None" => "Ingen" "None" => "Ingen"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "மறைக்குறியீடு", "Encryption" => "மறைக்குறியீடு",
"Exclude the following file types from encryption" => "மறைக்குறியாக்கலில் பின்வரும் கோப்பு வகைகளை நீக்கவும்",
"None" => "ஒன்றுமில்லை" "None" => "ஒன்றுமில்லை"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "เปลี่ยนรหัสผ่านสำหรับเข้ารหัสไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบ", "Change encryption password to login password" => "เปลี่ยนรหัสผ่านสำหรับเข้ารหัสไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบ",
"Please check your passwords and try again." => "กรุณาตรวจสอบรหัสผ่านของคุณแล้วลองใหม่อีกครั้ง", "Please check your passwords and try again." => "กรุณาตรวจสอบรหัสผ่านของคุณแล้วลองใหม่อีกครั้ง",
"Could not change your file encryption password to your login password" => "ไม่สามารถเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสไฟล์ของคุณไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบของคุณได้", "Could not change your file encryption password to your login password" => "ไม่สามารถเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสไฟล์ของคุณไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบของคุณได้",
"Choose encryption mode:" => "เลือกรูปแบบการเข้ารหัส:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "การเข้ารหัสด้วยโปรแกรมไคลเอนต์ (ปลอดภัยที่สุด แต่จะทำให้คุณไม่สามารถเข้าถึงข้อมูลต่างๆจากหน้าจอเว็บไซต์ได้)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "การเข้ารหัสจากทางฝั่งเซิร์ฟเวอร์ (อนุญาตให้คุณเข้าถึงไฟล์ของคุณจากหน้าจอเว็บไซต์ และโปรแกรมไคลเอนต์จากเครื่องเดสก์ท็อปได้)",
"None (no encryption at all)" => "ไม่ต้อง (ไม่มีการเข้ารหัสเลย)",
"Important: Once you selected an encryption mode there is no way to change it back" => "ข้อความสำคัญ: หลังจากที่คุณได้เลือกรูปแบบการเข้ารหัสแล้ว จะไม่สามารถเปลี่ยนกลับมาใหม่ได้อีก",
"User specific (let the user decide)" => "ให้ผู้ใช้งานเลือกเอง (ปล่อยให้ผู้ใช้งานตัดสินใจเอง)",
"Encryption" => "การเข้ารหัส", "Encryption" => "การเข้ารหัส",
"Exclude the following file types from encryption" => "ไม่ต้องรวมชนิดของไฟล์ดังต่อไปนี้จากการเข้ารหัส",
"None" => "ไม่ต้อง" "None" => "ไม่ต้อง"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Şifreleme", "Encryption" => "Şifreleme",
"Exclude the following file types from encryption" => "Aşağıdaki dosya tiplerini şifrelemeye dahil etme",
"None" => "Hiçbiri" "None" => "Hiçbiri"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Шифрування", "Encryption" => "Шифрування",
"Exclude the following file types from encryption" => "Не шифрувати файли наступних типів",
"None" => "Жоден" "None" => "Жоден"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "Mã hóa", "Encryption" => "Mã hóa",
"Exclude the following file types from encryption" => "Loại trừ các loại tập tin sau đây từ mã hóa",
"None" => "Không có gì hết" "None" => "Không có gì hết"
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "加密", "Encryption" => "加密",
"Exclude the following file types from encryption" => "从加密中排除如下文件类型",
"None" => "" "None" => ""
); );

View File

@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Encryption" => "加密", "Encryption" => "加密",
"Exclude the following file types from encryption" => "从加密中排除列出的文件类型",
"None" => "None" "None" => "None"
); );

View File

@ -4,13 +4,6 @@
"Change encryption password to login password" => "將加密密碼修改為登入密碼", "Change encryption password to login password" => "將加密密碼修改為登入密碼",
"Please check your passwords and try again." => "請檢查您的密碼並再試一次。", "Please check your passwords and try again." => "請檢查您的密碼並再試一次。",
"Could not change your file encryption password to your login password" => "無法變更您的檔案加密密碼為登入密碼", "Could not change your file encryption password to your login password" => "無法變更您的檔案加密密碼為登入密碼",
"Choose encryption mode:" => "選擇加密模式:",
"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "客戶端加密 (最安全但是會使您無法從網頁界面存取您的檔案)",
"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "伺服器端加密 (您可以從網頁界面及客戶端程式存取您的檔案)",
"None (no encryption at all)" => "無 (不加密)",
"Important: Once you selected an encryption mode there is no way to change it back" => "重要:一旦您選擇了加密就無法再改回來",
"User specific (let the user decide)" => "使用者自訂 (讓使用者自己決定)",
"Encryption" => "加密", "Encryption" => "加密",
"Exclude the following file types from encryption" => "下列的檔案類型不加密",
"None" => "" "None" => ""
); );

View File

@ -1,4 +1,5 @@
<?php <?php
/** /**
* ownCloud * ownCloud
* *
@ -27,12 +28,10 @@ namespace OCA\Encryption;
require_once 'Crypt_Blowfish/Blowfish.php'; require_once 'Crypt_Blowfish/Blowfish.php';
// Todo: // Todo:
// - Crypt/decrypt button in the userinterface // - Add a setting "Don´t encrypt files larger than xx because of performance"
// - Setting if crypto should be on by default // - Don't use a password directly as encryption key. but a key which is
// - Add a setting "Don´t encrypt files larger than xx because of performance reasons" // stored on the server and encrypted with the user password. -> change pass
// - Transparent decrypt/encrypt in filesystem.php. Autodetect if a file is encrypted (.encrypted extension) // faster
// - Don't use a password directly as encryption key. but a key which is stored on the server and encrypted with the user password. -> password change faster
// - IMPORTANT! Check if the block lenght of the encrypted data stays the same
/** /**
* Class for common cryptography functionality * Class for common cryptography functionality
@ -47,24 +46,6 @@ class Crypt {
*/ */
public static function mode( $user = null ) { public static function mode( $user = null ) {
// $mode = \OC_Appconfig::getValue( 'files_encryption', 'mode', 'none' );
//
// if ( $mode == 'user') {
// if ( !$user ) {
// $user = \OCP\User::getUser();
// }
// $mode = 'none';
// if ( $user ) {
// $query = \OC_DB::prepare( "SELECT mode FROM *PREFIX*encryption WHERE uid = ?" );
// $result = $query->execute(array($user));
// if ($row = $result->fetchRow()){
// $mode = $row['mode'];
// }
// }
// }
//
// return $mode;
return 'server'; return 'server';
} }
@ -93,7 +74,10 @@ class Crypt {
* @brief Add arbitrary padding to encrypted data * @brief Add arbitrary padding to encrypted data
* @param string $data data to be padded * @param string $data data to be padded
* @return padded data * @return padded data
* @note In order to end up with data exactly 8192 bytes long we must add two letters. It is impossible to achieve exactly 8192 length blocks with encryption alone, hence padding is added to achieve the required length. * @note In order to end up with data exactly 8192 bytes long we must
* add two letters. It is impossible to achieve exactly 8192 length
* blocks with encryption alone, hence padding is added to achieve the
* required length.
*/ */
public static function addPadding( $data ) { public static function addPadding( $data ) {
@ -118,7 +102,7 @@ class Crypt {
} else { } else {
# TODO: log the fact that unpadded data was submitted for removal of padding // TODO: log the fact that unpadded data was submitted for removal of padding
return false; return false;
} }
@ -130,13 +114,7 @@ class Crypt {
* @return true / false * @return true / false
* @note see also OCA\Encryption\Util->isEncryptedPath() * @note see also OCA\Encryption\Util->isEncryptedPath()
*/ */
public static function isEncryptedContent( $content ) { public static function isCatfile( $content ) {
if ( !$content ) {
return false;
}
$noPadding = self::removePadding( $content ); $noPadding = self::removePadding( $content );
@ -168,10 +146,10 @@ class Crypt {
*/ */
public static function isEncryptedMeta( $path ) { public static function isEncryptedMeta( $path ) {
# TODO: Use DI to get OC_FileCache_Cached out of here // TODO: Use DI to get \OC\Files\Filesystem out of here
// Fetch all file metadata from DB // Fetch all file metadata from DB
$metadata = \OC_FileCache_Cached::get( $path, '' ); $metadata = \OC\Files\Filesystem::getFileInfo( $path, '' );
// Return encryption status // Return encryption status
return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted']; return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted'];
@ -180,19 +158,22 @@ class Crypt {
/** /**
* @brief Check if a file is encrypted via legacy system * @brief Check if a file is encrypted via legacy system
* @param string $relPath The path of the file, relative to user/data;
* e.g. filename or /Docs/filename, NOT admin/files/filename
* @return true / false * @return true / false
*/ */
public static function isLegacyEncryptedContent( $content ) { public static function isLegacyEncryptedContent( $data, $relPath ) {
// Fetch all file metadata from DB // Fetch all file metadata from DB
$metadata = \OC_FileCache_Cached::get( $content, '' ); $metadata = \OC\Files\Filesystem::getFileInfo( $relPath, '' );
// If a file is flagged with encryption in DB, but isn't a valid content + IV combination, it's probably using the legacy encryption system // If a file is flagged with encryption in DB, but isn't a
// valid content + IV combination, it's probably using the
// legacy encryption system
if ( if (
$content isset( $metadata['encrypted'] )
and isset( $metadata['encrypted'] ) and $metadata['encrypted'] === true
and $metadata['encrypted'] === true and ! self::isCatfile( $data )
and !self::isEncryptedContent( $content )
) { ) {
return true; return true;
@ -217,7 +198,7 @@ class Crypt {
} else { } else {
\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed' , \OC_Log::ERROR ); \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed', \OC_Log::ERROR );
return false; return false;
@ -313,7 +294,7 @@ class Crypt {
} else { } else {
\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed' , \OC_Log::ERROR ); \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed', \OC_Log::ERROR );
return false; return false;
@ -390,6 +371,8 @@ class Crypt {
*/ */
public static function multiKeyEncrypt( $plainContent, array $publicKeys ) { public static function multiKeyEncrypt( $plainContent, array $publicKeys ) {
// Set empty vars to be set by openssl by reference
$sealed = '';
$envKeys = array(); $envKeys = array();
if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) { if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) {
@ -429,7 +412,7 @@ class Crypt {
} else { } else {
\OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed' , \OC_Log::ERROR ); \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR );
return false; return false;
@ -577,7 +560,7 @@ class Crypt {
if ( !$strong ) { if ( !$strong ) {
// If OpenSSL indicates randomness is insecure, log error // If OpenSSL indicates randomness is insecure, log error
\OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()' , \OC_Log::WARN ); \OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OC_Log::WARN );
} }
@ -621,18 +604,27 @@ class Crypt {
} }
public static function changekeypasscode($oldPassword, $newPassword) { public static function changekeypasscode( $oldPassword, $newPassword ) {
if ( \OCP\User::isLoggedIn() ) {
if(\OCP\User::isLoggedIn()){
$key = Keymanager::getPrivateKey( $user, $view ); $key = Keymanager::getPrivateKey( $user, $view );
if ( ($key = Crypt::symmetricDecryptFileContent($key,$oldpasswd)) ) {
if ( ($key = Crypt::symmetricEncryptFileContent($key, $newpasswd)) ) { if ( ( $key = Crypt::symmetricDecryptFileContent($key,$oldpasswd) ) ) {
Keymanager::setPrivateKey($key);
if ( ( $key = Crypt::symmetricEncryptFileContent( $key, $newpasswd ) ) ) {
Keymanager::setPrivateKey( $key );
return true; return true;
} }
} }
} }
return false; return false;
} }
/** /**
@ -723,10 +715,8 @@ class Crypt {
*/ */
public static function legacyRecrypt( $legacyContent, $legacyPassphrase, $newPassphrase ) { public static function legacyRecrypt( $legacyContent, $legacyPassphrase, $newPassphrase ) {
# TODO: write me // TODO: write me
} }
} }
?>

View File

@ -1,5 +1,6 @@
<?php <?php
/***
/**
* ownCloud * ownCloud
* *
* @author Bjoern Schiessle * @author Bjoern Schiessle
@ -28,8 +29,6 @@ namespace OCA\Encryption;
*/ */
class Keymanager { class Keymanager {
# TODO: make all dependencies (including static classes) explicit, such as ocfsview objects, by adding them as method arguments (dependency injection)
/** /**
* @brief retrieve the ENCRYPTED private key from a user * @brief retrieve the ENCRYPTED private key from a user
* *
@ -84,38 +83,7 @@ class Keymanager {
// Check if sharing is enabled // Check if sharing is enabled
if ( OC_App::isEnabled( 'files_sharing' ) ) { if ( OC_App::isEnabled( 'files_sharing' ) ) {
// // Check if file was shared with other users
// $query = \OC_DB::prepare( "
// SELECT
// uid_owner
// , source
// , target
// , uid_shared_with
// FROM
// `*PREFIX*sharing`
// WHERE
// ( target = ? AND uid_shared_with = ? )
// OR source = ?
// " );
//
// $result = $query->execute( array ( $filepath, $userId, $filepath ) );
//
// $users = array();
//
// if ( $row = $result->fetchRow() )
// {
// $source = $row['source'];
// $owner = $row['uid_owner'];
// $users[] = $owner;
// // get the uids of all user with access to the file
// $query = \OC_DB::prepare( "SELECT source, uid_shared_with FROM `*PREFIX*sharing` WHERE source = ?" );
// $result = $query->execute( array ($source));
// while ( ($row = $result->fetchRow()) ) {
// $users[] = $row['uid_shared_with'];
//
// }
//
// }
} else { } else {
@ -146,10 +114,38 @@ class Keymanager {
} }
/**
* @brief store file encryption key
*
* @param string $path relative path of the file, including filename
* @param string $key
* @return bool true/false
* @note The keyfile is not encrypted here. Client code must
* asymmetrically encrypt the keyfile before passing it to this method
*/
public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) {
$basePath = '/' . $userId . '/files_encryption/keyfiles';
$targetPath = self::keySetPreparation( $view, $path, $basePath, $userId );
if ( $view->is_dir( $basePath . '/' . $targetPath ) ) {
} else {
// Save the keyfile in parallel directory
return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
}
}
/** /**
* @brief retrieve keyfile for an encrypted file * @brief retrieve keyfile for an encrypted file
* @param string file name * @param string file name
* @return string file key or false * @return string file key or false on failure
* @note The keyfile returned is asymmetrically encrypted. Decryption * @note The keyfile returned is asymmetrically encrypted. Decryption
* of the keyfile must be performed by client code * of the keyfile must be performed by client code
*/ */
@ -157,52 +153,48 @@ class Keymanager {
$filePath_f = ltrim( $filePath, '/' ); $filePath_f = ltrim( $filePath, '/' );
// // update $keypath and $userId if path point to a file shared by someone else $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key';
// $query = \OC_DB::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" );
//
// $result = $query->execute( array ('/'.$userId.'/files/'.$keypath, $userId));
//
// if ($row = $result->fetchRow()) {
//
// $keypath = $row['source'];
// $keypath_parts = explode( '/', $keypath );
// $userId = $keypath_parts[1];
// $keypath = str_replace( '/' . $userId . '/files/', '', $keypath );
//
// }
return $view->file_get_contents( '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key' ); if ( $view->file_exists( $catfilePath ) ) {
return $view->file_get_contents( $catfilePath );
} else {
return false;
}
} }
/** /**
* @brief retrieve file encryption key * @brief Delete a keyfile
* *
* @param string file name * @param OC_FilesystemView $view
* @return string file key or false * @param string $userId username
* @param string $path path of the file the key belongs to
* @return bool Outcome of unlink operation
* @note $path must be relative to data/user/files. e.g. mydoc.txt NOT
* /data/admin/files/mydoc.txt
*/ */
public static function deleteFileKey( $path, $staticUserClass = 'OCP\User' ) { public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) {
$keypath = ltrim( $path, '/' ); $trimmed = ltrim( $path, '/' );
$user = $staticUserClass::getUser(); $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key';
// update $keypath and $user if path point to a file shared by someone else // Unlink doesn't tell us if file was deleted (not found returns
// $query = \OC_DB::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" ); // true), so we perform our own test
// if ( $view->file_exists( $keyPath ) ) {
// $result = $query->execute( array ('/'.$user.'/files/'.$keypath, $user));
//
// if ($row = $result->fetchRow()) {
//
// $keypath = $row['source'];
// $keypath_parts = explode( '/', $keypath );
// $user = $keypath_parts[1];
// $keypath = str_replace( '/' . $user . '/files/', '', $keypath );
//
// }
$view = new \OC_FilesystemView('/'.$user.'/files_encryption/keyfiles/'); return $view->unlink( $keyPath );
return $view->unlink( $keypath . '.key' ); } else {
\OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR );
return false;
}
} }
@ -238,7 +230,7 @@ class Keymanager {
*/ */
public static function setUserKeys($privatekey, $publickey) { public static function setUserKeys($privatekey, $publickey) {
return (self::setPrivateKey($privatekey) && self::setPublicKey($publickey)); return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) );
} }
@ -263,70 +255,38 @@ class Keymanager {
} }
/** /**
* @brief store file encryption key * @note 'shareKey' is a more user-friendly name for env_key
*
* @param string $path relative path of the file, including filename
* @param string $key
* @return bool true/false
* @note The keyfile is not encrypted here. Client code must
* asymmetrically encrypt the keyfile before passing it to this method
*/ */
public static function setFileKey( $path, $key, $view = Null, $dbClassName = '\OC_DB') { public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) {
$targetPath = ltrim( $path, '/' ); $basePath = '/' . $userId . '/files_encryption/share-keys';
$user = \OCP\User::getUser();
// // update $keytarget and $user if key belongs to a file shared by someone else $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId );
// $query = $dbClassName::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" );
// return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey );
// $result = $query->execute( array ( '/'.$user.'/files/'.$targetPath, $user ) );
// }
// if ( $row = $result->fetchRow( ) ) {
// /**
// $targetPath = $row['source']; * @brief Make preparations to vars and filesystem for saving a keyfile
// */
// $targetPath_parts = explode( '/', $targetPath ); public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) {
//
// $user = $targetPath_parts[1]; $targetPath = ltrim( $path, '/' );
//
// $rootview = new \OC_FilesystemView( '/' );
//
// if ( ! $rootview->is_writable( $targetPath ) ) {
//
// \OC_Log::write( 'Encryption library', "File Key not updated because you don't have write access for the corresponding file", \OC_Log::ERROR );
//
// return false;
//
// }
//
// $targetPath = str_replace( '/'.$user.'/files/', '', $targetPath );
//
// //TODO: check for write permission on shared file once the new sharing API is in place
//
// }
$path_parts = pathinfo( $targetPath ); $path_parts = pathinfo( $targetPath );
if ( !$view ) {
$view = new \OC_FilesystemView( '/' );
}
$view->chroot( '/' . $user . '/files_encryption/keyfiles' );
// If the file resides within a subdirectory, create it // If the file resides within a subdirectory, create it
if ( if (
isset( $path_parts['dirname'] ) isset( $path_parts['dirname'] )
&& ! $view->file_exists( $path_parts['dirname'] ) && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] )
) { ) {
$view->mkdir( $path_parts['dirname'] ); $view->mkdir( $basePath . '/' . $path_parts['dirname'] );
} }
// Save the keyfile in parallel directory return $targetPath;
return $view->file_put_contents( '/' . $targetPath . '.key', $key );
} }

Some files were not shown because too many files have changed in this diff Show More