diff options
241 files changed, 2750 insertions, 916 deletions
diff --git a/.user.ini b/.user.ini new file mode 100644 index 00000000000..9f3691e5fba --- /dev/null +++ b/.user.ini @@ -0,0 +1,4 @@ +upload_max_filesize=513M +post_max_size=513M +memory_limit=512M +mbstring.func_overload=0 diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php index 3a07554ad00..12760d4415f 100644 --- a/apps/files/ajax/move.php +++ b/apps/files/ajax/move.php @@ -19,10 +19,16 @@ if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) { if ($target != '' || strtolower($file) != 'shared') { $targetFile = \OC\Files\Filesystem::normalizePath($target . '/' . $file); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); - if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { - OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); - } else { - OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); + try { + if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { + OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file ))); + } else { + OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); + } + } catch (\OCP\Files\NotPermittedException $e) { + OCP\JSON::error(array("data" => array( "message" => $l->t("Permission denied") ))); + } catch (\Exception $e) { + OCP\JSON::error(array("data" => array( "message" => $e->getMessage()))); } }else{ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) ))); diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 606576760ec..46629e1b602 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -16,7 +16,7 @@ $content = isset( $_REQUEST['content'] ) ? $_REQUEST['content'] : ''; $source = isset( $_REQUEST['source'] ) ? trim($_REQUEST['source'], '/\\') : ''; if($source) { - $eventSource=new OC_EventSource(); + $eventSource = \OC::$server->createEventSource(); } else { OC_JSON::callCheck(); } diff --git a/apps/files/ajax/scan.php b/apps/files/ajax/scan.php index 3ec7f9394b1..f8977c2971e 100644 --- a/apps/files/ajax/scan.php +++ b/apps/files/ajax/scan.php @@ -15,12 +15,12 @@ if (isset($_GET['users'])) { $users = array(OC_User::getUser()); } -$eventSource = new OC_EventSource(); +$eventSource = \OC::$server->createEventSource(); $listener = new ScanListener($eventSource); foreach ($users as $user) { $eventSource->send('user', $user); - $scanner = new \OC\Files\Utils\Scanner($user); + $scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection()); $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', array($listener, 'file')); $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', array($listener, 'folder')); if ($force) { @@ -39,12 +39,12 @@ class ScanListener { private $lastCount = 0; /** - * @var \OC_EventSource event source to pass events to + * @var \OCP\IEventSource event source to pass events to */ private $eventSource; /** - * @param \OC_EventSource $eventSource + * @param \OCP\IEventSource $eventSource */ public function __construct($eventSource) { $this->eventSource = $eventSource; diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php index 3412cf80dea..e4d719a8b4b 100644 --- a/apps/files/command/scan.php +++ b/apps/files/command/scan.php @@ -46,7 +46,7 @@ class Scan extends Command { } protected function scanFiles($user, OutputInterface $output) { - $scanner = new \OC\Files\Utils\Scanner($user); + $scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection()); $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) { $output->writeln("Scanning <info>$path</info>"); }); diff --git a/apps/files/download.php b/apps/files/download.php index 6b055e99a53..664a69c5959 100644 --- a/apps/files/download.php +++ b/apps/files/download.php @@ -34,7 +34,7 @@ if(!\OC\Files\Filesystem::file_exists($filename)) { exit; } -$ftype=\OC\Files\Filesystem::getMimeType( $filename ); +$ftype=\OC_Helper::getSecureMimeType(\OC\Files\Filesystem::getMimeType( $filename )); header('Content-Type:'.$ftype); OCP\Response::setContentDispositionHeader(basename($filename), 'attachment'); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 522ff627529..7c49c540d85 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -674,6 +674,12 @@ if (extension) { nameSpan.append($('<span></span>').addClass('extension').text(extension)); } + if (fileData.extraData) { + if (fileData.extraData.charAt(0) === '/') { + fileData.extraData = fileData.extraData.substr(1); + } + nameSpan.addClass('extra-data').attr('title', fileData.extraData); + } // dirs can show the number of uploaded files if (type === 'dir') { linkElem.append($('<span></span>').attr({ diff --git a/apps/files/l10n/ast.php b/apps/files/l10n/ast.php index c62ee6ea8d8..acac6819db4 100644 --- a/apps/files/l10n/ast.php +++ b/apps/files/l10n/ast.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Modificáu", "_%n folder_::_%n folders_" => array("%n carpeta","%n carpetes"), "_%n file_::_%n files_" => array("%n ficheru","%n ficheros"), +"You don’t have permission to upload or create files here" => "Nun tienes permisu pa xubir o crear ficheros equí", "_Uploading %n file_::_Uploading %n files_" => array("Xubiendo %n ficheru","Xubiendo %n ficheros"), "\"{name}\" is an invalid file name." => "\"{name}\" ye un nome de ficheru inválidu.", "Your storage is full, files can not be updated or synced anymore!" => "L'almacenamientu ta completu, ¡yá nun se pueden anovar o sincronizar ficheros!", @@ -83,7 +84,6 @@ $TRANSLATIONS = array( "New folder" => "Nueva carpeta", "Folder" => "Carpeta", "From link" => "Dende enllaz", -"You don’t have permission to upload or create files here" => "Nun tienes permisu pa xubir o crear ficheros equí", "Nothing in here. Upload something!" => "Nun hai nada equí. ¡Xubi daqué!", "Download" => "Descargar", "Upload too large" => "La xuba ye abondo grande", diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php index a5e0e5f073c..1342f4e86db 100644 --- a/apps/files/l10n/bg_BG.php +++ b/apps/files/l10n/bg_BG.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Непозната грешка.", "Could not move %s - File with this name already exists" => "Неуспешно преместване на %s - Файл със същото име вече съществува.", "Could not move %s" => "Неуспешно преместване на %s.", +"Permission denied" => "Достъпът отказан", "File name cannot be empty." => "Името на файла не може да бъде оставено празно.", "\"%s\" is an invalid file name." => "\"%s\" е непозволено име за файл.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невалидно име, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не са разрешени.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Променен на", "_%n folder_::_%n folders_" => array("%n папка","%n папки"), "_%n file_::_%n files_" => array("%n файл","%n файла"), +"You don’t have permission to upload or create files here" => "Нямаш разрешение да създаваш или качваш файлове тук.", "_Uploading %n file_::_Uploading %n files_" => array("Качване на %n файл","Качване на %n файла."), "\"{name}\" is an invalid file name." => "\"{name}\" е непозволено име за файл.", "Your storage is full, files can not be updated or synced anymore!" => "Заделеното място е запълнено, повече файлове не могат да бъдат синхронизирани или опреснени!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Нова папка", "Folder" => "Папка", "From link" => "От връзка", -"You don’t have permission to upload or create files here" => "Нямаш разрешение да създаваш или качваш файлове тук.", "Nothing in here. Upload something!" => "Тук няма нищо. Качи нещо!", "Download" => "Изтегли", "Upload too large" => "Прекалено голям файл за качване.", diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php index eb50851c864..9573fefd023 100644 --- a/apps/files/l10n/bn_BD.php +++ b/apps/files/l10n/bn_BD.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "অজানা জটিলতা", "Could not move %s - File with this name already exists" => "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", "Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", +"Permission denied" => "অনুমতি দেয়া হয়নি", "File name cannot be empty." => "ফাইলের নামটি ফাঁকা রাখা যাবে না।", "\"%s\" is an invalid file name." => "\"%s\" টি একটি অননুমোদিত ফাইল নাম।", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index 8d1efeedb5d..534235284c8 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Modificat", "_%n folder_::_%n folders_" => array("%n carpeta","%n carpetes"), "_%n file_::_%n files_" => array("%n fitxer","%n fitxers"), +"You don’t have permission to upload or create files here" => "No teniu permisos per a pujar o crear els fitxers aquí", "_Uploading %n file_::_Uploading %n files_" => array("Pujant %n fitxer","Pujant %n fitxers"), "\"{name}\" is an invalid file name." => "\"{name}\" no es un fitxer vàlid.", "Your storage is full, files can not be updated or synced anymore!" => "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Carpeta nova", "Folder" => "Carpeta", "From link" => "Des d'enllaç", -"You don’t have permission to upload or create files here" => "No teniu permisos per a pujar o crear els fitxers aquí", "Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!", "Download" => "Baixa", "Upload too large" => "La pujada és massa gran", diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index 79e3da299ff..d2bf781b944 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Neznámá chyba", "Could not move %s - File with this name already exists" => "Nelze přesunout %s - již existuje soubor se stejným názvem", "Could not move %s" => "Nelze přesunout %s", +"Permission denied" => "Přístup odepřen", "File name cannot be empty." => "Název souboru nemůže být prázdný řetězec.", "\"%s\" is an invalid file name." => "\"%s\" je neplatným názvem souboru.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Upraveno", "_%n folder_::_%n folders_" => array("%n složka","%n složky","%n složek"), "_%n file_::_%n files_" => array("%n soubor","%n soubory","%n souborů"), +"You don’t have permission to upload or create files here" => "Nemáte oprávnění zde nahrávat či vytvářet soubory", "_Uploading %n file_::_Uploading %n files_" => array("Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"), "\"{name}\" is an invalid file name." => "\"{name}\" je neplatným názvem souboru.", "Your storage is full, files can not be updated or synced anymore!" => "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nová složka", "Folder" => "Složka", "From link" => "Z odkazu", -"You don’t have permission to upload or create files here" => "Nemáte oprávnění zde nahrávat či vytvářet soubory", "Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.", "Download" => "Stáhnout", "Upload too large" => "Odesílaný soubor je příliš velký", diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index 82fef518e6b..ca2b16059da 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Ukendt fejl", "Could not move %s - File with this name already exists" => "Kunne ikke flytte %s - der findes allerede en fil med dette navn", "Could not move %s" => "Kunne ikke flytte %s", +"Permission denied" => "Adgang nægtet", "File name cannot be empty." => "Filnavnet kan ikke stå tomt.", "\"%s\" is an invalid file name." => "\"%s\" er et ugyldigt filnavn.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Ændret", "_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), "_%n file_::_%n files_" => array("%n fil","%n filer"), +"You don’t have permission to upload or create files here" => "Du har ikke tilladelse til at uploade eller oprette filer her", "_Uploading %n file_::_Uploading %n files_" => array("Uploader %n fil","Uploader %n filer"), "\"{name}\" is an invalid file name." => "'{name}' er et ugyldigt filnavn.", "Your storage is full, files can not be updated or synced anymore!" => "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Ny Mappe", "Folder" => "Mappe", "From link" => "Fra link", -"You don’t have permission to upload or create files here" => "Du har ikke tilladelse til at uploade eller oprette filer her", "Nothing in here. Upload something!" => "Her er tomt. Upload noget!", "Download" => "Download", "Upload too large" => "Upload er for stor", diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index 94f8eb5e86e..c8191f82b0c 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Unbekannter Fehler", "Could not move %s - File with this name already exists" => "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", "Could not move %s" => "Konnte %s nicht verschieben", +"Permission denied" => "Zugriff verweigert", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "\"%s\" is an invalid file name." => "»%s« ist kein gültiger Dateiname.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 29e74110e99..4d096bc70ad 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Unbekannter Fehler", "Could not move %s - File with this name already exists" => "%s konnte nicht verschoben werden. Eine Datei mit diesem Namen existiert bereits.", "Could not move %s" => "Konnte %s nicht verschieben", +"Permission denied" => "Zugriff verweigert", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "\"%s\" is an invalid file name." => "\"%s\" ist kein gültiger Dateiname.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 0528ee92919..4b51fa4ba00 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Άγνωστο σφάλμα", "Could not move %s - File with this name already exists" => "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", "Could not move %s" => "Αδυναμία μετακίνησης του %s", +"Permission denied" => "Η πρόσβαση απορρίφθηκε", "File name cannot be empty." => "Το όνομα αρχείου δεν μπορεί να είναι κενό.", "\"%s\" is an invalid file name." => "Το \"%s\" είναι ένα μη έγκυρο όνομα αρχείου.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Μη έγκυρο όνομα, '\\', '/', '<', '>', ':', '\"', '|', '?' και '*' δεν επιτρέπονται.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Τροποποιήθηκε", "_%n folder_::_%n folders_" => array("%n φάκελος","%n φάκελοι"), "_%n file_::_%n files_" => array("%n αρχείο","%n αρχεία"), +"You don’t have permission to upload or create files here" => "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ", "_Uploading %n file_::_Uploading %n files_" => array("Ανέβασμα %n αρχείου","Ανέβασμα %n αρχείων"), "\"{name}\" is an invalid file name." => "Το \"{name}\" είναι μη έγκυρο όνομα αρχείου.", "Your storage is full, files can not be updated or synced anymore!" => "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Νέος κατάλογος", "Folder" => "Φάκελος", "From link" => "Από σύνδεσμο", -"You don’t have permission to upload or create files here" => "Δεν έχετε δικαιώματα φόρτωσης ή δημιουργίας αρχείων εδώ", "Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!", "Download" => "Λήψη", "Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή", diff --git a/apps/files/l10n/en_GB.php b/apps/files/l10n/en_GB.php index 0fde6d11aad..e2589923341 100644 --- a/apps/files/l10n/en_GB.php +++ b/apps/files/l10n/en_GB.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Unknown error", "Could not move %s - File with this name already exists" => "Could not move %s - File with this name already exists", "Could not move %s" => "Could not move %s", +"Permission denied" => "Permission denied", "File name cannot be empty." => "File name cannot be empty.", "\"%s\" is an invalid file name." => "\"%s\" is an invalid file name.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Invalid name: '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Modified", "_%n folder_::_%n folders_" => array("%n folder","%n folders"), "_%n file_::_%n files_" => array("%n file","%n files"), +"You don’t have permission to upload or create files here" => "You don’t have permission to upload or create files here", "_Uploading %n file_::_Uploading %n files_" => array("Uploading %n file","Uploading %n files"), "\"{name}\" is an invalid file name." => "\"{name}\" is an invalid file name.", "Your storage is full, files can not be updated or synced anymore!" => "Your storage is full, files can not be updated or synced anymore!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "New folder", "Folder" => "Folder", "From link" => "From link", -"You don’t have permission to upload or create files here" => "You don’t have permission to upload or create files here", "Nothing in here. Upload something!" => "Nothing in here. Upload something!", "Download" => "Download", "Upload too large" => "Upload too large", diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index 51d2cb9874d..e8538e47acf 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -47,6 +47,7 @@ $TRANSLATIONS = array( "Modified" => "Modifita", "_%n folder_::_%n folders_" => array("%n dosierujo","%n dosierujoj"), "_%n file_::_%n files_" => array("%n dosiero","%n dosieroj"), +"You don’t have permission to upload or create files here" => "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie", "_Uploading %n file_::_Uploading %n files_" => array("Alŝutatas %n dosiero","Alŝutatas %n dosieroj"), "Your storage is full, files can not be updated or synced anymore!" => "Via memoro plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!", "Your storage is almost full ({usedSpacePercent}%)" => "Via memoro preskaŭ plenas ({usedSpacePercent}%)", @@ -63,7 +64,6 @@ $TRANSLATIONS = array( "New folder" => "Nova dosierujo", "Folder" => "Dosierujo", "From link" => "El ligilo", -"You don’t have permission to upload or create files here" => "Vi ne havas permeson alŝuti aŭ krei dosierojn ĉi tie", "Nothing in here. Upload something!" => "Nenio estas ĉi tie. Alŝutu ion!", "Download" => "Elŝuti", "Upload too large" => "Alŝuto tro larĝa", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index 5e1257034f6..fd0d55ef3e7 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Error desconocido", "Could not move %s - File with this name already exists" => "No se pudo mover %s - Ya existe un archivo con ese nombre.", "Could not move %s" => "No se pudo mover %s", +"Permission denied" => "Permiso denegado", "File name cannot be empty." => "El nombre de archivo no puede estar vacío.", "\"%s\" is an invalid file name." => "\"%s\" es un nombre de archivo inválido.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre inválido, los caracteres \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), "_%n file_::_%n files_" => array("%n archivo","%n archivos"), +"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", "_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), "\"{name}\" is an invalid file name." => "\"{name}\" es un nombre de archivo inválido.", "Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nueva carpeta", "Folder" => "Carpeta", "From link" => "Desde enlace", -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", "Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!", "Download" => "Descargar", "Upload too large" => "Subida demasido grande", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index 9568fb1b2fe..8b9fe78791e 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -51,6 +51,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), "_%n file_::_%n files_" => array("%n archivo","%n archivos"), +"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí", "_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), "Your storage is full, files can not be updated or synced anymore!" => "El almacenamiento está lleno, los archivos no se pueden seguir actualizando ni sincronizando", "Your storage is almost full ({usedSpacePercent}%)" => "El almacenamiento está casi lleno ({usedSpacePercent}%)", @@ -71,7 +72,6 @@ $TRANSLATIONS = array( "New folder" => "Nueva Carpeta", "Folder" => "Carpeta", "From link" => "Desde enlace", -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí", "Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!", "Download" => "Descargar", "Upload too large" => "El tamaño del archivo que querés subir es demasiado grande", diff --git a/apps/files/l10n/es_MX.php b/apps/files/l10n/es_MX.php index 58ca3c470b4..d11bc4301df 100644 --- a/apps/files/l10n/es_MX.php +++ b/apps/files/l10n/es_MX.php @@ -51,6 +51,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"), "_%n file_::_%n files_" => array("%n archivo","%n archivos"), +"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", "_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"), "Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", "Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)", @@ -71,7 +72,6 @@ $TRANSLATIONS = array( "New folder" => "Nueva carpeta", "Folder" => "Carpeta", "From link" => "Desde enlace", -"You don’t have permission to upload or create files here" => "No tienes permisos para subir o crear archivos aquí.", "Nothing in here. Upload something!" => "No hay nada aquí. ¡Suba algo!", "Download" => "Descargar", "Upload too large" => "Subida demasido grande", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index e566617a061..d40805d04bf 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Tundmatu viga", "Could not move %s - File with this name already exists" => "Ei saa liigutada faili %s - samanimeline fail on juba olemas", "Could not move %s" => "%s liigutamine ebaõnnestus", +"Permission denied" => "Ligipääs keelatud", "File name cannot be empty." => "Faili nimi ei saa olla tühi.", "\"%s\" is an invalid file name." => "\"%s\" on vigane failinimi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Muudetud", "_%n folder_::_%n folders_" => array("%n kataloog","%n kataloogi"), "_%n file_::_%n files_" => array("%n fail","%n faili"), +"You don’t have permission to upload or create files here" => "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks", "_Uploading %n file_::_Uploading %n files_" => array("Laadin üles %n faili","Laadin üles %n faili"), "\"{name}\" is an invalid file name." => "\"{name}\" on vigane failinimi.", "Your storage is full, files can not be updated or synced anymore!" => "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Uus kaust", "Folder" => "Kaust", "From link" => "Allikast", -"You don’t have permission to upload or create files here" => "Sul puuduvad õigused siia failide üleslaadimiseks või tekitamiseks", "Nothing in here. Upload something!" => "Siin pole midagi. Lae midagi üles!", "Download" => "Lae alla", "Upload too large" => "Üleslaadimine on liiga suur", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 6f6726b83d0..c7d5ceec02d 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Aldatuta", "_%n folder_::_%n folders_" => array("karpeta %n","%n karpeta"), "_%n file_::_%n files_" => array("fitxategi %n","%n fitxategi"), +"You don’t have permission to upload or create files here" => "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik", "_Uploading %n file_::_Uploading %n files_" => array("Fitxategi %n igotzen","%n fitxategi igotzen"), "\"{name}\" is an invalid file name." => "\"{name}\" ez da fitxategi izen baliogarria.", "Your storage is full, files can not be updated or synced anymore!" => "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik igo edo sinkronizatu!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Karpeta berria", "Folder" => "Karpeta", "From link" => "Estekatik", -"You don’t have permission to upload or create files here" => "Ez duzu fitxategiak hona igotzeko edo hemen sortzeko baimenik", "Nothing in here. Upload something!" => "Ez dago ezer. Igo zerbait!", "Download" => "Deskargatu", "Upload too large" => "Igoera handiegia da", diff --git a/apps/files/l10n/fi.php b/apps/files/l10n/fi.php deleted file mode 100644 index 43770829397..00000000000 --- a/apps/files/l10n/fi.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Save" => "tallentaa" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index 3acbfc9308f..adce13d004b 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Tuntematon virhe", "Could not move %s - File with this name already exists" => "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", "Could not move %s" => "Kohteen %s siirto ei onnistunut", +"Permission denied" => "Ei käyttöoikeutta", "File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.", "\"%s\" is an invalid file name." => "\"%s\" on virheellinen tiedostonimi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Muokattu", "_%n folder_::_%n folders_" => array("%n kansio","%n kansiota"), "_%n file_::_%n files_" => array("%n tiedosto","%n tiedostoa"), +"You don’t have permission to upload or create files here" => "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin", "_Uploading %n file_::_Uploading %n files_" => array("Lähetetään %n tiedosto","Lähetetään %n tiedostoa"), "\"{name}\" is an invalid file name." => "\"{name}\" on virheellinen tiedostonimi.", "Your storage is full, files can not be updated or synced anymore!" => "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Uusi kansio", "Folder" => "Kansio", "From link" => "Linkistä", -"You don’t have permission to upload or create files here" => "Käyttöoikeutesi eivät riitä tiedostojen lähettämiseen tai kansioiden luomiseen tähän sijaintiin", "Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!", "Download" => "Lataa", "Upload too large" => "Lähetettävä tiedosto on liian suuri", diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 52a8cc36714..ff695465d92 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Erreur Inconnue ", "Could not move %s - File with this name already exists" => "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", "Could not move %s" => "Impossible de déplacer %s", +"Permission denied" => "Permission refusée", "File name cannot be empty." => "Le nom de fichier ne peut être vide.", "\"%s\" is an invalid file name." => "\"%s\" n'est pas un nom de fichier valide.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Modifié", "_%n folder_::_%n folders_" => array("%n dossier","%n dossiers"), "_%n file_::_%n files_" => array("%n fichier","%n fichiers"), +"You don’t have permission to upload or create files here" => "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici", "_Uploading %n file_::_Uploading %n files_" => array("Téléversement de %n fichier","Téléversement de %n fichiers"), "\"{name}\" is an invalid file name." => "\"{name}\" n'est pas un nom de fichier valide.", "Your storage is full, files can not be updated or synced anymore!" => "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nouveau dossier", "Folder" => "Dossier", "From link" => "Depuis le lien", -"You don’t have permission to upload or create files here" => "Vous n'avez pas la permission de téléverser ou de créer des fichiers ici", "Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)", "Download" => "Télécharger", "Upload too large" => "Téléversement trop volumineux", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index 5a84dbbaf5a..0671a0ac474 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n cartafol","%n cartafoles"), "_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), +"You don’t have permission to upload or create files here" => "Non ten permisos para enviar ou crear ficheiros aquí.", "_Uploading %n file_::_Uploading %n files_" => array("Cargando %n ficheiro","Cargando %n ficheiros"), "\"{name}\" is an invalid file name." => "«{name}» é un nome incorrecto de ficheiro.", "Your storage is full, files can not be updated or synced anymore!" => "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Novo cartafol", "Folder" => "Cartafol", "From link" => "Desde a ligazón", -"You don’t have permission to upload or create files here" => "Non ten permisos para enviar ou crear ficheiros aquí.", "Nothing in here. Upload something!" => "Aquí non hai nada. Envíe algo.", "Download" => "Descargar", "Upload too large" => "Envío grande de máis", diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php index 4c72ec25bd8..7c4016d31b3 100644 --- a/apps/files/l10n/hr.php +++ b/apps/files/l10n/hr.php @@ -1,37 +1,96 @@ <?php $TRANSLATIONS = array( -"There is no error, the file uploaded with success" => "Nema pogreške, datoteka je poslana uspješno.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslana datoteka prelazi veličinu prikazanu u MAX_FILE_SIZE direktivi u HTML formi", -"The uploaded file was only partially uploaded" => "Poslana datoteka je parcijalno poslana", -"No file was uploaded" => "Datoteka nije poslana", -"Missing a temporary folder" => "Nedostaje privremeni direktorij", -"Failed to write to disk" => "Neuspjelo pisanje na disk", +"Storage not available" => "Pohrana nedostupna", +"Storage invalid" => "Pohrana neispravna", +"Unknown error" => "Nepoznata pogreška", +"Could not move %s - File with this name already exists" => "Nemoguće premjestiti %s - Datoteka takvog naziva već postoji", +"Could not move %s" => "Nemoguće premjestiti %s", +"Permission denied" => "Nemate dozvolu", +"File name cannot be empty." => "Naziv datoteke ne može biti prazan.", +"\"%s\" is an invalid file name." => "\"%s\" je neispravan naziv datoteke.", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neispravan naziv,'\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.", +"The target folder has been moved or deleted." => "Ciljna mapa je premještena ili izbrisana.", +"The name %s is already used in the folder %s. Please choose a different name." => "Naziv %s je već iskorišten u mapi %s. Molimo odaberite drukčiji naziv.", +"Not a valid source" => "Izvor nije valjan", +"Server is not allowed to open URLs, please check the server configuration" => "Poslužitelj ne smije otvarati URL-ove, molimo provjerite konfiguraciju poslužitelja", +"The file exceeds your quota by %s" => "Datoteka premašuje vašu kvotu za %s", +"Error while downloading %s to %s" => "Pogreška pri prenošenju %s u %s", +"Error when creating the file" => "Pogreška pri kreiranju datoteke", +"Folder name cannot be empty." => "Naziv mape ne može biti prazan.", +"Error when creating the folder" => "Pogreška pri kreiranju mape", +"Unable to set upload directory." => "Postavka učitavanja direktorija nije moguća", +"Invalid Token" => "Neispravan token", +"No file was uploaded. Unknown error" => "Nijedna datoteka nije učitana. Pogreška nepoznata.", +"There is no error, the file uploaded with success" => "Pogreške nema, datoteka uspješno učitana", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Učitana datoteka premašuje maksimalnu dopuštenu veličinu navedenu u php. ini: ", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Učitana datoteka premašuje MAX_FILE_SIZE direktivu navedenu u HTML formi", +"The uploaded file was only partially uploaded" => "Učitana datoteka samo je djelomično učitana", +"No file was uploaded" => "Nijedna datoteka nije učitana", +"Missing a temporary folder" => "Nedostaje privremena mapa", +"Failed to write to disk" => "Zapisivanje na disk nije uspjelo", +"Not enough storage available" => "Prostor za pohranu nedostatan", +"Upload failed. Could not find uploaded file" => "Učitavanje neuspješno. Nije emoguće pronaći učitanu dataoteku", +"Upload failed. Could not get file info." => "Učitavanje neuspješno. Nije moguće dohvatiti informacije o datoteci", +"Invalid directory." => "Neispravan direktorij", "Files" => "Datoteke", -"Upload cancelled." => "Slanje poništeno.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje.", -"Share" => "Podijeli", -"Delete" => "Obriši", -"Unshare" => "Makni djeljenje", -"Rename" => "Promjeni ime", -"Pending" => "U tijeku", -"Error" => "Greška", -"Name" => "Ime", +"All files" => "Sve datoteke", +"Unable to upload {filename} as it is a directory or has 0 bytes" => "Nije moguće učitati {filename} jer je ili direktorij ili ima 0 bajta", +"Total file size {size1} exceeds upload limit {size2}" => "Ukupna veličina datoteke {size1} premašuje ograničenje unosa {size2}", +"Not enough free space, you are uploading {size1} but only {size2} is left" => "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo", +"Upload cancelled." => "Učitavanje je prekinuto.", +"Could not get result from server." => "Nemoguće dobiti rezultat od poslužitelja.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Učitavanje datoteke je u tijeku. Napuštanje stranice prekinut će učitavanje.", +"URL cannot be empty" => "URL ne može biti prazan", +"{new_name} already exists" => "{new_name} već postoji", +"Could not create file" => "Datoteku nije moguće kreirati", +"Could not create folder" => "Mapu nije moguće kreirati", +"Error fetching URL" => "Pogrešan dohvat URL", +"Share" => "Podijelite resurs", +"Delete" => "Izbrišite", +"Disconnect storage" => "Isključite pohranu", +"Unshare" => "Prestanite dijeliti", +"Delete permanently" => "Trajno izbrišite", +"Rename" => "Preimenujte", +"Pending" => "Na čekanju", +"Error moving file." => "Pogrešno premještanje datoteke", +"Error moving file" => "Pogrešno premještanje datoteke", +"Error" => "Pogreška", +"Could not rename file" => "Datoteku nije moguće preimenovati", +"Error deleting file." => "Pogrešno brisanje datoteke", +"Name" => "Naziv", "Size" => "Veličina", -"Modified" => "Zadnja promjena", -"_%n folder_::_%n folders_" => array("","",""), -"_%n file_::_%n files_" => array("","",""), -"_Uploading %n file_::_Uploading %n files_" => array("","",""), -"File handling" => "datoteka za rukovanje", -"Maximum upload size" => "Maksimalna veličina prijenosa", -"max. possible: " => "maksimalna moguća: ", -"Save" => "Snimi", -"New" => "novo", -"Text file" => "tekstualna datoteka", -"Folder" => "mapa", -"Nothing in here. Upload something!" => "Nema ničega u ovoj mapi. Pošalji nešto!", +"Modified" => "Promijenjeno", +"_%n folder_::_%n folders_" => array("%n mapa","%n mape","%n mapa"), +"_%n file_::_%n files_" => array("%n datoteka","%n datoteke","%n datoteka"), +"You don’t have permission to upload or create files here" => "Ovdje vam nije dopušteno učitavati ili kreirati datoteke", +"_Uploading %n file_::_Uploading %n files_" => array("Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteka"), +"\"{name}\" is an invalid file name." => "\"{name}\" je neispravno ime datoteke.", +"Your storage is full, files can not be updated or synced anymore!" => "Vaša je pohrana puna, datoteke više nije moguće ažurirati niti sinkronizirati!", +"Your storage is almost full ({usedSpacePercent}%)" => "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)", +"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacija šifriranja je onemogućena, ali vaši ključevi nisu inicijalizirani, molimo odjavite se i ponovno prijavite", +"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.", +"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifriranje je onemogućeno, ali vaše su datoteke još uvijek šifrirane. Molimo, otiđite u svojeosobne postavke da biste dešifrirali svoje datoteke.", +"{dirs} and {files}" => "{dirs} i {files}", +"%s could not be renamed as it has been deleted" => "%s nije moguće preimenovati jer je izbrisan", +"%s could not be renamed" => "%s nije moguće preimenovati", +"Upload (max. %s)" => "Prijenos (max. %s)", +"File handling" => "Obrada datoteke", +"Maximum upload size" => "Maksimalna veličina učitanog sadržaja", +"max. possible: " => "max. moguće: ", +"Save" => "Spremite", +"WebDAV" => "WebDAV", +"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" => "Koristitet slijedeću adresu za <a href=\"%s\" target=\"_blank\">pristup vašim datotekama putem WebDAV-a</a>", +"New" => "Novo", +"New text file" => "Nova tekstualna datoteka", +"Text file" => "Tekstualna datoteka", +"New folder" => "Nova mapa", +"Folder" => "Mapa", +"From link" => "Od veze", +"Nothing in here. Upload something!" => "Ovdje nema ničega. Učitajte nešto!", "Download" => "Preuzimanje", -"Upload too large" => "Prijenos je preobiman", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke koje pokušavate prenijeti prelaze maksimalnu veličinu za prijenos datoteka na ovom poslužitelju.", -"Files are being scanned, please wait." => "Datoteke se skeniraju, molimo pričekajte." +"Upload too large" => "Unos je prevelik", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke koje pokušavate učitati premašuju maksimalnu veličinu za unos datoteka na ovom poslužitelju.", +"Files are being scanned, please wait." => "Datoteke se provjeravaju, molimo pričekajte.", +"Currently scanning" => "Provjera u tijeku" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index 85c439ecab1..1a8d2a6f548 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Módosítva", "_%n folder_::_%n folders_" => array("%n mappa","%n mappa"), "_%n file_::_%n files_" => array("%n állomány","%n állomány"), +"You don’t have permission to upload or create files here" => "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre", "_Uploading %n file_::_Uploading %n files_" => array("%n állomány feltöltése","%n állomány feltöltése"), "\"{name}\" is an invalid file name." => "\"{name}\" érvénytelen, mint fájlnév.", "Your storage is full, files can not be updated or synced anymore!" => "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Új mappa", "Folder" => "Mappa", "From link" => "Feltöltés linkről", -"You don’t have permission to upload or create files here" => "Önnek nincs jogosultsága ahhoz, hogy ide állományokat töltsön föl, vagy itt újakat hozzon létre", "Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!", "Download" => "Letöltés", "Upload too large" => "A feltöltés túl nagy", diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php index 1a6a1bc384b..b8b362d5b48 100644 --- a/apps/files/l10n/id.php +++ b/apps/files/l10n/id.php @@ -49,6 +49,7 @@ $TRANSLATIONS = array( "Modified" => "Dimodifikasi", "_%n folder_::_%n folders_" => array("%n folder"), "_%n file_::_%n files_" => array("%n berkas"), +"You don’t have permission to upload or create files here" => "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini", "_Uploading %n file_::_Uploading %n files_" => array("Mengunggah %n berkas"), "Your storage is full, files can not be updated or synced anymore!" => "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkronkan lagi!", "Your storage is almost full ({usedSpacePercent}%)" => "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)", @@ -69,7 +70,6 @@ $TRANSLATIONS = array( "New folder" => "Map baru", "Folder" => "Folder", "From link" => "Dari tautan", -"You don’t have permission to upload or create files here" => "Anda tidak memiliki akses untuk mengunggah atau membuat berkas disini", "Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!", "Download" => "Unduh", "Upload too large" => "Yang diunggah terlalu besar", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index 3561cff294a..08cb41f1230 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Errore sconosciuto", "Could not move %s - File with this name already exists" => "Impossibile spostare %s - un file con questo nome esiste già", "Could not move %s" => "Impossibile spostare %s", +"Permission denied" => "Permesso negato", "File name cannot be empty." => "Il nome del file non può essere vuoto.", "\"%s\" is an invalid file name." => "\"%s\" non è un nome file valido.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Modificato", "_%n folder_::_%n folders_" => array("%n cartella","%n cartelle"), "_%n file_::_%n files_" => array("%n file","%n file"), +"You don’t have permission to upload or create files here" => "Qui non hai i permessi di caricare o creare file", "_Uploading %n file_::_Uploading %n files_" => array("Caricamento di %n file in corso","Caricamento di %n file in corso"), "\"{name}\" is an invalid file name." => "\"{name}\" non è un nome file valido.", "Your storage is full, files can not be updated or synced anymore!" => "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nuova cartella", "Folder" => "Cartella", "From link" => "Da collegamento", -"You don’t have permission to upload or create files here" => "Qui non hai i permessi di caricare o creare file", "Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!", "Download" => "Scarica", "Upload too large" => "Caricamento troppo grande", diff --git a/apps/files/l10n/ja.php b/apps/files/l10n/ja.php index b3c31925618..c0e67863dbf 100644 --- a/apps/files/l10n/ja.php +++ b/apps/files/l10n/ja.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "不明なエラー", "Could not move %s - File with this name already exists" => "%s を移動できませんでした ― この名前のファイルはすでに存在します", "Could not move %s" => "%s を移動できませんでした", +"Permission denied" => "アクセス拒否", "File name cannot be empty." => "ファイル名を空にすることはできません。", "\"%s\" is an invalid file name." => "\"%s\" は無効なファイル名です。", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "無効な名前、'\\', '/', '<', '>', ':', '\"', '|', '?', '*' は使用できません。", @@ -12,6 +13,7 @@ $TRANSLATIONS = array( "The name %s is already used in the folder %s. Please choose a different name." => "%s はフォルダー %s ですでに使われています。別の名前を選択してください。", "Not a valid source" => "有効なソースではありません", "Server is not allowed to open URLs, please check the server configuration" => "サーバーは、URLを開くことは許されません。サーバーの設定をチェックしてください。", +"The file exceeds your quota by %s" => "ファイル %s で容量制限をオーバーしました。", "Error while downloading %s to %s" => "%s から %s へのダウンロードエラー", "Error when creating the file" => "ファイルの生成エラー", "Folder name cannot be empty." => "フォルダー名は空にできません", @@ -60,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "更新日時", "_%n folder_::_%n folders_" => array("%n 個のフォルダー"), "_%n file_::_%n files_" => array("%n 個のファイル"), +"You don’t have permission to upload or create files here" => "ここにファイルをアップロードもしくは作成する権限がありません", "_Uploading %n file_::_Uploading %n files_" => array("%n 個のファイルをアップロード中"), "\"{name}\" is an invalid file name." => "\"{name}\" は無効なファイル名です。", "Your storage is full, files can not be updated or synced anymore!" => "あなたのストレージは一杯です。ファイルの更新と同期はもうできません!", @@ -68,6 +71,7 @@ $TRANSLATIONS = array( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "暗号化の機能は無効化されましたが、ファイルはすでに暗号化されています。個人設定からファイルを複合を行ってください。", "{dirs} and {files}" => "{dirs} と {files}", +"%s could not be renamed as it has been deleted" => "%s は削除された為、ファイル名を変更できません", "%s could not be renamed" => "%sの名前を変更できませんでした", "Upload (max. %s)" => "アップロード ( 最大 %s )", "File handling" => "ファイル操作", @@ -82,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "新しいフォルダー", "Folder" => "フォルダー", "From link" => "リンク", -"You don’t have permission to upload or create files here" => "ここにファイルをアップロードもしくは作成する権限がありません", "Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。", "Download" => "ダウンロード", "Upload too large" => "アップロードには大きすぎます。", diff --git a/apps/files/l10n/ka.php b/apps/files/l10n/ka.php deleted file mode 100644 index 544e8168c54..00000000000 --- a/apps/files/l10n/ka.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Files" => "ფაილები", -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array(""), -"_Uploading %n file_::_Uploading %n files_" => array(""), -"Download" => "გადმოწერა" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index c6e8870c467..b342b375c77 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -51,6 +51,7 @@ $TRANSLATIONS = array( "Modified" => "수정됨", "_%n folder_::_%n folders_" => array("폴더 %n개"), "_%n file_::_%n files_" => array("파일 %n개"), +"You don’t have permission to upload or create files here" => "여기에 파일을 업로드하거나 만들 권한이 없습니다", "_Uploading %n file_::_Uploading %n files_" => array("파일 %n개 업로드 중"), "Your storage is full, files can not be updated or synced anymore!" => "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!", "Your storage is almost full ({usedSpacePercent}%)" => "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)", @@ -71,7 +72,6 @@ $TRANSLATIONS = array( "New folder" => "새 폴더", "Folder" => "폴더", "From link" => "링크에서", -"You don’t have permission to upload or create files here" => "여기에 파일을 업로드하거나 만들 권한이 없습니다", "Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!", "Download" => "다운로드", "Upload too large" => "업로드한 파일이 너무 큼", diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php index d07a8c82d3b..e1c16c8a80f 100644 --- a/apps/files/l10n/lt_LT.php +++ b/apps/files/l10n/lt_LT.php @@ -51,6 +51,7 @@ $TRANSLATIONS = array( "Modified" => "Pakeista", "_%n folder_::_%n folders_" => array("%n aplankas","%n aplankai","%n aplankų"), "_%n file_::_%n files_" => array("%n failas","%n failai","%n failų"), +"You don’t have permission to upload or create files here" => "Jūs neturite leidimo čia įkelti arba kurti failus", "_Uploading %n file_::_Uploading %n files_" => array("Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"), "Your storage is full, files can not be updated or synced anymore!" => "Jūsų visa vieta serveryje užimta", "Your storage is almost full ({usedSpacePercent}%)" => "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", @@ -71,7 +72,6 @@ $TRANSLATIONS = array( "New folder" => "Naujas aplankas", "Folder" => "Katalogas", "From link" => "Iš nuorodos", -"You don’t have permission to upload or create files here" => "Jūs neturite leidimo čia įkelti arba kurti failus", "Nothing in here. Upload something!" => "Čia tuščia. Įkelkite ką nors!", "Download" => "Atsisiųsti", "Upload too large" => "Įkėlimui failas per didelis", diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php index 1baf5dad99d..5acadc8189c 100644 --- a/apps/files/l10n/nb_NO.php +++ b/apps/files/l10n/nb_NO.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Endret", "_%n folder_::_%n folders_" => array("%n mappe","%n mapper"), "_%n file_::_%n files_" => array("%n fil","%n filer"), +"You don’t have permission to upload or create files here" => "Du har ikke tillatelse til å laste opp eller opprette filer her", "_Uploading %n file_::_Uploading %n files_" => array("Laster opp %n fil","Laster opp %n filer"), "\"{name}\" is an invalid file name." => "\"{name}\" er et uglydig filnavn.", "Your storage is full, files can not be updated or synced anymore!" => "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Ny mappe", "Folder" => "Mappe", "From link" => "Fra lenke", -"You don’t have permission to upload or create files here" => "Du har ikke tillatelse til å laste opp eller opprette filer her", "Nothing in here. Upload something!" => "Ingenting her. Last opp noe!", "Download" => "Last ned", "Upload too large" => "Filen er for stor", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index 68910e7419a..6f510e9a7fb 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Onbekende fout", "Could not move %s - File with this name already exists" => "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", "Could not move %s" => "Kon %s niet verplaatsen", +"Permission denied" => "Toegang geweigerd", "File name cannot be empty." => "Bestandsnaam kan niet leeg zijn.", "\"%s\" is an invalid file name." => "\"%s\" is een ongeldige bestandsnaam.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Aangepast", "_%n folder_::_%n folders_" => array("","%n mappen"), "_%n file_::_%n files_" => array("%n bestand","%n bestanden"), +"You don’t have permission to upload or create files here" => "U hebt geen toestemming om hier te uploaden of bestanden te maken", "_Uploading %n file_::_Uploading %n files_" => array("%n bestand aan het uploaden","%n bestanden aan het uploaden"), "\"{name}\" is an invalid file name." => "\"{name}\" is een ongeldige bestandsnaam.", "Your storage is full, files can not be updated or synced anymore!" => "Uw opslagruimte zit vol, Bestanden kunnen niet meer worden ge-upload of gesynchroniseerd!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nieuwe map", "Folder" => "Map", "From link" => "Vanaf link", -"You don’t have permission to upload or create files here" => "U hebt geen toestemming om hier te uploaden of bestanden te maken", "Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!", "Download" => "Downloaden", "Upload too large" => "Upload is te groot", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index 7efa6f12e10..1dc10824883 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Erro desconhecido", "Could not move %s - File with this name already exists" => "Impossível mover %s - Já existe um arquivo com esse nome", "Could not move %s" => "Impossível mover %s", +"Permission denied" => "Permissão Negada", "File name cannot be empty." => "O nome do arquivo não pode estar vazio.", "\"%s\" is an invalid file name." => "\"%s\" é um nome de arquivo inválido.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), "_%n file_::_%n files_" => array("%n arquivo","%n arquivos"), +"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar arquivos aqui", "_Uploading %n file_::_Uploading %n files_" => array("Enviando %n arquivo","Enviando %n arquivos"), "\"{name}\" is an invalid file name." => "\"{name}\" é um nome de arquivo inválido.", "Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Nova pasta", "Folder" => "Pasta", "From link" => "Do link", -"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar arquivos aqui", "Nothing in here. Upload something!" => "Nada aqui. Carregue alguma coisa!", "Download" => "Baixar", "Upload too large" => "Arquivo muito grande para envio", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index dfa599e10ac..372b412fc00 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Modificado", "_%n folder_::_%n folders_" => array("%n pasta","%n pastas"), "_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"), +"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar ficheiros aqui", "_Uploading %n file_::_Uploading %n files_" => array("A carregar %n ficheiro","A carregar %n ficheiros"), "\"{name}\" is an invalid file name." => "\"{name}\" é um nome de ficheiro inválido.", "Your storage is full, files can not be updated or synced anymore!" => "O seu armazenamento está cheio, os ficheiros já não podem ser atualizados ou sincronizados.", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Nova Pasta", "Folder" => "Pasta", "From link" => "Da hiperligação", -"You don’t have permission to upload or create files here" => "Você não tem permissão para enviar ou criar ficheiros aqui", "Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", "Download" => "Transferir", "Upload too large" => "Upload muito grande", diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index d84a80af97e..d94a4a772a6 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -60,6 +60,7 @@ $TRANSLATIONS = array( "Modified" => "Modificat", "_%n folder_::_%n folders_" => array("%n director","%n directoare","%n directoare"), "_%n file_::_%n files_" => array("%n fișier","%n fișiere","%n fișiere"), +"You don’t have permission to upload or create files here" => "Nu aveti permisiunea de a incarca sau crea fisiere aici", "_Uploading %n file_::_Uploading %n files_" => array("Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."), "\"{name}\" is an invalid file name." => "\"{name}\" este un nume de fișier nevalid.", "Your storage is full, files can not be updated or synced anymore!" => "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", @@ -82,7 +83,6 @@ $TRANSLATIONS = array( "New folder" => "Un nou dosar", "Folder" => "Dosar", "From link" => "De la adresa", -"You don’t have permission to upload or create files here" => "Nu aveti permisiunea de a incarca sau crea fisiere aici", "Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!", "Download" => "Descarcă", "Upload too large" => "Fișierul încărcat este prea mare", diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index e0eb7d81484..943a8a13a26 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Неизвестная ошибка", "Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует", "Could not move %s" => "Невозможно переместить %s", +"Permission denied" => "В доступе отказано", "File name cannot be empty." => "Имя файла не может быть пустым.", "\"%s\" is an invalid file name." => "\"%s\" это не правильное имя файла.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Изменён", "_%n folder_::_%n folders_" => array("%n каталог","%n каталога","%n каталогов"), "_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"), +"You don’t have permission to upload or create files here" => "У вас нет прав для загрузки или создания файлов здесь.", "_Uploading %n file_::_Uploading %n files_" => array("Закачка %n файла","Закачка %n файлов","Закачка %n файлов"), "\"{name}\" is an invalid file name." => "\"{name}\" это не правильное имя файла.", "Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Новый каталог", "Folder" => "Каталог", "From link" => "Объект по ссылке", -"You don’t have permission to upload or create files here" => "У вас нет прав для загрузки или создания файлов здесь.", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Download" => "Скачать", "Upload too large" => "Файл слишком велик", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index 788ad7facc8..e582c40fedf 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Upravené", "_%n folder_::_%n folders_" => array("%n priečinok","%n priečinky","%n priečinkov"), "_%n file_::_%n files_" => array("%n súbor","%n súbory","%n súborov"), +"You don’t have permission to upload or create files here" => "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory", "_Uploading %n file_::_Uploading %n files_" => array("Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"), "\"{name}\" is an invalid file name." => "\"{name}\" je neplatné meno súboru.", "Your storage is full, files can not be updated or synced anymore!" => "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Nový priečinok", "Folder" => "Priečinok", "From link" => "Z odkazu", -"You don’t have permission to upload or create files here" => "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory", "Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", "Download" => "Sťahovanie", "Upload too large" => "Nahrávanie je príliš veľké", diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index 0c58be5b57f..432d8c8eae9 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "Spremenjeno", "_%n folder_::_%n folders_" => array("%n mapa","%n mapi","%n mape","%n map"), "_%n file_::_%n files_" => array("%n datoteka","%n datoteki","%n datoteke","%n datotek"), +"You don’t have permission to upload or create files here" => "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.", "_Uploading %n file_::_Uploading %n files_" => array("Posodabljanje %n datoteke","Posodabljanje %n datotek","Posodabljanje %n datotek","Posodabljanje %n datotek"), "\"{name}\" is an invalid file name." => "\"{name}\" je neveljavno ime datoteke.", "Your storage is full, files can not be updated or synced anymore!" => "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!", @@ -84,7 +85,6 @@ $TRANSLATIONS = array( "New folder" => "Nova mapa", "Folder" => "Mapa", "From link" => "Iz povezave", -"You don’t have permission to upload or create files here" => "Ni ustreznih dovoljenj za pošiljanje ali ustvarjanje datotek na tem mestu.", "Nothing in here. Upload something!" => "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!", "Download" => "Prejmi", "Upload too large" => "Prekoračenje omejitve velikosti", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index 907b1410cb8..953946f3809 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -57,6 +57,7 @@ $TRANSLATIONS = array( "Modified" => "Ändrad", "_%n folder_::_%n folders_" => array("%n mapp","%n mappar"), "_%n file_::_%n files_" => array("%n fil","%n filer"), +"You don’t have permission to upload or create files here" => "Du har ej tillåtelse att ladda upp eller skapa filer här", "_Uploading %n file_::_Uploading %n files_" => array("Laddar upp %n fil","Laddar upp %n filer"), "\"{name}\" is an invalid file name." => "\"{name}\" är ett ogiltligt filnamn.", "Your storage is full, files can not be updated or synced anymore!" => "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", @@ -79,7 +80,6 @@ $TRANSLATIONS = array( "New folder" => "Ny mapp", "Folder" => "Mapp", "From link" => "Från länk", -"You don’t have permission to upload or create files here" => "Du har ej tillåtelse att ladda upp eller skapa filer här", "Nothing in here. Upload something!" => "Ingenting här. Ladda upp något!", "Download" => "Ladda ner", "Upload too large" => "För stor uppladdning", diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index c8a6a8f0db1..7bf746dba52 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Unknown error" => "Bilinmeyen hata", "Could not move %s - File with this name already exists" => "%s taşınamadı. Bu isimde dosya zaten mevcut", "Could not move %s" => "%s taşınamadı", +"Permission denied" => "Erişim reddedildi", "File name cannot be empty." => "Dosya adı boş olamaz.", "\"%s\" is an invalid file name." => "\"%s\" geçersiz bir dosya adı.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim. '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.", @@ -61,6 +62,7 @@ $TRANSLATIONS = array( "Modified" => "Değiştirilme", "_%n folder_::_%n folders_" => array("%n dizin","%n dizin"), "_%n file_::_%n files_" => array("%n dosya","%n dosya"), +"You don’t have permission to upload or create files here" => "Buraya dosya yükleme veya oluşturma izniniz yok", "_Uploading %n file_::_Uploading %n files_" => array("%n dosya yükleniyor","%n dosya yükleniyor"), "\"{name}\" is an invalid file name." => "\"{name}\" geçersiz bir dosya adı.", "Your storage is full, files can not be updated or synced anymore!" => "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.", @@ -84,7 +86,6 @@ $TRANSLATIONS = array( "New folder" => "Yeni klasör", "Folder" => "Klasör", "From link" => "Bağlantıdan", -"You don’t have permission to upload or create files here" => "Buraya dosya yükleme veya oluşturma izniniz yok", "Nothing in here. Upload something!" => "Burada hiçbir şey yok. Bir şeyler yükleyin!", "Download" => "İndir", "Upload too large" => "Yükleme çok büyük", diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index 9a27ecd228a..dc9e4b64c14 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -55,6 +55,7 @@ $TRANSLATIONS = array( "Modified" => "Змінено", "_%n folder_::_%n folders_" => array("%n тека","%n тека","%n теки"), "_%n file_::_%n files_" => array("%n файл","%n файлів","%n файли"), +"You don’t have permission to upload or create files here" => "У вас недостатньо прав для завантаження або створення файлів тут", "_Uploading %n file_::_Uploading %n files_" => array("Завантаження %n файлу","Завантаження %n файлів","Завантаження %n файлів"), "\"{name}\" is an invalid file name." => "\"{name}\" - некоректне ім'я файлу.", "Your storage is full, files can not be updated or synced anymore!" => "Ваше сховище переповнене, файли більше не можуть бути оновлені або синхронізовані !", @@ -76,7 +77,6 @@ $TRANSLATIONS = array( "New folder" => "Нова тека", "Folder" => "Тека", "From link" => "З посилання", -"You don’t have permission to upload or create files here" => "У вас недостатньо прав для завантаження або створення файлів тут", "Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!", "Download" => "Завантажити", "Upload too large" => "Файл занадто великий", diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index 6d1e84172fe..a754b9d5a5d 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -50,6 +50,7 @@ $TRANSLATIONS = array( "Modified" => "Thay đổi", "_%n folder_::_%n folders_" => array("%n thư mục"), "_%n file_::_%n files_" => array("%n tập tin"), +"You don’t have permission to upload or create files here" => "Bạn không có quyền upload hoặc tạo files ở đây", "_Uploading %n file_::_Uploading %n files_" => array("Đang tải lên %n tập tin"), "Your storage is full, files can not be updated or synced anymore!" => "Your storage is full, files can not be updated or synced anymore!", "Your storage is almost full ({usedSpacePercent}%)" => "Your storage is almost full ({usedSpacePercent}%)", @@ -68,7 +69,6 @@ $TRANSLATIONS = array( "New folder" => "Tạo thư mục", "Folder" => "Thư mục", "From link" => "Từ liên kết", -"You don’t have permission to upload or create files here" => "Bạn không có quyền upload hoặc tạo files ở đây", "Nothing in here. Upload something!" => "Không có gì ở đây .Hãy tải lên một cái gì đó !", "Download" => "Tải về", "Upload too large" => "Tập tin tải lên quá lớn", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 3550451826a..f24218f2784 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -60,6 +60,7 @@ $TRANSLATIONS = array( "Modified" => "修改日期", "_%n folder_::_%n folders_" => array("%n 文件夹"), "_%n file_::_%n files_" => array("%n个文件"), +"You don’t have permission to upload or create files here" => "您没有权限来上传湖州哦和创建文件", "_Uploading %n file_::_Uploading %n files_" => array("上传 %n 个文件"), "\"{name}\" is an invalid file name." => "“{name}”是一个无效的文件名。", "Your storage is full, files can not be updated or synced anymore!" => "您的存储空间已满,文件将无法更新或同步!", @@ -82,7 +83,6 @@ $TRANSLATIONS = array( "New folder" => "增加文件夹", "Folder" => "文件夹", "From link" => "来自链接", -"You don’t have permission to upload or create files here" => "您没有权限来上传湖州哦和创建文件", "Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!", "Download" => "下载", "Upload too large" => "上传文件过大", diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php index e269cca3168..67084f28a55 100644 --- a/apps/files/l10n/zh_TW.php +++ b/apps/files/l10n/zh_TW.php @@ -61,6 +61,7 @@ $TRANSLATIONS = array( "Modified" => "修改時間", "_%n folder_::_%n folders_" => array("%n 個資料夾"), "_%n file_::_%n files_" => array("%n 個檔案"), +"You don’t have permission to upload or create files here" => "您沒有權限在這裡上傳或建立檔案", "_Uploading %n file_::_Uploading %n files_" => array("%n 個檔案正在上傳"), "\"{name}\" is an invalid file name." => "{name} 是無效的檔名", "Your storage is full, files can not be updated or synced anymore!" => "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", @@ -83,7 +84,6 @@ $TRANSLATIONS = array( "New folder" => "新資料夾", "Folder" => "資料夾", "From link" => "從連結", -"You don’t have permission to upload or create files here" => "您沒有權限在這裡上傳或建立檔案", "Nothing in here. Upload something!" => "這裡還沒有東西,上傳一些吧!", "Download" => "下載", "Upload too large" => "上傳過大", diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index 50b4e8338a8..a0c0aa4952e 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -138,6 +138,9 @@ class Helper } $entry['mountType'] = $mountType; } + if (isset($i['extraData'])) { + $entry['extraData'] = $i['extraData']; + } return $entry; } diff --git a/apps/files_encryption/l10n/bn_BD.php b/apps/files_encryption/l10n/bn_BD.php index 43699906e4d..65ecca64d93 100644 --- a/apps/files_encryption/l10n/bn_BD.php +++ b/apps/files_encryption/l10n/bn_BD.php @@ -1,6 +1,12 @@ <?php $TRANSLATIONS = array( +"Recovery key successfully enabled" => "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে", +"Recovery key successfully disabled" => "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে", +"Password successfully changed." => "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ", +"Missing requirements." => "প্রয়োজনানুযায়ী ঘাটতি আছে।", "Encryption" => "সংকেতায়ন", +"Enabled" => "কার্যকর", +"Disabled" => "অকার্যকর", "Change Password" => "কূটশব্দ পরিবর্তন করুন" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/files_encryption/l10n/hr.php b/apps/files_encryption/l10n/hr.php index 60ee610bd3e..a6a1f164b7f 100644 --- a/apps/files_encryption/l10n/hr.php +++ b/apps/files_encryption/l10n/hr.php @@ -1,5 +1,44 @@ <?php $TRANSLATIONS = array( -"Saving..." => "Spremanje..." +"Recovery key successfully enabled" => "Ključ za oporavak uspješno aktiviran", +"Could not enable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće aktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", +"Recovery key successfully disabled" => "Ključ za ooravak uspješno deaktiviran", +"Could not disable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!", +"Password successfully changed." => "Lozinka uspješno promijenjena.", +"Could not change the password. Maybe the old password was not correct." => "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.", +"Private key password successfully updated." => "Lozinka privatnog ključa uspješno ažurirana.", +"Could not update the private key password. Maybe the old password was not correct." => "Lozinku privatnog ključa nije moguće promijeniti. Možda stara je stara lozinka bila neispravna.", +"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.", +"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.", +"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", +"Unknown error. Please check your system settings or contact your administrator" => "Pogreška nepoznata. Molimo provjerite svoje sistemske postavke ili kontaktirajte svog administratora.", +"Missing requirements." => "Nedostaju preduvjeti.", +"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Molimo osigurajte da je instaliran PHP 5.3.3 ili noviji i da je OpenSSL zajedno s PHP ekstenzijom propisno aktivirani konfiguriran. Za sada, aplikacija šifriranja je deaktivirana.", +"Following users are not set up for encryption:" => "Sljedeći korisnici nisu određeni za šifriranje:", +"Initial encryption started... This can take some time. Please wait." => "Počelo inicijalno šifriranje... To može potrajati neko vrijeme. Molimo, pričekajte.", +"Initial encryption running... Please try again later." => "Inicijalno šifriranje u tijeku... Molimo, pokušajte ponovno kasnije.", +"Go directly to your %spersonal settings%s." => "Idite izravno na svoje %sosobne postavke%s.", +"Encryption" => "Šifriranje", +"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.", +"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):", +"Recovery key password" => "Lozinka ključa za oporavak", +"Repeat Recovery key password" => "Ponovite lozinku ključa za oporavak", +"Enabled" => "Aktivirano", +"Disabled" => "Onemogućeno", +"Change recovery key password:" => "Promijenite lozinku ključa za oporavak", +"Old Recovery key password" => "Stara lozinka ključa za oporavak", +"New Recovery key password" => "Nova lozinka ključa za oporavak", +"Repeat New Recovery key password" => "Ponovite novu lozinku ključa za oporavak", +"Change Password" => "Promijenite lozinku", +"Your private key password no longer matches your log-in password." => "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.", +"Set your old private key password to your current log-in password:" => "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.", +" If you don't remember your old password you can ask your administrator to recover your files." => "Ako se ne sjećate svoje stare lozinke, možete zamoliti administratora da oporavi vaše datoteke.", +"Old log-in password" => "Stara lozinka za prijavu", +"Current log-in password" => "Aktualna lozinka za prijavu", +"Update Private Key Password" => "Ažurirajte lozinku privatnog ključa", +"Enable password recovery:" => "Omogućite oporavak lozinke:", +"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama", +"File recovery settings updated" => "Ažurirane postavke za oporavak datoteke", +"Could not update file recovery" => "Oporavak datoteke nije moguće ažurirati" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index c814e6cb55b..31d11338ef5 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -247,7 +247,7 @@ class Proxy extends \OC_FileProxy { * @param resource $result * @return resource */ - public function postFopen($path, &$result) { + public function postFopen($path, $result) { $path = \OC\Files\Filesystem::normalizePath($path); diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 50a73bd5f9a..3486b8db51b 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -111,9 +111,9 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\Swift', array( 'user' => (string)$l->t('Username'), 'bucket' => (string)$l->t('Bucket'), 'region' => '&'.$l->t('Region (optional for OpenStack Object Storage)'), - 'key' => '*'.$l->t('API Key (required for Rackspace Cloud Files)'), + 'key' => '&*'.$l->t('API Key (required for Rackspace Cloud Files)'), 'tenant' => '&'.$l->t('Tenantname (required for OpenStack Object Storage)'), - 'password' => '*'.$l->t('Password (required for OpenStack Object Storage)'), + 'password' => '&*'.$l->t('Password (required for OpenStack Object Storage)'), 'service_name' => '&'.$l->t('Service Name (required for OpenStack Object Storage)'), 'url' => '&'.$l->t('URL of identity endpoint (required for OpenStack Object Storage)'), 'timeout' => '&'.$l->t('Timeout of HTTP requests in seconds'), diff --git a/apps/files_external/l10n/ast.php b/apps/files_external/l10n/ast.php index ba850e2fc3b..0aba42d38af 100644 --- a/apps/files_external/l10n/ast.php +++ b/apps/files_external/l10n/ast.php @@ -15,7 +15,9 @@ $TRANSLATIONS = array( "Amazon S3 and compliant" => "Amazon S3 y compatibilidá", "Access Key" => "Clave d'accesu", "Secret Key" => "Clave Secreta", +"Hostname" => "Nome d'agospiu", "Port" => "Puertu", +"Region" => "Rexón", "Enable SSL" => "Habilitar SSL", "Enable Path Style" => "Habilitar Estilu de ruta", "App key" => "App principal", @@ -46,6 +48,7 @@ $TRANSLATIONS = array( "Error configuring Google Drive storage" => "Fallu configurando l'almacenamientu de Google Drive", "Personal" => "Personal", "System" => "Sistema", +"(group)" => "(grupu)", "Saved" => "Guardáu", "<b>Note:</b> " => "<b>Nota:</b> ", " and " => "y", diff --git a/apps/files_external/l10n/bn_BD.php b/apps/files_external/l10n/bn_BD.php index c8898bf02c2..b06b130dcb3 100644 --- a/apps/files_external/l10n/bn_BD.php +++ b/apps/files_external/l10n/bn_BD.php @@ -1,7 +1,15 @@ <?php $TRANSLATIONS = array( "Please provide a valid Dropbox app key and secret." => "দয়া করে সঠিক এবং বৈধ Dropbox app key and secret প্রদান করুন।", +"Step 1 failed. Exception: %s" => "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s", +"External storage" => "বাহ্যিক সংরক্ষণাগার", +"Local" => "স্থানীয়", "Location" => "অবস্থান", +"Amazon S3" => "আমাজন S3", +"Key" => "কী", +"Secret" => "গোপণীয়", +"Bucket" => "বালতি", +"Secret Key" => "গোপণ চাবি", "Port" => "পোর্ট", "Region" => "এলাকা", "Host" => "হোস্ট", diff --git a/apps/files_external/l10n/cs_CZ.php b/apps/files_external/l10n/cs_CZ.php index 7643a08f4b9..99a4e731986 100644 --- a/apps/files_external/l10n/cs_CZ.php +++ b/apps/files_external/l10n/cs_CZ.php @@ -36,7 +36,7 @@ $TRANSLATIONS = array( "Password (required for OpenStack Object Storage)" => "Heslo (vyžadováno pro OpenStack Object Storage)", "Service Name (required for OpenStack Object Storage)" => "Název služby (vyžadováno pro OpenStack Object Storage)", "URL of identity endpoint (required for OpenStack Object Storage)" => "URL identity koncového bodu (vyžadováno pro OpenStack Object Storage)", -"Timeout of HTTP requests in seconds" => "Vypršení HTTP požadavků v sekundách", +"Timeout of HTTP requests in seconds" => "Časový limit HTTP požadavků v sekundách", "Share" => "Sdílet", "SMB / CIFS using OC login" => "SMB / CIFS za použití přihlašovacího jména OC", "Username as share" => "Uživatelské jméno jako sdílený adresář", diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php index bb164cbadb3..b31415b48f9 100644 --- a/apps/files_external/l10n/fr.php +++ b/apps/files_external/l10n/fr.php @@ -15,6 +15,7 @@ $TRANSLATIONS = array( "Amazon S3 and compliant" => "Compatible avec Amazon S3", "Access Key" => "Clé d'accès", "Secret Key" => "Clé secrète", +"Hostname" => "Nom de l'hôte", "Port" => "Port", "Region" => "Région", "Enable SSL" => "Activer SSL", @@ -35,6 +36,7 @@ $TRANSLATIONS = array( "Password (required for OpenStack Object Storage)" => "Mot de passe (requis pour OpenStack Object Storage)", "Service Name (required for OpenStack Object Storage)" => "Nom du service (requit pour le stockage OpenStack)", "URL of identity endpoint (required for OpenStack Object Storage)" => "URL du point d'accès d'identité (requis pour le stockage OpenStack)", +"Timeout of HTTP requests in seconds" => "Temps maximal de requête HTTP en seconde", "Share" => "Partager", "SMB / CIFS using OC login" => "SMB / CIFS utilise le nom d'utilisateur OC", "Username as share" => "Nom d'utilisateur du partage", @@ -47,6 +49,8 @@ $TRANSLATIONS = array( "Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive", "Personal" => "Personnel", "System" => "Système", +"All users. Type to select user or group." => "Tous les utilisateurs. Commencez à saisir pour sélectionner un utilisateur ou un groupe.", +"(group)" => "(groupe)", "Saved" => "Sauvegarder", "<b>Note:</b> " => "<b>Attention :</b>", " and " => "et", diff --git a/apps/files_external/l10n/hr.php b/apps/files_external/l10n/hr.php index 541aad32ecf..3e2f38675e0 100644 --- a/apps/files_external/l10n/hr.php +++ b/apps/files_external/l10n/hr.php @@ -1,23 +1,73 @@ <?php $TRANSLATIONS = array( +"Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." => "Dohvaćanje tokena zahtjeva nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", +"Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." => "Dohvaćanje pristupnog tokena nije uspjelo. Provjerite jesu li vaš ključ za aplikacije iz zajedničke mrežne mapei tajna aplikacije ispravni", +"Please provide a valid Dropbox app key and secret." => "Molimo navedite ispravan ključ za aplikacije iz zajedničke mrežne mape i tajni kluč.", +"Step 1 failed. Exception: %s" => "Korak 1 nije uspio. Izuzetak: %s", +"Step 2 failed. Exception: %s" => "Korak 2 nije uspio. Izuzetak: %s", +"External storage" => "Vanjsko spremište za pohranu", +"Local" => "Lokalno", "Location" => "Lokacija", +"Amazon S3" => "Amazon S3", "Key" => "Ključ", -"Secret" => "Lozinka", +"Secret" => "Tajna", +"Bucket" => "Kantica", +"Amazon S3 and compliant" => "Amazon S3 i kompatibilno", "Access Key" => "Pristupni ključ", -"Secret Key" => "Tajni ključ", +"Secret Key" => "Ključ za tajnu", +"Hostname" => "Naziv poslužitelja", "Port" => "Port", "Region" => "Regija", -"Host" => "Poslužitelj", +"Enable SSL" => "Omogućite SSL", +"Enable Path Style" => "Omogućite Path Style", +"App key" => "Ključ za aplikacije", +"App secret" => "Tajna aplikacije", +"Host" => "Glavno računalo", "Username" => "Korisničko ime", "Password" => "Lozinka", -"Share" => "Podijeli", +"Root" => "Korijen", +"Secure ftps://" => "Sigurni ftps://", +"Client ID" => "ID klijenta", +"Client secret" => "Klijentski tajni ključ", +"OpenStack Object Storage" => "Prostor za pohranu.....", +"Region (optional for OpenStack Object Storage)" => "Regija (neobavezno za OpenStack object storage", +"API Key (required for Rackspace Cloud Files)" => "API ključ (obavezno za Rackspace Cloud Files)", +"Tenantname (required for OpenStack Object Storage)" => "Naziv korisnika (obavezno za OpenStack Object storage)", +"Password (required for OpenStack Object Storage)" => "Lozinka (obavezno za OpenStack Object Storage)", +"Service Name (required for OpenStack Object Storage)" => "Naziv usluge (Obavezno za OpenStack Object Storage)", +"URL of identity endpoint (required for OpenStack Object Storage)" => "URL krajnje točke identiteta (obavezno za OpenStack Object Storage)", +"Timeout of HTTP requests in seconds" => "Vrijeme isteka HTTP zahtjeva u sekundama", +"Share" => "Dijeljenje zhajedničkih resursa", +"SMB / CIFS using OC login" => "SMB / CIFS uz prijavu putem programa OC", +"Username as share" => "Korisničko ime kao dijeljeni resurs", "URL" => "URL", -"Access granted" => "Pristup dozvoljen", -"Grant access" => "Dozvoli pristup", -"Error configuring Google Drive storage" => "Greška pri konfiguraciji Google Drive poidatkovnog spremišta", +"Secure https://" => "Siguran https://", +"Remote subfolder" => "Udaljena podmapa", +"Access granted" => "Pristup odobren", +"Error configuring Dropbox storage" => "Pogreška pri konfiguriranju spremišta u zajedničkoj mrežnoj mapi", +"Grant access" => "Dodijeli pristup", +"Error configuring Google Drive storage" => "Pogreška pri konfiguriranju spremišta u Google Drive-u", "Personal" => "Osobno", -"Saved" => "Snimljeno", -"Name" => "Ime", -"Delete" => "Obriši" +"System" => "Sustav", +"All users. Type to select user or group." => "Svi korisnici. Započnite unos za izbor korisnika ili grupe.", +"(group)" => "(grupa)", +"Saved" => "Spremljeno", +"<b>Note:</b> " => "<b>Bilješka:</b>", +" and " => " i ", +"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> Podrška cURL u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svog administratora sustava da je instalira.", +"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> Podrška FTP u PHP nije omogućena ili nije instalirana. Postavljanje%s nije moguće. Molimo zamolite svotg administratora sustava da je instalira.", +"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> \"%s\" nije instaliran. Postavljanje %s nije moguće. Molimo zamolitesvog administratora sustava da ga instalira.", +"You don't have any external storages" => "Vi nemate nikakvo vanjsko spremište", +"Name" => "Naziv", +"Storage type" => "Vrsta spremišta", +"Scope" => "Opseg", +"External Storage" => "Vanjsko spremište", +"Folder name" => "Naziv mape", +"Configuration" => "Konfiguracija", +"Available for" => "Dostupno za", +"Add storage" => "Dodajte spremište", +"Delete" => "Izbrišite", +"Enable User External Storage" => "Omogućite korisničko vanjsko spremište", +"Allow users to mount the following external storage" => "Dopustite korisnicima postavljanje sljedećeg vanjskog spremišta" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/files_external/l10n/ka.php b/apps/files_external/l10n/ka.php deleted file mode 100644 index f6356d2cef8..00000000000 --- a/apps/files_external/l10n/ka.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Users" => "მომხმარებლები" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 47ab3294673..1c56d180e2f 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -26,6 +26,7 @@ use Guzzle\Http\Exception\ClientErrorResponseException; use OpenCloud; use OpenCloud\Common\Exceptions; use OpenCloud\OpenStack; +use OpenCloud\Rackspace; use OpenCloud\ObjectStore\Resource\DataObject; use OpenCloud\ObjectStore\Exception; @@ -67,15 +68,16 @@ class Swift extends \OC\Files\Storage\Common { return $path; } - const SUBCONTAINER_FILE='.subcontainers'; + const SUBCONTAINER_FILE = '.subcontainers'; /** * translate directory path to container name + * * @param string $path * @return string */ private function getContainerName($path) { - $path=trim(trim($this->root, '/') . "/".$path, '/.'); + $path = trim(trim($this->root, '/') . "/" . $path, '/.'); return str_replace('/', '\\', $path); } @@ -93,20 +95,21 @@ class Swift extends \OC\Files\Storage\Common { } public function __construct($params) { - if ((!isset($params['key']) and !isset($params['password'])) - or !isset($params['user']) or !isset($params['bucket']) - or !isset($params['region'])) { + if ((empty($params['key']) and empty($params['password'])) + or empty($params['user']) or empty($params['bucket']) + or empty($params['region']) + ) { throw new \Exception("API Key or password, Username, Bucket and Region have to be configured."); } $this->id = 'swift::' . $params['user'] . md5($params['bucket']); $this->bucket = $params['bucket']; - if (!isset($params['url'])) { + if (empty($params['url'])) { $params['url'] = 'https://identity.api.rackspacecloud.com/v2.0/'; } - if (!isset($params['service_name'])) { + if (empty($params['service_name'])) { $params['service_name'] = 'cloudFiles'; } @@ -114,21 +117,25 @@ class Swift extends \OC\Files\Storage\Common { 'username' => $params['user'], ); - if (isset($params['password'])) { + if (!empty($params['password'])) { $settings['password'] = $params['password']; - } else if (isset($params['key'])) { + } else if (!empty($params['key'])) { $settings['apiKey'] = $params['key']; } - if (isset($params['tenant'])) { + if (!empty($params['tenant'])) { $settings['tenantName'] = $params['tenant']; } - if (isset($params['timeout'])) { + if (!empty($params['timeout'])) { $settings['timeout'] = $params['timeout']; } - $this->anchor = new OpenStack($params['url'], $settings); + if (isset($settings['apiKey'])) { + $this->anchor = new Rackspace($params['url'], $settings); + } else { + $this->anchor = new OpenStack($params['url'], $settings); + } $this->connection = $this->anchor->objectStoreService($params['service_name'], $params['region']); @@ -150,7 +157,7 @@ class Swift extends \OC\Files\Storage\Common { return false; } - if($path !== '.') { + if ($path !== '.') { $path .= '/'; } @@ -236,7 +243,7 @@ class Swift extends \OC\Files\Storage\Common { \OC\Files\Stream\Dir::register('swift' . $path, $files); return opendir('fakedir://swift' . $path); - } catch (Exception $e) { + } catch (\Exception $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; } @@ -246,11 +253,14 @@ class Swift extends \OC\Files\Storage\Common { public function stat($path) { $path = $this->normalizePath($path); - if ($this->is_dir($path) && $path != '.') { + if ($path === '.') { + $path = ''; + } else if ($this->is_dir($path)) { $path .= '/'; } try { + /** @var DataObject $object */ $object = $this->container->getPartialObject($path); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); @@ -274,7 +284,7 @@ class Swift extends \OC\Files\Storage\Common { } $stat = array(); - $stat['size'] = (int) $object->getContentLength(); + $stat['size'] = (int)$object->getContentLength(); $stat['mtime'] = $mtime; $stat['atime'] = time(); return $stat; @@ -416,7 +426,7 @@ class Swift extends \OC\Files\Storage\Common { try { $source = $this->container->getPartialObject($path1); - $source->copy($this->bucket.'/'.$path2); + $source->copy($this->bucket . '/' . $path2); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -429,7 +439,7 @@ class Swift extends \OC\Files\Storage\Common { try { $source = $this->container->getPartialObject($path1 . '/'); - $source->copy($this->bucket.'/'.$path2 . '/'); + $source->copy($this->bucket . '/' . $path2 . '/'); } catch (ClientErrorResponseException $e) { \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR); return false; @@ -499,6 +509,28 @@ class Swift extends \OC\Files\Storage\Common { unlink($tmpFile); } + public function hasUpdated($path, $time) { + if ($this->is_file($path)) { + return parent::hasUpdated($path, $time); + } + $path = $this->normalizePath($path); + $dh = $this->opendir($path); + $content = array(); + while (($file = readdir($dh)) !== false) { + $content[] = $file; + } + if ($path === '.') { + $path = ''; + } + $cachedContent = $this->getCache()->getFolderContents($path); + $cachedNames = array_map(function ($content) { + return $content['name']; + }, $cachedContent); + sort($cachedNames); + sort($content); + return $cachedNames != $content; + } + /** * check if curl is installed */ diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php index 8a49401a07b..fc482823843 100644 --- a/apps/files_external/tests/mountconfig.php +++ b/apps/files_external/tests/mountconfig.php @@ -20,8 +20,6 @@ * */ -require_once __DIR__ . '/../../../lib/base.php'; - class Test_Mount_Config_Dummy_Storage { public function test() { return true; @@ -60,7 +58,7 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { \OC_User::setUserId(self::TEST_USER1); $this->userHome = \OC_User::getHome(self::TEST_USER1); - mkdir($this->userHome); + @mkdir($this->userHome); $this->dataDir = \OC_Config::getValue( 'datadirectory', diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js index d29285dc1de..b99611f9bf0 100644 --- a/apps/files_sharing/js/sharedfilelist.js +++ b/apps/files_sharing/js/sharedfilelist.js @@ -181,6 +181,9 @@ file.name = OC.basename(share.file_target); file.path = OC.dirname(share.file_target); file.permissions = share.permissions; + if (file.path) { + file.extraData = share.file_target; + } } else { if (share.share_type !== OC.Share.SHARE_TYPE_LINK) { @@ -189,6 +192,9 @@ file.name = OC.basename(share.path); file.path = OC.dirname(share.path); file.permissions = OC.PERMISSION_ALL; + if (file.path) { + file.extraData = share.path; + } } return file; }) diff --git a/apps/files_sharing/l10n/bn_BD.php b/apps/files_sharing/l10n/bn_BD.php index 50cc21e43dd..98d6c1a173a 100644 --- a/apps/files_sharing/l10n/bn_BD.php +++ b/apps/files_sharing/l10n/bn_BD.php @@ -1,5 +1,11 @@ <?php $TRANSLATIONS = array( +"Server to server sharing is not enabled on this server" => "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়", +"Invalid or untrusted SSL certificate" => "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট", +"Couldn't add remote share" => "দুরবর্তী ভাগাভাগি যোগ করা গেলনা", +"Shared with you" => "আপনার সাথে ভাগাভাগি করেছেন", +"Shared by link" => "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত", +"Remote share" => "দুরবর্তী ভাগাভাগি", "Cancel" => "বাতিল", "Shared by" => "যাদের মাঝে ভাগাভাগি করা হয়েছে", "Password" => "কূটশব্দ", diff --git a/apps/files_sharing/l10n/hr.php b/apps/files_sharing/l10n/hr.php index fd5f5c1e800..2cb0d0596d0 100644 --- a/apps/files_sharing/l10n/hr.php +++ b/apps/files_sharing/l10n/hr.php @@ -1,8 +1,39 @@ <?php $TRANSLATIONS = array( -"Cancel" => "Odustani", +"Server to server sharing is not enabled on this server" => "Dijeljenje resursa s poslužitelja na poslužitelj s ovog poslužitelja nije omogućeno.", +"Invalid or untrusted SSL certificate" => "Neispravna ili nepouzdana SSL potvrda", +"Couldn't add remote share" => "Udaljeni zajednički resurs nije moguće dodati", +"Shared with you" => "Podijeljeno s vama", +"Shared with others" => "Podijeljeno s ostalima", +"Shared by link" => "POdijeljeno putem veze", +"No files have been shared with you yet." => "S vama dosad još nisu podijeljene nikakve datoteke.", +"You haven't shared any files yet." => "Vi dosad još niste podijelili nikakve datoteke.", +"You haven't shared any files by link yet." => "Vi dosad još niste putem veze podijelili nikakve datoteke.", +"Do you want to add the remote share {name} from {owner}@{remote}?" => "Želite li dodati udaljeni zajednički resurs {name} od {owner}@{remote}?", +"Remote share" => "Udaljeni zajednički resurs (za raspodjelu)", +"Remote share password" => "Lozinka za udaljeni zajednički resurs", +"Cancel" => "Odustanite", +"Add remote share" => "Dodajte udaljeni zajednički resurs", +"No ownCloud installation found at {remote}" => "Nijedna ownCloud instalacija nije nađena na {remote}", +"Invalid ownCloud url" => "Neispravan ownCloud URL", +"Shared by" => "Podijeljeno od strane", +"This share is password-protected" => "Ovaj zajednički resurs je zaštićen lozinkom", +"The password is wrong. Try again." => "Pogrešna lozinka. Pokušajte ponovno.", "Password" => "Lozinka", -"Name" => "Ime", -"Download" => "Preuzimanje" +"Name" => "Naziv", +"Share time" => "Vrijeme dijeljenja", +"Sorry, this link doesn’t seem to work anymore." => "Žao nam je, čini se da ova veza više ne radi.", +"Reasons might be:" => "Mogući razlozi su:", +"the item was removed" => "stavka je uklonjena", +"the link expired" => "veza je istekla", +"sharing is disabled" => "dijeljenje je onemogućeno", +"For more info, please ask the person who sent this link." => "Za više informacija, molimo obratite se osobi koja je ovu vezu poslala.", +"Add to your ownCloud" => "Dodajte svome ownCloud", +"Download" => "Preuzmite", +"Download %s" => "Preuzmite %s", +"Direct link" => "Izravna veza", +"Remote Shares" => "Udaljeni zajednički resursi (za raspodjelu)", +"Allow other instances to mount public links shared from this server" => "Dopustite drugim instancama postavljanje javnih veza koje su podijeljene s ovog poslužitelja.", +"Allow users to mount public link shares" => "Dopustite korisnicima postavljanje podijeljenih javnih veza" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/files_sharing/l10n/ka.php b/apps/files_sharing/l10n/ka.php deleted file mode 100644 index a9b046e03b6..00000000000 --- a/apps/files_sharing/l10n/ka.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Password" => "პაროლი", -"Download" => "გადმოწერა" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 63938201eb2..5c75168d9a9 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -13,8 +13,12 @@ if ($appConfig->getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') { exit(); } +// Legacy sharing links via public.php have the token in $GET['t'] if (isset($_GET['t'])) { $token = $_GET['t']; +} + +if (isset($token)) { $linkItem = OCP\Share::getShareByToken($token, false); if (is_array($linkItem) && isset($linkItem['uid_owner'])) { // seems to be a valid share @@ -107,7 +111,7 @@ if (isset($path)) { \OC::$server->getSession()->close(); } if (isset($_GET['files'])) { // download selected files - $files = urldecode($_GET['files']); + $files = $_GET['files']; $files_list = json_decode($files); // in case we get only a single file if ($files_list === NULL ) { diff --git a/apps/files_trashbin/l10n/hr.php b/apps/files_trashbin/l10n/hr.php index 8e8fd22f8ef..2d29eeba44d 100644 --- a/apps/files_trashbin/l10n/hr.php +++ b/apps/files_trashbin/l10n/hr.php @@ -1,7 +1,14 @@ <?php $TRANSLATIONS = array( -"Error" => "Greška", -"Name" => "Ime", -"Delete" => "Obriši" +"Couldn't delete %s permanently" => "Nije moguće trajno izbrisati %s", +"Couldn't restore %s" => "Nije moguće obnoviti %s", +"Deleted files" => "Izbrisane datoteke", +"Restore" => "Obnovite", +"Error" => "Pogreška", +"restored" => "Obnovljeno", +"Nothing in here. Your trash bin is empty!" => "Ovdje nema ničega. Vaša kantica je prazna!", +"Name" => "Naziv", +"Deleted" => "Izbrisano", +"Delete" => "Izbrišite" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/files_trashbin/l10n/ka.php b/apps/files_trashbin/l10n/ka.php deleted file mode 100644 index 70f10d7c0bf..00000000000 --- a/apps/files_trashbin/l10n/ka.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$TRANSLATIONS = array( -"_%n folder_::_%n folders_" => array(""), -"_%n file_::_%n files_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/files_trashbin/lib/helper.php b/apps/files_trashbin/lib/helper.php index d0ca5fb1530..c2b81e3dbc8 100644 --- a/apps/files_trashbin/lib/helper.php +++ b/apps/files_trashbin/lib/helper.php @@ -35,6 +35,7 @@ class Helper $absoluteDir = $view->getAbsolutePath($dir); if (is_resource($dirContent)) { + $originalLocations = \OCA\Files_Trashbin\Trashbin::getLocations($user); while (($entryName = readdir($dirContent)) !== false) { if (!\OC\Files\Filesystem::isIgnoredDir($entryName)) { $id = $entryName; @@ -47,6 +48,13 @@ class Helper $parts = explode('/', ltrim($dir, '/')); $timestamp = substr(pathinfo($parts[0], PATHINFO_EXTENSION), 1); } + $originalPath = ''; + if (isset($originalLocations[$id][$timestamp])) { + $originalPath = $originalLocations[$id][$timestamp]; + if (substr($originalPath, -1) === '/') { + $originalPath = substr($originalPath, 0, -1); + } + } $i = array( 'name' => $id, 'mtime' => $timestamp, @@ -54,6 +62,9 @@ class Helper 'type' => $view->is_dir($dir . '/' . $entryName) ? 'dir' : 'file', 'directory' => ($dir === '/') ? '' : $dir, ); + if ($originalPath) { + $i['extraData'] = $originalPath.'/'.$id; + } $result[] = new FileInfo($absoluteDir . '/' . $i['name'], $storage, $internalPath . '/' . $i['name'], $i); } } diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php index 69eef09d1e9..5f1226d89d8 100644 --- a/apps/files_trashbin/lib/trashbin.php +++ b/apps/files_trashbin/lib/trashbin.php @@ -41,6 +41,46 @@ class Trashbin { return array($uid, $filename); } + /** + * get original location of files for user + * + * @param string $user + * @return array (filename => array (timestamp => original location)) + */ + public static function getLocations($user) { + $query = \OC_DB::prepare('SELECT `id`, `timestamp`, `location`' + . ' FROM `*PREFIX*files_trash` WHERE `user`=?'); + $result = $query->execute(array($user)); + $array = array(); + while ($row = $result->fetchRow()) { + if (isset($array[$row['id']])) { + $array[$row['id']][$row['timestamp']] = $row['location']; + } else { + $array[$row['id']] = array($row['timestamp'] => $row['location']); + } + } + return $array; + } + + /** + * get original location of file + * + * @param string $user + * @param string $filename + * @param string $timestamp + * @return string original location + */ + public static function getLocation($user, $filename, $timestamp) { + $query = \OC_DB::prepare('SELECT `location` FROM `*PREFIX*files_trash`' + . ' WHERE `user`=? AND `id`=? AND `timestamp`=?'); + $result = $query->execute(array($user, $filename, $timestamp))->fetchAll(); + if (isset($result[0]['location'])) { + return $result[0]['location']; + } else { + return false; + } + } + private static function setUpTrash($user) { $view = new \OC\Files\View('/' . $user); if (!$view->is_dir('files_trashbin')) { @@ -318,13 +358,10 @@ class Trashbin { $location = ''; if ($timestamp) { - $query = \OC_DB::prepare('SELECT `location` FROM `*PREFIX*files_trash`' - . ' WHERE `user`=? AND `id`=? AND `timestamp`=?'); - $result = $query->execute(array($user, $filename, $timestamp))->fetchAll(); - if (count($result) !== 1) { + $location = self::getLocation($user, $filename, $timestamp); + if ($location === false) { \OC_Log::write('files_trashbin', 'trash bin database inconsistent!', \OC_Log::ERROR); } else { - $location = $result[0]['location']; // if location no longer exists, restore file in the root directory if ($location !== '/' && (!$view->is_dir('files' . $location) || @@ -799,7 +836,7 @@ class Trashbin { foreach ($files as $file) { $timestamp = $file['mtime']; $filename = $file['name']; - if ($timestamp < $limit) { + if ($timestamp <= $limit) { $count++; $size += self::delete($filename, $user, $timestamp); \OC_Log::write('files_trashbin', 'remove "' . $filename . '" from trash bin because it is older than ' . $retention_obligation, \OC_log::INFO); diff --git a/apps/files_versions/l10n/hr.php b/apps/files_versions/l10n/hr.php new file mode 100644 index 00000000000..fdd8d89d206 --- /dev/null +++ b/apps/files_versions/l10n/hr.php @@ -0,0 +1,10 @@ +<?php +$TRANSLATIONS = array( +"Could not revert: %s" => "Nije moguće vratiti: %s", +"Versions" => "Verzije", +"Failed to revert {file} to revision {timestamp}." => "Nije uspelo vraćanje {file} na reviziju {timestamp}.", +"More versions..." => "Više verzija...", +"No other versions available" => "Nikakve druge verzije nisu dostupne", +"Restore" => "Obnovite" +); +$PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php index 3fb6c18ca9e..707e54617fc 100644 --- a/apps/user_ldap/l10n/bn_BD.php +++ b/apps/user_ldap/l10n/bn_BD.php @@ -1,6 +1,6 @@ <?php $TRANSLATIONS = array( -"Failed to clear the mappings." => "মানেচিত্রায়ন মুছতে ব্যার্থ হলো।", +"Failed to clear the mappings." => "মানচিত্রায়ন মুছতে ব্যার্থ হলো।", "Failed to delete the server configuration" => "সার্ভার কনফিগারেশন মোছা ব্যার্থ হলো", "The configuration is valid and the connection could be established!" => "কনফিগারেশনটি বৈধ এবং যোগাযোগ প্রতিষ্ঠা করা যায়!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "কনফিগারেশনটি বৈধ তবে Bind ব্যার্থ। দয়া করে সার্ভার নিয়ামকসমূহ এবং ব্যবহারকারী পরীক্ষা করুন।", @@ -17,6 +17,12 @@ $TRANSLATIONS = array( "mappings cleared" => "মানচিত্রায়ন মোছা হলো", "Success" => "সাফল্য", "Error" => "সমস্যা", +"Please specify a Base DN" => "দয়া করে একটি Base DN নির্দিষ্ট করুন", +"Could not determine Base DN" => "Base DN নির্ধারণ করা গেলনা", +"Please specify the port" => "পোর্ট সুনির্দিষ্ট করুন", +"Configuration OK" => "কনফিগারেসন ঠিক আছে", +"Configuration incorrect" => "ভুল কনফিগারেসন", +"Configuration incomplete" => "অসম্পূর্ণ কনফিগারেসন", "Select groups" => "গ্রুপ নির্ধারণ", "Select object classes" => "অবজেক্ট ক্লাস নির্ধারণ", "Select attributes" => "বৈশিষ্ট্য নির্ধারণ", @@ -26,6 +32,8 @@ $TRANSLATIONS = array( "Confirm Deletion" => "মোছার আদেশ নিশ্চিত করুন", "_%s group found_::_%s groups found_" => array("%s গ্রুপ পাওয়া গেছে","%s গ্রুপ পাওয়া গেছে"), "_%s user found_::_%s users found_" => array("%s ব্যাবহারকারী পাওয়া গেছে","%s ব্যাবহারকারী পাওয়া গেছে"), +"Could not find the desired feature" => "চাহিদামাফিক ফিচারটি পাওয়া গেলনা", +"Invalid Host" => "অবৈধ হোস্ট", "Server" => "সার্ভার", "User Filter" => "ব্যবহারকারী তালিকা ছাঁকনী", "Login Filter" => "প্রবেশ ছাঁকনী", @@ -33,6 +41,18 @@ $TRANSLATIONS = array( "Save" => "সংরক্ষণ", "Test Configuration" => "পরীক্ষামূলক কনফিগারেসন", "Help" => "সহায়িকা", +"Groups meeting these criteria are available in %s:" => "প্রদত্ত বৈশিষ্ট্য অনুযায়ী %s এ প্রাপ্তব্য গ্রুপসমূহ:", +"only those object classes:" => "শুধুমাত্র সেইসব অবজেক্ট ক্লাস:", +"only from those groups:" => "শুধুমাত্র বর্ণিত গ্রুপসমূহ হতে:", +"Edit raw filter instead" => "অসম্পূর্ণ ফিল্টার সম্পাদনা করুন", +"Raw LDAP filter" => "অসম্পূর্ণ LDAP ফিল্টার", +"The filter specifies which LDAP groups shall have access to the %s instance." => "ফিল্টারটি %s সার্ভারে কোন কোন LDAP গ্রুপ প্রবেশাধিকার পাবে তা নির্ধারণ করে।", +"groups found" => "গ্রুপ পাওয়া গেছে", +"Users login with this attribute:" => "এই বৈশিষ্ট্য নিয়ে ব্যবহারকারী প্রবেশ করতে পারেন:", +"LDAP Username:" => "LDAP ব্যাবহারকারী নাম:", +"LDAP Email Address:" => "LDAP ই-মেইল ঠিকানা:", +"Other Attributes:" => "অন্যান্য বৈশিষ্ট্য:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "প্রবেশ প্রচেষ্টা নিলে প্রযোজ্য ফিল্টার নির্ধারণ করে। প্রবেশকালে %%uid ব্যাবহারকারীর নামকে প্রতিস্থাপন করে। ঊদাহরণ: \"uid=%%uid\"", "1. Server" => "1. সার্ভার", "%s. Server:" => "%s. সার্ভার:", "Add Server Configuration" => "সার্ভার কনফিগারেসন যোগ কর", @@ -44,18 +64,41 @@ $TRANSLATIONS = array( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", "Password" => "কূটশব্দ", "For anonymous access, leave DN and Password empty." => "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", +"One Base DN per line" => "লাইনপ্রতি একটি Base DN", "You can specify Base DN for users and groups in the Advanced tab" => "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।", +"Limit %s access to users meeting these criteria:" => "%s এ প্রবেশাধিকার এই শর্তধারী ব্যবহারকারীর মাঝে সীমিত রাখ:", +"The filter specifies which LDAP users shall have access to the %s instance." => "এই ফিল্টারটি কোন কোন LDAP ব্যবহারকারী %s সার্ভারে প্রবেশ করবেন তা বাছাই করে।", +"users found" => "ব্যাবহারকারী পাওয়া গেছে", "Back" => "পেছনে যাও", "Continue" => "চালিয়ে যাও", "Expert" => "দক্ষ", "Advanced" => "সুচারু", +"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Warning:</b> Apps user_ldap and user_webdavauth কম্প্যাটিবল নয়। আপনি অবান্ছিত জটিলতার মুখোমুখি হতে পারেন। সিস্টেম প্রশাসককে যেকোন একটি অকার্যকর করে দিতে বলুন।", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warning:</b> PHP LDAP মডিউল ইনস্টল করা নেই, ব্যাকএন্ড কাজ করবেনা। সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন।", +"Connection Settings" => "সংযোগ নিয়ামকসমূহ", +"Configuration Active" => "কনফিগারেসন সক্রিয়", +"When unchecked, this configuration will be skipped." => "চেকমার্ক তুলে দিলে কনফিগারেসন এড়িয়ে যাবে।", +"Backup (Replica) Host" => "ব্যাকআপ (নকল) হোস্ট", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "একটি ঐচ্ছিক ব্যাকআপ হোস্ট দিন। এটি মূল LDAP/AD সার্ভারের নকল হবে।", +"Backup (Replica) Port" => "ব্যাকআপ (নকল) পোর্ট", +"Disable Main Server" => "মূল সার্ভারকে অকার্যকর কর", +"Only connect to the replica server." => "শুধুমাত্র নকল সার্ভারে সংযোগ দাও।", +"Case insensitive LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)", "Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", +"Cache Time-To-Live" => "ক্যাশে টাইম-টু-লিভ", "in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", +"Directory Settings" => "ডিরেক্টরি নিয়ামকসমূহ", "User Display Name Field" => "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র", +"The LDAP attribute to use to generate the user's display name." => "ব্যবহারকারীর প্রদর্শনীয় নাম তৈরি করার জন্য ব্যবহৃত LDAP বৈশিষ্ট্য।", "Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে", "Group Display Name Field" => "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র", "Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে", +"Group Search Attributes" => "গ্রুপ খোঁজার বৈশিষ্ট্য", "Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন", +"Nested Groups" => "একতাবদ্ধ গোষ্ঠিসমূহ", +"Special Attributes" => "বিশেষ বৈশিষ্ট্যসমূহ", +"Quota Field" => "কোটা", +"Quota Default" => "পূর্বনির্ধারিত কোটা", "in bytes" => "বাইটে", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" ); diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php index 73a183cb76e..e07b91af1c2 100644 --- a/apps/user_ldap/l10n/da.php +++ b/apps/user_ldap/l10n/da.php @@ -1,37 +1,78 @@ <?php $TRANSLATIONS = array( +"Failed to clear the mappings." => "Mislykkedes med at rydde afbildningerne.", "Failed to delete the server configuration" => "Kunne ikke slette server konfigurationen", "The configuration is valid and the connection could be established!" => "Konfigurationen er korrekt og forbindelsen kunne etableres!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurationen er gyldig, men Bind'en mislykkedes. Tjek venligst serverindstillingerne og akkreditiverne.", +"The configuration is invalid. Please have a look at the logs for further details." => "Konfigurationen er ugyldig. Se venligst i loggen for yderligere detaljer.", +"No action specified" => "Der er ikke angivet en handling", +"No configuration specified" => "Der er ikke angivet en konfiguration", +"No data specified" => "Der er ikke angivet data", +" Could not set configuration %s" => "Kunne ikke indstille konfigurationen %s", "Deletion failed" => "Fejl ved sletning", "Take over settings from recent server configuration?" => "Overtag indstillinger fra nylig server konfiguration? ", "Keep settings?" => "Behold indstillinger?", +"{nthServer}. Server" => "{nthServer}. server", "Cannot add server configuration" => "Kan ikke tilføje serverkonfiguration", +"mappings cleared" => "afbildninger blev ryddet", "Success" => "Succes", "Error" => "Fejl", +"Please specify a Base DN" => "Angiv venligst en Base DN", +"Could not determine Base DN" => "Kunne ikke fastslå Base DN", +"Please specify the port" => "Angiv venligst porten", +"Configuration OK" => "Konfigurationen er OK", +"Configuration incorrect" => "Konfigurationen er ikke korrekt", +"Configuration incomplete" => "Konfigurationen er ikke komplet", "Select groups" => "Vælg grupper", +"Select object classes" => "Vælg objektklasser", +"Select attributes" => "Vælg attributter", "Connection test succeeded" => "Forbindelsestest lykkedes", "Connection test failed" => "Forbindelsestest mislykkedes", "Do you really want to delete the current Server Configuration?" => "Ønsker du virkelig at slette den nuværende Server Konfiguration?", "Confirm Deletion" => "Bekræft Sletning", -"_%s group found_::_%s groups found_" => array("",""), -"_%s user found_::_%s users found_" => array("",""), +"_%s group found_::_%s groups found_" => array("Der blev fundet %s gruppe","Der blev fundet %s grupper"), +"_%s user found_::_%s users found_" => array("Der blev fundet %s bruger","Der blev fundet %s brugere"), +"Could not find the desired feature" => "Fandt ikke den ønskede funktion", +"Invalid Host" => "Ugyldig vært", +"Server" => "Server", +"User Filter" => "Brugerfilter", +"Login Filter" => "Login-filter", "Group Filter" => "Gruppe Filter", "Save" => "Gem", "Test Configuration" => "Test Konfiguration", "Help" => "Hjælp", +"Groups meeting these criteria are available in %s:" => "Grupper som modsvarer disse kriterier er tilgængelige i %s:", +"only those object classes:" => "kun disse objektklasser:", +"only from those groups:" => "kun fra disse grupper:", +"Edit raw filter instead" => "Redigér det rå filter i stedet", +"Raw LDAP filter" => "Råt LDAP-filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.", +"groups found" => "grupper blev fundet", +"Users login with this attribute:" => "Brugeres login med dette attribut:", +"LDAP Username:" => "LDAP-brugernavn:", +"LDAP Email Address:" => "LDAP-emailadresse:", +"Other Attributes:" => "Andre attributter:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Definerer dét filter der anvendes, når der er forsøg på at logge ind. %%uuid erstattter brugernavnet i login-handlingen. Eksempel: \"uid=%%uuid\"", +"1. Server" => "1. server", +"%s. Server:" => "%s. server:", "Add Server Configuration" => "Tilføj Server Konfiguration", +"Delete Configuration" => "Slet konfiguration", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://", "Port" => "Port", "User DN" => "Bruger DN", "Password" => "Kodeord", "For anonymous access, leave DN and Password empty." => "For anonym adgang, skal du lade DN og Adgangskode tomme.", +"One Base DN per line" => "Ét Base DN per linje", "You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab", +"users found" => "brugere blev fundet", "Back" => "Tilbage", "Continue" => "Videre", +"Expert" => "Ekspert", "Advanced" => "Avanceret", "Connection Settings" => "Forbindelsesindstillinger ", "Configuration Active" => "Konfiguration Aktiv", +"When unchecked, this configuration will be skipped." => "Hvis der ikke er markeret, så springes denne konfiguration over.", "Backup (Replica) Host" => "Backup (Replika) Vært", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgiv en ikke obligatorisk backup server. Denne skal være en replikation af hoved-LDAP/AD serveren.", "Backup (Replica) Port" => "Backup (Replika) Port", @@ -39,13 +80,24 @@ $TRANSLATIONS = array( "Only connect to the replica server." => "Forbind kun til replika serveren.", "Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering", "Cache Time-To-Live" => "Cache Time-To-Live", +"in seconds. A change empties the cache." => "i sekunder. En ændring vil tømme cachen.", "User Display Name Field" => "User Display Name Field", "Base User Tree" => "Base Bruger Træ", +"One User Base DN per line" => "Én bruger-Base DN per linje", +"Optional; one attribute per line" => "Valgfrit; én attribut per linje", "Base Group Tree" => "Base Group Tree", +"One Group Base DN per line" => "Ét gruppe-Base DN per linje", +"Group Search Attributes" => "Attributter for gruppesøgning", "Group-Member association" => "Group-Member association", +"Nested Groups" => "Indlejrede grupper", +"Special Attributes" => "Specielle attributter", "Quota Field" => "Kvote Felt", "in bytes" => "i bytes", "Email Field" => "Email Felt", -"Internal Username" => "Internt Brugernavn" +"Internal Username" => "Internt Brugernavn", +"Internal Username Attribute:" => "Internt attribut for brugernavn:", +"Override UUID detection" => "Tilsidesæt UUID-detektering", +"UUID Attribute for Users:" => "UUID-attribut for brugere:", +"UUID Attribute for Groups:" => "UUID-attribut for grupper:" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/hr.php b/apps/user_ldap/l10n/hr.php index 00c63e4cb10..20232c8a9cb 100644 --- a/apps/user_ldap/l10n/hr.php +++ b/apps/user_ldap/l10n/hr.php @@ -1,5 +1,6 @@ <?php $TRANSLATIONS = array( +"Deletion failed" => "Brisanje nije uspjelo", "Error" => "Greška", "_%s group found_::_%s groups found_" => array("","",""), "_%s user found_::_%s users found_" => array("","",""), @@ -9,6 +10,7 @@ $TRANSLATIONS = array( "Port" => "Port", "Password" => "Lozinka", "Back" => "Natrag", +"Continue" => "Nastavi", "Advanced" => "Napredno" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/ka.php b/apps/user_ldap/l10n/ka.php deleted file mode 100644 index 23b6c93df86..00000000000 --- a/apps/user_ldap/l10n/ka.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$TRANSLATIONS = array( -"_%s group found_::_%s groups found_" => array(""), -"_%s user found_::_%s users found_" => array(""), -"Help" => "შველა", -"Password" => "პაროლი" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php index dceb2206dbe..7f0d32ead68 100644 --- a/apps/user_ldap/lib/wizard.php +++ b/apps/user_ldap/lib/wizard.php @@ -379,7 +379,7 @@ class Wizard extends LDAPUtility { do { $result = $this->access->searchGroups($filter, array('cn'), $limit, $offset); foreach($result as $item) { - $groupNames[] = $item['cn']; + $groupNames[] = $item[0]; $groupEntries[] = $item; } $offset += $limit; diff --git a/autotest-js.sh b/autotest-js.sh index 8b9a106b021..99cc09f9085 100755 --- a/autotest-js.sh +++ b/autotest-js.sh @@ -7,6 +7,9 @@ # @author Vincent Petry # @copyright 2014 Vincent Petry <pvince81@owncloud.com> # + +# set -e + NPM="$(which npm 2>/dev/null)" PREFIX="build" diff --git a/autotest.sh b/autotest.sh index d359aed91e7..d6b975c62d2 100755 --- a/autotest.sh +++ b/autotest.sh @@ -6,6 +6,8 @@ # @copyright 2012, 2013 Thomas Müller thomas.mueller@tmit.eu # +set -e + #$EXECUTOR_NUMBER is set by Jenkins and allows us to run autotest in parallel DATABASENAME=oc_autotest$EXECUTOR_NUMBER DATABASEUSER=oc_autotest$EXECUTOR_NUMBER @@ -164,7 +166,7 @@ function execute_tests { mysql -u $DATABASEUSER -powncloud -e "DROP DATABASE $DATABASENAME" fi if [ "$1" == "pgsql" ] ; then - dropdb -U $DATABASEUSER $DATABASENAME + dropdb -U $DATABASEUSER $DATABASENAME || true fi if [ "$1" == "oci" ] ; then echo "drop the database" diff --git a/core/ajax/share.php b/core/ajax/share.php index c6da79a8a42..9f758b4e44e 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -35,7 +35,8 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo if ($shareType === OCP\Share::SHARE_TYPE_LINK && $shareWith == '') { $shareWith = null; } - + $itemSourceName=(isset($_POST['itemSourceName'])) ? $_POST['itemSourceName']:''; + $token = OCP\Share::shareItem( $_POST['itemType'], $_POST['itemSource'], diff --git a/core/ajax/update.php b/core/ajax/update.php index 1e280a82227..419992c9891 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -8,7 +8,7 @@ if (OC::checkUpgrade(false)) { \OC_User::setIncognitoMode(true); $l = new \OC_L10N('core'); - $eventSource = new OC_EventSource(); + $eventSource = \OC::$server->createEventSource(); $updater = new \OC\Updater(\OC_Log::$object); $updater->listen('\OC\Updater', 'maintenanceStart', function () use ($eventSource, $l) { $eventSource->send('success', (string)$l->t('Turned on maintenance mode')); diff --git a/core/css/apps.css b/core/css/apps.css index 104de91877f..b84bbaa8b42 100644 --- a/core/css/apps.css +++ b/core/css/apps.css @@ -57,7 +57,7 @@ #app-navigation li:hover > a, #app-navigation .selected, #app-navigation .selected a { - background-color: #ccc; + background-color: #ddd; } #app-navigation .with-icon a, @@ -140,7 +140,7 @@ } #app-navigation > ul .collapsible.open:hover { - box-shadow: inset 0 0 3px #ccc; + box-shadow: inset 0 0 3px #ddd; } #app-navigation > ul .collapsible.open ul { @@ -189,7 +189,6 @@ position: absolute; top: 0; right: 0; - bottom: 0; z-index: 105; } @@ -335,7 +334,8 @@ #app-navigation .app-navigation-entry-edit input { border-bottom-right-radius: 0; border-top-right-radius: 0; - width: 204px; + width: 204px; /* fallback for IE8 */ + width: calc(100% - 36px); padding: 5px; margin-right: 0; height: 38px; @@ -371,7 +371,6 @@ #app-content-wrapper { min-width: 100%; min-height: 100%; - overflow-y: auto; } @@ -429,27 +428,6 @@ background-color: transparent; } -/* icons */ -.folder-icon, .delete-icon, .edit-icon, .progress-icon { - background-repeat: no-repeat; - background-position: center; -} -.folder-icon { background-image: url('../img/places/folder.svg'); } -.delete-icon { background-image: url('../img/actions/delete.svg'); } -.delete-icon:hover, .delete-icon:focus { - background-image: url('../img/actions/delete-hover.svg'); -} -.edit-icon { background-image: url('../img/actions/rename.svg'); } -.progress-icon { - background-image: url('../img/loading.gif'); - background-size: 16px; - /* force show the loading icon, not only on hover */ - -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter:alpha(opacity=100); - opacity: 1 !important; - display: inline !important; -} - /* buttons */ button.loading { background-image: url('../img/loading.gif'); diff --git a/core/css/fixes.css b/core/css/fixes.css index 12daf251579..5aba741b64b 100644 --- a/core/css/fixes.css +++ b/core/css/fixes.css @@ -105,3 +105,7 @@ select { overflow-y: auto; } +.ie8 #app-navigation .app-navigation-entry-edit input { + line-height: 38px; +} + diff --git a/core/css/header.css b/core/css/header.css index 36fe57bdc85..f83ef451ce6 100644 --- a/core/css/header.css +++ b/core/css/header.css @@ -18,7 +18,7 @@ top: 0; left: 0; right: 0; - z-index: 100; + z-index: 2000; height: 45px; line-height: 2.5em; background-color: #1d2d44; @@ -135,7 +135,7 @@ display: none; overflow-y: auto; overflow-x: hidden; - z-index: 5000; + z-index: 2000; } #navigation, #navigation * { -moz-box-sizing:border-box; @@ -265,7 +265,7 @@ position: absolute; right: 0; top: 45px; - z-index: 150; + z-index: 2000; display: none; background-color: #383c43; border-bottom-left-radius:7px; border-bottom:1px #333 solid; border-left:1px #333 solid; diff --git a/core/css/styles.css b/core/css/styles.css index 2f8f9612f78..7058a2bf7c2 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -39,31 +39,32 @@ body { #nojavascript { - position: absolute; + position: fixed; top: 0; bottom: 0; - z-index: 999; + height: 100%; width: 100%; + z-index: 9000; text-align: center; - background-color: rgba(50,0,0,0.5); - color: white; - text-shadow: 0px 0px 5px black; + background-color: rgba(0,0,0,0.5); + color: #fff; line-height: 125%; - font-size: x-large; + font-size: 24px; } #nojavascript div { + display: block; + position: relative; width: 50%; - top: 40%; - position: absolute; - left: 50%; - margin-left: -25%; + top: 35%; + margin: 0px auto; } #nojavascript a { - color: #ccc; - text-decoration: underline; + color: #fff; + border-bottom: 2px dotted #fff; } -#nojavascript a:hover { - color: #aaa; +#nojavascript a:hover, +#nojavascript a:focus { + color: #ddd; } @@ -702,7 +703,7 @@ label.infield { #notification, #update-notification { margin: 0 auto; max-width: 60%; - z-index: 101; + z-index: 8000; background-color: #fc4; border: 0; padding: 1px 8px; @@ -812,6 +813,16 @@ span.ui-icon {float: left; margin: 3px 7px 30px 0;} height: 16px; } +/* ---- TOOLTIPS ---- */ +.extra-data { + padding-right: 5px !important; +} +.tipsy-inner { + max-width: 400px !important; + overflow: hidden; + text-overflow: ellipsis; +} + /* ---- TAGS ---- */ #tagsdialog .content { width: 100%; height: 280px; diff --git a/core/img/actions/checkmark.png b/core/img/actions/checkmark.png Binary files differindex 8b4c8ddc706..c1a8be786cd 100644 --- a/core/img/actions/checkmark.png +++ b/core/img/actions/checkmark.png diff --git a/core/img/actions/checkmark.svg b/core/img/actions/checkmark.svg index dbb97d1b469..3fa2a3f1bab 100644 --- a/core/img/actions/checkmark.svg +++ b/core/img/actions/checkmark.svg @@ -1,4 +1,2 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" overflow="visible" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new -0.5 -0.5 16 16" viewBox="-0.5 -0.5 16 16" xmlns:dc="http://purl.org/dc/elements/1.1/"> -<path transform="translate(-.5 -.5)" d="m12.438 3.6875c-0.363 0-0.726 0.1314-1 0.4063l-4.5005 4.5-1.9687-2c-0.5498-0.5484-1.4489-0.5498-2 0l-0.5 0.5c-0.5512 0.5496-0.5512 1.4502 0 2l2.9687 2.9682c0.0063 0.007-0.0065 0.025 0 0.032l0.5 0.5c0.5497 0.55 1.4503 0.55 2 0l0.5-0.5 0.1875-0.219 5.313-5.2812c0.549-0.5498 0.549-1.4503 0-2l-0.5-0.5c-0.275-0.2749-0.638-0.4063-1-0.4063z"/> -</svg> +<svg xml:space="preserve" overflow="visible" height="16px" viewBox="-0.5 -0.5 16 16" xmlns:dc="http://purl.org/dc/elements/1.1/" width="16px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" y="0px" x="0px" enable-background="new -0.5 -0.5 16 16"><g transform="matrix(-1 0 0 -1 17.451 1056.3)"><path d="m11.362 1043.8 4.9497 4.9499-1.4141 1.4141-3.5356-3.5355-6.3448 6.3831-1.4333-1.4333z"/></g></svg> diff --git a/core/img/actions/toggle.png b/core/img/actions/toggle.png Binary files differindex 45f9407a1ab..24a6a4d47de 100644 --- a/core/img/actions/toggle.png +++ b/core/img/actions/toggle.png diff --git a/core/img/actions/toggle.svg b/core/img/actions/toggle.svg index 774daa4fdf6..730464a72ca 100644 --- a/core/img/actions/toggle.svg +++ b/core/img/actions/toggle.svg @@ -1,5 +1,2 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="9px" viewBox="0 0 16 9" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 16 9" overflow="visible" xmlns:dc="http://purl.org/dc/elements/1.1/"> -<path d="m7.999 0c-3.109 0-5.926 1.719-7.999 4.5 2.073 2.781 4.89 4.5 7.999 4.5 3.111 0 5.928-1.719 8.001-4.5-2.073-2.781-4.892-4.5-8.001-4.5zm0.001 7.5c-1.657 0-3-1.343-3-3s1.343-3 3-3c1.657 0 3 1.343 3 3s-1.343 3-3 3z" fill="#222"/> -<circle cy="4.501" cx="8" r="1.5" fill="#222"/> -</svg> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 16 9" xml:space="preserve" overflow="visible" height="16" width="16" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 16 16"><path fill="#222" d="m8 3c-3.109 0-5.927 1.719-8 4.5 2.073 2.781 4.891 4.5 8 4.5 3.111 0 5.927-1.719 8-4.5-2.073-2.781-4.891-4.5-8-4.5zm0 1.5c1.657 0 3 1.343 3 3s-1.343 3-3 3-3-1.343-3-3 1.343-3 3-3zm0 1.5c-0.8284 0-1.5 0.6716-1.5 1.5s0.6716 1.5 1.5 1.5 1.5-0.6716 1.5-1.5-0.6716-1.5-1.5-1.5z"/></svg> diff --git a/core/img/filetypes/folder-drag-accept.png b/core/img/filetypes/folder-drag-accept.png Binary files differindex 086f38afd83..fc1d83cfa6f 100644 --- a/core/img/filetypes/folder-drag-accept.png +++ b/core/img/filetypes/folder-drag-accept.png diff --git a/core/img/filetypes/folder-drag-accept.svg b/core/img/filetypes/folder-drag-accept.svg index 5ee8f0e5ff3..6c723629057 100644 --- a/core/img/filetypes/folder-drag-accept.svg +++ b/core/img/filetypes/folder-drag-accept.svg @@ -1,60 +1,60 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <linearGradient id="e" y2="21.387" gradientUnits="userSpaceOnUse" x2="27.557" gradientTransform="matrix(.89186 0 0 .86793 3.1207 9.575)" y1="7.1627" x1="27.557"> + <linearGradient id="n" x1="27.557" gradientUnits="userSpaceOnUse" y1="7.1627" gradientTransform="matrix(.89186 0 0 .86793 3.1207 7.5747)" x2="27.557" y2="21.387"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".0097359"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="g" y2="36.658" gradientUnits="userSpaceOnUse" x2="22.809" gradientTransform="matrix(.74675 0 0 .55199 -1.922 5.7201)" y1="49.629" x1="22.935"> + <linearGradient id="l" x1="22.935" gradientUnits="userSpaceOnUse" y1="49.629" gradientTransform="matrix(.74675 0 0 .55199 -1.922 3.7198)" x2="22.809" y2="36.658"> <stop stop-color="#0a0a0a" stop-opacity=".498" offset="0"/> <stop stop-color="#0a0a0a" stop-opacity="0" offset="1"/> </linearGradient> - <linearGradient id="f" y2="43.761" gradientUnits="userSpaceOnUse" x2="35.793" gradientTransform="matrix(.64444 0 0 .54135 .53343 5.4887)" y1="17.118" x1="35.793"> + <linearGradient id="m" x1="35.793" gradientUnits="userSpaceOnUse" y1="17.118" gradientTransform="matrix(.64444 0 0 .54135 .53343 3.4884)" x2="35.793" y2="43.761"> <stop stop-color="#b4cee1" offset="0"/> <stop stop-color="#5d9fcd" offset="1"/> </linearGradient> - <linearGradient id="i" y2="609.51" gradientUnits="userSpaceOnUse" x2="302.86" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" y1="366.65" x1="302.86"> + <linearGradient id="j" x1="302.86" gradientUnits="userSpaceOnUse" y1="366.65" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" x2="302.86" y2="609.51"> <stop stop-opacity="0" offset="0"/> <stop offset=".5"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <radialGradient id="b" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> + <radialGradient id="q" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> + <radialGradient id="r" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="c" y2="34.143" gradientUnits="userSpaceOnUse" x2="21.37" gradientTransform="matrix(.54384 0 0 .61466 3.2688 5.0911)" y1="4.7324" x1="21.37"> + <linearGradient id="p" x1="21.37" gradientUnits="userSpaceOnUse" y1="4.7324" gradientTransform="matrix(.54384 0 0 .61466 3.2688 5.0911)" x2="21.37" y2="34.143"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".11063"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="d" y2="20.47" gradientUnits="userSpaceOnUse" x2="62.989" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" y1="17.47" x1="62.989"> + <linearGradient id="o" x1="62.989" gradientUnits="userSpaceOnUse" y1="17.47" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" x2="62.989" y2="20.47"> <stop stop-color="#f9f9f9" offset="0"/> <stop stop-color="#d8d8d8" offset="1"/> </linearGradient> - <linearGradient id="h" y2="3.6337" gradientUnits="userSpaceOnUse" y1="53.514" gradientTransform="matrix(.50703 0 0 0.503 68.029 1.3298)" x2="-51.786" x1="-51.786"> + <linearGradient id="k" x1="-51.786" gradientUnits="userSpaceOnUse" x2="-51.786" gradientTransform="matrix(.50703 0 0 .503 68.029 1.3298)" y1="53.514" y2="3.6337"> <stop stop-opacity=".32174" offset="0"/> <stop stop-opacity=".27826" offset="1"/> </linearGradient> </defs> - <g> - <path opacity=".8" style="color:#000000" d="m4.0001 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389v9.4561l27-1.36v-8.0961c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349z" stroke="url(#h)" fill="none"/> - <path style="color:#000000" d="m4.0001 7v2h-1v6h26v-6h-15v-2z" fill="url(#d)"/> - <path style="color:#000000" d="m4.5001 7.5v2h-1v6h25v-6h-15v-2z" stroke="url(#c)" stroke-linecap="round" fill="none"/> + <g transform="translate(0 -2.0003)"> + <path opacity=".8" style="color:#000000" d="m4.0001 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389v9.4561l27-1.36v-8.0961c0-0.4177-0.348-0.5488-0.781-0.5439h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349z" stroke="url(#k)" fill="none"/> + <path style="color:#000000" d="m4.0001 7v2h-1v6h26v-6h-15v-2z" fill="url(#o)"/> + <path style="color:#000000" stroke-linecap="round" d="m4.5001 7.5v2h-1v6h25v-6h-15v-2z" stroke="url(#p)" fill="none"/> </g> - <g transform="translate(.00009 -1)"> - <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#i)"/> - <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#b)"/> - <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#a)"/> + <g transform="translate(.00009 -3.0003)"> + <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#j)"/> + <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#q)"/> + <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#r)"/> </g> - <path style="color:#000000" d="m0.92644 14.421c-0.69105 0.067-0.32196 0.76007-0.37705 1.1498 0.0802 0.25184 1.5982 13.236 1.5982 13.682 0 0.38752 0.22667 0.32187 0.80101 0.32187h26.397c0.61872 0.012 0.48796 0.006 0.48796-0.32797 0.0452-0.17069 1.6394-14.298 1.6623-14.521 0-0.23495 0.0581-0.30493-0.30493-0.30493h-30.265z" fill="url(#f)"/> - <path opacity=".4" d="m0.68182 14 30.636 0.00023c0.4137 0 0.68181 0.24597 0.68181 0.55177l-1.6732 14.915c0.01 0.38693-0.1364 0.54035-0.61707 0.53224l-27.256-0.01c-0.4137 0-0.83086-0.22836-0.83086-0.53417l-1.6231-14.903c0-0.3058 0.26812-0.55199 0.68182-0.55199z" fill="url(#g)"/> - <path opacity=".5" style="color:#000000" d="m1.4999 15.412 1.6252 13.176h25.749l1.6247-13.176z" stroke="url(#e)" stroke-linecap="round" stroke-width=".90749" fill="none"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m0.92644 14.421c-0.69105 0.067-0.32196 0.76007-0.37705 1.1498 0.0802 0.25184 1.5982 13.236 1.5982 13.682 0 0.38752 0.22667 0.32187 0.80101 0.32187h26.397c0.61872 0.012 0.48796 0.006 0.48796-0.32797 0.0452-0.17069 1.6394-14.298 1.6623-14.521 0-0.23495 0.0581-0.30493-0.30493-0.30493h-30.265z" stroke="#000" stroke-linecap="round" stroke-width=".91766" fill="none"/> + <path style="color:#000000" d="m0.92644 12.421c-0.69105 0.067-0.32196 0.76007-0.37705 1.1498 0.0802 0.25184 1.5982 13.236 1.5982 13.682 0 0.38752 0.22667 0.32187 0.80101 0.32187h26.397c0.61872 0.012 0.48796 0.006 0.48796-0.32797 0.0452-0.17069 1.6394-14.298 1.6623-14.521 0-0.23495 0.0581-0.30493-0.30493-0.30493h-30.265z" fill="url(#m)"/> + <path opacity=".4" d="m0.68182 12 30.636 0.00023c0.4137 0 0.68181 0.24597 0.68181 0.55177l-1.6732 14.915c0.01 0.38693-0.1364 0.54035-0.61707 0.53224l-27.256-0.01c-0.4137 0-0.83086-0.22836-0.83086-0.53417l-1.6237-14.903c0-0.3058 0.26812-0.55199 0.68182-0.55199z" fill="url(#l)"/> + <path opacity=".5" style="color:#000000" d="m1.4999 13.412 1.6252 13.176h25.749l1.6247-13.176z" stroke="url(#n)" stroke-linecap="round" stroke-width=".90749" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m0.92644 12.421c-0.69105 0.067-0.32196 0.76007-0.37705 1.1498 0.0802 0.25184 1.5982 13.236 1.5982 13.682 0 0.38752 0.22667 0.32187 0.80101 0.32187h26.397c0.61872 0.012 0.48796 0.006 0.48796-0.32797 0.0452-0.17069 1.6394-14.298 1.6623-14.521 0-0.23495 0.0581-0.30493-0.30493-0.30493h-30.265z" stroke="#000" stroke-linecap="round" stroke-width=".91766" fill="none"/> </svg> diff --git a/core/img/filetypes/folder-external.png b/core/img/filetypes/folder-external.png Binary files differindex 3c33ebea25e..ede1a0d17f3 100644 --- a/core/img/filetypes/folder-external.png +++ b/core/img/filetypes/folder-external.png diff --git a/core/img/filetypes/folder-external.svg b/core/img/filetypes/folder-external.svg index af9c25b37da..2b96baa90c5 100644 --- a/core/img/filetypes/folder-external.svg +++ b/core/img/filetypes/folder-external.svg @@ -1,59 +1,54 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <linearGradient id="c" x1="27.557" gradientUnits="userSpaceOnUse" y1="7.1627" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 5.4125)" x2="27.557" y2="21.387"> + <linearGradient id="m" y2="21.387" gradientUnits="userSpaceOnUse" x2="27.557" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)" y1="7.1627" x1="27.557"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".0097359"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="d" x1="22.935" gradientUnits="userSpaceOnUse" y1="49.629" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 3.1676)" x2="22.809" y2="36.658"> - <stop stop-color="#0a0a0a" stop-opacity=".498" offset="0"/> - <stop stop-color="#0a0a0a" stop-opacity="0" offset="1"/> - </linearGradient> - <linearGradient id="e" x1="35.793" gradientUnits="userSpaceOnUse" y1="17.118" gradientTransform="matrix(.64444 0 0 .64286 .53352 .89286)" x2="35.793" y2="43.761"> + <linearGradient id="l" y2="43.761" gradientUnits="userSpaceOnUse" x2="35.793" gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)" y1="17.118" x1="35.793"> <stop stop-color="#b4cee1" offset="0"/> <stop stop-color="#5d9fcd" offset="1"/> </linearGradient> - <linearGradient id="f" x1="302.86" gradientUnits="userSpaceOnUse" y1="366.65" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" x2="302.86" y2="609.51"> + <linearGradient id="k" y2="609.51" gradientUnits="userSpaceOnUse" x2="302.86" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" y1="366.65" x1="302.86"> <stop stop-opacity="0" offset="0"/> <stop offset=".5"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <radialGradient id="b" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> + <radialGradient id="n" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> + <radialGradient id="o" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="g" x1="21.37" gradientUnits="userSpaceOnUse" y1="4.7324" gradientTransform="matrix(.54384 0 0 .61466 3.2689 5.0911)" x2="21.37" y2="34.143"> + <linearGradient id="j" y2="34.143" gradientUnits="userSpaceOnUse" x2="21.37" gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)" y1="4.7324" x1="21.37"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".11063"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="h" x1="62.989" gradientUnits="userSpaceOnUse" y1="13" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" x2="62.989" y2="16"> + <linearGradient id="i" y2="16" gradientUnits="userSpaceOnUse" x2="62.989" gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)" y1="13" x1="62.989"> <stop stop-color="#f9f9f9" offset="0"/> <stop stop-color="#d8d8d8" offset="1"/> </linearGradient> - <linearGradient id="i" x1="-51.786" gradientUnits="userSpaceOnUse" x2="-51.786" gradientTransform="matrix(.50703 0 0 .503 68.029 1.3298)" y1="53.514" y2="3.6337"> + <linearGradient id="d" y2="3.6337" gradientUnits="userSpaceOnUse" y1="53.514" gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)" x2="-51.786" x1="-51.786"> <stop stop-opacity=".32174" offset="0"/> <stop stop-opacity=".27826" offset="1"/> </linearGradient> </defs> - <path opacity=".8" style="color:#000000" d="m4.0002 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0961c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#i)" fill="none"/> - <path style="color:#000000" d="m4.0002 7v2h-1v4h26v-4h-15v-2h-10z" fill="url(#h)"/> - <path style="color:#000000" stroke-linecap="round" d="m4.5002 7.5v2h-1v4h25v-4h-15v-2h-9z" stroke="url(#g)" fill="none"/> - <g transform="translate(.00017936 -1)"> - <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#f)"/> - <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#b)"/> - <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#a)"/> + <path opacity=".8" style="color:#000000" d="m4.0002 4.4998c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0964c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#d)" fill="none"/> + <path style="color:#000000" d="m4.0002 4.9997v2h-1v4.0003h26v-4.0003h-15v-2h-10z" fill="url(#i)"/> + <path style="color:#000000" stroke-linecap="round" d="m4.5002 5.4997v2h-1v4.0003h25v-4.0003h-15v-2h-9z" stroke="url(#j)" fill="none"/> + <g transform="translate(.00017936 -3.0003)"> + <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#k)"/> + <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#n)"/> + <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#o)"/> </g> - <path style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#e)"/> - <path opacity=".4" d="m1.682 13 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.0115c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62244-17.698c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#d)"/> - <path opacity=".5" style="color:#000000" d="m2.5002 12.5 0.62498 16h25.749l0.62498-16z" stroke="url(#c)" stroke-linecap="round" fill="none"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> - <path opacity=".7" d="m16 15 2 2-3 3 2 2 3-3 2 2v-6h-6zm-4 1c-0.554 0-1 0.446-1 1v8c0 0.554 0.446 1 1 1h8c0.554 0 1-0.446 1-1v-3l-1-1v4h-8v-8h4l-1-1h-3z"/> + <path style="color:#000000" d="m1.927 9.4997c-0.691 0.0796-0.322 0.9023-0.377 1.3653 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#l)"/> + <path opacity=".5" style="color:#000000" d="m2.5002 10.5 0.62498 16h25.749l0.62498-16z" stroke="url(#m)" stroke-linecap="round" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 9.4997c-0.691 0.0796-0.322 0.9023-0.377 1.3653 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> + <path opacity=".7" d="m16 13 2 2-3 3 2 2 3-3 2 2v-6h-6zm-4 1c-0.554 0-1 0.446-1 1v8c0 0.554 0.446 1 1 1h8c0.554 0 1-0.446 1-1v-3l-1-1v4h-8v-8h4l-1-1h-3z"/> </svg> diff --git a/core/img/filetypes/folder-public.png b/core/img/filetypes/folder-public.png Binary files differindex 7f8f8e3411c..c8e5e0d3d4c 100644 --- a/core/img/filetypes/folder-public.png +++ b/core/img/filetypes/folder-public.png diff --git a/core/img/filetypes/folder-public.svg b/core/img/filetypes/folder-public.svg index 9516a7de59d..6bfae917a8e 100644 --- a/core/img/filetypes/folder-public.svg +++ b/core/img/filetypes/folder-public.svg @@ -1,61 +1,56 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <linearGradient id="p" y2="21.387" gradientUnits="userSpaceOnUse" x2="27.557" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 5.4125)" y1="7.1627" x1="27.557"> + <linearGradient id="c" x1="27.557" gradientUnits="userSpaceOnUse" y1="7.1627" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)" x2="27.557" y2="21.387"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".0097359"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="o" y2="36.658" gradientUnits="userSpaceOnUse" x2="22.809" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 3.1676)" y1="49.629" x1="22.935"> - <stop stop-color="#0a0a0a" stop-opacity=".498" offset="0"/> - <stop stop-color="#0a0a0a" stop-opacity="0" offset="1"/> - </linearGradient> - <linearGradient id="n" y2="43.761" gradientUnits="userSpaceOnUse" x2="35.793" gradientTransform="matrix(.64444 0 0 .64286 .53352 .89286)" y1="17.118" x1="35.793"> + <linearGradient id="d" x1="35.793" gradientUnits="userSpaceOnUse" y1="17.118" gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)" x2="35.793" y2="43.761"> <stop stop-color="#b4cee1" offset="0"/> <stop stop-color="#5d9fcd" offset="1"/> </linearGradient> - <linearGradient id="m" y2="609.51" gradientUnits="userSpaceOnUse" x2="302.86" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" y1="366.65" x1="302.86"> + <linearGradient id="e" x1="302.86" gradientUnits="userSpaceOnUse" y1="366.65" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" x2="302.86" y2="609.51"> <stop stop-opacity="0" offset="0"/> <stop offset=".5"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <radialGradient id="q" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> + <radialGradient id="b" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="r" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> + <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="l" y2="34.143" gradientUnits="userSpaceOnUse" x2="21.37" gradientTransform="matrix(.54384 0 0 .61466 3.2689 5.0911)" y1="4.7324" x1="21.37"> + <linearGradient id="f" x1="21.37" gradientUnits="userSpaceOnUse" y1="4.7324" gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)" x2="21.37" y2="34.143"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".11063"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="k" y2="16" gradientUnits="userSpaceOnUse" x2="62.989" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" y1="13" x1="62.989"> + <linearGradient id="g" x1="62.989" gradientUnits="userSpaceOnUse" y1="13" gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)" x2="62.989" y2="16"> <stop stop-color="#f9f9f9" offset="0"/> <stop stop-color="#d8d8d8" offset="1"/> </linearGradient> - <linearGradient id="j" y2="3.6337" gradientUnits="userSpaceOnUse" y1="53.514" gradientTransform="matrix(.50703 0 0 .503 68.029 1.3298)" x2="-51.786" x1="-51.786"> + <linearGradient id="h" x1="-51.786" gradientUnits="userSpaceOnUse" x2="-51.786" gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)" y1="53.514" y2="3.6337"> <stop stop-opacity=".32174" offset="0"/> <stop stop-opacity=".27826" offset="1"/> </linearGradient> </defs> - <path opacity=".8" style="color:#000000" d="m4.0002 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0961c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#j)" fill="none"/> - <path style="color:#000000" d="m4.0002 7v2h-1v4h26v-4h-15v-2h-10z" fill="url(#k)"/> - <path style="color:#000000" d="m4.5002 7.5v2h-1v4h25v-4h-15v-2h-9z" stroke="url(#l)" stroke-linecap="round" fill="none"/> - <g transform="translate(.00017936 -1)"> - <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#m)"/> - <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#q)"/> - <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#r)"/> + <path opacity=".8" style="color:#000000" d="m4.0002 4.4998c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0964c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#h)" fill="none"/> + <path style="color:#000000" d="m4.0002 4.9997v2h-1v4.0003h26v-4.0003h-15v-2h-10z" fill="url(#g)"/> + <path style="color:#000000" stroke-linecap="round" d="m4.5002 5.4997v2h-1v4.0003h25v-4.0003h-15v-2h-9z" stroke="url(#f)" fill="none"/> + <g transform="translate(.00017936 -3.0003)"> + <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#e)"/> + <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#b)"/> + <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#a)"/> </g> - <path style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#n)"/> - <path opacity=".4" d="m1.682 13 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.0115c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62244-17.698c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#o)"/> - <path opacity=".5" style="color:#000000" d="m2.5002 12.5 0.62498 16h25.749l0.62498-16z" stroke="url(#p)" stroke-linecap="round" fill="none"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> - <g opacity=".7" transform="matrix(.67042 -.67042 .67042 .67042 8.6253 106.14)"> + <path style="color:#000000" d="m1.927 9.4997c-0.691 0.0796-0.322 0.9023-0.377 1.3653 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#d)"/> + <path opacity=".5" style="color:#000000" d="m2.5002 10.5 0.62498 16h25.749l0.62498-16z" stroke="url(#c)" stroke-linecap="round" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 9.4997c-0.691 0.0796-0.322 0.9023-0.377 1.3653 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> + <g opacity=".7" transform="matrix(.67042 -.67042 .67042 .67042 8.6253 104.14)"> <path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m69.5-61.5c-1.9217 0-3.5 1.5783-3.5 3.5 0 0.17425 0.0062 0.33232 0.03125 0.5h2.0625c-0.053-0.156-0.094-0.323-0.094-0.5 0-0.8483 0.6517-1.5 1.5-1.5h5c0.8483 0 1.5 0.6517 1.5 1.5s-0.6517 1.5-1.5 1.5h-1.6875c-0.28733 0.79501-0.78612 1.4793-1.4375 2h3.125c1.9217 0 3.5-1.5783 3.5-3.5s-1.5783-3.5-3.5-3.5h-5z"/> <path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m68.5-54.5c1.9217 0 3.5-1.5783 3.5-3.5 0-0.17425-0.0062-0.33232-0.03125-0.5h-2.0625c0.053 0.156 0.094 0.323 0.094 0.5 0 0.8483-0.6517 1.5-1.5 1.5h-5c-0.8483 0-1.5-0.6517-1.5-1.5s0.6517-1.5 1.5-1.5h1.6875c0.28733-0.79501 0.78612-1.4793 1.4375-2h-3.125c-1.9217 0-3.5 1.5783-3.5 3.5s1.5783 3.5 3.5 3.5h5z"/> </g> diff --git a/core/img/filetypes/folder-shared.png b/core/img/filetypes/folder-shared.png Binary files differindex f4ddb677a1f..f1f2fedccfc 100644 --- a/core/img/filetypes/folder-shared.png +++ b/core/img/filetypes/folder-shared.png diff --git a/core/img/filetypes/folder-shared.svg b/core/img/filetypes/folder-shared.svg index 73cffdfff6c..b73e1fc3db9 100644 --- a/core/img/filetypes/folder-shared.svg +++ b/core/img/filetypes/folder-shared.svg @@ -1,61 +1,61 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <linearGradient id="p" y2="21.387" gradientUnits="userSpaceOnUse" x2="27.557" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 5.4125)" y1="7.1627" x1="27.557"> + <linearGradient id="c" x1="27.557" gradientUnits="userSpaceOnUse" y1="7.1627" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)" x2="27.557" y2="21.387"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".0097359"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="o" y2="36.658" gradientUnits="userSpaceOnUse" x2="22.809" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 1.1676)" y1="49.629" x1="22.935"> + <linearGradient id="d" x1="22.935" gradientUnits="userSpaceOnUse" y1="49.629" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 -.83270)" x2="22.809" y2="36.658"> <stop stop-color="#0a0a0a" stop-opacity=".498" offset="0"/> <stop stop-color="#0a0a0a" stop-opacity="0" offset="1"/> </linearGradient> - <linearGradient id="n" y2="43.761" gradientUnits="userSpaceOnUse" x2="35.793" gradientTransform="matrix(.64444 0 0 .64286 .53352 .89286)" y1="17.118" x1="35.793"> + <linearGradient id="e" x1="35.793" gradientUnits="userSpaceOnUse" y1="17.118" gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)" x2="35.793" y2="43.761"> <stop stop-color="#b4cee1" offset="0"/> <stop stop-color="#5d9fcd" offset="1"/> </linearGradient> - <linearGradient id="m" y2="609.51" gradientUnits="userSpaceOnUse" x2="302.86" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" y1="366.65" x1="302.86"> + <linearGradient id="f" x1="302.86" gradientUnits="userSpaceOnUse" y1="366.65" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" x2="302.86" y2="609.51"> <stop stop-opacity="0" offset="0"/> <stop offset=".5"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <radialGradient id="q" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> + <radialGradient id="b" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="r" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> + <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="l" y2="34.143" gradientUnits="userSpaceOnUse" x2="21.37" gradientTransform="matrix(.54384 0 0 .61466 3.2689 5.0911)" y1="4.7324" x1="21.37"> + <linearGradient id="g" x1="21.37" gradientUnits="userSpaceOnUse" y1="4.7324" gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)" x2="21.37" y2="34.143"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".11063"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="k" y2="16" gradientUnits="userSpaceOnUse" x2="62.989" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" y1="13" x1="62.989"> + <linearGradient id="h" x1="62.989" gradientUnits="userSpaceOnUse" y1="13" gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)" x2="62.989" y2="16"> <stop stop-color="#f9f9f9" offset="0"/> <stop stop-color="#d8d8d8" offset="1"/> </linearGradient> - <linearGradient id="j" y2="3.6337" gradientUnits="userSpaceOnUse" y1="53.514" gradientTransform="matrix(.50703 0 0 .503 68.029 1.3298)" x2="-51.786" x1="-51.786"> + <linearGradient id="i" x1="-51.786" gradientUnits="userSpaceOnUse" x2="-51.786" gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)" y1="53.514" y2="3.6337"> <stop stop-opacity=".32174" offset="0"/> <stop stop-opacity=".27826" offset="1"/> </linearGradient> </defs> - <path opacity=".8" style="color:#000000" d="m4.0002 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0961c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#j)" fill="none"/> - <path style="color:#000000" d="m4.0002 7v2h-1v4h26v-4h-15v-2h-10z" fill="url(#k)"/> - <path style="color:#000000" stroke-linecap="round" d="m4.5002 7.5v2h-1v4h25v-4h-15v-2h-9z" stroke="url(#l)" fill="none"/> - <g transform="translate(.00017936 -1)"> - <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#m)"/> - <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#q)"/> - <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#r)"/> + <path opacity=".8" style="color:#000000" d="m4.0002 4.4998c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0964c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8022z" stroke="url(#i)" fill="none"/> + <path style="color:#000000" d="m4.0002 4.9997v2h-1v4.0003h26v-4.0003h-15v-2h-9.9998z" fill="url(#h)"/> + <path style="color:#000000" stroke-linecap="round" d="m4.5002 5.4997v2h-1v4.0003h25v-4.0003h-15v-2h-8.9998z" stroke="url(#g)" fill="none"/> + <g transform="translate(.00017553 -3.0003)"> + <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#f)"/> + <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#b)"/> + <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#a)"/> </g> - <path style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#n)"/> - <path opacity=".4" d="m1.682 11 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.0115c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62244-17.698c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#o)"/> - <path opacity=".5" style="color:#000000" d="m2.5002 12.5 0.62498 16h25.749l0.62498-16z" stroke="url(#p)" stroke-linecap="round" fill="none"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> - <g opacity=".7" transform="translate(6.9998,-1024.4)"> + <path style="color:#000000" d="m1.927 9.4997c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.266z" fill="url(#e)"/> + <path opacity=".4" d="m1.682 8.9997 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.011c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62216-17.699c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#d)"/> + <path opacity=".5" style="color:#000000" d="m2.5002 10.5 0.62498 16h25.749l0.62498-16z" stroke="url(#c)" stroke-linecap="round" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 9.4997c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.266z" stroke="#000" stroke-linecap="round" fill="none"/> + <g opacity=".7" transform="translate(6.9998 -1026.4)"> <path d="m12.228 1037.4c-1.3565 0-2.4592 1.0977-2.4592 2.4542 0 0.075 0.0084 0.1504 0.0149 0.2236l-4.7346 2.4145c-0.4291-0.3667-0.98611-0.5863-1.5947-0.5863-1.3565 0-2.4542 1.0977-2.4542 2.4543 0 1.3565 1.0977 2.4542 2.4542 2.4542 0.54607 0 1.0528-0.1755 1.4606-0.477l4.8637 2.4741c-0.0024 0.044-0.0099 0.089-0.0099 0.1342 0 1.3565 1.1027 2.4542 2.4592 2.4542s2.4542-1.0977 2.4542-2.4542-1.0977-2.4592-2.4542-2.4592c-0.63653 0-1.218 0.2437-1.6544 0.6409l-4.6953-2.4c0.01892-0.1228 0.03478-0.2494 0.03478-0.3775 0-0.072-0.0089-0.1437-0.0149-0.2137l4.7395-2.4145c0.42802 0.3627 0.98488 0.5813 1.5898 0.5813 1.3565 0 2.4542-1.1027 2.4542-2.4592s-1.0977-2.4542-2.4542-2.4542z"/> </g> </svg> diff --git a/core/img/filetypes/folder.png b/core/img/filetypes/folder.png Binary files differindex bffa01fa071..d6b4d8cab99 100644 --- a/core/img/filetypes/folder.png +++ b/core/img/filetypes/folder.png diff --git a/core/img/filetypes/folder.svg b/core/img/filetypes/folder.svg index 8271ca3793a..c0a5af9ce1e 100644 --- a/core/img/filetypes/folder.svg +++ b/core/img/filetypes/folder.svg @@ -1,58 +1,58 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32px" width="32px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <linearGradient id="p" x1="27.557" gradientUnits="userSpaceOnUse" y1="7.1627" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 5.4125)" x2="27.557" y2="21.387"> + <linearGradient id="c" y2="21.387" gradientUnits="userSpaceOnUse" x2="27.557" gradientTransform="matrix(.89186 0 0 1.0539 3.1208 3.4122)" y1="7.1627" x1="27.557"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".0097359"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="o" x1="22.935" gradientUnits="userSpaceOnUse" y1="49.629" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 1.1676)" x2="22.809" y2="36.658"> + <linearGradient id="d" y2="36.658" gradientUnits="userSpaceOnUse" x2="22.809" gradientTransform="matrix(.74675 0 0 .65549 -1.9219 -.83270)" y1="49.629" x1="22.935"> <stop stop-color="#0a0a0a" stop-opacity=".498" offset="0"/> <stop stop-color="#0a0a0a" stop-opacity="0" offset="1"/> </linearGradient> - <linearGradient id="n" x1="35.793" gradientUnits="userSpaceOnUse" y1="17.118" gradientTransform="matrix(.64444 0 0 .64286 .53352 .89286)" x2="35.793" y2="43.761"> + <linearGradient id="e" y2="43.761" gradientUnits="userSpaceOnUse" x2="35.793" gradientTransform="matrix(.64444 0 0 .64286 .53352 -1.1074)" y1="17.118" x1="35.793"> <stop stop-color="#b4cee1" offset="0"/> <stop stop-color="#5d9fcd" offset="1"/> </linearGradient> - <linearGradient id="m" x1="302.86" gradientUnits="userSpaceOnUse" y1="366.65" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" x2="302.86" y2="609.51"> + <linearGradient id="f" y2="609.51" gradientUnits="userSpaceOnUse" x2="302.86" gradientTransform="matrix(.051143 0 0 .015916 -2.49 22.299)" y1="366.65" x1="302.86"> <stop stop-opacity="0" offset="0"/> <stop offset=".5"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <radialGradient id="q" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> + <radialGradient id="b" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(.019836 0 0 .015916 16.388 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="r" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> + <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="486.65" cx="605.71" gradientTransform="matrix(-.019836 0 0 .015916 15.601 22.299)" r="117.14"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="l" x1="21.37" gradientUnits="userSpaceOnUse" y1="4.7324" gradientTransform="matrix(.54384 0 0 .61466 3.2689 5.0911)" x2="21.37" y2="34.143"> + <linearGradient id="g" y2="34.143" gradientUnits="userSpaceOnUse" x2="21.37" gradientTransform="matrix(.54384 0 0 .61466 3.2689 3.0908)" y1="4.7324" x1="21.37"> <stop stop-color="#fff" offset="0"/> <stop stop-color="#fff" stop-opacity=".23529" offset=".11063"/> <stop stop-color="#fff" stop-opacity=".15686" offset=".99001"/> <stop stop-color="#fff" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="k" x1="62.989" gradientUnits="userSpaceOnUse" y1="13" gradientTransform="matrix(.61905 0 0 .61905 -30.392 1.4286)" x2="62.989" y2="16"> + <linearGradient id="h" y2="16" gradientUnits="userSpaceOnUse" x2="62.989" gradientTransform="matrix(.61905 0 0 .61905 -30.392 -.57170)" y1="13" x1="62.989"> <stop stop-color="#f9f9f9" offset="0"/> <stop stop-color="#d8d8d8" offset="1"/> </linearGradient> - <linearGradient id="j" x1="-51.786" gradientUnits="userSpaceOnUse" x2="-51.786" gradientTransform="matrix(.50703 0 0 .503 68.029 1.3298)" y1="53.514" y2="3.6337"> + <linearGradient id="i" y2="3.6337" gradientUnits="userSpaceOnUse" y1="53.514" gradientTransform="matrix(.50703 0 0 .503 68.029 -.67050)" x2="-51.786" x1="-51.786"> <stop stop-opacity=".32174" offset="0"/> <stop stop-opacity=".27826" offset="1"/> </linearGradient> </defs> - <path opacity=".8" style="color:#000000" d="m4.0002 6.5001c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0961c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8023z" stroke="url(#j)" fill="none"/> - <path style="color:#000000" d="m4.0002 7v2h-1v4h26v-4h-15v-2h-10z" fill="url(#k)"/> - <path style="color:#000000" stroke-linecap="round" d="m4.5002 7.5v2h-1v4h25v-4h-15v-2h-9z" stroke="url(#l)" fill="none"/> - <g transform="translate(.00017936 -1)"> - <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#m)"/> - <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#q)"/> - <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#r)"/> + <path opacity=".8" style="color:#000000" d="m4.0002 4.4998c-0.43342 0.005-0.5 0.21723-0.5 0.6349v1.365c-1.2457 0-1-0.002-1 0.54389 0.0216 6.5331 0 6.9014 0 7.4561 0.90135 0 27-2.349 27-3.36v-4.0964c0-0.41767-0.34799-0.54876-0.78141-0.54389h-14.219v-1.365c0-0.41767-0.26424-0.63977-0.69767-0.6349h-9.8022z" stroke="url(#i)" fill="none"/> + <path style="color:#000000" d="m4.0002 4.9997v2h-1v4.0003h26v-4.0003h-15v-2h-9.9998z" fill="url(#h)"/> + <path style="color:#000000" stroke-linecap="round" d="m4.5002 5.4997v2h-1v4.0003h25v-4.0003h-15v-2h-8.9998z" stroke="url(#g)" fill="none"/> + <g transform="translate(.00017553 -3.0003)"> + <rect opacity=".3" height="3.8653" width="24.695" y="28.135" x="3.6472" fill="url(#f)"/> + <path opacity=".3" d="m28.342 28.135v3.865c1.0215 0.0073 2.4695-0.86596 2.4695-1.9328s-1.1399-1.9323-2.4695-1.9323z" fill="url(#b)"/> + <path opacity=".3" d="m3.6472 28.135v3.865c-1.0215 0.0073-2.4695-0.86596-2.4695-1.9328s1.1399-1.9323 2.4695-1.9323z" fill="url(#a)"/> </g> - <path style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" fill="url(#n)"/> - <path opacity=".4" d="m1.682 11 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.0115c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62244-17.698c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#o)"/> - <path opacity=".5" style="color:#000000" d="m2.5002 12.5 0.62498 16h25.749l0.62498-16z" stroke="url(#p)" stroke-linecap="round" fill="none"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 11.5c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.265z" stroke="#000" stroke-linecap="round" fill="none"/> + <path style="color:#000000" d="m1.927 9.4997c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.266z" fill="url(#e)"/> + <path opacity=".4" d="m1.682 8.9997 28.636 0.00027c0.4137 0 0.68181 0.29209 0.68181 0.65523l-0.6735 17.712c0.01 0.45948-0.1364 0.64166-0.61707 0.63203l-27.256-0.011c-0.4137 0-0.83086-0.27118-0.83086-0.63432l-0.62216-17.699c0-0.36314 0.26812-0.65549 0.68182-0.65549z" fill="url(#d)"/> + <path opacity=".5" style="color:#000000" d="m2.5002 10.5 0.62498 16h25.749l0.62498-16z" stroke="url(#c)" stroke-linecap="round" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m1.927 9.4997c-0.69105 0.0796-0.32196 0.90258-0.37705 1.3654 0.0802 0.29906 0.59771 15.718 0.59771 16.247 0 0.46018 0.22667 0.38222 0.80101 0.38222h26.397c0.61872 0.0143 0.48796 0.007 0.48796-0.38947 0.0452-0.20269 0.63993-16.978 0.66282-17.243 0-0.279 0.0581-0.3621-0.30493-0.3621h-28.266z" stroke="#000" stroke-linecap="round" fill="none"/> </svg> diff --git a/core/img/filetypes/text-calendar.png b/core/img/filetypes/text-calendar.png Binary files differindex d5c666a7695..ac48f1f802b 100644 --- a/core/img/filetypes/text-calendar.png +++ b/core/img/filetypes/text-calendar.png diff --git a/core/img/filetypes/text-calendar.svg b/core/img/filetypes/text-calendar.svg index 7d62bb8fa12..e935abeee9d 100644 --- a/core/img/filetypes/text-calendar.svg +++ b/core/img/filetypes/text-calendar.svg @@ -1,89 +1,87 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs> - <radialGradient id="c" spreadMethod="reflect" gradientUnits="userSpaceOnUse" cy="4.9179" cx="14" gradientTransform="matrix(1.0912 -1.8502e-8 3.75e-8 1.5923 7.2228 -4.4685)" r="2"> + <radialGradient id="x" spreadMethod="reflect" gradientUnits="userSpaceOnUse" cy="4.9179" cx="14" gradientTransform="matrix(1.0912 -1.8502e-8 3.75e-8 1.5923 7.2228 -4.4685)" r="2"> <stop stop-color="#FFF" offset="0"/> <stop stop-color="#8f8f8f" offset="1"/> </radialGradient> - <radialGradient id="b" spreadMethod="reflect" gradientUnits="userSpaceOnUse" cy="4.9179" cx="14" gradientTransform="matrix(1.0912 -1.8502e-8 3.75e-8 1.5923 -5.7772 -4.4685)" r="2"> + <radialGradient id="y" spreadMethod="reflect" gradientUnits="userSpaceOnUse" cy="4.9179" cx="14" gradientTransform="matrix(1.0912 -1.8502e-8 3.75e-8 1.5923 -5.7772 -4.4685)" r="2"> <stop stop-color="#FFF" offset="0"/> <stop stop-color="#8f8f8f" offset="1"/> </radialGradient> - <linearGradient id="l" x1="24" gradientUnits="userSpaceOnUse" y1="5" gradientTransform="matrix(0.6 0 0 .64185 1.6 -16.779)" x2="24" y2="43"> + <linearGradient id="o" y2="43" gradientUnits="userSpaceOnUse" x2="24" gradientTransform="matrix(.6 0 0 .64185 1.6 -16.779)" y1="5" x1="24"> <stop stop-color="#FFF" offset="0"/> <stop stop-color="#FFF" stop-opacity=".23529" offset=".063165"/> <stop stop-color="#FFF" stop-opacity=".15686" offset=".95056"/> <stop stop-color="#FFF" stop-opacity=".39216" offset="1"/> </linearGradient> - <linearGradient id="k" x1="24" gradientUnits="userSpaceOnUse" y1="5" gradientTransform="matrix(.62162 0 0 .62162 1.0811 2.0811)" x2="24" y2="43"> + <linearGradient id="p" y2="43" gradientUnits="userSpaceOnUse" x2="24" gradientTransform="matrix(.62162 0 0 .62162 1.0811 2.0811)" y1="5" x1="24"> <stop stop-color="#FFF" offset="0"/> <stop stop-color="#FFF" stop-opacity=".23529" offset=".063165"/> <stop stop-color="#FFF" stop-opacity=".15686" offset=".95056"/> <stop stop-color="#FFF" stop-opacity=".39216" offset="1"/> </linearGradient> - <radialGradient id="a" gradientUnits="userSpaceOnUse" cy="8.4498" cx="7.4957" gradientTransform="matrix(0 .90633 -1.9732 -3.8244e-8 32.673 -1.9201)" r="20"> + <radialGradient id="z" gradientUnits="userSpaceOnUse" cy="8.4498" cx="7.4957" gradientTransform="matrix(0 .90633 -1.9732 -3.8244e-8 32.673 -1.9201)" r="20"> <stop stop-color="#f89b7e" offset="0"/> <stop stop-color="#e35d4f" offset=".26238"/> <stop stop-color="#c6262e" offset=".66094"/> <stop stop-color="#690b2c" offset="1"/> </radialGradient> - <linearGradient id="j" x1="24" gradientUnits="userSpaceOnUse" y1="44" gradientTransform="matrix(.64103 0 0 .64103 .61538 1.6154)" x2="24" y2="3.899"> + <linearGradient id="q" y2="3.899" gradientUnits="userSpaceOnUse" x2="24" gradientTransform="matrix(.64103 0 0 .64103 .61538 1.6154)" y1="44" x1="24"> <stop stop-color="#791235" offset="0"/> <stop stop-color="#dd3b27" offset="1"/> </linearGradient> - <linearGradient id="i" x1="23.954" gradientUnits="userSpaceOnUse" y1="15.999" gradientTransform="matrix(.65 0 0 0.5 0.4 4)" x2="23.954" y2="18.684"> + <linearGradient id="r" y2="18.684" gradientUnits="userSpaceOnUse" x2="23.954" gradientTransform="matrix(.65 0 0 .5 .4 4)" y1="15.999" x1="23.954"> <stop offset="0"/> <stop stop-opacity="0" offset="1"/> </linearGradient> - <linearGradient id="h" x1="19.36" gradientUnits="userSpaceOnUse" y1="16.138" gradientTransform="matrix(.64103 0 0 .64185 .61538 .95838)" x2="19.36" y2="44.984"> + <linearGradient id="s" y2="44.984" gradientUnits="userSpaceOnUse" x2="19.36" gradientTransform="matrix(.64103 0 0 .64185 .61538 .95838)" y1="16.138" x1="19.36"> <stop stop-color="#f4f4f4" offset="0"/> <stop stop-color="#dbdbdb" offset="1"/> </linearGradient> - <linearGradient id="g" x1="24" gradientUnits="userSpaceOnUse" y1="44" gradientTransform="matrix(.64103 0 0 .64185 .61538 1.5793)" x2="24" y2="3.8905"> + <linearGradient id="t" y2="3.8905" gradientUnits="userSpaceOnUse" x2="24" gradientTransform="matrix(.64103 0 0 .64185 .61538 1.5793)" y1="44" x1="24"> <stop stop-color="#787878" offset="0"/> <stop stop-color="#AAA" offset="1"/> </linearGradient> - <radialGradient id="e" gradientUnits="userSpaceOnUse" cy="43.5" cx="4.993" gradientTransform="matrix(2.0038 0 0 1.4 27.988 -17.4)" r="2.5"> + <radialGradient id="v" gradientUnits="userSpaceOnUse" cy="43.5" cx="4.993" gradientTransform="matrix(2.0038 0 0 1.4 27.988 -17.4)" r="2.5"> <stop stop-color="#181818" offset="0"/> <stop stop-color="#181818" stop-opacity="0" offset="1"/> </radialGradient> - <radialGradient id="d" gradientUnits="userSpaceOnUse" cy="43.5" cx="4.993" gradientTransform="matrix(2.0038 0 0 1.4 -20.012 -104.4)" r="2.5"> + <radialGradient id="w" gradientUnits="userSpaceOnUse" cy="43.5" cx="4.993" gradientTransform="matrix(2.0038 0 0 1.4 -20.012 -104.4)" r="2.5"> <stop stop-color="#181818" offset="0"/> <stop stop-color="#181818" stop-opacity="0" offset="1"/> </radialGradient> - <linearGradient id="m" y2="39.999" gradientUnits="userSpaceOnUse" y1="47.028" x2="25.058" x1="25.058"> + <linearGradient id="n" y2="39.999" gradientUnits="userSpaceOnUse" x2="25.058" y1="47.028" x1="25.058"> <stop stop-color="#181818" stop-opacity="0" offset="0"/> <stop stop-color="#181818" offset=".5"/> <stop stop-color="#181818" stop-opacity="0" offset="1"/> </linearGradient> - <linearGradient id="f" x1="24" gradientUnits="userSpaceOnUse" y1="44" gradientTransform="matrix(.64103 0 0 .64103 .61538 .61538)" x2="24" y2="3.899"> + <linearGradient id="u" y2="3.899" gradientUnits="userSpaceOnUse" x2="24" gradientTransform="matrix(.64103 0 0 .64103 .61538 .61538)" y1="44" x1="24"> <stop stop-color="#791235" offset="0"/> <stop stop-color="#dd3b27" offset="1"/> </linearGradient> </defs> - <path stroke-linejoin="round" style="color:#000000" d="m5.5 3.5c7.0683 0.00685 14.137-0.013705 21.205 0.010288 1.238 0.083322 1.9649 1.3578 1.7949 2.5045l-24.99-0.7199c0.081-0.9961 0.9903-1.8161 1.9897-1.7949z" stroke="url(#f)" stroke-linecap="round" fill="none"/> - <g transform="matrix(0.7 0 0 .33333 -0.8 15.333)"> + <path stroke-linejoin="round" style="color:#000000" d="m5.5 3.5c7.0683 0.00685 14.137-0.013705 21.205 0.010288 1.238 0.083322 1.9649 1.3578 1.7949 2.5045l-24.99-0.7199c0.081-0.9961 0.9903-1.8161 1.9897-1.7949z" stroke="url(#u)" stroke-linecap="round" fill="none"/> + <g transform="matrix(.7 0 0 .33333 -.8 15.333)"> <g opacity=".4" transform="matrix(1.0526 0 0 1.2857 -1.2632 -13.429)"> - <rect y="40" width="5" fill="url(#e)" x="38" height="7"/> - <rect transform="scale(-1)" height="7" width="5" y="-47" x="-10" fill="url(#d)"/> - <rect y="40" width="28" fill="url(#m)" x="10" height="7"/> + <rect y="40" width="5" height="7" x="38" fill="url(#v)"/> + <rect transform="scale(-1)" height="7" width="5" y="-47" x="-10" fill="url(#w)"/> + <rect y="40" width="28" height="7" x="10" fill="url(#n)"/> </g> </g> - <g> - <path stroke-linejoin="round" style="color:#000000" d="m28.5 7.0148s0.0137 13.794-0.01029 20.69c-0.084 1.238-1.358 1.965-2.505 1.795-6.896-0.007-13.794 0.014-20.69-0.01-1.238-0.084-1.9649-1.358-1.7949-2.505 0.0068-6.896 0.0103-20.69 0.0103-20.69z" stroke="url(#g)" stroke-linecap="round" fill="url(#h)"/> - <rect opacity=".3" rx="0" ry="0" height="2" width="26" y="12" x="3" fill="url(#i)"/> - <path stroke-linejoin="round" style="color:#000000" d="m5.5 4.5c7.0683 0.00685 14.137-0.013705 21.205 0.010288 1.238 0.083322 1.9649 1.3578 1.7949 2.5045l0.073 4.4852h-25.073l0.0103-5.2051c0.081-0.9961 0.9903-1.8161 1.9897-1.7949z" stroke="url(#j)" stroke-linecap="round" fill="url(#a)"/> - </g> - <rect opacity=".5" stroke-linejoin="round" rx="1" ry="1" width="23" stroke="url(#k)" stroke-linecap="round" x="4.5" y="5.5" height="23" fill="none"/> - <path opacity=".5" stroke-linejoin="round" d="m26.5 10.5h-21" stroke="url(#l)" stroke-linecap="square" fill="none"/> - <g> - <rect opacity=".4" rx="1.8086" ry="1.5304" height="7.0604" width="3" y="2.9396" x="8" fill="#FFF"/> - <rect rx="1.5869" ry="1.5869" height="2.7652" width="3" y="6.2348" x="8" fill="#cc3429"/> - <rect rx="1.8086" ry="1.3912" height="7" width="3" y="1.0188" x="8" fill="url(#b)"/> - <rect opacity=".4" rx="1.8086" ry="1.5304" height="7.0604" width="3" y="2.9396" x="21" fill="#FFF"/> - <rect rx="1.5869" ry="1.5869" height="2.7652" width="3" y="6.2348" x="21" fill="#cc3429"/> - <rect rx="1.8086" ry="1.3912" height="7" width="3" y="1.0188" x="21" fill="url(#c)"/> + <path stroke-linejoin="round" style="color:#000000" d="m28.5 7.0148s0.0137 13.794-0.01029 20.69c-0.084 1.238-1.358 1.965-2.505 1.795-6.896-0.007-13.794 0.014-20.69-0.01-1.238-0.084-1.9649-1.358-1.7949-2.505 0.0068-6.896 0.0103-20.69 0.0103-20.69z" stroke="url(#t)" stroke-linecap="round" fill="url(#s)"/> + <rect opacity=".3" rx="0" ry="0" height="2" width="26" y="12" x="3" fill="url(#r)"/> + <g stroke-linejoin="round"> + <path style="color:#000000" stroke-linecap="round" d="m5.5 4.5c7.0683 0.00685 14.137-0.013705 21.205 0.010288 1.238 0.083322 1.9649 1.3578 1.7949 2.5045l0.073 4.4852h-25.073l0.0103-5.2051c0.081-0.9961 0.9903-1.8161 1.9897-1.7949z" stroke="url(#q)" fill="url(#z)"/> + <rect opacity=".5" rx="1" ry="1" height="23" width="23" stroke="url(#p)" stroke-linecap="round" y="5.5" x="4.5" fill="none"/> + <path opacity=".5" stroke="url(#o)" stroke-linecap="square" d="m26.5 10.5h-21" fill="none"/> </g> + <rect opacity=".4" rx="1.8086" ry="1.5304" height="7.0604" width="3" y="2.9396" x="8" fill="#FFF"/> + <rect rx="1.5869" ry="1.5869" height="2.7652" width="3" y="6.2348" x="8" fill="#cc3429"/> + <rect rx="1.8086" ry="1.3912" height="7" width="3" y="1.0188" x="8" fill="url(#y)"/> + <rect opacity=".4" rx="1.8086" ry="1.5304" height="7.0604" width="3" y="2.9396" x="21" fill="#FFF"/> + <rect rx="1.5869" ry="1.5869" height="2.7652" width="3" y="6.2348" x="21" fill="#cc3429"/> + <rect rx="1.8086" ry="1.3912" height="7" width="3" y="1.0188" x="21" fill="url(#x)"/> <rect style="color:#000000" height="3.9477" width="19.876" y="14.023" x="6.1231" fill="#c5c5c5"/> - <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m6.5182 14.553 18.987 0.011-0.09 11.941-18.986-0.011zm0.33122 8.8955 18.622 0.01098m-18.89-2.957 18.622 0.01098m-18.532-14.898 18.622 0.011m-3.6545-2.8956-0.0893 11.828m-2.9014-11.783-0.0893 11.828m-2.902-11.917-0.089 11.827m-2.9014-11.783-0.0893 11.828m-2.8347-11.839-0.0893 11.828" stroke="#000" stroke-linecap="round" fill="none"/> + <path opacity=".3" stroke-linejoin="round" style="color:#000000" d="m6.5182 14.553 18.987 0.011-0.09 11.941-18.986-0.011zm0.33122 8.8955 18.622 0.01098m-18.89-2.957 18.622 0.01098m-18.532-2.898 18.622 0.011m-3.654-2.895-0.089 11.769m-2.902-11.724-0.089 11.724m-2.902-11.813-0.089 11.813m-2.901-11.769-0.09 11.769m-2.8345-11.78-0.0893 11.78" stroke="#000" stroke-linecap="round" fill="none"/> </svg> diff --git a/core/js/js.js b/core/js/js.js index 9a60b0aad69..f35a3a1e2be 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -246,6 +246,7 @@ var OC={ url = '/' + url; } + // TODO save somewhere whether the webserver is able to skip the index.php to have shorter links (e.g. for sharing) return OC.webroot + '/index.php' + _build(url, params); }, @@ -259,7 +260,7 @@ var OC={ filePath:function(app,type,file){ var isCore=OC.coreApps.indexOf(app)!==-1, link=OC.webroot; - if((file.substring(file.length-3) === 'php' || file.substring(file.length-3) === 'css') && !isCore){ + if(file.substring(file.length-3) === 'php' && !isCore){ link+='/index.php/apps/' + app; if (file != 'index.php') { link+='/'; @@ -1096,6 +1097,7 @@ function initCore() { $('td .modified').tipsy({gravity:'s', fade:true, live:true}); $('td.lastLogin').tipsy({gravity:'s', fade:true, html:true}); $('input').tipsy({gravity:'w', fade:true}); + $('.extra-data').tipsy({gravity:'w', fade:true, live:true}); // toggle for menus $(document).on('mouseup.closemenus', function(event) { diff --git a/core/js/maintenance-check.js b/core/js/maintenance-check.js new file mode 100644 index 00000000000..8ca00456fef --- /dev/null +++ b/core/js/maintenance-check.js @@ -0,0 +1,20 @@ +// Check every 20 seconds via status.php if maintenance is over +window.setInterval(checkStatus, 20000); + +function checkStatus() { + var request = new XMLHttpRequest(); + var ocroot = location.pathname.substr( + 0, location.pathname.indexOf('index.php') + ); + request.open("GET", ocroot+'status.php', true); + request.send(); + request.onreadystatechange = function() { + if (request.readyState === 4) { + var response = request.responseText; + var responseobj = JSON.parse(response); + if (responseobj.maintenance === 'false') { + window.location.reload(); + } + } + }; +} diff --git a/core/js/setup.js b/core/js/setup.js index aa9dc895479..253a12d9e6f 100644 --- a/core/js/setup.js +++ b/core/js/setup.js @@ -23,18 +23,21 @@ $(document).ready(function() { $('#use_other_db').slideUp(250); $('#use_oracle_db').slideUp(250); $('#sqliteInformation').show(); + $('#dbname').attr('pattern','[0-9a-zA-Z$_-]+'); }); $('#mysql,#pgsql,#mssql').click(function() { $('#use_other_db').slideDown(250); $('#use_oracle_db').slideUp(250); $('#sqliteInformation').hide(); + $('#dbname').attr('pattern','[0-9a-zA-Z$_-]+'); }); $('#oci').click(function() { $('#use_other_db').slideDown(250); $('#use_oracle_db').show(250); $('#sqliteInformation').hide(); + $('#dbname').attr('pattern','[0-9a-zA-Z$_-.]+'); }); $('input[checked]').trigger('click'); diff --git a/core/js/share.js b/core/js/share.js index f1652370d35..67ddd9c4870 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -672,8 +672,11 @@ OC.Share={ } // TODO: use oc webroot ? - var link = parent.location.protocol+'//'+location.host+OC.linkTo('', 'public.php')+'?service='+service+'&t='+token; - + if (service !== 'files') { + var link = parent.location.protocol+'//'+location.host+OC.linkTo('', 'public.php')+'?service='+service+'&t='+token; + } else { + var link = parent.location.protocol+'//'+location.host+OC.generateUrl('/s/')+token; + } } $('#linkText').val(link); $('#linkText').show('blind'); diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js index 3af56c490e6..c61528f6686 100644 --- a/core/js/tests/specs/coreSpec.js +++ b/core/js/tests/specs/coreSpec.js @@ -134,6 +134,26 @@ describe('Core base tests', function() { expect(escapeHTML('This is a good string without HTML.')).toEqual('This is a good string without HTML.'); }); }); + describe('filePath', function() { + beforeEach(function() { + OC.webroot = 'http://localhost'; + OC.appswebroots['files'] = OC.webroot + '/apps3/files'; + }); + afterEach(function() { + delete OC.appswebroots['files']; + }); + + it('Uses a direct link for css and images,' , function() { + expect(OC.filePath('core', 'css', 'style.css')).toEqual('http://localhost/core/css/style.css'); + expect(OC.filePath('files', 'css', 'style.css')).toEqual('http://localhost/apps3/files/css/style.css'); + expect(OC.filePath('core', 'img', 'image.png')).toEqual('http://localhost/core/img/image.png'); + expect(OC.filePath('files', 'img', 'image.png')).toEqual('http://localhost/apps3/files/img/image.png'); + }); + it('Routes PHP files via index.php,' , function() { + expect(OC.filePath('core', 'ajax', 'test.php')).toEqual('http://localhost/index.php/core/ajax/test.php'); + expect(OC.filePath('files', 'ajax', 'test.php')).toEqual('http://localhost/index.php/apps/files/ajax/test.php'); + }); + }); describe('Link functions', function() { var TESTAPP = 'testapp'; var TESTAPP_ROOT = OC.webroot + '/appsx/testapp'; diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index 06c4b98df2a..e712ea58bc2 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -151,7 +151,7 @@ describe('OC.Share tests', function() { expect($('#dropdown #linkCheckbox').prop('checked')).toEqual(true); // this is how the OC.Share class does it... var link = parent.location.protocol + '//' + location.host + - OC.linkTo('', 'public.php')+'?service=files&t=tehtoken'; + OC.generateUrl('/s/') + 'tehtoken'; expect($('#dropdown #linkText').val()).toEqual(link); }); it('does not show populated link share when a link share exists for a different file', function() { @@ -243,7 +243,7 @@ describe('OC.Share tests', function() { expect($('#dropdown #linkCheckbox').prop('checked')).toEqual(true); // this is how the OC.Share class does it... var link = parent.location.protocol + '//' + location.host + - OC.linkTo('', 'public.php')+'?service=files&t=tehtoken'; + OC.generateUrl('/s/') + 'tehtoken'; expect($('#dropdown #linkText').val()).toEqual(link); // nested one @@ -258,7 +258,7 @@ describe('OC.Share tests', function() { expect($('#dropdown #linkCheckbox').prop('checked')).toEqual(true); // this is how the OC.Share class does it... link = parent.location.protocol + '//' + location.host + - OC.linkTo('', 'public.php')+'?service=files&t=anothertoken'; + OC.generateUrl('/s/') + 'anothertoken'; expect($('#dropdown #linkText').val()).toEqual(link); }); describe('expiration date', function() { diff --git a/core/l10n/ast.php b/core/l10n/ast.php index 55a82631dfd..f430928a0e7 100644 --- a/core/l10n/ast.php +++ b/core/l10n/ast.php @@ -5,6 +5,7 @@ $TRANSLATIONS = array( "Turned off maintenance mode" => "Apagáu'l mou de caltenimientu", "Updated database" => "Base de datos anovada", "Checked database schema update" => "Anovamientu del esquema de base de datos revisáu", +"Updated \"%s\" to %s" => "Anováu \"%s\" a %s", "Disabled incompatible apps: %s" => "Aplicaciones incompatibles desactivaes: %s", "No image or file provided" => "Nun s'especificó nenguna imaxe o ficheru", "Unknown filetype" => "Triba de ficheru desconocida", @@ -161,7 +162,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Va usase SQLite como base de datos. Pa instalaciones más grandes, recomiéndase cambiar esto.", "Finish setup" => "Finar la configuración ", "Finishing …" => "Finando ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicación necesita JavaScript pa funcionar correutamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">habilita JavaScript</a> y recarga esta interface.", "%s is available. Get more information on how to update." => "Ta disponible %s. Consigui más información en cómo anovar·", "Log out" => "Zarrar sesión", "Server side authentication failed!" => "Falló l'autenticación nel sirvidor!", @@ -177,12 +177,12 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Gracies pola to paciencia.", "You are accessing the server from an untrusted domain." => "Tas accediendo al sirvidor dende un dominiu non confiáu.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Por favor, contauta col alministrador. Si yes l'alministrador, configura l'axuste \"trusted_domain\" en config/config.php. Hai un exemplu en config/config.sample.php.", +"Add \"%s\" as trusted domain" => "Amestáu \"%s\" como dominiu de confianza", "%s will be updated to version %s." => "%s anovaráse a la versión %s.", "The following apps will be disabled:" => "Deshabilitaránse les siguientes aplicaciones:", "The theme %s has been disabled." => "Deshabilitóse'l tema %s.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Enantes de siguir, asegúrate de que se fizo una copia de seguridá de la base de datos, la carpeta de configuración y la carpeta de datos.", "Start update" => "Aniciar anovamientu", -"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia de OwnCloud ta anguaño anovándose, polo que pue tardar un pocoñín.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor, recarga esta páxina dempués d'un tiempu pa siguir usando ownCloud" +"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia de OwnCloud ta anguaño anovándose, polo que pue tardar un pocoñín." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php index df00535ffef..9227d6359d6 100644 --- a/core/l10n/bg_BG.php +++ b/core/l10n/bg_BG.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite ще бъде използван за база данни. За по-големи инсталации препоръчваме това да бъде променено.", "Finish setup" => "Завършване на настройките", "Finishing …" => "Завършване...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Програмата изисква JavaScript, за да работи правилно. Моля, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включи JavaScript</a> и презареди страницата.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Програмата изисква JavaScript, за да функционира правилно. Моля, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включи JavaScript</a> и презареди страницата.", "%s is available. Get more information on how to update." => "%s е на разположение. Прочети повече как да обновиш. ", "Log out" => "Отписване", "Server side authentication failed!" => "Заверяването в сървъра неуспешно!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Започни обновяването", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "За да избегнеш таймаутове при по-големи инсталации, можеш да изпълниш следните команди в инсталанционната директория:", "This ownCloud instance is currently being updated, which may take a while." => "В момента този ownCloud се обновява, а това може да отнеме време.", -"Please reload this page after a short time to continue using ownCloud." => "Моля, презареди тази страница, след малко, за да продължиш да използваш ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "Тази страница ще опресни автоматично, когато ownCloud е отново на линия" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php index 90560354127..d219411866d 100644 --- a/core/l10n/bn_BD.php +++ b/core/l10n/bn_BD.php @@ -1,5 +1,10 @@ <?php $TRANSLATIONS = array( +"Couldn't send mail to following users: %s " => "নিম্নোক্ত ব্যবহারকারীকে মেইল পাঠানো গেলনা: %s", +"Turned on maintenance mode" => "রক্ষণাবেক্ষণ মোড চালু হয়েছে", +"Turned off maintenance mode" => "রক্ষণাবেক্ষণ মোড বন্ধ হয়েছে", +"Updated database" => "ডাটাবেজ নবায়ন করা হয়েছে", +"No image or file provided" => "কোন ইমেজ বা ফাইল প্রদান করা হয়নি", "Unknown filetype" => "অজানা প্রকৃতির ফাইল", "Invalid image" => "অবৈধ চিত্র", "Sunday" => "রবিবার", diff --git a/core/l10n/ca.php b/core/l10n/ca.php index 281df8303cb..05d202f8e18 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "S'utilitzarà SQLite com a base de dades. Per instal·lacions grans recomanem que la canvieu.", "Finish setup" => "Acaba la configuració", "Finishing …" => "Acabant...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Aquesta aplicació necessita tenir JavaScript activat per funcionar correctament. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Activeu JavaScript</a> i carregueu aquesta interfície de nou.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Aquesta aplicació requereix JavaScrip pel seu correcte funcionament. Si us plau <a href=\"http://enable-javascript.com/\" target=\"_blank\">Activeu JavaScript</a> i actualitzeu la pàgina.", "%s is available. Get more information on how to update." => "%s està disponible. Obtingueu més informació de com actualitzar.", "Log out" => "Surt", "Server side authentication failed!" => "L'autenticació del servidor ha fallat!", @@ -187,7 +187,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Assegureu-vos que heu fet una còpia de seguretat de la base de dades, del fitxer de configuració i de la carpeta de dades abans de continuar.", "Start update" => "Inicia l'actualització", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Per evitar que s'esgoti el temps d'espera en instalacions grans, pots en el seu lloc fer córrer la següent comanda en el directori d'instalació. ", -"This ownCloud instance is currently being updated, which may take a while." => "Aquesta instància d'ownCloud s'està actualitzant i podria trigar una estona.", -"Please reload this page after a short time to continue using ownCloud." => "Carregueu de nou aquesta pàgina d'aquí a poc temps per continuar usant ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Aquesta instància d'ownCloud s'està actualitzant i podria trigar una estona." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index d5c87e3582e..3ec7ca11354 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Bude použita databáze SQLite. Pro větší instalace doporučujeme toto změnit.", "Finish setup" => "Dokončit nastavení", "Finishing …" => "Dokončuji...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Tato aplikace vyžaduje pro svou správnou funkčnost povolený JavaScript. Prosím <a href=\"http://enable-javascript.com/\" target=\"_blank\">povolte JavaScript</a> a znovu načtěte toto rozhraní.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím <a href=\"http://enable-javascript.com/\" target=\"_blank\">povolte JavaScript</a> a znovu načtěte stránku.", "%s is available. Get more information on how to update." => "%s je dostupná. Získejte více informací k postupu aktualizace.", "Log out" => "Odhlásit se", "Server side authentication failed!" => "Autentizace na serveru selhala!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Spustit aktualizaci", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Abyste zabránili vypršení časového limitu u větších instalací, můžete namísto toho spustit následující příkaz v hlavním adresáři:", "This ownCloud instance is currently being updated, which may take a while." => "Tato instalace ownCloud je právě aktualizována, může to chvíli trvat.", -"Please reload this page after a short time to continue using ownCloud." => "Pro pokračování načtěte, prosím, stránku po chvíli znovu." +"This page will refresh itself when the ownCloud instance is available again." => "Tato stránka se načte automaticky poté, co bude opět dostupná instance ownCloud." ); $PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/core/l10n/da.php b/core/l10n/da.php index 24b8776729b..bb25ee16549 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -7,7 +7,7 @@ $TRANSLATIONS = array( "Checked database schema update" => "Tjekket database schema opdatering", "Checked database schema update for apps" => "Tjekkede databaseskemaets opdatering for apps", "Updated \"%s\" to %s" => "Opdaterede \"%s\" til %s", -"Disabled incompatible apps: %s" => "Deaktiverer inkombatible apps: %s", +"Disabled incompatible apps: %s" => "Deaktiverer inkompatible apps: %s", "No image or file provided" => "Ingen fil eller billede givet", "Unknown filetype" => "Ukendt filtype", "Invalid image" => "Ugyldigt billede", @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite bliver brugt som database. For større installationer anbefaler vi at ændre dette.", "Finish setup" => "Afslut opsætning", "Finishing …" => "Færdigbehandler ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Programmet forudsætter at JavaScript er aktiveret for at kunne afvikles korrekt. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Aktiver JavaScript</a> og genindlæs siden..", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Applikationen kræver JavaScript for at fungere korrekt. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Slå venligst JavaScript til</a> og genindlæs siden.", "%s is available. Get more information on how to update." => "%s er tilgængelig. Få mere information om, hvordan du opdaterer.", "Log out" => "Log ud", "Server side authentication failed!" => "Server side godkendelse mislykkedes!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Begynd opdatering", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "For at undgå tidsudløb med større installationer, så kan du i stedet køre følgende kommando fra din installationsmappe:", "This ownCloud instance is currently being updated, which may take a while." => "Opdatere Owncloud, dette kan tage et stykke tid.", -"Please reload this page after a short time to continue using ownCloud." => "Genindlæs denne side efter kort tid til at fortsætte med at bruge ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "Denne side vil genopfriske sig selv, når ownCloud-instancen er tilgængelig igen." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/de.php b/core/l10n/de.php index fd46072d23d..c9876e313c1 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite wird als Datenbank benutzt. Für größere Installationen wird empfohlen, dies zu ändern.", "Finish setup" => "Installation abschließen", "Finishing …" => "Abschließen ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktiviere JavaScript</a> und lade diese Schnittstelle neu.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktiviere JavaScript</a> und lade diese Seite neu.", "%s is available. Get more information on how to update." => "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.", "Log out" => "Abmelden", "Server side authentication failed!" => "Serverseitige Authentifizierung fehlgeschlagen!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Aktualisierung starten", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Zur Vermeidung von Zeitüberschreitungen bei größeren Installationen kannst Du stattdessen den folgenden Befehl in Deinem Installationsverzeichnis ausführen:", "This ownCloud instance is currently being updated, which may take a while." => "Diese OwnCloud-Instanz wird gerade aktualisiert, was eine Weile dauert.", -"Please reload this page after a short time to continue using ownCloud." => "Bitte lade diese Seite nach kurzer Zeit neu, um mit der Nutzung von OwnCloud fortzufahren." +"This page will refresh itself when the ownCloud instance is available again." => "Diese Seite aktualisert sich automatisch, wenn die ownCloud-Instanz wieder verfügbar ist." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 1e81dbf80c8..0b345a4ec45 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite wird als Datenbank benutzt. Für größere Installationen wird empfohlen, dies zu ändern.", "Finish setup" => "Installation abschließen", "Finishing …" => "Abschließen ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktivieren Sie JavaScript</a> und laden Sie diese Schnittstelle neu.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Diese Anwendung benötigt ein aktiviertes JavaScript zum korrekten Betrieb. Bitte <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktivieren Sie JavaScript</a> und laden Sie diese Seite neu.", "%s is available. Get more information on how to update." => "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Log out" => "Abmelden", "Server side authentication failed!" => "Die Legitimierung auf dem Server ist fehlgeschlagen!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Aktualisierung starten", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Zur Vermeidung von Zeitüberschreitungen bei größeren Installationen können Sie stattdessen den folgenden Befehl in Ihrem Installationsverzeichnis ausführen:", "This ownCloud instance is currently being updated, which may take a while." => "Diese ownCloud-Instanz wird gerade aktualisiert, was eine Weile dauert.", -"Please reload this page after a short time to continue using ownCloud." => "Bitte laden Sie diese Seite nach kurzer Zeit neu, um mit der Nutzung von ownCloud fortzufahren." +"This page will refresh itself when the ownCloud instance is available again." => "Diese Seite aktualisert sich automatisch, wenn die ownCloud-Instanz wieder verfügbar ist." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/el.php b/core/l10n/el.php index c961e981ee4..e9ab78a9721 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Η SQLIte θα χρησιμοποιηθεί ως βάση δεδομένων. Για μεγαλύτερες εγκαταστάσεις σας συνιστούμε να το αλλάξετε.", "Finish setup" => "Ολοκλήρωση εγκατάστασης", "Finishing …" => "Ολοκλήρωση...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Αυτή η εφαρμογή απαιτεί η JavaScript να είναι ενεργοποιημένη για σωστή λειτουργία. Παρακαλώ <a href=\"http://enable-javascript.com/\" target=\"_blank\">ενεργοποιήστε τη JavaScript</a> και επαναφορτώστε αυτή τη διεπαφή.", "%s is available. Get more information on how to update." => "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.", "Log out" => "Αποσύνδεση", "Server side authentication failed!" => "Η διαδικασία επικύρωσης απέτυχε από την πλευρά του διακομιστή!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Παρακαλώ βεβαιωθείτε ότι έχουν ληψθεί αντίγραφα ασφαλείας της βάσης δεδομένων, του φακέλου ρυθμίσεων και του φακέλου δεδομένων πριν προχωρήσετε.", "Start update" => "Έναρξη ενημέρωσης", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Για να αποφύγετε τη λήξη χρόνου με μεγαλύτερες εγκαταστάσεις, μπορείτε αντί αυτού να τρέξετε την ακόλουθη εντολή από τον κατάλογο αρχείων εφαρμογών:", -"This ownCloud instance is currently being updated, which may take a while." => "Αυτή η εγκατάσταση ownCloud ενημερώνεται, το οποίο μπορεί να πάρει κάποιο χρόνο.", -"Please reload this page after a short time to continue using ownCloud." => "Παρακαλώ ανανεώστε αυτή τη σελίδα μετά από ένα σύντομο χρονικό διάστημα ώστε να συνεχίσετε να χρησιμοποιείτε το ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Αυτή η εγκατάσταση ownCloud ενημερώνεται, το οποίο μπορεί να πάρει κάποιο χρόνο." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/en_GB.php b/core/l10n/en_GB.php index 422a1cb3f70..8894ccb5927 100644 --- a/core/l10n/en_GB.php +++ b/core/l10n/en_GB.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite will be used as database. For larger installations we recommend changing this.", "Finish setup" => "Finish setup", "Finishing …" => "Finishing …", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page.", "%s is available. Get more information on how to update." => "%s is available. Get more information on how to update.", "Log out" => "Log out", "Server side authentication failed!" => "Server side authentication failed!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Start update", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:", "This ownCloud instance is currently being updated, which may take a while." => "This ownCloud instance is currently being updated, which may take a while.", -"Please reload this page after a short time to continue using ownCloud." => "Please reload this page after a short time to continue using ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "This page will refresh itself when the ownCloud instance is available again." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es.php b/core/l10n/es.php index f199e72f542..ec9595fafae 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Se usará SQLite como base de datos. Para instalaciones más grandes, es recomendable cambiar esto.", "Finish setup" => "Completar la instalación", "Finishing …" => "Finalizando...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicación requiere que se habilite JavaScript para su correcta operación. Por favor <a href=\"http://enable-javascript.com/es\" target=\"_blank\">habilite JavaScript</a> y vuelva a cargar esta interfaz.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "La aplicación requiere JavaScript para poder operar correctamente. Sírvase <a href=\"http://enable-javascript.com/\" target=\"_blank\">activar JavaScript</a> y volver a cargar la página.", "%s is available. Get more information on how to update." => "%s está disponible. Obtener más información de como actualizar.", "Log out" => "Salir", "Server side authentication failed!" => "La autenticación a fallado en el servidor.", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Iniciar actualización", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Para evitar tiempos de espera en grandes instalaciones, en su lugar puede ejecutar el siguiente comando desde el directorio de instalación:", "This ownCloud instance is currently being updated, which may take a while." => "Esta versión de owncloud se está actualizando, esto puede demorar un tiempo.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud" +"This page will refresh itself when the ownCloud instance is available again." => "Esta página se recargará cuando la instalación de ownCloud vuelva a estar disponible." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index 2288831b13f..cbc54822270 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -138,7 +138,6 @@ $TRANSLATIONS = array( "Database host" => "Huésped de la base de datos", "Finish setup" => "Completar la instalación", "Finishing …" => "Finalizando...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicación requiere de JavaScript para su correcto funcionamiento. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">habilite JavaScript</a> y recargue.", "%s is available. Get more information on how to update." => "%s está disponible. Obtené más información sobre cómo actualizar.", "Log out" => "Cerrar la sesión", "Server side authentication failed!" => "¡Falló la autenticación del servidor!", @@ -150,7 +149,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Esto significa que solo administradores pueden usar esta instancia.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Contacte su administrador de sistema si este mensaje persiste o aparece inesperadamente.", "Thank you for your patience." => "Gracias por su paciencia.", -"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia de ownClod está siendo actualizada, puede tardar un momento.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue esta página después de un tiempo para continuar usando ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia de ownClod está siendo actualizada, puede tardar un momento." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/es_MX.php b/core/l10n/es_MX.php index dd690e25250..08b08549fbb 100644 --- a/core/l10n/es_MX.php +++ b/core/l10n/es_MX.php @@ -131,7 +131,6 @@ $TRANSLATIONS = array( "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", "Finishing …" => "Finalizando …", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicación requiere que se habilite JavaScript para su correcta operación. Por favor <a href=\"http://enable-javascript.com/es\" target=\"_blank\">habilite JavaScript</a> y vuelva a cargar esta interfaz.", "%s is available. Get more information on how to update." => "%s esta disponible. Obtener mas información de como actualizar.", "Log out" => "Salir", "Server side authentication failed!" => "La autenticación a fallado en el servidor.", @@ -143,7 +142,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Esto quiere decir que solo un administrador puede usarla.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Contacte con su administrador de sistemas si este mensaje persiste o aparece de forma inesperada.", "Thank you for your patience." => "Gracias por su paciencia.", -"This ownCloud instance is currently being updated, which may take a while." => "Esta versión de ownCloud se está actualizando, esto puede demorar un tiempo.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo." +"This ownCloud instance is currently being updated, which may take a while." => "Esta versión de ownCloud se está actualizando, esto puede demorar un tiempo." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php index 91c0a7fb009..640e5cd0100 100644 --- a/core/l10n/et_EE.php +++ b/core/l10n/et_EE.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Andmebaasina kasutatakse SQLite-t. Suuremate paigalduste puhul me soovitame seda muuta.", "Finish setup" => "Lõpeta seadistamine", "Finishing …" => "Lõpetamine ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "See rakendus vajab toimimiseks JavaScripti. Palun <a href=\"http://enable-javascript.com/\" target=\"_blank\">luba JavaScript</a> ning laadi see leht uuesti.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "See rakendus vajab toimimiseks JavaScripti. Palun <a href=\"http://enable-javascript.com/\" target=\"_blank\">luba JavaScript</a> ning laadi see leht uuesti.", "%s is available. Get more information on how to update." => "%s on saadaval. Vaata lähemalt kuidas uuendada.", "Log out" => "Logi välja", "Server side authentication failed!" => "Serveripoolne autentimine ebaõnnestus!", @@ -187,7 +187,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Enne jätkamist veendu, et andmebaas, seadete ning andmete kataloog on varundatud.", "Start update" => "Käivita uuendus", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Suurtel saitidel aegumise vältimiseks võid sa paigalduskaustas käivitada järgmise käsu:", -"This ownCloud instance is currently being updated, which may take a while." => "Seda ownCloud instantsi hetkel uuendatakse, võib võtta veidi aega.", -"Please reload this page after a short time to continue using ownCloud." => "Palun laadi see leht uuesti veidi aja pärast jätkamaks ownCloud kasutamist." +"This ownCloud instance is currently being updated, which may take a while." => "Seda ownCloud instantsi hetkel uuendatakse, võib võtta veidi aega." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/eu.php b/core/l10n/eu.php index 58affb938ac..ca4a5e086e4 100644 --- a/core/l10n/eu.php +++ b/core/l10n/eu.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite erabiliko da datu-base gisa. Instalazio handiagoetarako gomendatzen dugu aldatzea.", "Finish setup" => "Bukatu konfigurazioa", "Finishing …" => "Bukatzen...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Aplikazio honek ongi funtzionatzeko JavaScript gaitua behar du. Mesedez <a href=\"http://enable-javascript.com/\" target=\"_blank\">gaitu JavaScript</a> eta birkargatu interfaze hau.", "%s is available. Get more information on how to update." => "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.", "Log out" => "Saioa bukatu", "Server side authentication failed!" => "Zerbitzari aldeko autentifikazioak huts egin du!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Ekin aurretik egiazta ezazu datu basearen, ezarpenen karpetaren eta datuen karpetaren babeskopia duzula.", "Start update" => "Hasi eguneraketa", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Instalazio handien itxarote-denbora saihesteko, ondoko komandoa exekuta dezakezu instalazio direktoriotik:", -"This ownCloud instance is currently being updated, which may take a while." => "ownCloud instantzia hau eguneratzen ari da, honek denbora har dezake.", -"Please reload this page after a short time to continue using ownCloud." => "Mesedez birkargatu orri hau denbora gutxi barru ownCloud erabiltzen jarraitzeko." +"This ownCloud instance is currently being updated, which may take a while." => "ownCloud instantzia hau eguneratzen ari da, honek denbora har dezake." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/fi.php b/core/l10n/fi.php deleted file mode 100644 index 956ab312337..00000000000 --- a/core/l10n/fi.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Settings" => "asetukset", -"Username" => "Käyttäjätunnus" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php index c092a37c976..bb715107e2c 100644 --- a/core/l10n/fi_FI.php +++ b/core/l10n/fi_FI.php @@ -162,7 +162,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLitea käytetään tietokantana. Laajoja asennuksia varten tämä asetus kannattaa muuttaa. ", "Finish setup" => "Viimeistele asennus", "Finishing …" => "Valmistellaan…", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Tämä sovellus vaatii toimiakseen JavaScriptin käyttöä. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Ota JavaScript käyttöön</a> ja päivitä tämä käyttöliittymä.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Tämä sovellus vaatii JavaScript-tuen toimiakseen. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Ota JavaScript käyttöön</a> ja päivitä sivu.", "%s is available. Get more information on how to update." => "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.", "Log out" => "Kirjaudu ulos", "Server side authentication failed!" => "Palvelimen puoleinen tunnistautuminen epäonnistui!", @@ -187,6 +187,6 @@ $TRANSLATIONS = array( "Start update" => "Käynnistä päivitys", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Välttääksesi aikakatkaisuja suurikokoisten asennusten kanssa, voit suorittaa vaihtoehtoisesti seuraavan komennon asennushakemistossa:", "This ownCloud instance is currently being updated, which may take a while." => "Tätä ownCloud-asennusta päivitetään parhaillaan, siinä saattaa kestää hetki.", -"Please reload this page after a short time to continue using ownCloud." => "Päivitä tämä sivu hetken kuluttua jatkaaksesi ownCloudin käyttämistä." +"This page will refresh itself when the ownCloud instance is available again." => "Tämä sivu päivittää itsensä, kun kyseinen ownCloud on jälleen käytettävissä." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/fr.php b/core/l10n/fr.php index 72ac632655b..fc67001904c 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -161,7 +161,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite va être utilisée comme base de donnée. Pour des installations plus volumineuse, nous vous conseillons de changer ce réglage.", "Finish setup" => "Terminer l'installation", "Finishing …" => "En cours de finalisation...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Cette application nécessite que JavaScript soit activé pour fonctionner correctement. Veuillez <a href=\"http://enable-javascript.com/\" target=\"_blank\">activer JavaScript</a> puis charger à nouveau cette interface.", "%s is available. Get more information on how to update." => "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.", "Log out" => "Se déconnecter", "Server side authentication failed!" => "L'authentification côté serveur a échoué !", @@ -183,7 +182,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration et du dossier de données a été réalisée avant le commencement de la procédure.", "Start update" => "Démarrer la mise à jour.", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Afin d'éviter les délais d'interruption avec les installations de plus grande ampleur, vous pouvez plutôt exécuter la commande suivante depuis le répertoire d'installation :", -"This ownCloud instance is currently being updated, which may take a while." => "Cette instance d'ownCloud est en cours de mise à jour, cela peut prendre du temps.", -"Please reload this page after a short time to continue using ownCloud." => "Merci de recharger cette page après un moment pour continuer à utiliser ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Cette instance d'ownCloud est en cours de mise à jour, cela peut prendre du temps." ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/gl.php b/core/l10n/gl.php index 020d83a28df..11ccf6bfe00 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -161,7 +161,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Empregarase SQLite como base de datos. Para instalacións máis grandes recomendámoslle que cambie isto.", "Finish setup" => "Rematar a configuración", "Finishing …" => "Rematando ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicación require que o JavaScript estea activado para unha operativa correcta. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Active o JavaScript</a> e volva a cargar a interface.", "%s is available. Get more information on how to update." => "%s está dispoñíbel. Obteña máis información sobre como actualizar.", "Log out" => "Desconectar", "Server side authentication failed!" => "A autenticación fracasou do lado do servidor!", @@ -183,7 +182,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Asegúrese de ter feito unha copia de seguranza da base de datos, do cartafol de configuración e do cartafol de datos, antes de proceder.", "Start update" => "Iniciar a actualización", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Para evitar tempos de espera nas instalacións grandes, no seu lugar pode executar a seguinte orde desde o directorio de instalación:", -"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia do ownCloud está actualizandose neste momento, pode levarlle un chisco.", -"Please reload this page after a short time to continue using ownCloud." => "Volva cargar a páxina de aquí a pouco para para continuar co ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Esta instancia do ownCloud está actualizandose neste momento, pode levarlle un chisco." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/hr.php b/core/l10n/hr.php index ad2d38f2cae..4ace0937cd4 100644 --- a/core/l10n/hr.php +++ b/core/l10n/hr.php @@ -1,12 +1,25 @@ <?php $TRANSLATIONS = array( -"Sunday" => "nedelja", -"Monday" => "ponedeljak", -"Tuesday" => "utorak", -"Wednesday" => "srijeda", -"Thursday" => "četvrtak", -"Friday" => "petak", -"Saturday" => "subota", +"Couldn't send mail to following users: %s " => "Nije moguće slanje pošte sljedećim korisnicima: %s", +"Turned on maintenance mode" => "Način rada za održavanje uključen", +"Turned off maintenance mode" => "Način rada za održavanje isključen", +"Updated database" => " Baza podataka ažurirana", +"Checked database schema update" => "Provjereno ažuriranje sheme baze podataka", +"Checked database schema update for apps" => "Provjereno ažuriranje sheme baze podataka za aplikacije", +"Updated \"%s\" to %s" => "Ažurirano \"%s\" u %s", +"Disabled incompatible apps: %s" => "Onemogućene inkompatibilne applikacije: %s", +"No image or file provided" => "Nijedna slika ili datoteka nije dobavljena", +"Unknown filetype" => "Vrsta datoteke nepoznata", +"Invalid image" => "Slika neispravna", +"No temporary profile picture available, try again" => "Slike privremenih profila nisu dostupne, pokušajte ponovno", +"No crop data provided" => "Nema podataka o obrezivanju", +"Sunday" => "Nedjelja", +"Monday" => "Ponedjeljak", +"Tuesday" => "Utorak", +"Wednesday" => "Srijeda", +"Thursday" => "Četvrtak", +"Friday" => "Petak", +"Saturday" => "Subota", "January" => "Siječanj", "February" => "Veljača", "March" => "Ožujak", @@ -20,58 +33,160 @@ $TRANSLATIONS = array( "November" => "Studeni", "December" => "Prosinac", "Settings" => "Postavke", -"Folder" => "mapa", +"File" => "Datoteka", +"Folder" => "Mapa", +"Image" => "Slika", +"Audio" => "Audio", "Saving..." => "Spremanje...", -"Reset password" => "Poništavanje lozinke", +"Couldn't send reset email. Please contact your administrator." => "Nije mogće poslati resetiranu poštu. MOlimo kontaktirajte svog administratora.", +"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." => "Veza za resetiranje vaše lozinke poslana je na vašu adresu e-pošte. Ako je ne primite unekom razumnom vremenskom roku, provjerite svoje spam/junk mape. <br> Ako nije tamo, kontaktirajtesvoga lokalnog administratora.", +"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" => "Vaše datoteke su šifrirane. Ako niste aktivirali ključ oporavka,svoje podatke nećete moći dohvatitinakon što vaša lozinka bude resetirana.<br />Ako ne znate što učiniti, prije nego linastavite, molimo kontaktirajte svog administratora. <br />Želite li doista nastaviti?", +"I know what I'm doing" => "Znam što radim", +"Reset password" => "Resetirajte lozinku", +"Password can not be changed. Please contact your administrator." => "Lozinku nije moguće promijeniti. Molimo kontaktirajte svog administratora.", "No" => "Ne", "Yes" => "Da", -"Choose" => "Izaberi", -"Ok" => "U redu", -"_{count} file conflict_::_{count} file conflicts_" => array("","",""), +"Choose" => "Odaberite", +"Error loading file picker template: {error}" => "Pogrešno učitavanje predloška za pronalazača datoteke: {error}", +"Ok" => "Ok", +"Error loading message template: {error}" => "Pogrešno učitavanje predloška za poruke: {error}", +"_{count} file conflict_::_{count} file conflicts_" => array("neželjeno podudaranje u {count} datoteci","neželjeno podudaranje u {count} datoteke","neželjeno podudaranje u {count} datoteke"), +"One file conflict" => "Konflikt u jednoj datoteci", +"New Files" => "Nove datoteke", +"Already existing files" => "Postojeće datoteke", +"Which files do you want to keep?" => "Koje datoteke želite zadržati?", +"If you select both versions, the copied file will have a number added to its name." => "Ako odaberete obje verzije, kopirana će datoteka uz svoje ime imati i broj.", "Cancel" => "Odustani", -"Share" => "Podijeli", -"Error" => "Greška", -"Error while sharing" => "Greška prilikom djeljenja", -"Error while unsharing" => "Greška prilikom isključivanja djeljenja", -"Error while changing permissions" => "Greška prilikom promjena prava", -"Password protect" => "Zaštiti lozinkom", -"Set expiration date" => "Postavi datum isteka", +"Continue" => "Nastavi", +"(all selected)" => "(sve odabrano)", +"({count} selected)" => "({count} odabran)", +"Error loading file exists template" => "Pogrešno učitavanje predloška DATOTEKA POSTOJI", +"Very weak password" => "Lozinka vrlo slaba", +"Weak password" => "Lozinka Slaba", +"So-so password" => "Lozinka tako-tako", +"Good password" => "Lozinka dobra", +"Strong password" => "Lozinka snažna", +"Shared" => "Resurs podijeljen", +"Shared with {recipients}" => "Resurs podijeljen s {recipients}", +"Share" => "Podijelite", +"Error" => "Pogreška", +"Error while sharing" => "Pogreška pri dijeljenju", +"Error while unsharing" => "Pogreška pri prestanku dijeljenja", +"Error while changing permissions" => "POgreška pri mijenjanju dozvola", +"Shared with you and the group {group} by {owner}" => "Dijeljeno s vama i grupom {group} vlasnika {owner}", +"Shared with you by {owner}" => "S vama podijelio {owner}", +"Share with user or group …" => "Podijelite s korisnikom ili grupom ...", +"Share link" => "Podijelite vezu", +"The public link will expire no later than {days} days after it is created" => " Javna veza ističe najkasnije {days} dana nakon što je kreirana", +"Password protect" => "Zaštititi lozinkom", +"Choose a password for the public link" => "Odaberite lozinku za javnu vezu", +"Allow Public Upload" => "Omogućite javno učitavanje", +"Email link to person" => "Pošaljite osobi vezu e-poštom", +"Send" => "Pošaljite", +"Set expiration date" => "Odredite datum isteka", "Expiration date" => "Datum isteka", -"Resharing is not allowed" => "Ponovo dijeljenje nije dopušteno", -"Unshare" => "Makni djeljenje", -"can edit" => "može mjenjat", -"access control" => "kontrola pristupa", -"create" => "kreiraj", -"update" => "ažuriraj", -"delete" => "izbriši", -"Password protected" => "Zaštita lozinkom", -"Error unsetting expiration date" => "Greška prilikom brisanja datuma isteka", -"Error setting expiration date" => "Greška prilikom postavljanja datuma isteka", -"Delete" => "Obriši", -"Add" => "Dodaj", -"Use the following link to reset your password: {link}" => "Koristite ovaj link da biste poništili lozinku: {link}", -"You will receive a link to reset your password via Email." => "Primit ćete link kako biste poništili zaporku putem e-maila.", +"group" => "Grupa", +"Resharing is not allowed" => "Ponovno dijeljenje nije dopušteno", +"Shared in {item} with {user}" => "Podijeljeno u {item} s {user}", +"Unshare" => "Prestanite dijeliti", +"notify by email" => "Obavijestite e-poštom", +"can share" => "Dijeljenje moguće", +"can edit" => "Uređivanje moguće", +"access control" => "Kontrola pristupa", +"create" => "Kreirajte", +"update" => "Ažurirajte", +"delete" => "Izbrišite", +"Password protected" => "Lozinka zaštićena", +"Error unsetting expiration date" => "Pogrešno uklanjanje postavke datuma isteka", +"Error setting expiration date" => "Pogrešno učitavanje postavke datuma isteka", +"Sending ..." => "Slanje...", +"Email sent" => "E-pošta poslana", +"Warning" => "Upozorenje", +"The object type is not specified." => "Vrsta objekta nije specificirana.", +"Enter new" => "Unesite novi", +"Delete" => "Izbrišite", +"Add" => "Dodajte", +"Edit tags" => "Uredite oznake", +"Error loading dialog template: {error}" => "Pogrešno učitavanje predloška dijaloga: {error}", +"No tags selected for deletion." => "Nijedna oznaka nije odabrana za brisanje.", +"Updating {productName} to version {version}, this may take a while." => "Uređivanje {productName} u verziiju {version}, to može potrajati neko vrijeme.", +"Please reload the page." => "Molimo, ponovno učitajte stranicu", +"The update was unsuccessful." => "Ažuriranje nije uspjelo", +"The update was successful. Redirecting you to ownCloud now." => "Ažuriranje je uspjelo. Upravo ste preusmjeravani na ownCloud.", +"Couldn't reset password because the token is invalid" => "Resetiranje lozinke nije moguće jer je token neispravan.", +"Couldn't send reset email. Please make sure your username is correct." => "Resetiranu e-poštu nije moguće poslati.Molimo provjerite ispravnost svoga korisničkog imena.", +"Couldn't send reset email because there is no email address for this username. Please contact your administrator." => "Resetiranu e-poštu nije moguće poslati jer za ovo korisničko ime ne postoji adresa.Molimo, kontaktirajte svog administratora.", +"%s password reset" => "%s lozinka resetirana", +"Use the following link to reset your password: {link}" => "Za resetiranje svoje lozinke koristite sljedeću vezu: {link}", +"You will receive a link to reset your password via Email." => "Vezu za resetiranje svoje lozinke primit ćete e-poštom.", "Username" => "Korisničko ime", +"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Vaše datoteke su šifrirane. Ako niste aktivirali ključ oporavka, svoje podatke nećetemoći dohvatiti nakon što vaša lozinka bude resetirana. Ako niste sigurni što učiniti, molimokontaktirajte svog administratora prije nego li nastavite. Želite li doista nastaviti?", +"Yes, I really want to reset my password now" => "Da, ja doista želim sada resetirati svojju lozinku.", +"Reset" => "Resetirajte", "New password" => "Nova lozinka", +"New Password" => "Nova lozinka", +"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X nije podržan i %s na ovoj platformi neće raditi kako treba.", +"For the best results, please consider using a GNU/Linux server instead." => "Za najbolje rezultate, molimo razmotrite mogućnost korištenje poslužitelja GNU/Linux.", "Personal" => "Osobno", "Users" => "Korisnici", "Apps" => "Aplikacije", -"Admin" => "Administrator", +"Admin" => "Admin", "Help" => "Pomoć", +"Error loading tags" => "Pogrešno učitavanje oznaka", +"Tag already exists" => "Oznaka već postoji", +"Error deleting tag(s)" => "Pogrešno brisanje oznake (oznaka)", +"Error tagging" => "Pogrešno označavanje", +"Error untagging" => "Pogrešno uklanjanje oznaka", +"Error favoriting" => "Pogrešno dodavanje u favorite", +"Error unfavoriting" => "Pogrešno uklanjanje iz favorita", "Access forbidden" => "Pristup zabranjen", -"Cloud not found" => "Cloud nije pronađen", -"Create an <strong>admin account</strong>" => "Stvori <strong>administratorski račun</strong>", +"Cloud not found" => "Oblak nije pronađen", +"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Hej, \n\nsamo vam javljamo da je %s podijelio %s s vama.\nPogledajte ga: %s\n\n", +"The share will expire on %s." => "Podijeljeni resurs će isteći na %s.", +"Cheers!" => "Cheers!", +"Security Warning" => "Sigurnosno upozorenje", +"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Vaša PHP verzija je podložna napadu NULL Byte (CVE-2006-7243)", +"Please update your PHP installation to use %s securely." => "Molimo ažurirajte svoju PHP instalaciju da biste mogli sigurno koristiti %s.", +"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Vašem podatkovnom direktoriju i datotekama vjerojatno se može pristupiti s interneta jer .htaccess datoteka ne radi.", +"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Za informaciju kako ispravno konfigurirati vaš poslužitelj, molimo vidite <a href=\"%s\" target=\"_blank\">dokumentaciju</a>.", +"Create an <strong>admin account</strong>" => "Kreirajte <strong>admin račun</strong>", "Password" => "Lozinka", -"Data folder" => "Mapa baze podataka", -"Configure the database" => "Konfiguriraj bazu podataka", +"Storage & database" => "Pohrana & baza podataka", +"Data folder" => "Mapa za podatke", +"Configure the database" => "Konfigurirajte bazu podataka", +"Only %s is available." => "Jedino je %s dostupan.", "Database user" => "Korisnik baze podataka", "Database password" => "Lozinka baze podataka", -"Database name" => "Ime baze podataka", -"Database tablespace" => "Database tablespace", -"Database host" => "Poslužitelj baze podataka", -"Finish setup" => "Završi postavljanje", -"Log out" => "Odjava", -"remember" => "zapamtiti", -"Log in" => "Prijava" +"Database name" => "Naziv baze podataka", +"Database tablespace" => "Tablespace (?) baze podataka", +"Database host" => "Glavno računalo baze podataka", +"SQLite will be used as database. For larger installations we recommend to change this." => "SQLite će se koristiti kao baza podataka. Za veće instalacije preporučujemo da se to promijeni.", +"Finish setup" => "Završite postavljanje", +"Finishing …" => "Završavanje...", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Ova aplikacija zahtjeva JavaScript za ispravan rad. Molimo <a href=\"http://enable-javascript.com/\" target=\"_blank\"> uključite JavaScript</a> i ponovno učitajte stranicu.", +"%s is available. Get more information on how to update." => "%s je dostupan. Saznajte više informacija o tome kako ažurirati.", +"Log out" => "Odjavite se", +"Server side authentication failed!" => "Autentikacija na strani poslužitelja nije uspjela!", +"Please contact your administrator." => "Molimo kontaktirajte svog administratora.", +"Forgot your password? Reset it!" => "Zaboravili ste svoju lozinku? Resetirajte ju!", +"remember" => "Sjetite se", +"Log in" => "Prijavite se", +"Alternative Logins" => "Alternativne prijave", +"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Hej, <br><br> vam upravo javlja da je %s podijelio <strong>%s</strong>s vama.<br><a href=\"%s\">POgledajte!</a><br><br>", +"This ownCloud instance is currently in single user mode." => "Ova ownCloud instanca je trenutno u načinu rada za jednog korisnika.", +"This means only administrators can use the instance." => "To znači da tu instancu mogu koristiti samo administratori.", +"Contact your system administrator if this message persists or appeared unexpectedly." => "Kontaktirajte svog administratora sustava ako se ova poruka ponavlja ili sepojavila neočekivano.", +"Thank you for your patience." => "Hvala vam na strpljenju", +"You are accessing the server from an untrusted domain." => "Poslužitelju pristupate iz nepouzdane domene.", +"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Molimo kontaktirajte svog administratora. Ako ste vi administrator ove instance,konfigurirajte postavku \"trusted_domain\" config/config.php.Primjer konfiguracije ponuđen je u config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "Ovisno o vašoj konfiguraciji, kao administrator vi biste također mogli koristitigumb dolje za pristup toj domeni.", +"Add \"%s\" as trusted domain" => "Dodajte \"%s\" kao pouzdanu domenu.", +"%s will be updated to version %s." => "%s će biti ažuriran u verziju %s", +"The following apps will be disabled:" => "Sljedeće aplikacije bit će onemogućene", +"The theme %s has been disabled." => "Tema %s je onemogućena", +"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Prije nego li nastavite, molimo osigurajte da su baza podataka, mapa konfiguracije i mapaza podatke sigurnosno kopirani.", +"Start update" => "Započnite ažuriranje", +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Da biste izbjegli vremensko prekoračenje s većim instalacijama, možete pokrenutisljedeću naredbu iz svoga instalacijskog direktorija:", +"This ownCloud instance is currently being updated, which may take a while." => "Ova ownCloud instanca se upravo ažurira, što može potrajati neko vrijeme." ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php index 14c8993ad75..4a08c865fe8 100644 --- a/core/l10n/hu_HU.php +++ b/core/l10n/hu_HU.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Adatbázisként az SQLite-ot fogjuk használni. Nagyobb telepítések esetén javasoljuk, hogy változtassa meg ezt a beállítást.", "Finish setup" => "A beállítások befejezése", "Finishing …" => "Befejezés ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Az alkalmazás megfelelő működéséhez szükség van JavaScriptre. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Engedélyezze a JavaScriptet</a> és frissítse az oldalt!", "%s is available. Get more information on how to update." => "%s rendelkezésre áll. További információ a frissítéshez.", "Log out" => "Kilépés", "Server side authentication failed!" => "A szerveroldali hitelesítés sikertelen!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Kérjük gondoskodjon róla, hogy elmentse az adatbázist, a konfigurációs mappa és az adatamappa tartalmát, mielőtt folytatja.", "Start update" => "A frissítés megkezdése", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Nagyobb telepítések esetén úgy kerülhetők el az időtúllépések, ha inkább a következő parancsot adja ki a telepítési alkönyvtárban:", -"This ownCloud instance is currently being updated, which may take a while." => "Az ownCloud frissítés elkezdődött, ez eltarthat egy ideig.", -"Please reload this page after a short time to continue using ownCloud." => "Frissitse az oldalt egy kis idő múlva, ha folytatni kívánja az ownCloud használatát." +"This ownCloud instance is currently being updated, which may take a while." => "Az ownCloud frissítés elkezdődött, ez eltarthat egy ideig." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/id.php b/core/l10n/id.php index 5350cacbff7..ab5f19d1e6d 100644 --- a/core/l10n/id.php +++ b/core/l10n/id.php @@ -141,7 +141,6 @@ $TRANSLATIONS = array( "Database host" => "Host basis data", "Finish setup" => "Selesaikan instalasi", "Finishing …" => "Menyelesaikan ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Aplikasi ini memerlukan JavaScript yang diaktifkan untuk beroperasi dengan benar. Silahkan <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktifkan JavaScript</a> and re-load this interface.", "%s is available. Get more information on how to update." => "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.", "Log out" => "Keluar", "Server side authentication failed!" => "Otentikasi dari sisi server gagal!", @@ -153,7 +152,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Ini berarti hanya administrator yang dapat menggunakan ownCloud.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.", "Thank you for your patience." => "Terima kasih atas kesabaran anda.", -"This ownCloud instance is currently being updated, which may take a while." => "ownCloud ini sedang diperbarui, yang mungkin memakan waktu cukup lama.", -"Please reload this page after a short time to continue using ownCloud." => "Muat ulang halaman ini setelah beberapa saat untuk tetap menggunakan ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "ownCloud ini sedang diperbarui, yang mungkin memakan waktu cukup lama." ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/it.php b/core/l10n/it.php index 586925986ff..c00209148a9 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite sarà utilizzato come database. Per installazioni più grandi consigliamo di cambiarlo.", "Finish setup" => "Termina la configurazione", "Finishing …" => "Completamento...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "L'applicazione richiede che JavaScript sia abilitato per un corretto funzionamento. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Abilita JavaScript</a> e ricarica questa interfaccia.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Questa applicazione richiede JavaScript per un corretto funzionamento. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Abilita JavaScript</a> e ricarica questa pagina.", "%s is available. Get more information on how to update." => "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.", "Log out" => "Esci", "Server side authentication failed!" => "Autenticazione lato server non riuscita!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Avvia l'aggiornamento", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Per evitare timeout con installazioni di grandi dimensioni, puoi eseguire il comando che segue dalla cartella di installazione:", "This ownCloud instance is currently being updated, which may take a while." => "Questa istanza di ownCloud è in fase di aggiornamento, potrebbe richiedere del tempo.", -"Please reload this page after a short time to continue using ownCloud." => "Ricarica questa pagina per poter continuare ad usare ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "Questa pagina si aggiornerà quando l'istanza di ownCloud sarà nuovamente disponibile." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ja.php b/core/l10n/ja.php index 68aa5583702..4c9c1f00cd0 100644 --- a/core/l10n/ja.php +++ b/core/l10n/ja.php @@ -5,6 +5,8 @@ $TRANSLATIONS = array( "Turned off maintenance mode" => "メンテナンスモードがオフになりました", "Updated database" => "データベース更新完了", "Checked database schema update" => "指定データベースのスキーマを更新", +"Checked database schema update for apps" => "アプリの指定データベースのスキーマを更新", +"Updated \"%s\" to %s" => "\"%s\" を %s にアップデートしました。", "Disabled incompatible apps: %s" => "無効化された非互換アプリ:%s", "No image or file provided" => "画像もしくはファイルが提供されていません", "Unknown filetype" => "不明なファイルタイプ", @@ -161,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite をデータベースとして利用します。大規模な運用では、利用しないことをお勧めします。", "Finish setup" => "セットアップを完了します", "Finishing …" => "作業を完了しています ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "このアプリケーションを使用するにはJavaScriptが必要です。\n<a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScriptを有効にし</a>、インターフェースを更新してください。 ", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "このアプリケーションは使用する為、JavaScriptが必要です。\n<a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScriptを有効にし</a>、ページを更新してください。 ", "%s is available. Get more information on how to update." => "%s が利用可能です。アップデート方法について詳細情報を確認してください。", "Log out" => "ログアウト", "Server side authentication failed!" => "サーバーサイドの認証に失敗しました!", @@ -177,12 +179,15 @@ $TRANSLATIONS = array( "Thank you for your patience." => "しばらくお待ちください。", "You are accessing the server from an untrusted domain." => "信頼されていないドメインからサーバーにアクセスしています。", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "管理者に連絡してください。このサーバーの管理者の場合は、\"trusted_domain\" の設定を config/config.php に設定してください。config/config.sample.php にサンプルの設定方法が記載してあります。", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "環境により、下のボタンで信頼するドメインに追加する必要があるかもしれません。", +"Add \"%s\" as trusted domain" => "\"%s\" を信頼するドメイン名に追加", "%s will be updated to version %s." => "%s はバージョン %s にアップデートされました。", "The following apps will be disabled:" => "以下のアプリは無効です:", "The theme %s has been disabled." => "テーマ %s が無効になっています。", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "データベースを確認してください。実行前にconfigフォルダーとdataフォルダーをバックアップします。", "Start update" => "アップデートを開始", +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "大規模なサイトの場合、ブラウザーがタイムアウトする可能性がある為、インストールディレクトリで次のコマンドを実行しても構いません。", "This ownCloud instance is currently being updated, which may take a while." => "このownCloudインスタンスは現在アップデート中のため、しばらく時間がかかります。", -"Please reload this page after a short time to continue using ownCloud." => "ownCloudを続けて利用するには、しばらく待ってからページを再読み込みしてください。" +"This page will refresh itself when the ownCloud instance is available again." => "この画面は、ownCloud サーバーが再起動後、自動的に更新されます。" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/ka.php b/core/l10n/ka.php deleted file mode 100644 index 4805886c32c..00000000000 --- a/core/l10n/ka.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -$TRANSLATIONS = array( -"seconds ago" => "წამის წინ", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "დღეს", -"yesterday" => "გუშინ", -"_%n day ago_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array(""), -"_{count} file conflict_::_{count} file conflicts_" => array(""), -"Password" => "პაროლი", -"Personal" => "პერსონა", -"Users" => "მომხმარებლები", -"Admin" => "ადმინისტრატორი", -"Help" => "შველა" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/ko.php b/core/l10n/ko.php index 9724bd9dd40..5ef15937c39 100644 --- a/core/l10n/ko.php +++ b/core/l10n/ko.php @@ -144,7 +144,6 @@ $TRANSLATIONS = array( "Database host" => "데이터베이스 호스트", "Finish setup" => "설치 완료", "Finishing …" => "완료 중 ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "이 애플리케이션을 올바르게 사용하려면 자바스크립트를 활성화해야 합니다. <a href=\"http://enable-javascript.com/\" target=\"_blank\">자바스크립트를 활성화</a>한 다음 인터페이스를 새로 고치십시오.", "%s is available. Get more information on how to update." => "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.", "Log out" => "로그아웃", "Server side authentication failed!" => "서버 인증 실패!", @@ -158,7 +157,6 @@ $TRANSLATIONS = array( "Contact your system administrator if this message persists or appeared unexpectedly." => "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오", "Thank you for your patience." => "기다려 주셔서 감사합니다.", "Start update" => "업데이트 시작", -"This ownCloud instance is currently being updated, which may take a while." => "ownCloud 인스턴스가 현재 업데이트 중입니다. 잠시만 기다려 주십시오.", -"Please reload this page after a short time to continue using ownCloud." => "잠시 후 페이지를 다시 불러온 다음 ownCloud를 사용해 주십시오." +"This ownCloud instance is currently being updated, which may take a while." => "ownCloud 인스턴스가 현재 업데이트 중입니다. 잠시만 기다려 주십시오." ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index ebcfa0acfec..8479412251f 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -131,7 +131,6 @@ $TRANSLATIONS = array( "Database host" => "Duomenų bazės serveris", "Finish setup" => "Baigti diegimą", "Finishing …" => "Baigiama ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Šiai programai reikia įjungti JavaScript, kad ji veiktų tvarkingai. Prašome <a href=\"http://enable-javascript.com/\" target=\"_blank\">įjungti JavaScript</a> ir perkrauti šią sąsają.", "%s is available. Get more information on how to update." => "%s yra prieinama. Gaukite daugiau informacijos apie atnaujinimą.", "Log out" => "Atsijungti", "Server side authentication failed!" => "Autentikacija serveryje nepavyko!", @@ -143,7 +142,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Tai reiškia, kad tik administratorius gali naudotis sistema.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Susisiekite su savo sistemos administratoriumi jei šis pranešimas nedingsta arba jei jis pasirodė netikėtai.", "Thank you for your patience." => "Dėkojame už jūsų kantrumą.", -"This ownCloud instance is currently being updated, which may take a while." => "Šiuo metu vyksta ownCloud atnaujinamas, tai gali šiek tiek užtrukti.", -"Please reload this page after a short time to continue using ownCloud." => "Po trupučio laiko atnaujinkite šį puslapį kad galėtumėte toliau naudoti ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Šiuo metu vyksta ownCloud atnaujinamas, tai gali šiek tiek užtrukti." ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/core/l10n/mk.php b/core/l10n/mk.php index ebe2bb6df14..2bb23498939 100644 --- a/core/l10n/mk.php +++ b/core/l10n/mk.php @@ -127,7 +127,6 @@ $TRANSLATIONS = array( "Alternative Logins" => "Алтернативни најавувања", "Contact your system administrator if this message persists or appeared unexpectedly." => "Контактирајте го вашиот систем администратор до колку оваа порака продолжи да се појавува или пак се појавува ненадејно.", "Thank you for your patience." => "Благодариме на вашето трпение.", -"This ownCloud instance is currently being updated, which may take a while." => "Оваа инстанца на ownCloud во моментов се надградува, што може малку да потрае.", -"Please reload this page after a short time to continue using ownCloud." => "Повторно вчитајте ја оваа страница по кратко време за да продолжите да го користите ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Оваа инстанца на ownCloud во моментов се надградува, што може малку да потрае." ); $PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php index 715114ace7f..9e158586c18 100644 --- a/core/l10n/nb_NO.php +++ b/core/l10n/nb_NO.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite vil bli brukt som database. For større installasjoner anbefaler vi å endre dette.", "Finish setup" => "Fullfør oppsetting", "Finishing …" => "Ferdigstiller ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Denne applikasjonen trenger JavaScript for å fungere korrekt. Vennligst <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktiver JavaScript</a> og last dette grensesnittet på nytt.", "%s is available. Get more information on how to update." => "%s er tilgjengelig. Få mer informasjon om hvordan du kan oppdatere.", "Log out" => "Logg ut", "Server side authentication failed!" => "Autentisering feilet på serveren!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Forsikre deg om at databasen, config-mappen og datamappen er blitt sikkerhetskopiert før du fortsetter.", "Start update" => "Start oppdatering", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "For å unngå tidsavbrudd ved store installasjoner, kan du i stedet kjøre følgende kommando fra installasjonsmappen:", -"This ownCloud instance is currently being updated, which may take a while." => "Denne ownCloud-instansen oppdateres for øyeblikket, noe som kan ta litt tid.", -"Please reload this page after a short time to continue using ownCloud." => "Vennligst last denne siden på nytt om en liten stund for å fortsette å bruke ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Denne ownCloud-instansen oppdateres for øyeblikket, noe som kan ta litt tid." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 5099fd49a27..27ab446f8c7 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite wordt gebruikt als database. Voor grotere installaties adviseren we dit te veranderen.", "Finish setup" => "Installatie afronden", "Finishing …" => "Afronden ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Deze applicatie heeft JavaScript nodig om correct te functioneren. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Activeer JavaScript</a> en herlaad deze interface.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Deze applicatie heeft JavaScript nodig. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Activeer JavaScript</a> en herlaad deze interface.", "%s is available. Get more information on how to update." => "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.", "Log out" => "Afmelden", "Server side authentication failed!" => "Authenticatie bij de server mislukte!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Begin de update", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Om time-outs tijdens grotere installaties te voorkomen, kunt u in plaats hiervan de volgende opdracht geven vanaf uw installatiedirectory:", "This ownCloud instance is currently being updated, which may take a while." => "Deze ownCloud dienst wordt nu bijgewerkt, dat kan even duren.", -"Please reload this page after a short time to continue using ownCloud." => "Laad deze pagina straks opnieuw om verder te gaan met ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "Deze pagina ververst zichzelf als deze ownCloud weer beschikbaar is." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/pl.php b/core/l10n/pl.php index fd2fd2e4ed0..b2192b6fb9c 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Jako baza danych zostanie użyty SQLite. Dla większych instalacji doradzamy zmianę na inną.", "Finish setup" => "Zakończ konfigurowanie", "Finishing …" => "Kończę ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Ta aplikacja wymaga włączenia JavaScript do poprawnego działania. Proszę <a href=\"http://enable-javascript.com/\" target=\"_blank\">włączyć JavaScript</a> i przeładować stronę.", "%s is available. Get more information on how to update." => "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" => "Wyloguj", "Server side authentication failed!" => "Uwierzytelnianie po stronie serwera nie powiodło się!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Proszę się upewnić, że baza danych, folder konfiguracji oraz folder danych zostały zarchiwizowane przed przejściem dalej.", "Start update" => "Rozpocznij aktualizację", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Aby uniknąć timeout-ów przy większych instalacjach, możesz zamiast tego uruchomić następującą komendę w katalogu Twojej instalacji:", -"This ownCloud instance is currently being updated, which may take a while." => "Ta instalacja ownCloud jest w tej chwili aktualizowana, co może chwilę potrwać", -"Please reload this page after a short time to continue using ownCloud." => "Proszę przeładować tę stronę za chwilę, aby kontynuować pracę w ownCloud" +"This ownCloud instance is currently being updated, which may take a while." => "Ta instalacja ownCloud jest w tej chwili aktualizowana, co może chwilę potrwać" ); $PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index ced8472fbc7..2bcd2e785cd 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "O SQLite será usado como banco de dados. Para grandes instalações nós recomendamos mudar isto.", "Finish setup" => "Concluir configuração", "Finishing …" => "Finalizando ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicação requer JavaScript habilidado para correta operação.\nPor favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">habilite o JavaScript</a> e recarregue esta intercace.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Esta aplicação requer JavaScript para sua correta operação. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">habilite JavaScript</a> e recerregue a página.", "%s is available. Get more information on how to update." => "%s está disponível. Obtenha mais informações sobre como atualizar.", "Log out" => "Sair", "Server side authentication failed!" => "Autenticação do servidor falhou!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Iniciar atualização", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Para evitar tempos de espera com instalações maiores, você pode em vez disso executar o seguinte comando a partir do diretório de instalação:", "This ownCloud instance is currently being updated, which may take a while." => "Esta instância do ownCloud está sendo atualizada, o que pode demorar um pouco.", -"Please reload this page after a short time to continue using ownCloud." => "Por favor, atualize esta página depois de um curto período de tempo para continuar usando ownCloud." +"This page will refresh itself when the ownCloud instance is available again." => "Esta página será atualizada automaticamente quando ownCloud estiver novamente disponível." ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index a3b522e843d..9b674a5f72c 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Será usado SQLite como base de dados. Para instalações maiores é recomendável a sua alteração.", "Finish setup" => "Acabar instalação", "Finishing …" => "A terminar...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Esta aplicação requer JavaScript ativado para uma operação correta. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">ative o JavaScript</a> e recarregue esta interface.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Esta aplicação requer JavaScript para functionar correctamente. Por favor <a href=\"http://enable-javascript.com/\" target=\"_blank\">active o JavaScript</a> e recarregue a página.", "%s is available. Get more information on how to update." => "%s está disponível. Tenha mais informações como actualizar.", "Log out" => "Sair", "Server side authentication failed!" => "Autenticação do lado do servidor falhou!", @@ -187,7 +187,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Por favor garanta a cópia de segurança da base de dados e das pastas 'config' e 'data' antes de prosseguir.", "Start update" => "Iniciar atualização", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Para evitar tempos de espera com instalações maiores, você pode em vez disso, executar o seguinte comando a partir do diretório de instalação:", -"This ownCloud instance is currently being updated, which may take a while." => "Esta instância do ownCloud está a ser actualizada, poderá demorar algum tempo.", -"Please reload this page after a short time to continue using ownCloud." => "Por favo recarregue esta página após algum tempo para continuar a usar ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Esta instância do ownCloud está a ser actualizada, poderá demorar algum tempo." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/ru.php b/core/l10n/ru.php index 2ca6e07c3c5..b72e84c4b00 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite будет использован в качестве базы данных. Мы рекомендуем изменить это для крупных установок.", "Finish setup" => "Завершить установку", "Finishing …" => "Завершаем...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включите JavaScript</a> и перезагрузите интерфейс.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Этому приложению нужен включенный Джаваскрипт. Пожалуйста, <a href=\"http://www.enable-javascript.com/ru/\" target=\"_blank\">включите Джаваскрипт</a> и перезагрузите страницу.", "%s is available. Get more information on how to update." => "%s доступно. Получить дополнительную информацию о порядке обновления.", "Log out" => "Выйти", "Server side authentication failed!" => "Неудачная аутентификация с сервером!", @@ -179,12 +179,14 @@ $TRANSLATIONS = array( "Thank you for your patience." => "Спасибо за терпение.", "You are accessing the server from an untrusted domain." => "Вы пытаетесь получить доступ к серверу с неподтверждённого домена.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Пожалуйста, свяжитесь с администратором. Если вы администратор этого хранилища, сконфигурируйте \"trusted_domain\" в config/config.php. Пример настройки можно найти в /config/config.sample.php.", +"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "В зависимости от конфигурации, вы, будучи администратором, можете также внести домен в доверенные при помощи кнопки снизу.", +"Add \"%s\" as trusted domain" => "Добавить \"%s\" как доверенный домен", "%s will be updated to version %s." => "%s будет обновлено до версии %s.", "The following apps will be disabled:" => "Следующие приложения будут отключены:", "The theme %s has been disabled." => "Тема %s была отключена.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Пожалуйста, перед тем, как продолжить, убедитесь в том, что вы сделали резервную копию базы данных, директории конфигурации и директории с данными.", "Start update" => "Запустить обновление", -"This ownCloud instance is currently being updated, which may take a while." => "Производится обновление ownCloud, это может занять некоторое время.", -"Please reload this page after a short time to continue using ownCloud." => "Перезагрузите эту страницу через некоторое время чтобы продолжить использовать ownCloud." +"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Чтобы избежать задержек при больших объёмах, вы можете выполнить следующую команду в директории установки:", +"This ownCloud instance is currently being updated, which may take a while." => "Производится обновление ownCloud, это может занять некоторое время." ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index 37d2f4d0a4d..800b908e3fd 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -161,7 +161,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Ako databáza bude použitá SQLite. Pri väčších inštaláciách odporúčame zmeniť na inú.", "Finish setup" => "Dokončiť inštaláciu", "Finishing …" => "Dokončujem...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Táto aplikácia vyžaduje JavaScript a tento musí byť povolený pre správnu funkciu aplikácie. Prosím <a href=\"http://enable-javascript.com/\" target=\"_blank\">povoľte JavaScript</a> a znovunačítajte toto rozhranie.", "%s is available. Get more information on how to update." => "%s je dostupná. Získajte viac informácií o postupe aktualizácie.", "Log out" => "Odhlásiť", "Server side authentication failed!" => "Autentifikácia na serveri zlyhala!", @@ -182,7 +181,6 @@ $TRANSLATIONS = array( "The theme %s has been disabled." => "Téma %s bola zakázaná.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Pred vykonaním ďalšieho kroku sa presvedčte, že databáza, konfiguračný a dátový priečinok sú zazálohované.", "Start update" => "Spustiť aktualizáciu", -"This ownCloud instance is currently being updated, which may take a while." => "Táto inštancia ownCloud sa práve aktualizuje, čo môže nejaký čas trvať.", -"Please reload this page after a short time to continue using ownCloud." => "Prosím obnovte túto stránku a po krátkej dobe môžete pokračovať v používaní." +"This ownCloud instance is currently being updated, which may take a while." => "Táto inštancia ownCloud sa práve aktualizuje, čo môže nejaký čas trvať." ); $PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/core/l10n/sl.php b/core/l10n/sl.php index e0fcc0165ed..c298386605c 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -163,7 +163,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Za podatkovno zbirko bo uporabljen SQLite. Za večje zbirke je priporočljivo to zamenjati.", "Finish setup" => "Končaj nastavitev", "Finishing …" => "Poteka zaključevanje opravila ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Program zahteva omogočeno skriptno podporo. Za pravilno delovanje je treba omogočiti <a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScript</a> in nato ponovno osvežiti vmesnik.", "%s is available. Get more information on how to update." => "%s je na voljo. Pridobite več podrobnosti za posodobitev.", "Log out" => "Odjava", "Server side authentication failed!" => "Overitev s strežnika je spodletela!", @@ -187,7 +186,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Pred nadaljevanjem se prepričajte se, da je ustvarjena varnostna kopija podatkovne zbirke, nastavitvenih datotek in podatkovne mape.", "Start update" => "Začni posodobitev", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Za razreševanje časovnih zahtev večjih namestitev lahko uporabite ukaz iz namestitvene mape:", -"This ownCloud instance is currently being updated, which may take a while." => "Nastavitev oblaka ownCloud se trenutno posodablja. Opravilo je lahko dolgotrajno ...", -"Please reload this page after a short time to continue using ownCloud." => "Ponovno naložite to stran po krajšem preteku časa in nadaljujte z uporabo oblaka ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Nastavitev oblaka ownCloud se trenutno posodablja. Opravilo je lahko dolgotrajno ..." ); $PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/core/l10n/sv.php b/core/l10n/sv.php index d22dde47f4e..413b3a16bfe 100644 --- a/core/l10n/sv.php +++ b/core/l10n/sv.php @@ -160,7 +160,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "SQLite kommer att användas som databas. För större installationer rekommenderar vi att du ändrar databastyp.", "Finish setup" => "Avsluta installation", "Finishing …" => "Avslutar ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Denna applikation kräver JavaScript aktiverat för att fungera korrekt. Vänligen <a href=\"http://enable-javascript.com/\" target=\"_blank\">aktivera JavaScript</a> och ladda om gränssnittet.", "%s is available. Get more information on how to update." => "%s är tillgänglig. Få mer information om hur du går tillväga för att uppdatera.", "Log out" => "Logga ut", "Server side authentication failed!" => "Servern misslyckades med autentisering!", @@ -181,7 +180,6 @@ $TRANSLATIONS = array( "The theme %s has been disabled." => "Temat %s har blivit inaktiverat.", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Vänligen säkerställ att en säkerhetskopia har gjorts av databasen, konfigurations- och datamappen innan du fortsätter.", "Start update" => "Starta uppdateringen", -"This ownCloud instance is currently being updated, which may take a while." => "Denna ownCloud instans håller på att uppdatera, vilket kan ta ett tag.", -"Please reload this page after a short time to continue using ownCloud." => "Var god och ladda om denna sida efter en kort stund för att fortsätta använda ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Denna ownCloud instans håller på att uppdatera, vilket kan ta ett tag." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/core/l10n/tr.php b/core/l10n/tr.php index d58941e1940..918b83ec2e6 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -163,7 +163,7 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "Veritabanı olarak SQLite kullanılacak. Daha büyük kurulumlar için bunu değiştirmenizi öneririz.", "Finish setup" => "Kurulumu tamamla", "Finishing …" => "Tamamlanıyor ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Uygulama, doğru çalışabilmesi için JavaScript'in etkinleştirilmesini gerektiriyor. Lütfen <a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScript'i etkinleştirin</a> ve bu arayüzü yeniden yükleyin.", +"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Uygulama, doğru çalışabilmesi için JavaScript gerektiriyor. Lütfen <a href=\"http://enable-javascript.com/\" target=\"_blank\">JavaScript'i etkinleştirin</a> ve sayfayı yeniden yükleyin.", "%s is available. Get more information on how to update." => "%s kullanılabilir. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.", "Log out" => "Çıkış yap", "Server side authentication failed!" => "Sunucu taraflı yetkilendirme başarısız!", @@ -188,6 +188,6 @@ $TRANSLATIONS = array( "Start update" => "Güncellemeyi başlat", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Daha büyük kurulumlarda zaman aşımlarının önüne geçmek için, kurulum dizininizden aşağıdaki komutu da çalıştırabilirsiniz:", "This ownCloud instance is currently being updated, which may take a while." => "Bu ownCloud örneği şu anda güncelleniyor, bu biraz zaman alabilir.", -"Please reload this page after a short time to continue using ownCloud." => "ownCloud kullanmaya devam etmek için kısa bir süre sonra lütfen sayfayı yenileyin." +"This page will refresh itself when the ownCloud instance is available again." => "Bu sayfa, ownCloud örneği tekrar kullanılabilir olduğunda kendini yenileyecektir." ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/core/l10n/uk.php b/core/l10n/uk.php index c55dba41920..990644d0728 100644 --- a/core/l10n/uk.php +++ b/core/l10n/uk.php @@ -149,7 +149,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Це означає, що лише адміністратори можуть використовувати цей екземпляр.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Зверніться до системного адміністратора, якщо це повідомлення зберігається або з'являєтья несподівано.", "Thank you for your patience." => "Дякуємо за ваше терпіння.", -"This ownCloud instance is currently being updated, which may take a while." => "Цей ownCloud зараз оновлюється, це може тривати певний час.", -"Please reload this page after a short time to continue using ownCloud." => "Будь ласка, перезавантажте незабаром цю сторінку, щоб продовжити користуватися OwnCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Цей ownCloud зараз оновлюється, це може тривати певний час." ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 4a697b4ddaa..65f863d3113 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -129,7 +129,6 @@ $TRANSLATIONS = array( "Database host" => "Database host", "Finish setup" => "Cài đặt hoàn tất", "Finishing …" => "Đang hoàn thành ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Ứng dụng này yêu cầu JavaScript để hoạt động. Vui lòng <a href=\"http://enable-javascript.com/\" target=\"_blank\">kích hoạt JavaScript</a> và tải lại giao diện này.", "%s is available. Get more information on how to update." => "%s còn trống. Xem thêm thông tin cách cập nhật.", "Log out" => "Đăng xuất", "Server side authentication failed!" => "Xác thực phía máy chủ không thành công!", @@ -141,7 +140,6 @@ $TRANSLATIONS = array( "This means only administrators can use the instance." => "Điều này có nghĩa chỉ có người quản trị có thể sử dụng trong trường hợp này.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Liên hệ với người quản trị nếu lỗi này vẫn tồn tại hoặc xuất hiện bất ngờ.", "Thank you for your patience." => "Cảm ơn sự kiên nhẫn của bạn.", -"This ownCloud instance is currently being updated, which may take a while." => "Phiên bản ownCloud này hiện đang được cập nhật, có thể sẽ mất một ít thời gian.", -"Please reload this page after a short time to continue using ownCloud." => "Xin vui lòng tải lại trang này để tiếp tục sử dụng ownCloud." +"This ownCloud instance is currently being updated, which may take a while." => "Phiên bản ownCloud này hiện đang được cập nhật, có thể sẽ mất một ít thời gian." ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 685a20cff2a..edd9eb3eeac 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -161,7 +161,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "将会使用 SQLite 为数据库。我们不建议大型站点使用 SQLite。", "Finish setup" => "安装完成", "Finishing …" => "正在结束 ...", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "此程序需要启用JavaScript才能正常运行。请<a href=\"http://enable-javascript.com/\" target=\"_blank\">启用JavaScript</a> 并重新加载此接口。", "%s is available. Get more information on how to update." => "%s 可用。获取更多关于如何升级的信息。", "Log out" => "注销", "Server side authentication failed!" => "服务端验证失败!", @@ -181,7 +180,6 @@ $TRANSLATIONS = array( "The theme %s has been disabled." => "%s 主题已被禁用。", "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "在继续之前,请确认数据库、配置文件夹和数据文件夹已经备份。", "Start update" => "开始更新", -"This ownCloud instance is currently being updated, which may take a while." => "当前ownCloud实例正在更新,可能需要一段时间。", -"Please reload this page after a short time to continue using ownCloud." => "请稍后重新加载这个页面,以继续使用ownCloud。" +"This ownCloud instance is currently being updated, which may take a while." => "当前ownCloud实例正在更新,可能需要一段时间。" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index b2aaffc2b89..eaecdeb1fe3 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -162,7 +162,6 @@ $TRANSLATIONS = array( "SQLite will be used as database. For larger installations we recommend to change this." => "將會使用 SQLite 作為資料庫,在大型安裝中建議使用其他種資料庫", "Finish setup" => "完成設定", "Finishing …" => "即將完成…", -"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "這個應用程式需要啟用 Javascript 才能正常運作,請<a href=\"http://enable-javascript.com/\" target=\"_blank\">啟用 Javascript</a> 然後重新載入頁面", "%s is available. Get more information on how to update." => "%s 已經釋出,瞭解更多資訊以進行更新。", "Log out" => "登出", "Server side authentication failed!" => "伺服器端認證失敗!", @@ -186,7 +185,6 @@ $TRANSLATIONS = array( "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "在繼續之前,請備份資料庫、config 目錄及資料目錄", "Start update" => "開始升級", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "在大型安裝上,為了避免升級請求逾時,你也可以在安裝目錄執行下列指令:", -"This ownCloud instance is currently being updated, which may take a while." => "ownCloud 正在升級,請稍待一會。", -"Please reload this page after a short time to continue using ownCloud." => "請稍後重新載入這個頁面就可以繼續使用 ownCloud" +"This ownCloud instance is currently being updated, which may take a while." => "ownCloud 正在升級,請稍待一會。" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/core/routes.php b/core/routes.php index 28a3680dd91..fac67f23175 100644 --- a/core/routes.php +++ b/core/routes.php @@ -100,6 +100,11 @@ $this->create('core_avatar_post_cropped', '/avatar/cropped') ->post() ->action('OC\Core\Avatar\Controller', 'postCroppedAvatar'); +// Sharing routes +$this->create('core_share_show_share', '/s/{token}') + ->get() + ->action('OC\Core\Share\Controller', 'showShare'); + // used for heartbeat $this->create('heartbeat', '/heartbeat')->action(function(){ // do nothing diff --git a/core/share/controller.php b/core/share/controller.php new file mode 100644 index 00000000000..c1741af0d98 --- /dev/null +++ b/core/share/controller.php @@ -0,0 +1,23 @@ +<?php +/** + * Copyright (c) 2014 Christopher Schäpers <christopher@schaepers.it> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Share; + +class Controller { + public static function showShare($args) { + \OC_Util::checkAppEnabled('files_sharing'); + + $token = $args['token']; + + \OC_App::loadApp('files_sharing'); + \OC_User::setIncognitoMode(true); + + require_once \OC_App::getAppPath('files_sharing') .'/public.php'; + } +} +?> diff --git a/core/templates/altmail.php b/core/templates/altmail.php index b2b45e454a7..38531d109b7 100644 --- a/core/templates/altmail.php +++ b/core/templates/altmail.php @@ -2,7 +2,7 @@ print_unescaped($l->t("Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n", array($_['user_displayname'], $_['filename'], $_['link']))); if ( isset($_['expiration']) ) { print_unescaped($l->t("The share will expire on %s.", array($_['expiration']))); - print_unescaped('\n\n'); + print_unescaped("\n\n"); } // TRANSLATORS term at the end of a mail p($l->t("Cheers!")); diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php index 127e99be84d..963bf4cf545 100644 --- a/core/templates/layout.base.php +++ b/core/templates/layout.base.php @@ -11,6 +11,7 @@ <?php p($theme->getTitle()); ?> </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"> <link rel="shortcut icon" type="image/png" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" /> <link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path('', 'favicon-touch.png')); ?>" /> @@ -31,6 +32,7 @@ <?php endforeach; ?> </head> <body id="body-public"> + <noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and reload the page.')); ?></div></div></noscript> <?php print_unescaped($_['content']); ?> </body> </html> diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 24706b77b19..da40fd83ad8 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -11,6 +11,7 @@ <?php p($theme->getTitle()); ?> </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"> <meta name="apple-itunes-app" content="app-id=<?php p($theme->getiTunesAppId()); ?>"> <link rel="shortcut icon" type="image/png" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" /> @@ -32,16 +33,20 @@ ?> <?php endforeach; ?> </head> - <body id="body-login"> + <body id="<?php p($_['bodyid']);?>"> + <noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and reload the page.')); ?></div></div></noscript> <div class="wrapper"><!-- for sticky footer --> <div class="v-align"><!-- vertically centred box --> - <header><div id="header"> - <div class="logo svg"></div> - <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> - </div></header> - + <?php if ($_['bodyid'] === 'body-login' ): ?> + <header> + <div id="header"> + <div class="logo svg"></div> + <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> + </div> + </header> + <?php endif; ?> <?php print_unescaped($_['content']); ?> - <div class="push"></div><!-- for sticky footer --> + <div class="push"></div><!-- for sticky footer --> </div> </div> diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 51470fb07fa..a7ce9a5be80 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -14,7 +14,7 @@ ?> </title> <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> <meta name="apple-itunes-app" content="app-id=<?php p($theme->getiTunesAppId()); ?>"> <meta name="apple-mobile-web-app-capable" content="yes"> @@ -40,7 +40,7 @@ <?php endforeach; ?> </head> <body id="<?php p($_['bodyid']);?>"> - <noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript to be enabled for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and re-load this interface.')); ?></div></div></noscript> + <noscript><div id="nojavascript"><div><?php print_unescaped($l->t('This application requires JavaScript for correct operation. Please <a href="http://enable-javascript.com/" target="_blank">enable JavaScript</a> and reload the page.')); ?></div></div></noscript> <div id="notification-container"> <div id="notification"></div> <?php if ($_['updateAvailable']): ?> diff --git a/core/templates/update.user.php b/core/templates/update.user.php index bb93f0fad00..935247246db 100644 --- a/core/templates/update.user.php +++ b/core/templates/update.user.php @@ -1,7 +1,7 @@ <ul> <li class='update'> - <?php p($l->t('This ownCloud instance is currently being updated, which may take a while.')) ?><br/><br/> - <?php p($l->t('Please reload this page after a short time to continue using ownCloud.')) ?><br/><br/> + <?php p($l->t('This %s instance is currently being updated, which may take a while.', array($theme->getName()))) ?><br/><br/> + <?php p($l->t('This page will refresh itself when the %s instance is available again.', array($theme->getName()))) ?><br/><br/> <?php p($l->t('Contact your system administrator if this message persists or appeared unexpectedly.')) ?><br/><br/> <?php p($l->t('Thank you for your patience.')); ?><br/><br/> </li> diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 76d20f72c14..2800e47539c 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: ajax/share.php:117 ajax/share.php:159 +#: ajax/share.php:118 ajax/share.php:160 #, php-format msgid "Couldn't send mail to following users: %s " msgstr "" @@ -149,27 +149,27 @@ msgstr "" msgid "December" msgstr "" -#: js/js.js:497 +#: js/js.js:498 msgid "Settings" msgstr "" -#: js/js.js:586 +#: js/js.js:587 msgid "File" msgstr "" -#: js/js.js:587 +#: js/js.js:588 msgid "Folder" msgstr "" -#: js/js.js:588 +#: js/js.js:589 msgid "Image" msgstr "" -#: js/js.js:589 +#: js/js.js:590 msgid "Audio" msgstr "" -#: js/js.js:603 +#: js/js.js:604 msgid "Saving..." msgstr "" @@ -276,23 +276,23 @@ msgstr "" msgid "Error loading file exists template" msgstr "" -#: js/setup.js:96 +#: js/setup.js:99 msgid "Very weak password" msgstr "" -#: js/setup.js:97 +#: js/setup.js:100 msgid "Weak password" msgstr "" -#: js/setup.js:98 +#: js/setup.js:101 msgid "So-so password" msgstr "" -#: js/setup.js:99 +#: js/setup.js:102 msgid "Good password" msgstr "" -#: js/setup.js:100 +#: js/setup.js:103 msgid "Strong password" msgstr "" @@ -308,12 +308,12 @@ msgstr "" msgid "Share" msgstr "" -#: js/share.js:326 js/share.js:340 js/share.js:347 js/share.js:1002 +#: js/share.js:326 js/share.js:340 js/share.js:347 js/share.js:1005 #: templates/installation.php:10 msgid "Error" msgstr "" -#: js/share.js:328 js/share.js:1065 +#: js/share.js:328 js/share.js:1068 msgid "Error while sharing" msgstr "" @@ -418,27 +418,27 @@ msgstr "" msgid "delete" msgstr "" -#: js/share.js:983 +#: js/share.js:986 msgid "Password protected" msgstr "" -#: js/share.js:1002 +#: js/share.js:1005 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:1023 +#: js/share.js:1026 msgid "Error setting expiration date" msgstr "" -#: js/share.js:1052 +#: js/share.js:1055 msgid "Sending ..." msgstr "" -#: js/share.js:1063 +#: js/share.js:1066 msgid "Email sent" msgstr "" -#: js/share.js:1087 +#: js/share.js:1090 msgid "Warning" msgstr "" @@ -716,11 +716,12 @@ msgstr "" msgid "Finishing …" msgstr "" +#: templates/layout.base.php:35 templates/layout.guest.php:37 #: templates/layout.user.php:43 msgid "" -"This application requires JavaScript to be enabled for correct operation. " -"Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable " -"JavaScript</a> and re-load this interface." +"This application requires JavaScript for correct operation. Please <a href=" +"\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> " +"and reload the page." msgstr "" #: templates/layout.user.php:47 @@ -839,5 +840,6 @@ msgid "" msgstr "" #: templates/update.user.php:4 -msgid "Please reload this page after a short time to continue using ownCloud." +msgid "" +"This page will refresh itself when the ownCloud instance is available again." msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 23a1565ad9b..82d553931cd 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,11 +35,15 @@ msgstr "" msgid "Could not move %s - File with this name already exists" msgstr "" -#: ajax/move.php:25 ajax/move.php:28 +#: ajax/move.php:26 ajax/move.php:34 #, php-format msgid "Could not move %s" msgstr "" +#: ajax/move.php:29 +msgid "Permission denied" +msgstr "" + #: ajax/newfile.php:58 js/files.js:103 msgid "File name cannot be empty." msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 1dbe42f0032..c9694a0a2aa 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 14874be5d38..b02ea048dae 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 3fc34466a76..179ec537bd4 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 3865a9f6398..eb037a885df 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 1ec8b552a71..48de23cce83 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index bc7c14e535b..bf320332438 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -40,11 +40,11 @@ msgid "" "config directory%s." msgstr "" -#: base.php:581 +#: base.php:587 msgid "Sample configuration detected" msgstr "" -#: base.php:582 +#: base.php:588 msgid "" "It has been detected that the sample configuration has been copied. This can " "break your installation and is unsupported. Please read the documentation " @@ -262,13 +262,13 @@ msgstr "" msgid "Set an admin password." msgstr "" -#: private/setup.php:175 +#: private/setup.php:176 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "" -#: private/setup.php:176 +#: private/setup.php:177 #, php-format msgid "Please double check the <a href='%s'>installation guides</a>." msgstr "" @@ -327,78 +327,78 @@ msgid "" "are allowed" msgstr "" -#: private/share/share.php:654 +#: private/share/share.php:657 #, php-format msgid "Sharing %s failed, because sharing with links is not allowed" msgstr "" -#: private/share/share.php:661 +#: private/share/share.php:664 #, php-format msgid "Share type %s is not valid for %s" msgstr "" -#: private/share/share.php:863 +#: private/share/share.php:866 #, php-format msgid "" "Setting permissions for %s failed, because the permissions exceed " "permissions granted to %s" msgstr "" -#: private/share/share.php:924 +#: private/share/share.php:927 #, php-format msgid "Setting permissions for %s failed, because the item was not found" msgstr "" -#: private/share/share.php:962 +#: private/share/share.php:965 #, php-format msgid "" "Cannot set expiration date. Shares cannot expire later than %s after they " "have been shared" msgstr "" -#: private/share/share.php:970 +#: private/share/share.php:973 msgid "Cannot set expiration date. Expiration date is in the past" msgstr "" -#: private/share/share.php:1095 +#: private/share/share.php:1098 #, php-format msgid "Sharing backend %s must implement the interface OCP\\Share_Backend" msgstr "" -#: private/share/share.php:1102 +#: private/share/share.php:1105 #, php-format msgid "Sharing backend %s not found" msgstr "" -#: private/share/share.php:1108 +#: private/share/share.php:1111 #, php-format msgid "Sharing backend for %s not found" msgstr "" -#: private/share/share.php:1526 +#: private/share/share.php:1529 #, php-format msgid "Sharing %s failed, because the user %s is the original sharer" msgstr "" -#: private/share/share.php:1535 +#: private/share/share.php:1538 #, php-format msgid "" "Sharing %s failed, because the permissions exceed permissions granted to %s" msgstr "" -#: private/share/share.php:1551 +#: private/share/share.php:1554 #, php-format msgid "Sharing %s failed, because resharing is not allowed" msgstr "" -#: private/share/share.php:1563 +#: private/share/share.php:1566 #, php-format msgid "" "Sharing %s failed, because the sharing backend for %s could not find its " "source" msgstr "" -#: private/share/share.php:1577 +#: private/share/share.php:1580 #, php-format msgid "" "Sharing %s failed, because the file could not be found in the file cache" @@ -409,51 +409,51 @@ msgstr "" msgid "Could not find category \"%s\"" msgstr "" -#: private/template/functions.php:134 +#: private/template/functions.php:184 msgid "seconds ago" msgstr "" -#: private/template/functions.php:135 +#: private/template/functions.php:185 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" msgstr[1] "" -#: private/template/functions.php:136 +#: private/template/functions.php:186 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" msgstr[1] "" -#: private/template/functions.php:137 +#: private/template/functions.php:187 msgid "today" msgstr "" -#: private/template/functions.php:138 +#: private/template/functions.php:188 msgid "yesterday" msgstr "" -#: private/template/functions.php:140 +#: private/template/functions.php:190 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "" msgstr[1] "" -#: private/template/functions.php:142 +#: private/template/functions.php:192 msgid "last month" msgstr "" -#: private/template/functions.php:143 +#: private/template/functions.php:193 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" msgstr[1] "" -#: private/template/functions.php:145 +#: private/template/functions.php:195 msgid "last year" msgstr "" -#: private/template/functions.php:146 +#: private/template/functions.php:196 msgid "years ago" msgstr "" diff --git a/l10n/templates/private.pot b/l10n/templates/private.pot index c8abfe73e24..f06116cb6c1 100644 --- a/l10n/templates/private.pot +++ b/l10n/templates/private.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -222,13 +222,13 @@ msgstr "" msgid "Set an admin password." msgstr "" -#: setup.php:175 +#: setup.php:176 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "" -#: setup.php:176 +#: setup.php:177 #, php-format msgid "Please double check the <a href='%s'>installation guides</a>." msgstr "" @@ -286,78 +286,78 @@ msgid "" "are allowed" msgstr "" -#: share/share.php:654 +#: share/share.php:657 #, php-format msgid "Sharing %s failed, because sharing with links is not allowed" msgstr "" -#: share/share.php:661 +#: share/share.php:664 #, php-format msgid "Share type %s is not valid for %s" msgstr "" -#: share/share.php:863 +#: share/share.php:866 #, php-format msgid "" "Setting permissions for %s failed, because the permissions exceed " "permissions granted to %s" msgstr "" -#: share/share.php:924 +#: share/share.php:927 #, php-format msgid "Setting permissions for %s failed, because the item was not found" msgstr "" -#: share/share.php:962 +#: share/share.php:965 #, php-format msgid "" "Cannot set expiration date. Shares cannot expire later than %s after they " "have been shared" msgstr "" -#: share/share.php:970 +#: share/share.php:973 msgid "Cannot set expiration date. Expiration date is in the past" msgstr "" -#: share/share.php:1095 +#: share/share.php:1098 #, php-format msgid "Sharing backend %s must implement the interface OCP\\Share_Backend" msgstr "" -#: share/share.php:1102 +#: share/share.php:1105 #, php-format msgid "Sharing backend %s not found" msgstr "" -#: share/share.php:1108 +#: share/share.php:1111 #, php-format msgid "Sharing backend for %s not found" msgstr "" -#: share/share.php:1526 +#: share/share.php:1529 #, php-format msgid "Sharing %s failed, because the user %s is the original sharer" msgstr "" -#: share/share.php:1535 +#: share/share.php:1538 #, php-format msgid "" "Sharing %s failed, because the permissions exceed permissions granted to %s" msgstr "" -#: share/share.php:1551 +#: share/share.php:1554 #, php-format msgid "Sharing %s failed, because resharing is not allowed" msgstr "" -#: share/share.php:1563 +#: share/share.php:1566 #, php-format msgid "" "Sharing %s failed, because the sharing backend for %s could not find its " "source" msgstr "" -#: share/share.php:1577 +#: share/share.php:1580 #, php-format msgid "" "Sharing %s failed, because the file could not be found in the file cache" @@ -368,51 +368,51 @@ msgstr "" msgid "Could not find category \"%s\"" msgstr "" -#: template/functions.php:134 +#: template/functions.php:184 msgid "seconds ago" msgstr "" -#: template/functions.php:135 +#: template/functions.php:185 msgid "%n minute ago" msgid_plural "%n minutes ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:136 +#: template/functions.php:186 msgid "%n hour ago" msgid_plural "%n hours ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:137 +#: template/functions.php:187 msgid "today" msgstr "" -#: template/functions.php:138 +#: template/functions.php:188 msgid "yesterday" msgstr "" -#: template/functions.php:140 +#: template/functions.php:190 msgid "%n day go" msgid_plural "%n days ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:142 +#: template/functions.php:192 msgid "last month" msgstr "" -#: template/functions.php:143 +#: template/functions.php:193 msgid "%n month ago" msgid_plural "%n months ago" msgstr[0] "" msgstr[1] "" -#: template/functions.php:145 +#: template/functions.php:195 msgid "last year" msgstr "" -#: template/functions.php:146 +#: template/functions.php:196 msgid "years ago" msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 29b34dc8397..e610c22c023 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -318,7 +318,7 @@ msgstr "" msgid "Restore encryption keys." msgstr "" -#: js/users/deleteHandler.js:166 +#: js/users/deleteHandler.js:205 msgid "Unable to delete {objName}" msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 463253190ea..f848be340f9 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 12e2e79eded..bcfff3b44ce 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 6.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2014-09-07 01:54-0400\n" +"POT-Creation-Date: 2014-09-16 01:54-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/lib/base.php b/lib/base.php index fb445124011..e21d0124b32 100644 --- a/lib/base.php +++ b/lib/base.php @@ -255,6 +255,7 @@ class OC { // render error page $tmpl = new OC_Template('', 'update.user', 'guest'); + OC_Util::addscript('maintenance-check'); $tmpl->printPage(); die(); } @@ -495,6 +496,9 @@ class OC { require_once $vendorAutoLoad; } + // initialize intl fallback is necessary + \Patchwork\Utf8\Bootup::initIntl(); + if (!defined('PHPUNIT_RUN')) { OC\Log\ErrorHandler::setLogger(OC_Log::$object); if (defined('DEBUG') and DEBUG) { @@ -554,7 +558,9 @@ class OC { OC_Group::useBackend(new OC_Group_Database()); //setup extra user backends - OC_User::setupBackends(); + if (!self::checkUpgrade(false)) { + OC_User::setupBackends(); + } self::registerCacheHooks(); self::registerFilesystemHooks(); diff --git a/lib/l10n/fi.php b/lib/l10n/fi.php deleted file mode 100644 index ac1f80a8f73..00000000000 --- a/lib/l10n/fi.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Settings" => "asetukset" -); -$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php index ae49d583336..3f1fe6a9925 100644 --- a/lib/l10n/fr.php +++ b/lib/l10n/fr.php @@ -97,6 +97,7 @@ $TRANSLATIONS = array( "Cannot create \"data\" directory (%s)" => "Impossible de créer le répertoire \"data\" (%s)", "This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." => "Ce problème est généralement résolu <a href=\"%s\" target=\"_blank\">en donnant au serveur web un accès en écriture au répertoire racine</a>.", "Setting locale to %s failed" => "Le choix de la langue pour %s a échoué", +"Please install one of these locales on your system and restart your webserver." => "Veuillez installer l'une de ces langues sur votre système et redémarrer votre serveur web.", "Please ask your server administrator to install the module." => "Veuillez demander à votre administrateur d’installer le module.", "PHP module %s not installed." => "Le module PHP %s n’est pas installé.", "PHP %s or higher is required." => "PHP %s ou supérieur est requis.", diff --git a/lib/l10n/hr.php b/lib/l10n/hr.php index 453642b6dcf..06dc652e4fe 100644 --- a/lib/l10n/hr.php +++ b/lib/l10n/hr.php @@ -1,21 +1,123 @@ <?php $TRANSLATIONS = array( +"Cannot write into \"config\" directory!" => "Pisanje u \"config\" direktoriju nije moguće!", +"This can usually be fixed by giving the webserver write access to the config directory" => "Ovo se obično može popraviti tako da se Web poslužitelju dopusti pristup za pisanje u config direktoriju", +"See %s" => "Vidite %s", +"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.", +"Sample configuration detected" => "Nađena ogledna konfiguracija", +"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php", "Help" => "Pomoć", "Personal" => "Osobno", "Settings" => "Postavke", "Users" => "Korisnici", -"Admin" => "Administrator", +"Admin" => "Admin", +"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplikacija \\\"%s\\\" se ne može instalirati jer nije kompatibilna s ovom verzijom ownClouda.", +"No app name specified" => "Nikakav naziv aplikacije nije naveden", +"Unknown filetype" => "Vrsta datoteke nepoznata", +"Invalid image" => "Neispravna slika", "web services under your control" => "web usluge pod vašom kontrolom", -"Authentication error" => "Greška kod autorizacije", -"seconds ago" => "sekundi prije", -"_%n minute ago_::_%n minutes ago_" => array("","",""), -"_%n hour ago_::_%n hours ago_" => array("","",""), -"today" => "danas", -"yesterday" => "jučer", -"_%n day go_::_%n days ago_" => array("","",""), -"last month" => "prošli mjesec", -"_%n month ago_::_%n months ago_" => array("","",""), -"last year" => "prošlu godinu", -"years ago" => "godina" +"App directory already exists" => "Direktorij aplikacije već postoji", +"Can't create app folder. Please fix permissions. %s" => "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s", +"No source specified when installing app" => "Pri instaliranju aplikacija nijedan izvor nije specificiran", +"No href specified when installing app from http" => "Pri instaliranju aplikacija iz http nijedan href nije specificiran.", +"No path specified when installing app from local file" => "Pri instaliranju aplikacija iz lokalne datoteke nijedan put nije specificiran.", +"Archives of type %s are not supported" => "Arhive tipa %s nisu podržane", +"Failed to open archive when installing app" => "Otvaranje arhive pri instaliranju aplikacija nije uspjelo.", +"App does not provide an info.xml file" => "Aplikacija ne pruža info.xml datoteku", +"App can't be installed because of not allowed code in the App" => "Aplikaciju nije moguće instalirati zbog nedopuštenog koda u njoj.", +"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikaciju nije moguće instalirati jer nije kompatibilna s ovom verzijom ownClouda.", +"App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" => "Aplikaciju nije moguće instalirati jer sadrži oznaku <otpremljeno>istinito</otpremljeno>.", +"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Aplikaciju nije moguće instalirati jer verzija u info.xml/version nije ista kaoverzija koju je prijavio app store", +"Application is not enabled" => "Aplikacija nije aktivirana", +"Authentication error" => "Pogrešna autentikacija", +"Token expired. Please reload page." => "Token je istekao. Molimo, ponovno učitajte stranicu.", +"Unknown user" => "Korisnik nepoznat", +"%s enter the database username." => "%s unesite naziva korisnika baze podataka.", +"%s enter the database name." => "%s unesite naziv baze podataka", +"%s you may not use dots in the database name" => "%s ne smijete koristiti točke u nazivu baze podataka", +"MS SQL username and/or password not valid: %s" => "MS SQL korisničko ime i/ili lozinka neispravni: %s", +"You need to enter either an existing account or the administrator." => "Trebate unijeti neki postojeći račun ili administratora.", +"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB korisničko ime i/ili lozinka neispravni", +"DB Error: \"%s\"" => "DB pogreška: \"%s\"", +"Offending command was: \"%s\"" => "Neispravna naredba je bila: \"%s\"", +"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB korisnik '%s'@'localhost' već postoji.", +"Drop this user from MySQL/MariaDB" => "Ispustite ovog korisnika iz MySQL/MariaDB", +"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB korisnik '%s'@'%%' već postoji", +"Drop this user from MySQL/MariaDB." => "Ispustite ovog korisnika iz MySQL/MariaDB.", +"Oracle connection could not be established" => "Vezu Oracle nije moguće uspostaviti", +"Oracle username and/or password not valid" => "Korisničko ime i/ili lozinka Oracle neispravni", +"Offending command was: \"%s\", name: %s, password: %s" => "Neispravna naredba je bila: \"%s\", ime: %s, lozinka: %s", +"PostgreSQL username and/or password not valid" => "Korisničko ime i/ili lozinka PostgreSQL neispravni", +"Set an admin username." => "Navedite admin korisničko ime.", +"Set an admin password." => "Navedite admin lozinku.", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Vaš web poslužitelj još nije propisno postavljen da bi omogućio sinkronizaciju datoteka jer izgleda da jesučelje WebDAV neispravno.", +"Please double check the <a href='%s'>installation guides</a>." => "Molimo provjerite <a href='%s'> instalacijske vodiče </a>.", +"%s shared »%s« with you" => "%s je s vama podijelio »%s«", +"Sharing %s failed, because the file does not exist" => "Dijeljenje %s nije uspjelo jer ta datoteka ne postoji", +"You are not allowed to share %s" => "Nije vam dopušteno dijeliti %s", +"Sharing %s failed, because the user %s is the item owner" => "Dijeljenje %s nije uspjelo jer je korisnik %s vlasnik te stavke", +"Sharing %s failed, because the user %s does not exist" => "Dijeljenje %s nije uspjelo jer korisnik %s ne postoji", +"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Dijeljenje %s nije uspjelo jer korisnik %s nije član niti jedne grupe u kojoj je %s član", +"Sharing %s failed, because this item is already shared with %s" => "Dijeljenje %s nije uspjelo jer je ova stavka već podijeljena s %s", +"Sharing %s failed, because the group %s does not exist" => "Dijeljenje %s nije uspjelo jer grupa %s ne postoji", +"Sharing %s failed, because %s is not a member of the group %s" => "Dijeljenje %s nije uspjelo jer %s nije član grupe %s", +"You need to provide a password to create a public link, only protected links are allowed" => "Da biste kreirali javnu vezu, morate navesti lozinku, samo zaštićene veze su dopuštene.", +"Sharing %s failed, because sharing with links is not allowed" => "Dijeljenje %s nije uspjelo jer dijeljenje s vezama nije dopušteno.", +"Share type %s is not valid for %s" => "Tip dijeljenja %s nije dopušteni tip za %s", +"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Postavke dozvola za %s nisu uspjele jer dozvole premašuju dozvole za koje %s ima odobrenje", +"Setting permissions for %s failed, because the item was not found" => "Postavke dozvola za %s nisu uspjele jer stavka nije nađena.", +"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nije moguće postaviti datum isteka. Nakon što su podijeljeni, resursi ne mogu isteći kasnije nego %s ", +"Cannot set expiration date. Expiration date is in the past" => "Nije moguće postaviti datum isteka. Datum isteka je u prošlosti", +"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Dijeljenje pozadine %s mora implementirati sučelje OCP\\Share_Backend", +"Sharing backend %s not found" => "Dijeljenje pozadine %s nije nađeno", +"Sharing backend for %s not found" => "Dijeljenje pozadine za %s nije nađeno", +"Sharing %s failed, because the user %s is the original sharer" => "Dijeljenje %s nije uspjelo jer je korisnik %s izvorni djelitelj", +"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Dijeljenje %s nije uspjelo jer dozvole premašuju dozvole za koje %s ima odobrenje.", +"Sharing %s failed, because resharing is not allowed" => "Dijeljenje %s nije uspjelo jer ponovno dijeljenje nije dopušteno.", +"Sharing %s failed, because the sharing backend for %s could not find its source" => "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor", +"Sharing %s failed, because the file could not be found in the file cache" => "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.", +"Could not find category \"%s\"" => "Kategorija \"%s\" nije nađena", +"seconds ago" => "prije par sekundi", +"_%n minute ago_::_%n minutes ago_" => array("prije %n minute","prije %n minuta","prije %n minuta"), +"_%n hour ago_::_%n hours ago_" => array("prije %n sata","prije %n sati","prije %n sati"), +"today" => "Danas", +"yesterday" => "Jučer", +"_%n day go_::_%n days ago_" => array("prije %n dana","prije %n dana","prije %n dana"), +"last month" => "Prošli mjesec", +"_%n month ago_::_%n months ago_" => array("prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"), +"last year" => "Prošle godine", +"years ago" => "Prije više godina", +"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"", +"A valid username must be provided" => "Nužno je navesti ispravno korisničko ime", +"A valid password must be provided" => "Nužno je navesti ispravnu lozinku", +"The username is already being used" => "Korisničko ime se već koristi", +"No database drivers (sqlite, mysql, or postgresql) installed." => "Pogonski programi baze podataka (sqlite, mysql, ili postgresql) nisu instalirani.", +"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Dozvole se obično mogu popraviti %sdavanjem pristupa web poslužitelju za pisanje u korijenskom direktoriju%s", +"Cannot write into \"config\" directory" => "Nije moguće zapisivati u \"config\" direktorij", +"Cannot write into \"apps\" directory" => "Nije moguće zapisivati u \"apps\" direktorij", +"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u apps direktorij%sili isključivanjem appstorea u konfiguracijskoj datoteci.", +"Cannot create \"data\" directory (%s)" => "Kreiranje \"data\" direktorija (%s) nije moguće", +"This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." => "Ovo obično može popraviti <a href=\"%s\"target=\"_blank\">davanjem pristupa web poslužiteljuza pisanje u korijenskom direktoriju</a>.", +"Setting locale to %s failed" => "Postavljanje regionalne sheme u %s nije uspjelo", +"Please install one of these locales on your system and restart your webserver." => "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.", +"Please ask your server administrator to install the module." => "Molimo zamolite svog administratora poslužitelja da instalira modul.", +"PHP module %s not installed." => "PHP modul %s nije instaliran.", +"PHP %s or higher is required." => "PHP verzija treba biti %s ili viša.", +"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.", +"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.", +"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.", +"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.", +"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.", +"PHP modules have been installed, but they are still listed as missing?" => "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?", +"Please ask your server administrator to restart the web server." => "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.", +"PostgreSQL >= 9 required" => "Potreban je PostgreSQL >= 9", +"Please upgrade your database version" => "Molimo, ažurirajte svoju verziju baze podataka", +"Error occurred while checking PostgreSQL version" => "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL", +"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.", +"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici", +"Data directory (%s) is readable by other users" => "Podatkovni direktorij (%s) čitljiv je za druge korisnike", +"Data directory (%s) is invalid" => "Podatkovni direktorij (%s) nije ispravan", +"Please check that the data directory contains a file \".ocdata\" in its root." => "Molimo provjerite sadrži li podatkovni direktorij u svom korijenu datoteku \".ocdata\"", +"Could not obtain lock type %d on \"%s\"." => "Nije moguće dobiti lock tip %d na \"%s\"." ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/lib/l10n/ja.php b/lib/l10n/ja.php index 2f4ca27da77..b6c74471982 100644 --- a/lib/l10n/ja.php +++ b/lib/l10n/ja.php @@ -4,6 +4,8 @@ $TRANSLATIONS = array( "This can usually be fixed by giving the webserver write access to the config directory" => "多くの場合、これはWebサーバーにconfigディレクトリへの書き込み権限を与えることで解決できます。", "See %s" => "%s を閲覧", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。", +"Sample configuration detected" => "サンプル設定が見つかりました。", +"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。", "Help" => "ヘルプ", "Personal" => "個人", "Settings" => "設定", diff --git a/lib/l10n/ka.php b/lib/l10n/ka.php deleted file mode 100644 index 04fefe8bdf1..00000000000 --- a/lib/l10n/ka.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Help" => "შველა", -"Personal" => "პერსონა", -"Users" => "მომხმარებლები", -"Admin" => "ადმინისტრატორი", -"ZIP download is turned off." => "ZIP გადმოწერა გამორთულია", -"Files" => "ფაილები", -"seconds ago" => "წამის წინ", -"_%n minute ago_::_%n minutes ago_" => array(""), -"_%n hour ago_::_%n hours ago_" => array(""), -"today" => "დღეს", -"yesterday" => "გუშინ", -"_%n day go_::_%n days ago_" => array(""), -"_%n month ago_::_%n months ago_" => array("") -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/lib/private/appframework/core/api.php b/lib/private/appframework/core/api.php index ba6b9f95cb2..279f4bf97f7 100644 --- a/lib/private/appframework/core/api.php +++ b/lib/private/appframework/core/api.php @@ -110,12 +110,11 @@ class API implements IApi{ /** - * used to return and open a new eventsource - * @return \OC_EventSource a new open EventSource class + * used to return and open a new event source + * @return \OCP\IEventSource a new open EventSource class */ public function openEventSource(){ - # TODO: use public api - return new \OC_EventSource(); + return \OC::$server->createEventSource(); } /** diff --git a/lib/private/appframework/routing/routeconfig.php b/lib/private/appframework/routing/routeconfig.php index 5b4d411a355..91687b9c83c 100644 --- a/lib/private/appframework/routing/routeconfig.php +++ b/lib/private/appframework/routing/routeconfig.php @@ -93,6 +93,12 @@ class RouteConfig { if(array_key_exists('requirements', $simpleRoute)) { $router->requirements($simpleRoute['requirements']); } + + // optionally register defaults for route. This is used to + // tell the route parser how url parameters should be default valued + if(array_key_exists('defaults', $simpleRoute)) { + $router->defaults($simpleRoute['defaults']); + } } } diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php index 44c86e69719..246749903b3 100644 --- a/lib/private/connector/sabre/file.php +++ b/lib/private/connector/sabre/file.php @@ -102,13 +102,16 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\ throw new OC_Connector_Sabre_Exception_FileLocked($e->getMessage(), $e->getCode(), $e); } + // if content length is sent by client: // double check if the file was fully received // compare expected and actual size - $expected = $_SERVER['CONTENT_LENGTH']; - $actual = $this->fileView->filesize($partFilePath); - if ($actual != $expected) { - $this->fileView->unlink($partFilePath); - throw new \Sabre\DAV\Exception\BadRequest('expected filesize ' . $expected . ' got ' . $actual); + if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['REQUEST_METHOD'] !== 'LOCK') { + $expected = $_SERVER['CONTENT_LENGTH']; + $actual = $this->fileView->filesize($partFilePath); + if ($actual != $expected) { + $this->fileView->unlink($partFilePath); + throw new \Sabre\DAV\Exception\BadRequest('expected filesize ' . $expected . ' got ' . $actual); + } } // rename to correct path diff --git a/lib/private/db/adapter.php b/lib/private/db/adapter.php index 975b9432286..6742ccdbb45 100644 --- a/lib/private/db/adapter.php +++ b/lib/private/db/adapter.php @@ -51,13 +51,18 @@ class Adapter { . str_repeat('?,', count($input)-1).'? ' // Is there a prettier alternative? . 'FROM `' . $table . '` WHERE '; + $inserts = array_values($input); foreach($input as $key => $value) { - $query .= '`' . $key . '` = ? AND '; + $query .= '`' . $key . '`'; + if (is_null($value)) { + $query .= ' IS NULL AND '; + } else { + $inserts[] = $value; + $query .= ' = ? AND '; + } } $query = substr($query, 0, strlen($query) - 5); $query .= ' HAVING COUNT(*) = 0'; - $inserts = array_values($input); - $inserts = array_merge($inserts, $inserts); try { return $this->conn->executeUpdate($query, $inserts); diff --git a/lib/private/db/adaptersqlite.php b/lib/private/db/adaptersqlite.php index fa6d308ae32..5b9c5a437da 100644 --- a/lib/private/db/adaptersqlite.php +++ b/lib/private/db/adaptersqlite.php @@ -21,13 +21,21 @@ class AdapterSqlite extends Adapter { // NOTE: For SQLite we have to use this clumsy approach // otherwise all fieldnames used must have a unique key. $query = 'SELECT COUNT(*) FROM `' . $table . '` WHERE '; - foreach($input as $key => $value) { - $query .= '`' . $key . '` = ? AND '; + $inserts = array(); + foreach ($input as $key => $value) { + $query .= '`' . $key . '`'; + if (is_null($value)) { + $query .= ' IS NULL AND '; + } else { + $inserts[] = $value; + $query .= ' = ? AND '; + } } $query = substr($query, 0, strlen($query) - 5); + try { $stmt = $this->conn->prepare($query); - $result = $stmt->execute(array_values($input)); + $result = $stmt->execute($inserts); } catch(\Doctrine\DBAL\DBALException $e) { $entry = 'DB Error: "'.$e->getMessage() . '"<br />'; $entry .= 'Offending command was: ' . $query . '<br />'; diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index 91e590a901a..a07c421b9b8 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -12,6 +12,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Platforms\OraclePlatform; use Doctrine\DBAL\Platforms\PostgreSqlPlatform; use Doctrine\DBAL\Platforms\SqlitePlatform; +use Doctrine\DBAL\Platforms\SQLServerPlatform; class MDB2SchemaManager { /** @@ -65,6 +66,8 @@ class MDB2SchemaManager { return new OracleMigrator($this->conn); } else if ($platform instanceof MySqlPlatform) { return new MySQLMigrator($this->conn); + } else if ($platform instanceof SQLServerPlatform) { + return new MsSqlMigrator($this->conn); } else if ($platform instanceof PostgreSqlPlatform) { return new Migrator($this->conn); } else { diff --git a/lib/private/db/mssqlmigrator.php b/lib/private/db/mssqlmigrator.php new file mode 100644 index 00000000000..28d8c6dc06f --- /dev/null +++ b/lib/private/db/mssqlmigrator.php @@ -0,0 +1,23 @@ +<?php +/** + * Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\DB; + +use Doctrine\DBAL\Schema\Schema; + +class MsSqlMigrator extends Migrator { + + /** + * @param \Doctrine\DBAL\Schema\Schema $targetSchema + */ + public function migrate(Schema $targetSchema) { + throw new MigrationException('', + 'Database migration is required to continue operations. Please contact support@owncloud.com to get the required sql migration scripts to be applied.'); + } + +} diff --git a/lib/private/eventsource.php b/lib/private/eventsource.php index 192c1446b5a..53947f3a2f2 100644 --- a/lib/private/eventsource.php +++ b/lib/private/eventsource.php @@ -1,25 +1,10 @@ <?php - /** -* ownCloud -* -* @author Robin Appelman -* @copyright 2012 Robin Appelman icewind1991@gmail.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ /** * wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events) @@ -27,51 +12,73 @@ * * use server side events with caution, to many open requests can hang the server */ -class OC_EventSource{ +class OC_EventSource implements \OCP\IEventSource { + /** + * @var bool + */ private $fallback; - private $fallBackId=0; - public function __construct() { + /** + * @var int + */ + private $fallBackId = 0; + + /** + * @var bool + */ + private $started = false; + + protected function init() { + if ($this->started) { + return; + } + $this->started = true; + + // prevent php output buffering, caching and nginx buffering OC_Util::obEnd(); header('Cache-Control: no-cache'); header('X-Accel-Buffering: no'); - $this->fallback=isset($_GET['fallback']) and $_GET['fallback']=='true'; - if($this->fallback) { - $this->fallBackId=$_GET['fallback_id']; + $this->fallback = isset($_GET['fallback']) and $_GET['fallback'] == 'true'; + if ($this->fallback) { + $this->fallBackId = (int)$_GET['fallback_id']; header("Content-Type: text/html"); - echo str_repeat('<span></span>'.PHP_EOL, 10); //dummy data to keep IE happy - }else{ + echo str_repeat('<span></span>' . PHP_EOL, 10); //dummy data to keep IE happy + } else { header("Content-Type: text/event-stream"); } - if( !OC_Util::isCallRegistered()) { + if (!OC_Util::isCallRegistered()) { $this->send('error', 'Possible CSRF attack. Connection will be closed.'); $this->close(); exit(); } flush(); - } /** * send a message to the client + * * @param string $type * @param mixed $data * + * @throws \BadMethodCallException * if only one parameter is given, a typeless message will be send with that parameter as data */ - public function send($type, $data=null) { - if(is_null($data)) { - $data=$type; - $type=null; + public function send($type, $data = null) { + if ($data and !preg_match('/^[A-Za-z0-9_]+$/', $type)) { + throw new BadMethodCallException('Type needs to be alphanumeric ('. $type .')'); + } + $this->init(); + if (is_null($data)) { + $data = $type; + $type = null; } - if($this->fallback) { - $fallBackId = OC_Util::sanitizeHTML($this->fallBackId); - $response='<script type="text/javascript">window.parent.OC.EventSource.fallBackCallBack(' - .$fallBackId.',"' . $type . '",' . OCP\JSON::encode($data) . ')</script>' . PHP_EOL; + if ($this->fallback) { + $response = '<script type="text/javascript">window.parent.OC.EventSource.fallBackCallBack(' + . $this->fallBackId . ',"' . $type . '",' . OCP\JSON::encode($data) . ')</script>' . PHP_EOL; echo $response; - }else{ - if($type) { - echo 'event: ' . $type.PHP_EOL; + } else { + if ($type) { + echo 'event: ' . $type . PHP_EOL; } echo 'data: ' . OCP\JSON::encode($data) . PHP_EOL; } @@ -80,9 +87,9 @@ class OC_EventSource{ } /** - * close the connection of the even source + * close the connection of the event source */ public function close() { - $this->send('__internal__', 'close');//server side closing can be an issue, let the client do it + $this->send('__internal__', 'close'); //server side closing can be an issue, let the client do it } } diff --git a/lib/private/files.php b/lib/private/files.php index 739dae64180..06fc2dc9109 100644 --- a/lib/private/files.php +++ b/lib/private/files.php @@ -49,7 +49,7 @@ class OC_Files { header('Content-Type: application/zip'); } else { $filesize = \OC\Files\Filesystem::filesize($filename); - header('Content-Type: '.\OC\Files\Filesystem::getMimeType($filename)); + header('Content-Type: '.\OC_Helper::getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename))); if ($filesize > -1) { header("Content-Length: ".$filesize); } diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index 2d87871fd89..dfba2d920a0 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -44,6 +44,11 @@ class Scanner extends BasicEmitter { */ protected $cacheActive; + /** + * @var bool $useTransactions whether to use transactions + */ + protected $useTransactions = true; + const SCAN_RECURSIVE = true; const SCAN_SHALLOW = false; @@ -58,6 +63,16 @@ class Scanner extends BasicEmitter { } /** + * Whether to wrap the scanning of a folder in a database transaction + * On default transactions are used + * + * @param bool $useTransactions + */ + public function setUseTransactions($useTransactions) { + $this->useTransactions = $useTransactions; + } + + /** * get all the metadata of a file or folder * * * @@ -234,7 +249,9 @@ class Scanner extends BasicEmitter { $newChildren = array(); if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) { $exceptionOccurred = false; - \OC_DB::beginTransaction(); + if ($this->useTransactions) { + \OC_DB::beginTransaction(); + } if (is_resource($dh)) { while (($file = readdir($dh)) !== false) { $child = ($path) ? $path . '/' . $file : $file; @@ -266,7 +283,9 @@ class Scanner extends BasicEmitter { $child = ($path) ? $path . '/' . $childName : $childName; $this->removeFromCache($child); } - \OC_DB::commit(); + if ($this->useTransactions) { + \OC_DB::commit(); + } if ($exceptionOccurred) { // It might happen that the parallel scan process has already // inserted mimetypes but those weren't available yet inside the transaction diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php index 0292d777064..241864bcccd 100644 --- a/lib/private/files/objectstore/objectstorestorage.php +++ b/lib/private/files/objectstore/objectstorestorage.php @@ -82,7 +82,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { $parentExists = true; // we are done when the root folder was meant to be created - if ($dirName === $path) { + if ($dirName === $path) { return true; } } @@ -290,38 +290,10 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { public function rename($source, $target) { $source = $this->normalizePath($source); $target = $this->normalizePath($target); - $stat1 = $this->stat($source); - if (isset($stat1['mimetype']) && $stat1['mimetype'] === 'httpd/unix-directory') { - $this->remove($target); - $dir = $this->opendir($source); - $this->mkdir($target); - while ($file = readdir($dir)) { - if (!Filesystem::isIgnoredDir($file)) { - if (!$this->rename($source . '/' . $file, $target . '/' . $file)) { - return false; - } - } - } - closedir($dir); - $this->remove($source); - return true; - } else { - if (is_array($stat1)) { - $parent = $this->stat(dirname($target)); - if (is_array($parent)) { - $this->remove($target); - $stat1['parent'] = $parent['fileid']; - $stat1['path'] = $target; - $stat1['path_hash'] = md5($target); - $stat1['name'] = \OC_Util::basename($target); - $stat1['mtime'] = time(); - $stat1['etag'] = $this->getETag($target); - $this->getCache()->update($stat1['fileid'], $stat1); - return true; - } - } - } - return false; + $this->remove($target); + $this->getCache()->move($source, $target); + $this->touch(dirname($target)); + return true; } public function getMimeType($path) { diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php index c2fabf51946..adb66497be0 100644 --- a/lib/private/files/utils/scanner.php +++ b/lib/private/files/utils/scanner.php @@ -35,11 +35,18 @@ class Scanner extends PublicEmitter { protected $propagator; /** + * @var \OCP\IDBConnection + */ + protected $db; + + /** * @param string $user + * @param \OCP\IDBConnection $db */ - public function __construct($user) { + public function __construct($user, $db) { $this->user = $user; $this->propagator = new ChangePropagator(new View('')); + $this->db = $db; } /** @@ -121,8 +128,11 @@ class Scanner extends PublicEmitter { throw new ForbiddenException(); } $scanner = $storage->getScanner(); + $scanner->setUseTransactions(false); $this->attachListener($mount); + $this->db->beginTransaction(); $scanner->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE); + $this->db->commit(); } $this->propagator->propagateChanges(time()); } diff --git a/lib/private/helper.php b/lib/private/helper.php index 7c1edd1b058..f696b5a8900 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -129,12 +129,12 @@ class OC_Helper { * Returns a absolute url to the given service. */ public static function linkToPublic($service, $add_slash = false) { - return OC::$server->getURLGenerator()->getAbsoluteURL( - self::linkTo( - '', 'public.php') . '?service=' . $service - . (($add_slash && $service[strlen($service) - 1] != '/') ? '/' : '' - ) - ); + if ($service === 'files') { + $url = OC::$server->getURLGenerator()->getAbsoluteURL('/s'); + } else { + $url = OC::$server->getURLGenerator()->getAbsoluteURL(self::linkTo('', 'public.php').'?service='.$service); + } + return $url . (($add_slash && $service[strlen($service) - 1] != '/') ? '/' : ''); } /** diff --git a/lib/private/image.php b/lib/private/image.php index 7ddc8dca143..bab91745c05 100644 --- a/lib/private/image.php +++ b/lib/private/image.php @@ -450,6 +450,9 @@ class OC_Image { case IMAGETYPE_GIF: if (imagetypes() & IMG_GIF) { $this->resource = imagecreatefromgif($imagePath); + // Preserve transparency + imagealphablending($this->resource, true); + imagesavealpha($this->resource, true); } else { OC_Log::write('core', 'OC_Image->loadFromFile, GIF images not supported: '.$imagePath, @@ -468,6 +471,9 @@ class OC_Image { case IMAGETYPE_PNG: if (imagetypes() & IMG_PNG) { $this->resource = imagecreatefrompng($imagePath); + // Preserve transparency + imagealphablending($this->resource, true); + imagesavealpha($this->resource, true); } else { OC_Log::write('core', 'OC_Image->loadFromFile, PNG images not supported: '.$imagePath, diff --git a/lib/private/ocs/result.php b/lib/private/ocs/result.php index 567fe7f87fe..c5bd1d7a69e 100644 --- a/lib/private/ocs/result.php +++ b/lib/private/ocs/result.php @@ -5,19 +5,9 @@ * @author Tom Needham * @copyright 2012 Tom Needham tom@owncloud.com * -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* +* This file is licensed under the Affero General Public License version 3 or +* later. +* See the COPYING-README file. */ class OC_OCS_Result{ @@ -27,6 +17,8 @@ class OC_OCS_Result{ /** * create the OCS_Result object * @param mixed $data the data to return + * @param int $code + * @param null|string $message */ public function __construct($data=null, $code=100, $message=null) { if ($data === null) { @@ -44,7 +36,7 @@ class OC_OCS_Result{ * optionally set the total number of items available * @param int $items */ - public function setTotalItems(int $items) { + public function setTotalItems($items) { $this->items = $items; } @@ -52,7 +44,7 @@ class OC_OCS_Result{ * optionally set the the number of items per page * @param int $items */ - public function setItemsPerPage(int $items) { + public function setItemsPerPage($items) { $this->perPage = $items; } @@ -92,7 +84,7 @@ class OC_OCS_Result{ } /** - * return bool if the method succedded + * return bool Whether the method succeeded * @return bool */ public function succeeded() { diff --git a/lib/private/preview.php b/lib/private/preview.php index 086d9c0272a..d6bff961a73 100755 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -322,7 +322,7 @@ class Preview { if($fileInfo !== null && $fileInfo !== false) { $fileId = $fileInfo->getId(); - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $previewPath = $this->getPreviewPath($fileId); $this->userView->deleteAll($previewPath); return $this->userView->rmdir($previewPath); } @@ -392,7 +392,7 @@ class Preview { return array(); } - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $previewPath = $this->getPreviewPath($fileId); $wantedAspectRatio = (float) ($this->getMaxX() / $this->getMaxY()); @@ -509,7 +509,7 @@ class Preview { $this->preview = $preview; $this->resizeAndCrop(); - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $previewPath = $this->getPreviewPath($fileId); $cachePath = $this->buildCachePath($fileId); if ($this->userView->is_dir($this->getThumbnailsFolder() . '/') === false) { @@ -797,12 +797,22 @@ class Preview { $maxX = $this->getMaxX(); $maxY = $this->getMaxY(); - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; - $preview = $previewPath . $maxX . '-' . $maxY . '.png'; + $previewPath = $this->getPreviewPath($fileId); + $preview = $previewPath . strval($maxX) . '-' . strval($maxY); if ($this->keepAspect) { - $preview = $previewPath . $maxX . '-with-aspect.png'; - return $preview; + $preview .= '-with-aspect'; } + $preview .= '.png'; + return $preview; } + + + /** + * @param int $fileId + * @return string + */ + private function getPreviewPath($fileId) { + return $this->getThumbnailsFolder() . '/' . $fileId . '/'; + } } diff --git a/lib/private/preview/office-cl.php b/lib/private/preview/office-cl.php index 81e0cf4b6ae..42d2cbf34fc 100644 --- a/lib/private/preview/office-cl.php +++ b/lib/private/preview/office-cl.php @@ -29,7 +29,7 @@ if (!\OC_Util::runningOnWindows()) { $tmpDir = get_temp_dir(); - $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir) . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '; + $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId().'/') . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '; $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters); $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); diff --git a/lib/private/repair.php b/lib/private/repair.php index 4ff446f8608..50e54ae1179 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -84,7 +84,8 @@ class Repair extends BasicEmitter { public static function getBeforeUpgradeRepairSteps() { return array( new \OC\Repair\InnoDB(), - new \OC\Repair\Collation(\OC::$server->getConfig(), \OC_DB::getConnection()) + new \OC\Repair\Collation(\OC::$server->getConfig(), \OC_DB::getConnection()), + new \OC\Repair\SearchLuceneTables() ); } diff --git a/lib/private/security/crypto.php b/lib/private/security/crypto.php index 6fdff8d92a2..498e15d6bc3 100644 --- a/lib/private/security/crypto.php +++ b/lib/private/security/crypto.php @@ -43,6 +43,22 @@ class Crypto implements ICrypto { } /** + * Custom implementation of hex2bin since the function is only available starting + * with PHP 5.4 + * + * @TODO Remove this once 5.3 support for ownCloud is dropped + * @param $message + * @return string + */ + protected static function hexToBin($message) { + if (function_exists('hex2bin')) { + return hex2bin($message); + } + + return pack("H*", $message); + } + + /** * @param string $message The message to authenticate * @param string $password Password to use (defaults to `secret` in config.php) * @return string Calculated HMAC @@ -99,9 +115,9 @@ class Crypto implements ICrypto { throw new \Exception('Authenticated ciphertext could not be decoded.'); } - $ciphertext = hex2bin($parts[0]); + $ciphertext = self::hexToBin($parts[0]); $iv = $parts[1]; - $hmac = hex2bin($parts[2]); + $hmac = self::hexToBin($parts[2]); $this->cipher->setIV($iv); diff --git a/lib/private/security/stringutils.php b/lib/private/security/stringutils.php index 33a3a708012..ecba655ebd6 100644 --- a/lib/private/security/stringutils.php +++ b/lib/private/security/stringutils.php @@ -25,6 +25,10 @@ class StringUtils { */ public static function equals($expected, $input) { + if(!is_string($expected) || !is_string($input)) { + return false; + } + if(function_exists('hash_equals')) { return hash_equals($expected, $input); } diff --git a/lib/private/server.php b/lib/private/server.php index 71a098f9074..912d5c4f635 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -518,4 +518,13 @@ class Server extends SimpleContainer implements IServerContainer { } return new CertificateManager($user); } + + /** + * Create a new event source + * + * @return \OCP\IEventSource + */ + function createEventSource() { + return new \OC_EventSource(); + } } diff --git a/lib/private/setup.php b/lib/private/setup.php index 7ea4c1bcd26..95e908d10ec 100644 --- a/lib/private/setup.php +++ b/lib/private/setup.php @@ -77,6 +77,7 @@ class OC_Setup { //write the config file \OC::$server->getConfig()->setSystemValue('trusted_domains', $trustedDomains); \OC::$server->getConfig()->setSystemValue('datadirectory', $datadir); + \OC::$server->getConfig()->setSystemValue('overwritewebroot', OC::$WEBROOT); \OC::$server->getConfig()->setSystemValue('dbtype', $dbtype); \OC::$server->getConfig()->setSystemValue('version', implode('.', OC_Util::getVersion())); diff --git a/lib/private/share/constants.php b/lib/private/share/constants.php index 4c398c43c2d..798327cc154 100644 --- a/lib/private/share/constants.php +++ b/lib/private/share/constants.php @@ -34,7 +34,7 @@ class Constants { const FORMAT_STATUSES = -2; const FORMAT_SOURCES = -3; // ToDo Check if it is still in use otherwise remove it - const TOKEN_LENGTH = 32; // see db_structure.xml + const TOKEN_LENGTH = 15; // old (oc7) length is 32, keep token length in db at least that for compatibility protected static $shareTypeUserAndGroups = -1; protected static $shareTypeGroupUserUnique = 2; diff --git a/lib/private/share/mailnotifications.php b/lib/private/share/mailnotifications.php index 4a92503bdd3..2f704fb2b3c 100644 --- a/lib/private/share/mailnotifications.php +++ b/lib/private/share/mailnotifications.php @@ -52,7 +52,7 @@ class MailNotifications { * @param string $sender user id (if nothing is set we use the currently logged-in user) */ public function __construct($sender = null) { - $this->l = \OC::$server->getL10N('core'); + $this->l = \OC::$server->getL10N('lib'); $this->senderId = $sender; diff --git a/lib/private/share/share.php b/lib/private/share/share.php index e2e9b94125e..8441e6a94c4 100644 --- a/lib/private/share/share.php +++ b/lib/private/share/share.php @@ -640,7 +640,10 @@ class Share extends \OC\Share\Constants { if (isset($oldToken)) { $token = $oldToken; } else { - $token = \OC_Util::generateRandomBytes(self::TOKEN_LENGTH); + $token = \OC::$server->getSecureRandom()->getMediumStrengthGenerator()->generate(self::TOKEN_LENGTH, + \OCP\Security\ISecureRandom::CHAR_LOWER.\OCP\Security\ISecureRandom::CHAR_UPPER. + \OCP\Security\ISecureRandom::CHAR_DIGITS + ); } $result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, null, $token, $itemSourceName, $expirationDate); diff --git a/lib/private/template/functions.php b/lib/private/template/functions.php index 3cbf0d9748f..cbe751e59b5 100644 --- a/lib/private/template/functions.php +++ b/lib/private/template/functions.php @@ -24,6 +24,56 @@ function print_unescaped($string) { } /** + * Shortcut for adding scripts to a page + * @param string $app the appname + * @param string|string[] $file the filename, + * if an array is given it will add all scripts + */ +function script($app, $file) { + if(is_array($file)) { + foreach($file as $f) { + OC_Util::addScript($app, $f); + } + } else { + OC_Util::addScript($app, $file); + } +} + +/** + * Shortcut for adding styles to a page + * @param string $app the appname + * @param string|string[] $file the filename, + * if an array is given it will add all styles + */ +function style($app, $file) { + if(is_array($file)) { + foreach($file as $f) { + OC_Util::addStyle($app, $f); + } + } else { + OC_Util::addStyle($app, $file); + } +} + +/** + * Shortcut for HTML imports + * @param string $app the appname + * @param string|string[] $file the path relative to the app's component folder, + * if an array is given it will add all components + */ +function component($app, $file) { + if(is_array($file)) { + foreach($file as $f) { + $url = link_to($app, 'component/' . $f . '.html'); + OC_Util::addHeader('link', array('rel' => 'import', 'href' => $url)); + } + } else { + $url = link_to($app, 'component/' . $file . '.html'); + OC_Util::addHeader('link', array('rel' => 'import', 'href' => $url)); + } +} + +/** * make OC_Helper::linkTo available as a simple function * @param string $app app * @param string $file file diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php index b9a97186945..1de47ded3b3 100644 --- a/lib/private/templatelayout.php +++ b/lib/private/templatelayout.php @@ -63,6 +63,7 @@ class OC_TemplateLayout extends OC_Template { parent::__construct('core', 'layout.guest', '', false); } else if ($renderas == 'guest') { parent::__construct('core', 'layout.guest'); + $this->assign('bodyid', 'body-login'); } else { parent::__construct('core', 'layout.base'); } diff --git a/lib/private/util.php b/lib/private/util.php index 6f45e00215d..79f3eb7b48c 100755 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -760,8 +760,8 @@ class OC_Util { foreach ($errors as $value) { $parameters[$value] = true; } - if (!empty($_POST['user'])) { - $parameters["username"] = $_POST['user']; + if (!empty($_REQUEST['user'])) { + $parameters["username"] = $_REQUEST['user']; $parameters['user_autofocus'] = false; } else { $parameters["username"] = ''; @@ -1402,13 +1402,11 @@ class OC_Util { * @return bool|string */ public static function normalizeUnicode($value) { - if (class_exists('Patchwork\PHP\Shim\Normalizer')) { - $normalizedValue = \Patchwork\PHP\Shim\Normalizer::normalize($value); - if ($normalizedValue === false) { - \OC_Log::write('core', 'normalizing failed for "' . $value . '"', \OC_Log::WARN); - } else { - $value = $normalizedValue; - } + $normalizedValue = normalizer_normalize($value); + if ($normalizedValue === null || $normalizedValue === false) { + \OC_Log::write('core', 'normalizing failed for "' . $value . '"', \OC_Log::WARN); + } else { + $value = $normalizedValue; } return $value; diff --git a/lib/public/ieventsource.php b/lib/public/ieventsource.php new file mode 100644 index 00000000000..eb7853c5e90 --- /dev/null +++ b/lib/public/ieventsource.php @@ -0,0 +1,34 @@ +<?php +/** + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP; + +/** + * wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events) + * includes a fallback for older browsers and IE + * + * use server side events with caution, to many open requests can hang the server + * + * The event source will initialize the connection to the client when the first data is sent + */ +interface IEventSource { + /** + * send a message to the client + * + * @param string $type + * @param mixed $data + * + * if only one parameter is given, a typeless message will be send with that parameter as data + */ + public function send($type, $data = null); + + /** + * close the connection of the event source + */ + public function close(); +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index 60b0b497c54..1abf0d9938d 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -235,4 +235,11 @@ interface IServerContainer { * @return \OCP\ICertificateManager */ function getCertificateManager($user = null); + + /** + * Create a new event source + * + * @return \OCP\IEventSource + */ + function createEventSource(); } diff --git a/lib/repair/innodb.php b/lib/repair/innodb.php index 6b795a749e9..0e13c30be95 100644 --- a/lib/repair/innodb.php +++ b/lib/repair/innodb.php @@ -23,7 +23,7 @@ class InnoDB extends BasicEmitter implements \OC\RepairStep { public function run() { $connection = \OC_DB::getConnection(); if (!$connection->getDatabasePlatform() instanceof MySqlPlatform) { - $this->emit('\OC\Repair', 'info', array('Not a mysql database -> nothing to no')); + $this->emit('\OC\Repair', 'info', array('Not a mysql database -> nothing to do')); return; } diff --git a/lib/repair/searchlucenetables.php b/lib/repair/searchlucenetables.php new file mode 100644 index 00000000000..32231e9a1d3 --- /dev/null +++ b/lib/repair/searchlucenetables.php @@ -0,0 +1,63 @@ +<?php +/** + * Copyright (c) 2014 Jörn Friedrich Dreyer <jfd@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Repair; + +use OC\Hooks\BasicEmitter; + +class SearchLuceneTables extends BasicEmitter implements \OC\RepairStep { + + public function getName() { + return 'Repair duplicate entries in oc_lucene_status'; + } + + /** + * Fix duplicate entries in oc_lucene_status + * + * search_lucene prior to v0.5.0 did not have a primary key on the lucene_status table. Newer versions do, which + * causes the migration check to fail because it tries to insert duplicate rows into the new schema. + * + * FIXME Currently, apps don't have a way of repairing anything before the migration check: + * @link https://github.com/owncloud/core/issues/10980 + * + * As a result this repair step needs to live in the core repo, although it belongs into search_lucene: + * @link https://github.com/owncloud/core/issues/10205#issuecomment-54957557 + * + * It will completely remove any rows that make a file id have more than one status: + * fileid | status fileid | status + * --------+-------- will become --------+-------- + * 2 | E 3 | E + * 2 | I + * 3 | E + * + * search_lucene will then reindex the fileids without a status when the next indexing job is executed + */ + public function run() { + if (\OC_DB::tableExists('lucene_status')) { + $this->emit('\OC\Repair', 'info', array('removing duplicate entries from lucene_status')); + + $connection = \OC_DB::getConnection(); + $query = $connection->prepare(' + DELETE FROM `*PREFIX*lucene_status` + WHERE `fileid` IN ( + SELECT `fileid` + FROM ( + SELECT `fileid` + FROM `*PREFIX*lucene_status` + GROUP BY `fileid` + HAVING count(`fileid`) > 1 + ) AS `mysqlerr1093hack` + )'); + $query->execute(); + } else { + $this->emit('\OC\Repair', 'info', array('lucene_status table does not exist -> nothing to do')); + } + } + +} + diff --git a/settings/admin.php b/settings/admin.php index cf37726189b..65deed6b883 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -38,7 +38,7 @@ $tmpl->assign('mail_smtppassword', OC_Config::getValue( "mail_smtppassword", '' $tmpl->assign('entries', $entries); $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); -$tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false); +$tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : 'disabled'); $tmpl->assign('isLocaleWorking', OC_Util::isSetLocaleWorking()); $tmpl->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8()); $tmpl->assign('isAnnotationsWorking', OC_Util::isAnnotationsWorking()); diff --git a/settings/ajax/excludegroups.php b/settings/ajax/excludegroups.php index 2934a448a6a..c3488c5bae7 100644 --- a/settings/ajax/excludegroups.php +++ b/settings/ajax/excludegroups.php @@ -1,5 +1,5 @@ <?php -OC_JSON::checkSubAdminUser(); +OC_JSON::checkAdminUser(); OCP\JSON::callCheck(); $selectedGroups = isset($_POST["selectedGroups"]) ? json_decode($_POST["selectedGroups"]) : array(); diff --git a/settings/ajax/geteveryonecount.php b/settings/ajax/geteveryonecount.php new file mode 100644 index 00000000000..54fbd6e2fbd --- /dev/null +++ b/settings/ajax/geteveryonecount.php @@ -0,0 +1,49 @@ +<?php +/** + * ownCloud + * + * @author Clark Tomlinson + * @copyright 2014 Clark Tomlinson <clark@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +OC_JSON::callCheck(); +OC_JSON::checkSubAdminUser(); + +$userCount = 0; + +$currentUser = \OC::$server->getUserSession()->getLoginName(); + +if (!OC_User::isAdminUser($currentUser)) { + $groups = OC_SubAdmin::getSubAdminsGroups($currentUser); + + foreach ($groups as $group) { + $userCount += count(OC_Group::usersInGroup($group)); + + } +} else { + + $userCountArray = \OC::$server->getUserManager()->countUsers(); + + if (!empty($userCountArray)) { + foreach ($userCountArray as $classname => $usercount) { + $userCount += $usercount; + } + } +} + + +OC_JSON::success(array('count' => $userCount)); diff --git a/settings/js/users/deleteHandler.js b/settings/js/users/deleteHandler.js index d4736d88701..c89a844044e 100644 --- a/settings/js/users/deleteHandler.js +++ b/settings/js/users/deleteHandler.js @@ -35,6 +35,16 @@ function DeleteHandler(endpoint, paramID, markCallback, removeCallback) { } /** + * Number of milliseconds after which the operation is performed. + */ +DeleteHandler.TIMEOUT_MS = 7000; + +/** + * Timer after which the action will be performed anyway. + */ +DeleteHandler.prototype._timeout = null; + +/** * The function to be called after successfully marking the object for deletion * @callback markCallback * @param {string} oid the ID of the specific user or group @@ -72,7 +82,9 @@ DeleteHandler.prototype.setNotification = function(notifier, dataID, message, un var dh = this; - $('#notification').on('click', '.undo', function () { + $('#notification') + .off('click.deleteHandler_' + dataID) + .on('click.deleteHandler_' + dataID, '.undo', function () { if ($('#notification').data(dh.notificationDataID)) { var oid = dh.oidToDelete; dh.cancel(); @@ -116,18 +128,36 @@ DeleteHandler.prototype.hideNotification = function() { */ DeleteHandler.prototype.mark = function(oid) { if(this.oidToDelete !== false) { - this.deleteEntry(); + // passing true to avoid hiding the notification + // twice and causing the second notification + // to disappear immediately + this.deleteEntry(true); } this.oidToDelete = oid; this.canceled = false; this.markCallback(oid); this.showNotification(); + if (this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + if (DeleteHandler.TIMEOUT_MS > 0) { + this._timeout = window.setTimeout( + _.bind(this.deleteEntry, this), + DeleteHandler.TIMEOUT_MS + ); + } }; /** * cancels a delete operation */ DeleteHandler.prototype.cancel = function() { + if (this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + this.canceled = true; this.oidToDelete = false; }; @@ -137,22 +167,31 @@ DeleteHandler.prototype.cancel = function() { * initialized by mark(). On error, it will show a message via * OC.dialogs.alert. On success, a callback is fired so that the client can * update the web interface accordingly. + * + * @param {boolean} [keepNotification] true to keep the notification, false to hide + * it, defaults to false */ -DeleteHandler.prototype.deleteEntry = function() { +DeleteHandler.prototype.deleteEntry = function(keepNotification) { if(this.canceled || this.oidToDelete === false) { return false; } var dh = this; - if($('#notification').data(this.notificationDataID) === true) { + if(!keepNotification && $('#notification').data(this.notificationDataID) === true) { dh.hideNotification(); } + if (this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + var payload = {}; payload[dh.ajaxParamID] = dh.oidToDelete; $.ajax({ type: 'POST', url: OC.filePath('settings', 'ajax', dh.ajaxEndpoint), + // FIXME: do not use synchronous ajax calls as they block the browser ! async: false, data: payload, success: function (result) { diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js index 258b6aa7efd..081842734f0 100644 --- a/settings/js/users/groups.js +++ b/settings/js/users/groups.js @@ -251,12 +251,23 @@ GroupList = { getElementGID: function (element) { return ($(element).closest('li').data('gid') || '').toString(); + }, + getEveryoneCount: function () { + $.ajax({ + type: "GET", + dataType: "json", + url: OC.generateUrl('/settings/ajax/geteveryonecount') + }).success(function (data) { + $('#everyonegroup').data('usercount', data.count); + $('#everyonecount').text(data.count); + }); } }; $(document).ready( function () { $userGroupList = $('#usergrouplist'); GroupList.initDeleteHandling(); + GroupList.getEveryoneCount(); // Display or hide of Create Group List Element $('#newgroup-form').hide(); diff --git a/settings/l10n/bn_BD.php b/settings/l10n/bn_BD.php index c84f51a90fe..be67c187834 100644 --- a/settings/l10n/bn_BD.php +++ b/settings/l10n/bn_BD.php @@ -1,7 +1,11 @@ <?php $TRANSLATIONS = array( +"Invalid value supplied for %s" => "%s এর জন্য অবৈধ ভ্যাল্যু প্রদান করা হয়েছৈ", "Saved" => "সংরক্ষণ করা হলো", +"test email settings" => "ইমেইল নিয়ামকসমূহ পরীক্ষা করুন", +"If you received this email, the settings seem to be correct." => "এই ইমেইলের অর্থ নিয়ামকসমূহ সঠিক।", "Email sent" => "ই-মেইল পাঠানো হয়েছে", +"Send mode" => "পাঠানো মোড", "Encryption" => "সংকেতায়ন", "Unable to load list from App Store" => "অ্যাপস্টোর থেকে তালিকা লোড করতে সক্ষম নয়", "Authentication error" => "অনুমোদন ঘটিত সমস্যা", @@ -30,6 +34,7 @@ $TRANSLATIONS = array( "None" => "কোনটিই নয়", "Login" => "প্রবেশ", "Security Warning" => "নিরাপত্তাজনিত সতর্কতা", +"days" => "দিনগুলি", "Server address" => "সার্ভার ঠিকানা", "Port" => "পোর্ট", "More" => "বেশী", diff --git a/settings/l10n/cs_CZ.php b/settings/l10n/cs_CZ.php index fa2421c813c..12484bdc5e6 100644 --- a/settings/l10n/cs_CZ.php +++ b/settings/l10n/cs_CZ.php @@ -203,11 +203,11 @@ $TRANSLATIONS = array( "Language" => "Jazyk", "Help translate" => "Pomoci s překladem", "SSL root certificates" => "Kořenové certifikáty SSL", -"Common Name" => "Běžný název", +"Common Name" => "Common Name", "Valid until" => "Platný do", "Issued By" => "Vydal", "Valid until %s" => "Platný do %s", -"Import Root Certificate" => "Importovat kořenového certifikátu", +"Import Root Certificate" => "Import kořenového certifikátu", "The encryption app is no longer enabled, please decrypt all your files" => "Šifrovací aplikace již není spuštěna, dešifrujte prosím všechny své soubory", "Log-in password" => "Přihlašovací heslo", "Decrypt all Files" => "Odšifrovat všechny soubory", diff --git a/settings/l10n/es.php b/settings/l10n/es.php index 8dfff713e0d..807cab0a712 100644 --- a/settings/l10n/es.php +++ b/settings/l10n/es.php @@ -131,7 +131,7 @@ $TRANSLATIONS = array( "Sharing" => "Compartiendo", "Allow apps to use the Share API" => "Permitir a las aplicaciones utilizar la API de Compartición", "Allow users to share via link" => "Permite a los usuarios compartir por medio de enlaces", -"Enforce password protection" => "Mejora la protección por contraseña.", +"Enforce password protection" => "Forzar la protección por contraseña.", "Allow public uploads" => "Permitir subidas públicas", "Set default expiration date" => "Establecer fecha de caducidad predeterminada", "Expire after " => "Caduca luego de", diff --git a/settings/l10n/fr.php b/settings/l10n/fr.php index 7b48a8a33bd..42cd848597f 100644 --- a/settings/l10n/fr.php +++ b/settings/l10n/fr.php @@ -40,6 +40,8 @@ $TRANSLATIONS = array( "Wrong admin recovery password. Please check the password and try again." => "Mot de passe administrateur de récupération de données invalide. Veuillez vérifier le mot de passe et essayer à nouveau.", "Back-end doesn't support password change, but the users encryption key was successfully updated." => "L'infrastructure d'arrière-plan ne supporte pas la modification de mot de passe, mais la clef de chiffrement des utilisateurs a été mise à jour avec succès.", "Unable to change password" => "Impossible de modifier le mot de passe", +"Are you really sure you want add \"{domain}\" as trusted domain?" => "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?", +"Add trusted domain" => "Ajouter un domaine de confiance", "Sending..." => "Envoi en cours...", "User Documentation" => "Documentation utilisateur", "Admin Documentation" => "Documentation administrateur", @@ -64,6 +66,7 @@ $TRANSLATIONS = array( "So-so password" => "Mot de passe de sécurité tout juste acceptable", "Good password" => "Mot de passe de sécurité suffisante", "Strong password" => "Mot de passe de forte sécurité", +"Valid until {date}" => "Valide jusqu'au {date}", "Delete" => "Supprimer", "Decrypting files... Please wait, this can take some time." => "Déchiffrement en cours... Cela peut prendre un certain temps.", "Delete encryption keys permanently." => "Supprimer définitivement les clés de chiffrement", @@ -205,6 +208,7 @@ $TRANSLATIONS = array( "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Vos clés de chiffrement ont été déplacées dans l'emplacement de backup. Si quelque chose devait mal se passer, vous pouvez restaurer les clés. Choisissez la suppression permanente seulement si vous êtes sûr que tous les fichiers ont été déchiffrés correctement.", "Restore Encryption Keys" => "Restaurer les clés de chiffrement", "Delete Encryption Keys" => "Supprimer les clés de chiffrement", +"Show last log in" => "Montrer la dernière identification", "Login Name" => "Nom d'utilisateur", "Create" => "Créer", "Admin Recovery Password" => "Récupération du mot de passe administrateur", diff --git a/settings/l10n/hr.php b/settings/l10n/hr.php index 10d481bf0a2..a2e3a959f9b 100644 --- a/settings/l10n/hr.php +++ b/settings/l10n/hr.php @@ -1,45 +1,240 @@ <?php $TRANSLATIONS = array( -"Saved" => "Snimljeno", -"Unable to load list from App Store" => "Nemogićnost učitavanja liste sa Apps Stora", -"Authentication error" => "Greška kod autorizacije", -"Email saved" => "Email spremljen", -"Invalid email" => "Neispravan email", -"Language changed" => "Jezik promijenjen", -"Invalid request" => "Neispravan zahtjev", -"Disable" => "Isključi", -"Enable" => "Uključi", -"Error" => "Greška", -"Delete" => "Obriši", -"undo" => "vrati", +"Invalid value supplied for %s" => "Neispravna vrijednost dostavljena za %s", +"Saved" => "Spremljeno", +"test email settings" => "Postavke za testiranje e-pošte", +"If you received this email, the settings seem to be correct." => "Ako ste ovu e-poštu primili,čini se da su postavke ispravne.", +"A problem occurred while sending the e-mail. Please revisit your settings." => "Za vrijeme slanja e-pošte pojavio se problem. Molimo ponovno posjetite svoje postavke.", +"Email sent" => "E-pošta je poslana", +"You need to set your user email before being able to send test emails." => "Prije nego li ste u mogućnosti slati testnu e-poštu trebate postaviti svoj korisnički email.", +"Send mode" => "Način rada za slanje", +"Encryption" => "Šifriranje", +"Authentication method" => "Postupak autentikacije", +"Unable to load list from App Store" => "Popis iz App Store-a nije moguće učitati.", +"Authentication error" => "Pogrešna autentikacija", +"Your full name has been changed." => "Vaše puno ime je promijenjeno.", +"Unable to change full name" => "Puno ime nije moguće promijeniti.", +"Group already exists" => "Grupa već postoji", +"Unable to add group" => "Grupu nije moguće dodati", +"Files decrypted successfully" => "Datoteke uspješno dešifrirane", +"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Vaše datoteke nije moguće dešifrirati, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.", +"Couldn't decrypt your files, check your password and try again" => "Vaše datoteke nije moguće dešifrirati, provjerite svoju lozinku i pokušajte ponovno.", +"Encryption keys deleted permanently" => "Ključevi za šifriranje trajno izbrisani", +"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Vaše ključeve za šifriranje nije moguće trajno izbrisati, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.", +"Couldn't remove app." => "Nije moguće ukloniti app.", +"Email saved" => "E-pošta spremljena", +"Invalid email" => "E-pošta neispravna", +"Unable to delete group" => "Grupu nije moguće izbrisati", +"Unable to delete user" => "Korisnika nije moguće izbrisati", +"Backups restored successfully" => "Sigurnosne kopije uspješno obnovljene", +"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Vaše ključeve za šifriranje nije moguće obnoviti, molimo provjerite svoj owncloud.logili kontaktirajte svog administratora.", +"Language changed" => "Promjena jezika", +"Invalid request" => "Zahtjev neispravan", +"Admins can't remove themself from the admin group" => "Administratori ne mogu sami sebe ukloniti iz admin grupe", +"Unable to add user to group %s" => "Dodavanje korisnika grupi %s nije moguće", +"Unable to remove user from group %s" => "Uklanjanje korisnika iz grupe %s nije moguće", +"Couldn't update app." => "Ažuriranje aplikacija nije moguće", +"Wrong password" => "Pogrešna lozinka", +"No user supplied" => "Nijedan korisnik nije dostavljen", +"Please provide an admin recovery password, otherwise all user data will be lost" => "Molimo navedite admin lozinku za oporavak, u protivnom će svi korisnički podaci biti izgubljeni.", +"Wrong admin recovery password. Please check the password and try again." => "Pogrešna admin lozinka za oporavak. Molimo provjerite lozinku i pokušajte ponovno.", +"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Pozadina ne podržava promjenu lozinke, ali korisnički ključ za šifriranje je uspješno ažuriran.", +"Unable to change password" => "Promjena lozinke nije moguća", +"Are you really sure you want add \"{domain}\" as trusted domain?" => "Jeste li doista sigurni da želite dodati \"{domain}\" kao pouzdanu domenu?", +"Add trusted domain" => "Dodajte pouzdanu domenu", +"Sending..." => "Slanje...", +"User Documentation" => "Korisnička dokumentacija", +"Admin Documentation" => "Admin dokumentacija", +"Update to {appversion}" => "Ažurirajte u {appversion}", +"Uninstall App" => "Deinstalirajte app", +"Disable" => "Onemogućite", +"Enable" => "Omogućite", +"Please wait...." => "Molimo pričekajte...", +"Error while disabling app" => "Pogreška pri onemogućavanju app", +"Error while enabling app" => "Pogreška pri omogućavanju app", +"Updating...." => "Ažuriranje...", +"Error while updating app" => "Pogreška pri ažuriranju app", +"Error" => "Pogreška", +"Update" => "Ažurirajte", +"Updated" => "Ažurirano", +"Uninstalling ...." => "Deinstaliranje....", +"Error while uninstalling app" => "Pogreška pri deinstaliranju app", +"Uninstall" => "Deinstalirajte", +"Select a profile picture" => "Odaberite sliku profila", +"Very weak password" => "Lozinka vrlo slaba", +"Weak password" => "Lozinka slaba", +"So-so password" => "Lozinka tako-tako", +"Good password" => "Lozinka dobra", +"Strong password" => "Lozinka snažna", +"Valid until {date}" => "Valid until {date}", +"Delete" => "Izbrišite", +"Decrypting files... Please wait, this can take some time." => "Dešifriranje datoteka... Molimo pričekajte, to može potrajati neko vrijeme.", +"Delete encryption keys permanently." => "Trajno izbrišite ključeve za šifriranje", +"Restore encryption keys." => "Obnovite ključeve za šifriranje", +"Unable to delete {objName}" => "Nije moguće izbrisati {objName}", +"Error creating group" => "Pogrešno kreiranje grupe", +"A valid group name must be provided" => "Nužno je navesti valjani naziv grupe", +"deleted {groupName}" => "izbrisana {groupName}", +"undo" => "poništite", "Groups" => "Grupe", -"Group Admin" => "Grupa Admin", +"Group Admin" => "Group Admin", "never" => "nikad", -"__language_name__" => "__ime_jezika__", +"deleted {userName}" => "izbrisano {userName}", +"add group" => "dodajte grupu", +"A valid username must be provided" => "Nužno je navesti valjano korisničko ime", +"Error creating user" => "Pogrešno kreiranje korisnika", +"A valid password must be provided" => "Nužno je navesti valjanu lozinku", +"Warning: Home directory for user \"{user}\" already exists" => "Upozorenje: Osnovni direktorij za korisnika \"{user}\" već postoji", +"__language_name__" => "__jezik_naziv___", +"Everything (fatal issues, errors, warnings, info, debug)" => "Sve (kobni problemi, pogreške, upozorenja, ispravljanje pogrešaka)", +"Info, warnings, errors and fatal issues" => "Informacije, upozorenja, pogreške i kobni problemi", +"Warnings, errors and fatal issues" => "Upozorenja, pogreške i kobni problemi", +"Errors and fatal issues" => "Pogreške i kobni problemi", +"Fatal issues only" => "Samo kobni problemi", +"None" => "Ništa", "Login" => "Prijava", +"Plain" => "Čisti tekst", +"NT LAN Manager" => "NT LAN Manager", +"SSL" => "SSL", +"TLS" => "TLS", +"Security Warning" => "Sigurnosno upozorenje", +"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Vi %s pristupate putem HTTP. Toplo vam preporučujemo da svoj poslužitelj konfigurirate takoda umjesto HTTP zahtijeva korištenje HTTPS.", +"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Vašem podatkovnom direktoriju i vašim datotekama pristup je vjerojatno moguć s interneta.Datoteka .htaccess ne radi. Toplo vam preporučujemo da svoj web poslužitelj konfigurirate tako daje pristup podatkovnom direktoriju nemoguć ili pak podatkovni direktorij premjestite izvan korijena dokumentaweb poslužitelja.", +"Setup Warning" => "Upozorenje programa za postavljanje", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Vaš web poslužitelj još nije propisno postavljen da bi dozvolio sinkronizaciju datotekajer čini se da je sučelje WebDAV neispravno.", +"Please double check the <a href=\"%s\">installation guides</a>." => "Molimo dvostruko provjerite <a href=\"%s\">instalacijske upute</a>.", +"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.", +"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.", +"Database Performance Info" => "Info o performansi baze podataka", +"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite se koristi kao baza podataka. Za veće instalacije preporučujemo da se to promijeni.Za migraciju na neku drugu bazu podataka koristite naredbeni redak: 'occ db: convert-type'", +"Module 'fileinfo' missing" => "Nedostaje modul 'fileinfo'", +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP modul 'fileinfo' nedostaje. Tolo vam preporučjemo da taj modul omogućitekako biste dobili najbolje rezultate u detekciji mime vrste.", +"Your PHP version is outdated" => "Vaša verzija PHP je zastarjela", +"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Vaša verzija PHP je zastarjela. Tolo vam preporučujemo da je ažurirate na 5.3.8.ili još novije jer je poznato da su starije verzije neispravne. Moguće je da ovainstalacija ne radi ispravno.", +"PHP charset is not set to UTF-8" => "PHP Charset nije postavljen na UTF-8", +"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP charset nije postavljen na UTF-8. To može prouzročiti ozbiljne probleme s non-ASCII znakovimau nazivima datoteka. Toplo vam preporučujemo da vrijednost 'default_charset' php.ini promijeniteu 'UTF-8'.", +"Locale not working" => "Regionalna shema ne radi", +"System locale can not be set to a one which supports UTF-8." => "Regionalnu shemu sustava nemoguće je postaviti na neku koja podržava UTF-8.", +"This means that there might be problems with certain characters in file names." => "To znači da se mogu javiti problemi s određenim znakovima u datoteci.", +"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Toplo preporučpujemo da u svoj sustav instalirate potrebne pakete koji će podržatijednu od sljedećih regionalnih shema: %s.", +"Internet connection not working" => "Veza s internetom ne radi", +"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Ovaj poslužitelj nema nikakvu radnu vezu s internetom. To znači da ne rade neke od njegovihfunkcija kao što su spajanje na vanjsku memoriju, notifikacije o ažuriranju ili instalacijiaplikacija treće strane. Također, možda je onemogućen daljinski pristup datotekama i slanjenotifikacijske e-pošte. Savjetujemo vam da, ako želite da sve njegove funkcije rade,omogućite vezuovog poslužitelja s internetom.", +"URL generation in notification emails" => "Generiranje URL-a u notifikacijskoj e-pošti", +"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Ako vaša instalacija nije instalirana u korijenu domene i koristi sustav cron,mogu se javiti problemi s generiranjem URL. Da biste takve probleme izbjegli,molimo postavite opciju \"overwritewebroot\" u vašoj datoteci config.php.na webroot path vaše instalacije (Predlažemo: \"%s\").", "Cron" => "Cron", -"Port" => "Port", -"Log" => "dnevnik", -"More" => "više", -"Add your App" => "Dodajte vašu aplikaciju", -"Select an App" => "Odaberite Aplikaciju", -"See application page at apps.owncloud.com" => "Pogledajte stranicu s aplikacijama na apps.owncloud.com", +"Last cron was executed at %s." => "Zadnji cron je izvršen na %s", +"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Zadnji cron izvršen je na %s. Bilo je to prije više od jednog sata, čini se da nešto nije u redu.", +"Cron was not executed yet!" => "Cron još nije izvršen!", +"Execute one task with each page loaded" => "Izvršite jedan zadatak sa svakom učitanom stranicom", +"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php je registriran na webcron usluzi da poziva cron.php svakih 15 minuta preko http.", +"Use system's cron service to call the cron.php file every 15 minutes." => "Koristite cron uslugu sustava za pozivanje cron.php datoteke svakih 15 minuta.", +"Sharing" => "Dijeljenje zajedničkih resursa", +"Allow apps to use the Share API" => "Dopustite apps korištenje Share API", +"Allow users to share via link" => "Dopustite korisnicia dijeljenje putem veze", +"Enforce password protection" => "Nametnite zaštitu lozinki", +"Allow public uploads" => "Dopustite javno učitavanje sadržaja", +"Set default expiration date" => "Postavite zadani datum isteka", +"Expire after " => "Istek nakon", +"days" => "dana", +"Enforce expiration date" => "Nametnite datum isteka", +"Allow resharing" => "Dopustite ponovno dijeljenje zajedničkih resursa", +"Restrict users to only share with users in their groups" => "Ograničite korisnike na meusobno dijeljenje resursa samo s korisnicima unutar svoje grupe", +"Allow users to send mail notification for shared files" => "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke", +"Exclude groups from sharing" => "Isključite grupe iz dijeljenja zajedničkih resursa", +"These groups will still be able to receive shares, but not to initiate them." => "Ove će grupe još uvijek moći primati dijeljene resurse, ali ne i inicirati ih", +"Security" => "Sigurnost", +"Enforce HTTPS" => "Nametnite HTTPS", +"Forces the clients to connect to %s via an encrypted connection." => "Prisiljava klijente da se priključe na %s putem šifrirane konekcije.", +"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Molimo,priključite se na svoj %s putem HTTPS da biste omogućili ili onemogućili SSL", +"Email Server" => "Poslužitelj e-pošte", +"This is used for sending out notifications." => "Ovo se koristi za slanje notifikacija.", +"From address" => "S adrese", +"mail" => "pošta", +"Authentication required" => "Potrebna autentikacija", +"Server address" => "Adresa poslužitelja", +"Port" => "Priključak", +"Credentials" => "Vjerodajnice", +"SMTP Username" => "Korisničko ime SMTP", +"SMTP Password" => "Lozinka SMPT", +"Test email settings" => "Postavke za testnu e-poštu", +"Send email" => "Pošaljite e-poštu", +"Log" => "Zapisnik", +"Log level" => "Razina zapisnika", +"More" => "Više", +"Less" => "Manje", +"Version" => "Verzija", +"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Razvila <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud zajednica</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">izvorni kod</a> je licenciran <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> licencom.", +"Add your App" => "Dodajte svoje aplikacije", +"More Apps" => "Više aplikacija", +"Select an App" => "Odaberite jednu aplikaciju", +"Documentation:" => "Dokumentacija:", +"See application page at apps.owncloud.com" => "Vidite stranicu aplikacija na apps.owncloud.com", +"See application website" => "Vidite web mjesto aplikacija", +"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-licencirano <span class=\"author\"></span>", +"Enable only for specific groups" => "Omogućite samo za specifične grupe", +"All" => "Sve", +"Administrator Documentation" => "Dokumentacija administratora", +"Online Documentation" => "Online dokumentacija", +"Forum" => "Forum", +"Bugtracker" => "Bugtracker", +"Commercial Support" => "Komercijalna podrška", +"Get the apps to sync your files" => "Koristite aplikacije za sinkronizaciju svojih datoteka", +"If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" => "Ako želite podržati projekt\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">pridružite se razvoju</a>\n\t\tili\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">proširite vijest</a>!", +"Show First Run Wizard again" => "Opet pokažite First Run Wizard", +"You have used <strong>%s</strong> of the available <strong>%s</strong>" => "Iskoristili ste <strong>%s</strong> od raspoloživog <strong>%s</strong>", "Password" => "Lozinka", -"Unable to change your password" => "Nemoguće promijeniti lozinku", +"Your password was changed" => "Vaša je lozinka promijenjena", +"Unable to change your password" => "Vašu lozinku nije moguće promijeniti", "Current password" => "Trenutna lozinka", "New password" => "Nova lozinka", -"Change password" => "Izmjena lozinke", -"Email" => "e-mail adresa", -"Your email address" => "Vaša e-mail adresa", -"Cancel" => "Odustani", +"Change password" => "Promijenite lozinku", +"Full Name" => "Puno ime", +"Email" => "E-pošta", +"Your email address" => "Vaša adresa e-pošte", +"Fill in an email address to enable password recovery and receive notifications" => "Unesite adresu e-pošte da biste omogućili oporavak lozinke i primili notifikacije", +"Profile picture" => "Slika profila", +"Upload new" => "Učitajte novu", +"Select new from Files" => "Odaberite novu iz datoteka", +"Remove image" => "Uklonite sliku", +"Either png or jpg. Ideally square but you will be able to crop it." => "Ili png ili jpg. Idealno bi bilo da je kvadratna, ali moći ćete je obrezati", +"Your avatar is provided by your original account." => "Vaš avatar je isporučen od strane vašeg izvornog računa", +"Cancel" => "Odustanite", +"Choose as profile image" => "Odaberite kao sliku profila", "Language" => "Jezik", -"Help translate" => "Pomoć prevesti", -"Login Name" => "Prijava", -"Create" => "Izradi", +"Help translate" => "Pomozite prevesti", +"SSL root certificates" => "SSL Root certifikati", +"Common Name" => "Common Name", +"Valid until" => "Valid until", +"Issued By" => "Issued By", +"Valid until %s" => "Valid until %s", +"Import Root Certificate" => "Uvoz Root certifikata", +"The encryption app is no longer enabled, please decrypt all your files" => "Aplikacija šifriranja više nije omogćena,molimo dešifrirajte sve svoje datoteke", +"Log-in password" => "Lozinka za prijavu", +"Decrypt all Files" => "Dešifrirajte sve datoteke", +"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Vaši ključevi za šifriranje premješteni su na mjesto sigurnosne kopije. Ako neštokrene loše, ključeve možete obnoviti. Iizbrišite ih trajno samo ako ste sigurni da susve datoteke ispravno dešifrirane.", +"Restore Encryption Keys" => "Obnovite ključeve za šifriranje", +"Delete Encryption Keys" => "Izbrišite ključeve za šifriranje", +"Show storage location" => "Prikaži mjesto pohrane", +"Show last log in" => "Prikaži zadnje spajanje", +"Login Name" => "Ime za prijavu", +"Create" => "Kreirajte", +"Admin Recovery Password" => "Admin lozinka za oporavak", +"Enter the recovery password in order to recover the users files during password change" => "Unesite lozinku za oporavak da biste oporavili korisničke datoteke tijekom promjene lozinke", +"Search Users and Groups" => "Pretražite korisnike i grupe", +"Add Group" => "Dodajte grupu", "Group" => "Grupa", -"Default Quota" => "standardni kvota", -"Other" => "ostali", +"Everyone" => "Svi", +"Admins" => "Admins", +"Default Quota" => "Zadana kvota", +"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Molimo unesite kvotu za spremanje (npr: \"512 MB\" ili \"12 GB\")", +"Unlimited" => "Neograničeno", +"Other" => "Ostalo", "Username" => "Korisničko ime", -"Quota" => "kvota" +"Quota" => "Kvota", +"Storage Location" => "Mjesto za spremanje", +"Last Login" => "Zadnja prijava", +"change full name" => "promijenite puno ime", +"set new password" => "postavite novu lozinku", +"Default" => "Zadano" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/settings/l10n/ja.php b/settings/l10n/ja.php index 88ee4aee1ec..3f4348d22a9 100644 --- a/settings/l10n/ja.php +++ b/settings/l10n/ja.php @@ -40,6 +40,8 @@ $TRANSLATIONS = array( "Wrong admin recovery password. Please check the password and try again." => "リカバリ用の管理者パスワードが間違っています。パスワードを確認して再度実行してください。", "Back-end doesn't support password change, but the users encryption key was successfully updated." => "バックエンドはパスワード変更をサポートしていませんが、ユーザーの暗号化キーは正常に更新されました。", "Unable to change password" => "パスワードを変更できません", +"Are you really sure you want add \"{domain}\" as trusted domain?" => "\"{domain}\" を信頼するドメインに追加してもよろしいでしょうか?", +"Add trusted domain" => "信頼するドメイン名に追加", "Sending..." => "送信中…", "User Documentation" => "ユーザードキュメント", "Admin Documentation" => "管理者ドキュメント", @@ -64,6 +66,7 @@ $TRANSLATIONS = array( "So-so password" => "まずまずのパスワード", "Good password" => "良好なパスワード", "Strong password" => "強いパスワード", +"Valid until {date}" => "{date} まで有効", "Delete" => "削除", "Decrypting files... Please wait, this can take some time." => "ファイルを複合中... しばらくお待ちください、この処理には少し時間がかかるかもしれません。", "Delete encryption keys permanently." => "暗号化キーを永久に削除する。", @@ -109,12 +112,15 @@ $TRANSLATIONS = array( "Your PHP version is outdated" => "PHPバーションが古くなっています。", "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "PHPバーションが古くなっています。古いバージョンには既知の問題があるため、5.3.8以降のバージョンにアップデートすることを強く推奨します。このインストール状態では正常に動作しない可能性があります。", "PHP charset is not set to UTF-8" => "PHP の文字コードは UTF-8 に設定されていません", +"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP の文字コードは UTF-8 に設定されていません。ファイル名に非アスキー文字が含まれる場合は、大きな問題となる可能性があります。php.ini の 'default_charset' の値を 'UTF-8' に変更することを強くお勧めします。", "Locale not working" => "ロケールが動作していません", "System locale can not be set to a one which supports UTF-8." => "システムロケールを UTF-8 をサポートするロケールに設定できません。", "This means that there might be problems with certain characters in file names." => "これは、ファイル名の特定の文字に問題があることを意味しています。", "We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "次のロケールをサポートするために、システムに必要なパッケージをインストールすることを強くおすすめします: %s。", "Internet connection not working" => "インターネット接続が動作していません", "This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "このサーバーはインターネットに接続していません。この場合、外部ストレージのマウント、更新の通知やサードパーティアプリといったいくつかの機能が使えません。また、リモート接続でのファイルアクセス、通知メールの送信と言った機能も利用できないかもしれません。全ての機能を利用したいのであれば、このサーバーからインターネットに接続できるようにすることをお勧めします。", +"URL generation in notification emails" => "通知メールにURLを生成", +"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "もし、URLがドメインのルート(/)で終わっていない場合で、システムのcronを利用している場合、URLの生成に問題が発生します。その場合は、config.php ファイルの中の \"overwritewebroot\" オプションをインストールしたパスに設定してください。(推奨: \"%s\")", "Cron" => "Cron", "Last cron was executed at %s." => "直近では%sにcronが実行されました。", "Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "直近では%sにcronが実行されました。これは1時間以上前になるので、何かおかしいです。", @@ -197,6 +203,10 @@ $TRANSLATIONS = array( "Language" => "言語", "Help translate" => "翻訳に協力する", "SSL root certificates" => "SSLルート証明書", +"Common Name" => "コモンネーム", +"Valid until" => "有効期限", +"Issued By" => "発行元", +"Valid until %s" => "%s まで有効", "Import Root Certificate" => "ルート証明書をインポート", "The encryption app is no longer enabled, please decrypt all your files" => "暗号化アプリはもはや有効ではありません、すべてのファイルを複合してください", "Log-in password" => "ログインパスワード", @@ -204,6 +214,8 @@ $TRANSLATIONS = array( "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "暗号化キーはバックアップ場所に移動されました。何か問題があった場合は、キーを復元することができます。すべてのファイルが正しく復号化されたことが確信できる場合にのみ、キーを完全に削除してください。", "Restore Encryption Keys" => "暗号化キーを復元する", "Delete Encryption Keys" => "暗号化キーを削除する", +"Show storage location" => "データの保存場所を表示", +"Show last log in" => "最終ログインを表示", "Login Name" => "ログイン名", "Create" => "作成", "Admin Recovery Password" => "管理者リカバリパスワード", diff --git a/settings/l10n/ka.php b/settings/l10n/ka.php deleted file mode 100644 index e9024a3c1c9..00000000000 --- a/settings/l10n/ka.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$TRANSLATIONS = array( -"Password" => "პაროლი" -); -$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/settings/l10n/tr.php b/settings/l10n/tr.php index e27ec8af8fe..fc9b18b30cc 100644 --- a/settings/l10n/tr.php +++ b/settings/l10n/tr.php @@ -203,7 +203,7 @@ $TRANSLATIONS = array( "Language" => "Dil", "Help translate" => "Çevirilere yardım edin", "SSL root certificates" => "SSL kök sertifikaları", -"Common Name" => "Ortam Ad", +"Common Name" => "Ortak Ad", "Valid until" => "Geçerlilik", "Issued By" => "Veren", "Valid until %s" => "%s tarihine kadar geçerli", diff --git a/settings/routes.php b/settings/routes.php index 191b5febbd7..86d6049551c 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -27,6 +27,8 @@ $this->create('settings_ajax_userlist', '/settings/ajax/userlist') ->actionInclude('settings/ajax/userlist.php'); $this->create('settings_ajax_grouplist', '/settings/ajax/grouplist') ->actionInclude('settings/ajax/grouplist.php'); +$this->create('settings_ajax_everyonecount', '/settings/ajax/geteveryonecount') + ->actionInclude('settings/ajax/geteveryonecount.php'); $this->create('settings_ajax_createuser', '/settings/ajax/createuser.php') ->actionInclude('settings/ajax/createuser.php'); $this->create('settings_ajax_removeuser', '/settings/ajax/removeuser.php') diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 1f3701778ab..0e6cb14bcef 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -184,7 +184,7 @@ if (!$_['isLocaleWorking']) { } // is internet connection working ? -if (!$_['internetconnectionworking']) { +if ($_['internetconnectionworking'] === false) { ?> <div class="section"> <h2><?php p($l->t('Internet connection not working'));?></h2> diff --git a/settings/templates/users/part.grouplist.php b/settings/templates/users/part.grouplist.php index 255f2a6cf45..5b516bc0e16 100644 --- a/settings/templates/users/part.grouplist.php +++ b/settings/templates/users/part.grouplist.php @@ -12,15 +12,15 @@ </form> </li> <!-- Everyone --> - <li data-gid="_everyone" data-usercount="<?php p($_["usercount"]); ?>" class="isgroup"> + <li id="everyonegroup" data-gid="_everyone" data-usercount="" class="isgroup"> <a href="#"> <span class="groupname"> <?php p($l->t('Everyone')); ?> </span> </a> <span class="utils"> - <span class="usercount"> - <?php p($_["usercount"]); ?> + <span class="usercount" id="everyonecount"> + </span> </span> </li> diff --git a/settings/tests/js/users/deleteHandlerSpec.js b/settings/tests/js/users/deleteHandlerSpec.js new file mode 100644 index 00000000000..6b6328be801 --- /dev/null +++ b/settings/tests/js/users/deleteHandlerSpec.js @@ -0,0 +1,185 @@ +/** +* ownCloud +* +* @author Vincent Petry +* @copyright 2014 Vincent Petry <pvince81@owncloud.com> +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +describe('DeleteHandler tests', function() { + var showNotificationSpy; + var hideNotificationSpy; + var clock; + var removeCallback; + var markCallback; + var undoCallback; + + function init(markCallback, removeCallback, undoCallback) { + var handler = new DeleteHandler('dummyendpoint.php', 'paramid', markCallback, removeCallback); + handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry', undoCallback); + return handler; + } + + beforeEach(function() { + showNotificationSpy = sinon.spy(OC.Notification, 'showHtml'); + hideNotificationSpy = sinon.spy(OC.Notification, 'hide'); + clock = sinon.useFakeTimers(); + removeCallback = sinon.stub(); + markCallback = sinon.stub(); + undoCallback = sinon.stub(); + + $('#testArea').append('<div id="notification"></div>'); + }); + afterEach(function() { + showNotificationSpy.restore(); + hideNotificationSpy.restore(); + clock.restore(); + }); + it('shows a notification when marking for delete', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + + expect(showNotificationSpy.calledOnce).toEqual(true); + expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); + + expect(markCallback.calledOnce).toEqual(true); + expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); + expect(removeCallback.notCalled).toEqual(true); + expect(undoCallback.notCalled).toEqual(true); + + expect(fakeServer.requests.length).toEqual(0); + }); + it('deletes first entry and reshows notification on second delete', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + + expect(showNotificationSpy.calledOnce).toEqual(true); + expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); + showNotificationSpy.reset(); + + handler.mark('some_other_uid'); + + expect(hideNotificationSpy.calledOnce).toEqual(true); + expect(showNotificationSpy.calledOnce).toEqual(true); + expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_other_uid entry'); + + expect(markCallback.calledTwice).toEqual(true); + expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); + expect(markCallback.getCall(1).args[0]).toEqual('some_other_uid'); + expect(removeCallback.notCalled).toEqual(true); + expect(undoCallback.notCalled).toEqual(true); + + // previous one was delete + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php'); + }); + it('automatically deletes after timeout', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + + clock.tick(5000); + // nothing happens yet + expect(fakeServer.requests.length).toEqual(0); + + clock.tick(3000); + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php'); + }); + it('deletes when deleteEntry is called', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + + handler.deleteEntry(); + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + expect(request.url).toEqual(OC.webroot + '/index.php/settings/ajax/dummyendpoint.php'); + }); + it('cancels deletion when undo is clicked', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); + handler.mark('some_uid'); + $('#notification .undo').click(); + + expect(undoCallback.calledOnce).toEqual(true); + + // timer was cancelled + clock.tick(10000); + expect(fakeServer.requests.length).toEqual(0); + }); + it('cancels deletion when cancel method is called', function() { + var handler = init(markCallback, removeCallback, undoCallback); + handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); + handler.mark('some_uid'); + handler.cancel(); + + // not sure why, seems to be by design + expect(undoCallback.notCalled).toEqual(true); + + // timer was cancelled + clock.tick(10000); + expect(fakeServer.requests.length).toEqual(0); + }); + it('calls removeCallback after successful server side deletion', function() { + fakeServer.respondWith(/\/index\.php\/settings\/ajax\/dummyendpoint.php/, [ + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({status: 'success'}) + ]); + + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + handler.deleteEntry(); + + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + var query = OC.parseQueryString(request.requestBody); + expect(query.paramid).toEqual('some_uid'); + + expect(removeCallback.calledOnce).toEqual(true); + expect(undoCallback.notCalled).toEqual(true); + expect(removeCallback.getCall(0).args[0]).toEqual('some_uid'); + }); + it('calls undoCallback and shows alert after failed server side deletion', function() { + // stub t to avoid extra calls + var tStub = sinon.stub(window, 't').returns('text'); + fakeServer.respondWith(/\/index\.php\/settings\/ajax\/dummyendpoint.php/, [ + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({status: 'error', data: {message: 'test error'}}) + ]); + + var alertDialogStub = sinon.stub(OC.dialogs, 'alert'); + var handler = init(markCallback, removeCallback, undoCallback); + handler.mark('some_uid'); + handler.deleteEntry(); + + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + var query = OC.parseQueryString(request.requestBody); + expect(query.paramid).toEqual('some_uid'); + + expect(removeCallback.notCalled).toEqual(true); + expect(undoCallback.calledOnce).toEqual(true); + expect(undoCallback.getCall(0).args[0]).toEqual('some_uid'); + + expect(alertDialogStub.calledOnce); + + alertDialogStub.restore(); + tStub.restore(); + }); +}); diff --git a/settings/users.php b/settings/users.php index bc6c2ea7e7c..94dda43c523 100644 --- a/settings/users.php +++ b/settings/users.php @@ -60,13 +60,13 @@ $defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false // load users and quota foreach($accessibleUsers as $uid => $displayName) { - $quota=OC_Preferences::getValue($uid, 'files', 'quota', 'default'); - $isQuotaUserDefined=array_search($quota, $quotaPreset)===false - && array_search($quota, array('none', 'default'))===false; + $quota = OC_Preferences::getValue($uid, 'files', 'quota', 'default'); + $isQuotaUserDefined = array_search($quota, $quotaPreset) === false + && array_search($quota, array('none', 'default')) === false; $name = $displayName; - if ( $displayName !== $uid ) { - $name = $name . ' ('.$uid.')'; + if ($displayName !== $uid) { + $name = $name . ' (' . $uid . ')'; } $user = $userManager->get($uid); @@ -82,17 +82,16 @@ foreach($accessibleUsers as $uid => $displayName) { ); } -$tmpl = new OC_Template( "settings", "users/main", "user" ); -$tmpl->assign( 'users', $users ); -$tmpl->assign( 'groups', $groups ); -$tmpl->assign( 'adminGroup', $adminGroup ); -$tmpl->assign( 'isAdmin', (int) $isAdmin); -$tmpl->assign( 'subadmins', $subadmins); -$tmpl->assign('usercount', count($users)); -$tmpl->assign( 'numofgroups', count($groups) + count($adminGroup)); -$tmpl->assign( 'quota_preset', $quotaPreset); -$tmpl->assign( 'default_quota', $defaultQuota); -$tmpl->assign( 'defaultQuotaIsUserDefined', $defaultQuotaIsUserDefined); -$tmpl->assign( 'recoveryAdminEnabled', $recoveryAdminEnabled); -$tmpl->assign( 'enableAvatars', \OC_Config::getValue('enable_avatars', true)); +$tmpl = new OC_Template("settings", "users/main", "user"); +$tmpl->assign('users', $users); +$tmpl->assign('groups', $groups); +$tmpl->assign('adminGroup', $adminGroup); +$tmpl->assign('isAdmin', (int)$isAdmin); +$tmpl->assign('subadmins', $subadmins); +$tmpl->assign('numofgroups', count($groups) + count($adminGroup)); +$tmpl->assign('quota_preset', $quotaPreset); +$tmpl->assign('default_quota', $defaultQuota); +$tmpl->assign('defaultQuotaIsUserDefined', $defaultQuotaIsUserDefined); +$tmpl->assign('recoveryAdminEnabled', $recoveryAdminEnabled); +$tmpl->assign('enableAvatars', \OC::$server->getConfig()->getSystemValue('enable_avatars', true)); $tmpl->printPage(); diff --git a/status.php b/status.php index a42c1581b83..db5813814d0 100644 --- a/status.php +++ b/status.php @@ -25,9 +25,11 @@ try { require_once 'lib/base.php'; - if(OC_Config::getValue('installed')==1) $installed='true'; else $installed='false'; + $installed = OC_Config::getValue('installed') == 1; + $maintenance = OC_Config::getValue('maintenance', false); $values=array( 'installed'=>$installed, + 'maintenance' => $maintenance, 'version'=>implode('.', OC_Util::getVersion()), 'versionstring'=>OC_Util::getVersionString(), 'edition'=>OC_Util::getEditionString()); diff --git a/tests/acceptance/protractor_conf.js b/tests/acceptance/protractor_conf.js index d50ec88913e..e89e79e5478 100644 --- a/tests/acceptance/protractor_conf.js +++ b/tests/acceptance/protractor_conf.js @@ -19,13 +19,14 @@ exports.config = { baseUrl: "http://127.0.0.1/", login: { user: 'admin', - password: 'password' + password: 'password' } }, suites: { install: 'tests/install/**/*_spec.js', login: 'tests/login/**/*_spec.js', + apps: 'tests/apps/**/*_spec.js', files: 'tests/files/**/*_spec.js', share: 'tests/share/**/*_spec.js', }, diff --git a/tests/acceptance/tests/apps/apps_spec.js b/tests/acceptance/tests/apps/apps_spec.js new file mode 100644 index 00000000000..0b7937f97ab --- /dev/null +++ b/tests/acceptance/tests/apps/apps_spec.js @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2014 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global element, browser, require */ +var Page = require('../helper/page.js'); +var AppsPage = require('../pages/apps.page.js'); +var LoginPage = require('../pages/login.page.js'); + +describe('Enabling apps', function() { + var testApp; + var params = browser.params; + var loginPage; + var appsPage; + var testGroup; + + beforeEach(function() { + isAngularSite(false); + // app to test, must have a navigation entry and allow group restriction + testApp = 'calendar'; + // group to test, additionally to "admin" + testGroup = 'group1'; + loginPage = new LoginPage(params.baseUrl); + appsPage = new AppsPage(params.baseUrl); + + loginPage.get(); + loginPage.login(params.login.user, params.login.password); + appsPage.get(); + }); + + afterEach(function() { + Page.logout(); + }); + + it('user should see enabled app', function() { + appsPage.enableApp(testApp, true, null).then(function() { + // reload page + appsPage.get(); + Page.toggleAppsMenu(); + expect(element(Page.appMenuEntryId(testApp + '_index')).isPresent()).toBe(true); + }); + }); + + it('user should not see disabled app', function() { + appsPage.enableApp(testApp, false, null).then(function() { + // reload page + appsPage.get(); + Page.toggleAppsMenu(); + expect(element(Page.appMenuEntryId(testApp + '_index')).isPresent()).toBe(false); + }); + }); + + it('group member should see app when enabled in that group', function() { + appsPage.enableApp(testApp, true, ['admin']).then(function() { + // reload page + appsPage.get(); + Page.toggleAppsMenu(); + expect(element(Page.appMenuEntryId(testApp + '_index')).isPresent()).toBe(true); + }); + }); + + it('group member should not see app when enabled in another group', function() { + appsPage.enableApp(testApp, true, ['group1']).then(function() { + // reload page + appsPage.get(); + Page.toggleAppsMenu(); + expect(element(Page.appMenuEntryId(testApp + '_index')).isPresent()).toBe(false); + }); + }); + + it('group member should see app when all groups deselected (all case)', function() { + // when selecting no groups, it will show "All" even though the checkboxes + // are not checked + appsPage.enableApp(testApp, true, []).then(function() { + // reload page + appsPage.get(); + Page.toggleAppsMenu(); + expect(element(Page.appMenuEntryId(testApp + '_index')).isPresent()).toBe(false); + }); + }); +}); diff --git a/tests/acceptance/tests/helper/page.js b/tests/acceptance/tests/helper/page.js index 9a86e95d929..98545032bea 100644 --- a/tests/acceptance/tests/helper/page.js +++ b/tests/acceptance/tests/helper/page.js @@ -1,14 +1,100 @@ +/* + * Copyright (c) 2014 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global protractor, module, element, by, browser */ (function() { + var Page = function() { + + }; + + Page.prototype.moveMouseTo = function(locator) { + var ele = element(locator); + return browser.actions().mouseMove(ele).perform(); + }; + + Page.toggleAppsMenu = function() { + var el = element(this.appsMenuId()); + return el.click(); + }; + + Page.logout = function() { + element(Page.settingsMenuId()).click(); + element(by.id('logout')).click(); + browser.sleep(300); + }; + + //================ LOCATOR FUNCTIONS ====================================// + Page.appsMenuId = function() { + return by.css('#header .menutoggle'); + }; + + Page.appMenuEntryId = function(appId) { + return by.css('nav #apps [data-id=\'' + appId + '\']'); + }; + + Page.settingsMenuId = function() { + return by.css('#header #settings'); + }; + + //================ UTILITY FUNCTIONS ====================================// + + /** + * Sets the selection of a multiselect element + * + * @param el select element of the multiselect + * @param {Array} id of the values to select + */ + Page.multiSelectSetSelection = function(el, selection) { + var d = protractor.promise.defer(); + var dropDownEl = element(by.css('.multiselectoptions.down')); + + el.click(); + + function processEntry(entry) { + entry.isSelected().then(function(selected) { + entry.getAttribute('id').then(function(inputId) { + // format is "ms0-option-theid", we extract that id + var dataId = inputId.split('-')[2]; + var mustBeSelected = selection.indexOf(dataId) >= 0; + // if state doesn't match what we want, toggle - - var Page = function() { + if (selected !== mustBeSelected) { + // need to click on the label, not input + entry.element(by.xpath('following-sibling::label')).click(); + // confirm that the checkbox was set + browser.wait(function() { + return entry.isSelected().then(function(newSelection) { + return newSelection === mustBeSelected; + }); + }); + } + }); + }); + } - }; + browser.wait(function() { + return dropDownEl.isPresent(); + }, 1000).then(function() { + dropDownEl.all(by.css('[type=checkbox]')).then(function(entries) { + for (var i = 0; i < entries.length; i++) { + processEntry(entries[i]); + } + // give it some time to save changes + browser.sleep(300).then(function() { + d.fulfill(true); + }); + }); + }); - Page.prototype.moveMouseTo = function(locator) { - var ele = element(locator); - return browser.actions().mouseMove(ele).perform(); - } + return d.promise; + }; - module.exports = Page; + module.exports = Page; })(); diff --git a/tests/acceptance/tests/pages/apps.page.js b/tests/acceptance/tests/pages/apps.page.js new file mode 100644 index 00000000000..eb018979c90 --- /dev/null +++ b/tests/acceptance/tests/pages/apps.page.js @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2014 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global module, protractor, element, by, browser, require */ +(function() { + var Page = require('../helper/page.js'); + + var AppsPage = function(baseUrl) { + this.baseUrl = baseUrl; + this.path = 'index.php/settings/apps'; + this.url = baseUrl + this.path; + + this.appList = element(by.css('#app-navigation .applist')); + }; + + //================ LOCATOR FUNCTIONS ====================================// + AppsPage.prototype.appId = function(appId) { + return by.css('#app-navigation .applist [data-id=\'' + appId + '\']'); + }; + + AppsPage.prototype.enableButtonId = function() { + return by.css('#app-content .appinfo .enable'); + }; + + AppsPage.prototype.groupsEnableCheckboxId = function() { + return by.id('groups_enable'); + }; + + AppsPage.prototype.groupsEnableListId = function() { + return by.css('#app-content .multiselect.button'); + }; + //================ SHARED ===============================================// + + AppsPage.prototype.get = function() { + browser.get(this.url); + + var appList = this.appList; + browser.wait(function() { + return appList.isDisplayed(); + }, 5000, 'load app page'); + }; + + /** + * Enables or disables the given app. + * + * @param {String} appId app id + * @param {bool} [state] true (default) to enable the app, false otherwise + * @param {Array} [groups] groups for which to enable the app or null to disable + * group selection. If not specified (undefined), the group checkbox, if it exists, + * will be left as is. + */ + AppsPage.prototype.enableApp = function(appId, state, groups) { + var d = protractor.promise.defer(); + if (state === undefined) { + state = true; + } + + var enableButton = element(this.enableButtonId()); + + element(this.appId(appId)).click(); + browser.wait(function() { + return enableButton.isPresent(); + }, 800); + + // an app is already enabled if the button value is "Disable" + enableButton.getAttribute('value').then(function(attr) { + if (state !== (attr === 'Disable')) { + enableButton.click(); + } + }); + + // wait for the button to change its attribute + browser.wait(function() { + return enableButton.getAttribute('value').then(function(attr) { + return attr === state ? 'Disable' : 'Enable'; + }); + }, 800); + + if (state && groups !== undefined) { + var groupsCheckbox = element(this.groupsEnableCheckboxId()); + var hasGroups = false; + + if (groups && groups.length > 0) { + hasGroups = true; + } + + // check/uncheck checkbox to match desired state + groupsCheckbox.isSelected().then(function(checkboxState) { + if (hasGroups !== checkboxState) { + groupsCheckbox.click(); + } + }); + + // wait for checkbox to change state + browser.wait(function() { + return groupsCheckbox.isSelected().then(function(checkboxState) { + return hasGroups === checkboxState; + }); + }, 800); + + if (hasGroups) { + var groupsList = element(this.groupsEnableListId()); + Page.multiSelectSetSelection(groupsList, groups).then(function() { + d.fulfill(true); + }); + } else { + d.fulfill(true); + } + } + return d.promise; + }; + + module.exports = AppsPage; +})(); diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 99374d68a5c..8dd7784d430 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -10,6 +10,10 @@ if ($configDir) { require_once __DIR__ . '/../lib/base.php'; +// load minimum set of apps +OC_App::loadApps(array('authentication')); +OC_App::loadApps(array('filesystem', 'logging')); + if (!class_exists('PHPUnit_Framework_TestCase')) { require_once('PHPUnit/Autoload.php'); } diff --git a/tests/karma.config.js b/tests/karma.config.js index 14a0d7e8464..357fcf3f122 100644 --- a/tests/karma.config.js +++ b/tests/karma.config.js @@ -66,7 +66,15 @@ module.exports = function(config) { 'apps/files_external/js/mountsfilelist.js' ], testFiles: ['apps/files_external/tests/js/*.js'] - }]; + }, + { + name: 'settings', + srcFiles: [ + 'settings/js/users/deleteHandler.js' + ], + testFiles: ['settings/tests/js/users/deleteHandlerSpec.js'] + } + ]; } // respect NOCOVERAGE env variable diff --git a/tests/lib/appframework/routing/RoutingTest.php b/tests/lib/appframework/routing/RoutingTest.php index 7cd07db6ce1..a1d9a51a3c8 100644 --- a/tests/lib/appframework/routing/RoutingTest.php +++ b/tests/lib/appframework/routing/RoutingTest.php @@ -45,6 +45,15 @@ class RoutingTest extends \PHPUnit_Framework_TestCase $this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', array('something')); } + public function testSimpleRouteWithDefaults() + { + $routes = array('routes' => array( + array('name' => 'folders#open', 'url' => '/folders/{folderId}/open', 'verb' => 'delete', array(), 'defaults' => array('param' => 'foobar')) + )); + + $this->assertSimpleRoute($routes, 'folders.open', 'DELETE', '/folders/{folderId}/open', 'FoldersController', 'open', array(), array('param' => 'foobar')); + } + /** * @expectedException \UnexpectedValueException @@ -95,10 +104,10 @@ class RoutingTest extends \PHPUnit_Framework_TestCase * @param string $controllerName * @param string $actionName */ - private function assertSimpleRoute($routes, $name, $verb, $url, $controllerName, $actionName, array $requirements=array()) + private function assertSimpleRoute($routes, $name, $verb, $url, $controllerName, $actionName, array $requirements=array(), array $defaults=array()) { // route mocks - $route = $this->mockRoute($verb, $controllerName, $actionName, $requirements); + $route = $this->mockRoute($verb, $controllerName, $actionName, $requirements, $defaults); // router mock $router = $this->getMock("\OC\Route\Router", array('create')); @@ -181,10 +190,10 @@ class RoutingTest extends \PHPUnit_Framework_TestCase * @param string $actionName * @return \PHPUnit_Framework_MockObject_MockObject */ - private function mockRoute($verb, $controllerName, $actionName, array $requirements=array()) + private function mockRoute($verb, $controllerName, $actionName, array $requirements=array(), array $defaults=array()) { $container = new DIContainer('app1'); - $route = $this->getMock("\OC\Route\Route", array('method', 'action', 'requirements'), array(), '', false); + $route = $this->getMock("\OC\Route\Route", array('method', 'action', 'requirements', 'defaults'), array(), '', false); $route ->expects($this->exactly(1)) ->method('method') @@ -204,6 +213,15 @@ class RoutingTest extends \PHPUnit_Framework_TestCase ->with($this->equalTo($requirements)) ->will($this->returnValue($route)); } + + if (count($defaults) > 0) { + $route + ->expects($this->exactly(1)) + ->method('defaults') + ->with($this->equalTo($defaults)) + ->will($this->returnValue($route)); + } + return $route; } diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php index f9f485a5400..1602c5181fe 100644 --- a/tests/lib/connector/sabre/file.php +++ b/tests/lib/connector/sabre/file.php @@ -55,6 +55,7 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { ->will($this->returnValue(123456)); $_SERVER['CONTENT_LENGTH'] = 123456; + $_SERVER['REQUEST_METHOD'] = 'PUT'; $info = new \OC\Files\FileInfo('/test.txt', null, null, array( 'permissions' => \OCP\PERMISSION_ALL @@ -131,6 +132,7 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { ->will($this->returnValue(123456)); $_SERVER['CONTENT_LENGTH'] = 12345; + $_SERVER['REQUEST_METHOD'] = 'PUT'; $info = new \OC\Files\FileInfo('/test.txt', null, null, array( 'permissions' => \OCP\PERMISSION_ALL diff --git a/tests/lib/db.php b/tests/lib/db.php index 4b1a474c4ef..1f62413cbe4 100644 --- a/tests/lib/db.php +++ b/tests/lib/db.php @@ -125,6 +125,28 @@ class Test_DB extends PHPUnit_Framework_TestCase { $this->assertEquals(4, count($result->fetchAll())); } + public function testInsertIfNotExistNull() { + $categoryentries = array( + array('addressbookid' => 123, 'fullname' => null, 'expectedResult' => 1), + array('addressbookid' => 123, 'fullname' => null, 'expectedResult' => 0), + array('addressbookid' => 123, 'fullname' => 'test', 'expectedResult' => 1), + ); + + foreach($categoryentries as $entry) { + $result = OC_DB::insertIfNotExist('*PREFIX*'.$this->table2, + array( + 'addressbookid' => $entry['addressbookid'], + 'fullname' => $entry['fullname'], + )); + $this->assertEquals($entry['expectedResult'], $result); + } + + $query = OC_DB::prepare('SELECT * FROM `*PREFIX*'.$this->table2.'`'); + $result = $query->execute(); + $this->assertTrue((bool)$result); + $this->assertEquals(2, count($result->fetchAll())); + } + public function testinsertIfNotExistDontOverwrite() { $fullname = 'fullname test'; $uri = 'uri_1'; diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index 760000a485b..03fe4b26e7f 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -149,6 +149,8 @@ class Cache extends \PHPUnit_Framework_TestCase { array('😐, NEUTRAL_FACE, UTF-8 hex F09F9890'), // now the crazy stuff array(', UNASSIGNED PRIVATE USE, UTF-8 hex EF9890'), + // and my favorite + array('w͢͢͝h͡o͢͡ ̸͢k̵͟n̴͘ǫw̸̛s͘ ̀́w͘͢ḩ̵a҉̡͢t ̧̕h́o̵r͏̵rors̡ ̶͡͠lį̶e͟͟ ̶͝in͢ ͏t̕h̷̡͟e ͟͟d̛a͜r̕͡k̢̨ ͡h̴e͏a̷̢̡rt́͏ ̴̷͠ò̵̶f̸ u̧͘ní̛͜c͢͏o̷͏d̸͢e̡͝') ); } diff --git a/tests/lib/files/etagtest.php b/tests/lib/files/etagtest.php index af9f66835f0..b5dec107e79 100644 --- a/tests/lib/files/etagtest.php +++ b/tests/lib/files/etagtest.php @@ -62,7 +62,7 @@ class EtagTest extends \PHPUnit_Framework_TestCase { $files = array('/foo.txt', '/folder/bar.txt', '/folder/subfolder', '/folder/subfolder/qwerty.txt'); $originalEtags = $this->getEtags($files); - $scanner = new \OC\Files\Utils\Scanner($user1); + $scanner = new \OC\Files\Utils\Scanner($user1, \OC::$server->getDatabaseConnection()); $scanner->backgroundScan('/'); $newEtags = $this->getEtags($files); diff --git a/tests/lib/files/objectstore/swift.php b/tests/lib/files/objectstore/swift.php index 900367553d7..37d6cc74de6 100644 --- a/tests/lib/files/objectstore/swift.php +++ b/tests/lib/files/objectstore/swift.php @@ -111,4 +111,87 @@ class Swift extends \Test\Files\Storage\Storage { } } + /** + * @dataProvider copyAndMoveProvider + */ + public function testMove($source, $target) { + $this->initSourceAndTarget($source); + $sourceId = $this->instance->getCache()->getId(ltrim('/',$source)); + $this->assertNotEquals(-1, $sourceId); + + $this->instance->rename($source, $target); + + $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); + $this->assertFalse($this->instance->file_exists($source), $source.' still exists'); + $this->assertSameAsLorem($target); + + $targetId = $this->instance->getCache()->getId(ltrim('/',$target)); + $this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); + } + + public function testRenameDirectory() { + $this->instance->mkdir('source'); + $this->instance->file_put_contents('source/test1.txt', 'foo'); + $this->instance->file_put_contents('source/test2.txt', 'qwerty'); + $this->instance->mkdir('source/subfolder'); + $this->instance->file_put_contents('source/subfolder/test.txt', 'bar'); + $sourceId = $this->instance->getCache()->getId('source'); + $this->assertNotEquals(-1, $sourceId); + $this->instance->rename('source', 'target'); + + $this->assertFalse($this->instance->file_exists('source')); + $this->assertFalse($this->instance->file_exists('source/test1.txt')); + $this->assertFalse($this->instance->file_exists('source/test2.txt')); + $this->assertFalse($this->instance->file_exists('source/subfolder')); + $this->assertFalse($this->instance->file_exists('source/subfolder/test.txt')); + + $this->assertTrue($this->instance->file_exists('target')); + $this->assertTrue($this->instance->file_exists('target/test1.txt')); + $this->assertTrue($this->instance->file_exists('target/test2.txt')); + $this->assertTrue($this->instance->file_exists('target/subfolder')); + $this->assertTrue($this->instance->file_exists('target/subfolder/test.txt')); + + $this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); + $this->assertEquals('qwerty', $this->instance->file_get_contents('target/test2.txt')); + $this->assertEquals('bar', $this->instance->file_get_contents('target/subfolder/test.txt')); + $targetId = $this->instance->getCache()->getId('target'); + $this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); + } + + public function testRenameOverWriteDirectory() { + $this->instance->mkdir('source'); + $this->instance->file_put_contents('source/test1.txt', 'foo'); + $sourceId = $this->instance->getCache()->getId('source'); + $this->assertNotEquals(-1, $sourceId); + + $this->instance->mkdir('target'); + $this->instance->file_put_contents('target/test1.txt', 'bar'); + $this->instance->file_put_contents('target/test2.txt', 'bar'); + + $this->instance->rename('source', 'target'); + + $this->assertFalse($this->instance->file_exists('source')); + $this->assertFalse($this->instance->file_exists('source/test1.txt')); + $this->assertFalse($this->instance->file_exists('target/test2.txt')); + $this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); + $targetId = $this->instance->getCache()->getId('target'); + $this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); + } + + public function testRenameOverWriteDirectoryOverFile() { + $this->instance->mkdir('source'); + $this->instance->file_put_contents('source/test1.txt', 'foo'); + $sourceId = $this->instance->getCache()->getId('source'); + $this->assertNotEquals(-1, $sourceId); + + $this->instance->file_put_contents('target', 'bar'); + + $this->instance->rename('source', 'target'); + + $this->assertFalse($this->instance->file_exists('source')); + $this->assertFalse($this->instance->file_exists('source/test1.txt')); + $this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); + $targetId = $this->instance->getCache()->getId('target'); + $this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); + } } diff --git a/tests/lib/files/utils/scanner.php b/tests/lib/files/utils/scanner.php index 5e5cc6ac128..27b9b8dd4f4 100644 --- a/tests/lib/files/utils/scanner.php +++ b/tests/lib/files/utils/scanner.php @@ -49,7 +49,7 @@ class Scanner extends \PHPUnit_Framework_TestCase { $storage->file_put_contents('foo.txt', 'qwerty'); $storage->file_put_contents('folder/bar.txt', 'qwerty'); - $scanner = new TestScanner(''); + $scanner = new TestScanner('', \OC::$server->getDatabaseConnection()); $scanner->addMount($mount); $scanner->scan(''); @@ -71,7 +71,7 @@ class Scanner extends \PHPUnit_Framework_TestCase { $storage->file_put_contents('foo.txt', 'qwerty'); $storage->file_put_contents('folder/bar.txt', 'qwerty'); - $scanner = new TestScanner(''); + $scanner = new TestScanner('', \OC::$server->getDatabaseConnection()); $scanner->addMount($mount); $scanner->scan(''); @@ -98,7 +98,7 @@ class Scanner extends \PHPUnit_Framework_TestCase { $storage->file_put_contents('foo.txt', 'qwerty'); $storage->file_put_contents('folder/bar.txt', 'qwerty'); - $scanner = new TestScanner(''); + $scanner = new TestScanner('', \OC::$server->getDatabaseConnection()); $originalPropagator = $scanner->getPropagator(); $scanner->setPropagator($propagator); $scanner->addMount($mount); diff --git a/tests/lib/helper.php b/tests/lib/helper.php index 20b8571b91d..cb342e295ba 100644 --- a/tests/lib/helper.php +++ b/tests/lib/helper.php @@ -443,15 +443,33 @@ class Test_Helper extends PHPUnit_Framework_TestCase { public function testLinkToPublic() { \OC::$WEBROOT = ''; $result = \OC_Helper::linkToPublic('files'); - $this->assertEquals('http://localhost/public.php?service=files', $result); + $this->assertEquals('http://localhost/s', $result); $result = \OC_Helper::linkToPublic('files', false); - $this->assertEquals('http://localhost/public.php?service=files', $result); + $this->assertEquals('http://localhost/s', $result); + $result = \OC_Helper::linkToPublic('files', true); + $this->assertEquals('http://localhost/s/', $result); + + $result = \OC_Helper::linkToPublic('other'); + $this->assertEquals('http://localhost/public.php?service=other', $result); + $result = \OC_Helper::linkToPublic('other', false); + $this->assertEquals('http://localhost/public.php?service=other', $result); + $result = \OC_Helper::linkToPublic('other', true); + $this->assertEquals('http://localhost/public.php?service=other/', $result); \OC::$WEBROOT = '/owncloud'; $result = \OC_Helper::linkToPublic('files'); - $this->assertEquals('http://localhost/owncloud/public.php?service=files', $result); + $this->assertEquals('http://localhost/owncloud/s', $result); $result = \OC_Helper::linkToPublic('files', false); - $this->assertEquals('http://localhost/owncloud/public.php?service=files', $result); + $this->assertEquals('http://localhost/owncloud/s', $result); + $result = \OC_Helper::linkToPublic('files', true); + $this->assertEquals('http://localhost/owncloud/s/', $result); + + $result = \OC_Helper::linkToPublic('other'); + $this->assertEquals('http://localhost/owncloud/public.php?service=other', $result); + $result = \OC_Helper::linkToPublic('other', false); + $this->assertEquals('http://localhost/owncloud/public.php?service=other', $result); + $result = \OC_Helper::linkToPublic('other', true); + $this->assertEquals('http://localhost/owncloud/public.php?service=other/', $result); } /** diff --git a/tests/lib/image.php b/tests/lib/image.php index 131a9d86f3e..795bc464159 100644 --- a/tests/lib/image.php +++ b/tests/lib/image.php @@ -115,6 +115,9 @@ class Test_Image extends PHPUnit_Framework_TestCase { public function testData() { $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); + // Preserve transparency + imagealphablending($raw, true); + imagesavealpha($raw, true); ob_start(); imagepng($raw); $expected = ob_get_clean(); diff --git a/tests/lib/util.php b/tests/lib/util.php index a2efcca2603..8964f9f2666 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -39,7 +39,7 @@ class Test_Util extends PHPUnit_Framework_TestCase { function testCallRegister() { $result = strlen(OC_Util::callRegister()); - $this->assertEquals(20, $result); + $this->assertEquals(30, $result); } function testSanitizeHTML() { |