From 1aba986d9f219a872c83b5f8b46f641e2699a222 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Sat, 9 Feb 2013 12:42:18 +0000 Subject: [PATCH 001/454] Fixed bug causing nested file read over webdav to fail --- apps/files_encryption/lib/proxy.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 55cddf2bec8..7ae36e34ce1 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -281,7 +281,7 @@ class Proxy extends \OC_FileProxy { // Reformat path for use with OC_FSV $path_split = explode( '/', $path ); - $path_f = implode( array_slice( $path_split, 3 ) ); + $path_f = implode( '/', array_slice( $path_split, 3 ) ); // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; -- GitLab From b3e59ca1e31f162d7ac720d8729958f438b23a02 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Sat, 9 Feb 2013 18:39:32 +0000 Subject: [PATCH 002/454] Work on post_share hook for files_encryption New method in OCP\Share{}:: getUsersSharingFile() Development shapshot --- apps/files_encryption/hooks/hooks.php | 71 ++- apps/files_encryption/lib/keymanager.php | 585 +++++++++++------------ apps/files_encryption/lib/proxy.php | 32 +- lib/public/share.php | 54 +++ 4 files changed, 430 insertions(+), 312 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 8bdeee0937b..c6d4c16115a 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -166,14 +166,77 @@ class Hooks { */ public static function postShared( $params ) { - // Delete existing catfile - Keymanager::deleteFileKey( ); + // NOTE: $params is an array with these keys: + // itemSource -> int, filecache file ID + // shareWith -> string, uid of user being shared to + // fileTarget -> path of file being shared + // uidOwner -> owner of the original file being shared - // Generate new catfile and env keys - Crypt::multiKeyEncrypt( $plainContent, $publicKeys ); + $view = new \OC_FilesystemView( '/' ); + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + + $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'] ); + + $userIds = array(); + + foreach ( $shares as $share ) { + + $util = new Util( $view, $share['userId'] ); + + // Check that the user is encryption capable + if ( $util->ready() ) { + + // Construct array of just UIDs for Keymanager{} + $userIds[] = $share['userId']; + + } else { + + // Log warning; we can't do necessary setup here + // because we don't have the user passphrase + // TODO: Provide user feedback indicating that + // sharing failed + \OC_Log::write( 'Encryption library', 'File cannot be shared: user "'.$share['userId'].'" is not setup for encryption', \OC_Log::WARN ); + + } + + } + + trigger_error("UIDS = ".var_export($userIds, 1)); + + $userPubKeys = Keymanager::getPublicKeys( $view, $userIds ); + +// trigger_error("PUB KEYS = ".var_export($userPubKeys, 1)); + + // TODO: Fetch path from Crypt{} getter + $plainContent = $view->file_get_contents( $userId . '/' . 'files'. '/' . $params['fileTarget'] ); + + // Generate new catfile and share keys + if ( ! $encrypted = Crypt::multiKeyEncrypt( $plainContent, $userPubKeys ) ) { + + // If the re-encryption failed, don't risk deleting data + return false; + + } + + trigger_error("ENCRYPTED = ". var_export($encrypted, 1)); // Save env keys to user folders + foreach ( $encrypted['keys'] as $key ) { + +// Keymanager::setShareKey( $view, $params['fileTarget'], $userId, $key ); + + } + // Delete existing catfile + // Check if keyfile exists (it won't if file has been shared before) + // Do this last to ensure file is recoverable in case of error + if ( $util->isEncryptedPath( $params['fileTarget'] ) ) { + + // NOTE: This will trigger an error if keyfile isn't found +// Keymanager::deleteFileKey( $params['fileTarget'] ); + + } } diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 0d0380db6ec..3160572ba1b 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -1,267 +1,244 @@ - - * - * 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 . - * - */ - -namespace OCA\Encryption; - -/** - * @brief Class to manage storage and retrieval of encryption keys - * @note Where a method requires a view object, it's root must be '/' - */ -class Keymanager { - - /** - * @brief retrieve the ENCRYPTED private key from a user - * - * @return string private key or false - * @note the key returned by this method must be decrypted before use - */ - public static function getPrivateKey( \OC_FilesystemView $view, $user ) { - - $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key'; - - $key = $view->file_get_contents( $path ); - - return $key; - } - - /** - * @brief retrieve public key for a specified user + + * + * 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 . + * + */ + +namespace OCA\Encryption; + +/** + * @brief Class to manage storage and retrieval of encryption keys + * @note Where a method requires a view object, it's root must be '/' + */ +class Keymanager { + + /** + * @brief retrieve the ENCRYPTED private key from a user + * + * @return string private key or false + * @note the key returned by this method must be decrypted before use + */ + public static function getPrivateKey( \OC_FilesystemView $view, $user ) { + + $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key'; + + $key = $view->file_get_contents( $path ); + + return $key; + } + + /** + * @brief retrieve public key for a specified user * @param \OC_FilesystemView $view * @param $userId - * @return string public key or false - */ - public static function getPublicKey( \OC_FilesystemView $view, $userId ) { - - return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); - - } - - /** - * @brief retrieve both keys from a user (private and public) + * @return string public key or false + */ + public static function getPublicKey( \OC_FilesystemView $view, $userId ) { + + return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); + + } + + /** + * @brief Retrieve a user's public and private key * @param \OC_FilesystemView $view * @param $userId - * @return array keys: privateKey, publicKey - */ - public static function getUserKeys( \OC_FilesystemView $view, $userId ) { - - return array( - 'publicKey' => self::getPublicKey( $view, $userId ) - , 'privateKey' => self::getPrivateKey( $view, $userId ) - ); - - } - - /** - * @brief Retrieve public keys of all users with access to a file - * @param string $path Path to file - * @return array of public keys for the given file - * @note Checks that the sharing app is enabled should be performed - * by client code, that isn't checked here - */ - public static function getPublicKeys( \OC_FilesystemView $view, $userId, $filePath ) { - - $path = ltrim( $path, '/' ); - - $filepath = '/' . $userId . '/files/' . $filePath; - - // Check if sharing is enabled - if ( OC_App::isEnabled( 'files_sharing' ) ) { - - - - } else { - - // check if it is a file owned by the user and not shared at all - $userview = new \OC_FilesystemView( '/'.$userId.'/files/' ); - - if ( $userview->file_exists( $path ) ) { - - $users[] = $userId; - - } - - } - - $view = new \OC_FilesystemView( '/public-keys/' ); - - $keylist = array(); - - $count = 0; - - foreach ( $users as $user ) { - - $keylist['key'.++$count] = $view->file_get_contents( $user.'.public.key' ); - - } - - return $keylist; - - } - - /** - * @brief store file encryption key - * - * @param string $path relative path of the file, including filename - * @param string $key - * @return bool true/false - * @note The keyfile is not encrypted here. Client code must - * asymmetrically encrypt the keyfile before passing it to this method - */ - public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { - - $basePath = '/' . $userId . '/files_encryption/keyfiles'; - - $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - - if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { - - - - } else { - - // Save the keyfile in parallel directory - return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); - - } - - } - - /** - * @brief retrieve keyfile for an encrypted file + * @return array keys: privateKey, publicKey + */ + public static function getUserKeys( \OC_FilesystemView $view, $userId ) { + + return array( + 'publicKey' => self::getPublicKey( $view, $userId ) + , 'privateKey' => self::getPrivateKey( $view, $userId ) + ); + + } + + /** + * @brief Retrieve public keys for given users + * @param \OC_FilesystemView $view + * @param array $userIds + * @return array of public keys for the specified users + */ + public static function getPublicKeys( \OC_FilesystemView $view, $userIds ) { + + $i = 0; + $keys = array(); + + foreach ( $userIds as $userId ) { + + $i++; + $keys[$userId] = self::getPublicKey( $view, $userId ); + + } + + $keys['total'] = $i; + + return $keys; + + } + + /** + * @brief store file encryption key + * + * @param string $path relative path of the file, including filename + * @param string $key + * @return bool true/false + * @note The keyfile is not encrypted here. Client code must + * asymmetrically encrypt the keyfile before passing it to this method + */ + public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { + + $basePath = '/' . $userId . '/files_encryption/keyfiles'; + + $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + + if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { + + + + } else { + + // Save the keyfile in parallel directory + return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); + + } + + } + + /** + * @brief retrieve keyfile for an encrypted file * @param \OC_FilesystemView $view * @param $userId * @param $filePath * @internal param \OCA\Encryption\file $string name * @return string file key or false - * @note The keyfile returned is asymmetrically encrypted. Decryption - * of the keyfile must be performed by client code - */ - public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { - - $filePath_f = ltrim( $filePath, '/' ); - - $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - - if ( $view->file_exists( $catfilePath ) ) { - - return $view->file_get_contents( $catfilePath ); - - } else { - - return false; - - } - - } - - /** - * @brief Delete a keyfile - * + * @note The keyfile returned is asymmetrically encrypted. Decryption + * of the keyfile must be performed by client code + */ + public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { + + $filePath_f = ltrim( $filePath, '/' ); + + $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + + if ( $view->file_exists( $catfilePath ) ) { + + return $view->file_get_contents( $catfilePath ); + + } else { + + return false; + + } + + } + + /** + * @brief Delete a keyfile + * * @param OC_FilesystemView $view * @param string $userId username * @param string $path path of the file the key belongs to * @return bool Outcome of unlink operation * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT * /data/admin/files/mydoc.txt - */ - public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) { - - $trimmed = ltrim( $path, '/' ); - $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key'; - - // Unlink doesn't tell us if file was deleted (not found returns - // true), so we perform our own test - if ( $view->file_exists( $keyPath ) ) { - - return $view->unlink( $keyPath ); - - } else { - - \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR ); - - return false; - - } - - } - - /** - * @brief store private key from the user - * @param string key - * @return bool - * @note Encryption of the private key must be performed by client code - * as no encryption takes place here - */ - public static function setPrivateKey( $key ) { - - $user = \OCP\User::getUser(); - - $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); - - \OC_FileProxy::$enabled = false; - - if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - - return $view->file_put_contents( $user . '.private.key', $key ); - - \OC_FileProxy::$enabled = true; - - } - - /** - * @brief store private keys from the user - * - * @param string privatekey - * @param string publickey - * @return bool true/false - */ - public static function setUserKeys($privatekey, $publickey) { - - return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) ); - - } - - /** - * @brief store public key of the user - * - * @param string key - * @return bool true/false - */ - public static function setPublicKey( $key ) { - - $view = new \OC_FilesystemView( '/public-keys' ); - - \OC_FileProxy::$enabled = false; - - if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); - - return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); - - \OC_FileProxy::$enabled = true; - - } - - /** + */ + public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) { + + $trimmed = ltrim( $path, '/' ); + $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key'; + + // Unlink doesn't tell us if file was deleted (not found returns + // true), so we perform our own test + if ( $view->file_exists( $keyPath ) ) { + + return $view->unlink( $keyPath ); + + } else { + + \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR ); + + return false; + + } + + } + + /** + * @brief store private key from the user + * @param string key + * @return bool + * @note Encryption of the private key must be performed by client code + * as no encryption takes place here + */ + public static function setPrivateKey( $key ) { + + $user = \OCP\User::getUser(); + + $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); + + \OC_FileProxy::$enabled = false; + + if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); + + return $view->file_put_contents( $user . '.private.key', $key ); + + \OC_FileProxy::$enabled = true; + + } + + /** + * @brief store private keys from the user + * + * @param string privatekey + * @param string publickey + * @return bool true/false + */ + public static function setUserKeys($privatekey, $publickey) { + + return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) ); + + } + + /** + * @brief store public key of the user + * + * @param string key + * @return bool true/false + */ + public static function setPublicKey( $key ) { + + $view = new \OC_FilesystemView( '/public-keys' ); + + \OC_FileProxy::$enabled = false; + + if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); + + return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key ); + + \OC_FileProxy::$enabled = true; + + } + + /** * @brief store file encryption key * * @param string $path relative path of the file, including filename @@ -271,70 +248,70 @@ class Keymanager { * @return bool true/false * @note The keyfile is not encrypted here. Client code must * asymmetrically encrypt the keyfile before passing it to this method - */ - public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { - - $basePath = '/' . $userId . '/files_encryption/share-keys'; - - $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - - return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey ); - + */ + public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { + + $basePath = '/' . $userId . '/files_encryption/share-keys'; + + $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + + return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey ); + } /** * @brief Make preparations to vars and filesystem for saving a keyfile */ public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) { - - $targetPath = ltrim( $path, '/' ); - - $path_parts = pathinfo( $targetPath ); - - // If the file resides within a subdirectory, create it + + $targetPath = ltrim( $path, '/' ); + + $path_parts = pathinfo( $targetPath ); + + // If the file resides within a subdirectory, create it if ( isset( $path_parts['dirname'] ) && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] ) - ) { - - $view->mkdir( $basePath . '/' . $path_parts['dirname'] ); - - } - + ) { + + $view->mkdir( $basePath . '/' . $path_parts['dirname'] ); + + } + return $targetPath; - } - - /** - * @brief change password of private encryption key - * - * @param string $oldpasswd old password - * @param string $newpasswd new password - * @return bool true/false - */ - public static function changePasswd($oldpasswd, $newpasswd) { - - if ( \OCP\User::checkPassword(\OCP\User::getUser(), $newpasswd) ) { - return Crypt::changekeypasscode($oldpasswd, $newpasswd); - } - return false; - - } - - /** - * @brief Fetch the legacy encryption key from user files - * @param string $login used to locate the legacy key - * @param string $passphrase used to decrypt the legacy key - * @return true / false - * - * if the key is left out, the default handeler will be used - */ - public function getLegacyKey() { - - $user = \OCP\User::getUser(); - $view = new \OC_FilesystemView( '/' . $user ); - return $view->file_get_contents( 'encryption.key' ); - - } - + } + + /** + * @brief change password of private encryption key + * + * @param string $oldpasswd old password + * @param string $newpasswd new password + * @return bool true/false + */ + public static function changePasswd($oldpasswd, $newpasswd) { + + if ( \OCP\User::checkPassword(\OCP\User::getUser(), $newpasswd) ) { + return Crypt::changekeypasscode($oldpasswd, $newpasswd); + } + return false; + + } + + /** + * @brief Fetch the legacy encryption key from user files + * @param string $login used to locate the legacy key + * @param string $passphrase used to decrypt the legacy key + * @return true / false + * + * if the key is left out, the default handeler will be used + */ + public function getLegacyKey() { + + $user = \OCP\User::getUser(); + $view = new \OC_FilesystemView( '/' . $user ); + return $view->file_get_contents( 'encryption.key' ); + + } + } \ No newline at end of file diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 7ae36e34ce1..58b9bc0725b 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -95,7 +95,8 @@ class Proxy extends \OC_FileProxy { if ( self::shouldEncrypt( $path ) ) { - if ( !is_resource( $data ) ) { //stream put contents should have been converted to fopen + // Stream put contents should have been converted to fopen + if ( !is_resource( $data ) ) { $userId = \OCP\USER::getUser(); @@ -107,10 +108,33 @@ class Proxy extends \OC_FileProxy { // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; - // TODO: Check if file is shared, if so, use multiKeyEncrypt + $fileOwner = \OC\Files\Filesystem::getOwner( $path ); - // Encrypt plain data and fetch key - $encrypted = Crypt::keyEncryptKeyfile( $data, Keymanager::getPublicKey( $rootView, $userId ) ); + // Check if the keyfile needs to be shared + if ( + $fileOwner !== true + or $fileOwner !== $userId + ) { + + // Shared storage backend isn't loaded + + $users = \OCP\Share::getItemShared( 'file', $path, \OC_Share_backend_File::FORMAT_SHARED_STORAGE ); +// + trigger_error("SHARE USERS = ". var_export($users, 1)); +// +// $publicKeys = Keymanager::getPublicKeys( $rootView, $users); +// +// // Encrypt plain data to multiple users +// $encrypted = Crypt::multiKeyEncrypt( $data, $publicKeys ); + + } else { + + $publicKey = Keymanager::getPublicKey( $rootView, $userId ); + + // Encrypt plain data to a single user + $encrypted = Crypt::keyEncryptKeyfile( $data, $publicKey ); + + } // Replace plain content with encrypted content by reference $data = $encrypted['data']; diff --git a/lib/public/share.php b/lib/public/share.php index af2a538e252..936f85021c0 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -91,6 +91,60 @@ class Share { } return false; } + + /** + * @brief Find which users can access a shared item + * @param string Item type + * @param int Format (optional) Format type must be defined by the backend + * @param int Number of items to return (optional) Returns all by default + * @return Return depends on format + */ + public static function getUsersSharingFile( $path ) { + + // Fetch all shares of this file path from DB + $query = \OC_DB::prepare( + 'SELECT + share_type + , share_with + , permissions + FROM + `*PREFIX*share` + WHERE + file_target = ?' + ); + + $result = $query->execute( array( $path ) ); + + if ( \OC_DB::isError( $result ) ) { + + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result) . ', path=' . $path, \OC_Log::ERROR ); + + } + + $shares = array(); + + while( $row = $result->fetchRow() ) { + + // Set helpful array keys + $shares[] = array( + 'userId' => $row['share_with'] + , 'shareType' => $row['share_type'] + , 'permissions' => $row['permissions'] + ); + + } + + if ( ! empty( $shares ) ) { + + return $shares; + + } else { + + return false; + + } + + } /** * @brief Get the items of item type shared with the current user -- GitLab From 9c1196d73e0dc57f1f20a57e459ce053264172b8 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 10 Feb 2013 12:05:41 +0100 Subject: [PATCH 003/454] Cache: add seccond mtime field --- db_structure.xml | 8 ++++++++ lib/util.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/db_structure.xml b/db_structure.xml index fc7f1082ffa..a86e5e6a8fd 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -261,6 +261,14 @@ 4 + + storage_mtime + integer + + true + 4 + + encrypted integer diff --git a/lib/util.php b/lib/util.php index a5fe4cb175a..7950586b580 100755 --- a/lib/util.php +++ b/lib/util.php @@ -74,7 +74,7 @@ class OC_Util { */ public static function getVersion() { // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4.90.0. This is not visible to the user - return array(4, 91, 9); + return array(4, 91, 10); } /** -- GitLab From 3e70d563a6774567ec77e9d9adf6b9ccb1e9619d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 10 Feb 2013 12:27:35 +0100 Subject: [PATCH 004/454] Cache: bookkeeping of storage_mtime --- lib/files/cache/cache.php | 17 ++++++++++++++--- lib/files/cache/scanner.php | 1 + lib/files/cache/watcher.php | 2 +- tests/lib/files/cache/cache.php | 18 ++++++++++++++++++ tests/lib/files/cache/watcher.php | 10 +++++----- tests/lib/files/view.php | 2 +- 6 files changed, 40 insertions(+), 10 deletions(-) diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php index dcb6e8fd39a..d696f003c57 100644 --- a/lib/files/cache/cache.php +++ b/lib/files/cache/cache.php @@ -114,7 +114,7 @@ class Cache { $params = array($file); } $query = \OC_DB::prepare( - 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag` FROM `*PREFIX*filecache` ' . $where); $result = $query->execute($params); $data = $result->fetchRow(); @@ -133,6 +133,9 @@ class Cache { $data['storage'] = $this->storageId; $data['mimetype'] = $this->getMimetype($data['mimetype']); $data['mimepart'] = $this->getMimetype($data['mimepart']); + if ($data['storage_mtime'] == 0) { + $data['storage_mtime'] = $data['mtime']; + } } return $data; @@ -148,13 +151,16 @@ class Cache { $fileId = $this->getId($folder); if ($fileId > -1) { $query = \OC_DB::prepare( - 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `etag` + 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag` FROM `*PREFIX*filecache` WHERE parent = ? ORDER BY `name` ASC'); $result = $query->execute(array($fileId)); $files = $result->fetchAll(); foreach ($files as &$file) { $file['mimetype'] = $this->getMimetype($file['mimetype']); $file['mimepart'] = $this->getMimetype($file['mimepart']); + if ($file['storage_mtime'] == 0) { + $file['storage_mtime'] = $file['mtime']; + } } return $files; } else { @@ -226,7 +232,7 @@ class Cache { * @return array */ function buildParts(array $data) { - $fields = array('path', 'parent', 'name', 'mimetype', 'size', 'mtime', 'encrypted', 'etag'); + $fields = array('path', 'parent', 'name', 'mimetype', 'size', 'mtime', 'storage_mtime', 'encrypted', 'etag'); $params = array(); $queryParts = array(); foreach ($data as $name => $value) { @@ -238,6 +244,11 @@ class Cache { $params[] = $this->getMimetypeId(substr($value, 0, strpos($value, '/'))); $queryParts[] = '`mimepart`'; $value = $this->getMimetypeId($value); + } elseif ($name === 'storage_mtime') { + if (!isset($data['mtime'])) { + $params[] = $value; + $queryParts[] = '`mtime`'; + } } $params[] = $value; $queryParts[] = '`' . $name . '`'; diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php index 9a5546dce3f..2623a167e9f 100644 --- a/lib/files/cache/scanner.php +++ b/lib/files/cache/scanner.php @@ -51,6 +51,7 @@ class Scanner { $data['size'] = $this->storage->filesize($path); } $data['etag'] = $this->storage->getETag($path); + $data['storage_mtime'] = $data['mtime']; return $data; } diff --git a/lib/files/cache/watcher.php b/lib/files/cache/watcher.php index 31059ec7f56..8bfd4602f3a 100644 --- a/lib/files/cache/watcher.php +++ b/lib/files/cache/watcher.php @@ -43,7 +43,7 @@ class Watcher { */ public function checkUpdate($path) { $cachedEntry = $this->cache->get($path); - if ($this->storage->hasUpdated($path, $cachedEntry['mtime'])) { + if ($this->storage->hasUpdated($path, $cachedEntry['storage_mtime'])) { if ($this->storage->is_dir($path)) { $this->scanner->scan($path, Scanner::SCAN_SHALLOW); } else { diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index c466fbb63e7..794664c8893 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -204,6 +204,23 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->assertEquals(array($storageId, 'foo'), \OC\Files\Cache\Cache::getById($id)); } + function testStorageMTime() { + $data = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $this->cache->put('foo', $data); + $cachedData = $this->cache->get('foo'); + $this->assertEquals($data['mtime'], $cachedData['storage_mtime']);//if no storage_mtime is saved, mtime should be used + + $this->cache->put('foo', array('storage_mtime' => 30));//when setting storage_mtime, mtime is also set + $cachedData = $this->cache->get('foo'); + $this->assertEquals(30, $cachedData['storage_mtime']); + $this->assertEquals(30, $cachedData['mtime']); + + $this->cache->put('foo', array('mtime' => 25));//setting mtime does not change storage_mtime + $cachedData = $this->cache->get('foo'); + $this->assertEquals(30, $cachedData['storage_mtime']); + $this->assertEquals(25, $cachedData['mtime']); + } + public function tearDown() { $this->cache->clear(); } @@ -213,3 +230,4 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->cache = new \OC\Files\Cache\Cache($this->storage); } } + diff --git a/tests/lib/files/cache/watcher.php b/tests/lib/files/cache/watcher.php index e8a1689cab0..1ea0c2eb47a 100644 --- a/tests/lib/files/cache/watcher.php +++ b/tests/lib/files/cache/watcher.php @@ -35,7 +35,7 @@ class Watcher extends \PHPUnit_Framework_TestCase { $updater = $storage->getWatcher(); //set the mtime to the past so it can detect an mtime change - $cache->put('', array('mtime' => 10)); + $cache->put('', array('storage_mtime' => 10)); $this->assertTrue($cache->inCache('folder/bar.txt')); $this->assertTrue($cache->inCache('folder/bar2.txt')); @@ -47,14 +47,14 @@ class Watcher extends \PHPUnit_Framework_TestCase { $cachedData = $cache->get('bar.test'); $this->assertEquals(3, $cachedData['size']); - $cache->put('bar.test', array('mtime' => 10)); + $cache->put('bar.test', array('storage_mtime' => 10)); $storage->file_put_contents('bar.test', 'test data'); $updater->checkUpdate('bar.test'); $cachedData = $cache->get('bar.test'); $this->assertEquals(9, $cachedData['size']); - $cache->put('folder', array('mtime' => 10)); + $cache->put('folder', array('storage_mtime' => 10)); $storage->unlink('folder/bar2.txt'); $updater->checkUpdate('folder'); @@ -69,7 +69,7 @@ class Watcher extends \PHPUnit_Framework_TestCase { $updater = $storage->getWatcher(); //set the mtime to the past so it can detect an mtime change - $cache->put('', array('mtime' => 10)); + $cache->put('', array('storage_mtime' => 10)); $storage->unlink('foo.txt'); $storage->rename('folder', 'foo.txt'); @@ -86,7 +86,7 @@ class Watcher extends \PHPUnit_Framework_TestCase { $updater = $storage->getWatcher(); //set the mtime to the past so it can detect an mtime change - $cache->put('foo.txt', array('mtime' => 10)); + $cache->put('foo.txt', array('storage_mtime' => 10)); $storage->unlink('foo.txt'); $storage->rename('folder', 'foo.txt'); diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php index a064e44f3ef..c9a8a0fb081 100644 --- a/tests/lib/files/view.php +++ b/tests/lib/files/view.php @@ -220,7 +220,7 @@ class View extends \PHPUnit_Framework_TestCase { $cachedData = $rootView->getFileInfo('foo.txt'); $this->assertEquals(16, $cachedData['size']); - $rootView->putFileInfo('foo.txt', array('mtime' => 10)); + $rootView->putFileInfo('foo.txt', array('storage_mtime' => 10)); $storage1->file_put_contents('foo.txt', 'foo'); clearstatcache(); -- GitLab From 9738fae3cf1ad18593d21eb62e138e00c01f5f36 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 10 Feb 2013 12:44:27 +0100 Subject: [PATCH 005/454] Emulate touch() for backends that don't support it --- lib/files/view.php | 16 ++++++++++------ tests/lib/files/view.php | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/lib/files/view.php b/lib/files/view.php index 1a234228eab..69e2f1ad349 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -242,7 +242,11 @@ class View { if (!is_null($mtime) and !is_numeric($mtime)) { $mtime = strtotime($mtime); } - return $this->basicOperation('touch', $path, array('write'), $mtime); + $result = $this->basicOperation('touch', $path, array('write'), $mtime); + if (!$result) { //if native touch fails, we emulate it by changing the mtime in the cache + $this->putFileInfo($path, array('mtime' => $mtime)); + } + return true; } public function file_get_contents($path) { @@ -917,11 +921,11 @@ class View { } /** - * Get the owner for a file or folder - * - * @param string $path - * @return string - */ + * Get the owner for a file or folder + * + * @param string $path + * @return string + */ public function getOwner($path) { return $this->basicOperation('getOwner', $path); } diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php index c9a8a0fb081..af97761bbb7 100644 --- a/tests/lib/files/view.php +++ b/tests/lib/files/view.php @@ -7,6 +7,12 @@ namespace Test\Files; +class TemporaryNoTouch extends \OC\Files\Storage\Temporary { + public function touch($path, $mtime = null) { + return false; + } +} + class View extends \PHPUnit_Framework_TestCase { /** * @var \OC\Files\Storage\Storage[] $storages; @@ -228,12 +234,36 @@ class View extends \PHPUnit_Framework_TestCase { $this->assertEquals(3, $cachedData['size']); } + function testTouch() { + $storage = $this->getTestStorage(true, '\Test\Files\TemporaryNoTouch'); + + \OC\Files\Filesystem::mount($storage, array(), '/'); + + $rootView = new \OC\Files\View(''); + $oldCachedData = $rootView->getFileInfo('foo.txt'); + + $rootView->touch('foo.txt', 500); + + $cachedData = $rootView->getFileInfo('foo.txt'); + $this->assertEquals(500, $cachedData['mtime']); + $this->assertEquals($oldCachedData['storage_mtime'], $cachedData['storage_mtime']); + + $rootView->putFileInfo('foo.txt', array('storage_mtime' => 1000)); //make sure the watcher detects the change + $rootView->file_put_contents('foo.txt', 'asd'); + $cachedData = $rootView->getFileInfo('foo.txt'); + $this->assertGreaterThanOrEqual($cachedData['mtime'], $oldCachedData['mtime']); + $this->assertEquals($cachedData['storage_mtime'], $cachedData['mtime']); + } + /** * @param bool $scan * @return \OC\Files\Storage\Storage */ - private function getTestStorage($scan = true) { - $storage = new \OC\Files\Storage\Temporary(array()); + private function getTestStorage($scan = true, $class = '\OC\Files\Storage\Temporary') { + /** + * @var \OC\Files\Storage\Storage $storage + */ + $storage = new $class(array()); $textData = "dummy file data\n"; $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); $storage->mkdir('folder'); -- GitLab From 92f06243be62945b5ff5e7542e9984f7bb45d74b Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Mon, 11 Feb 2013 10:21:23 +0000 Subject: [PATCH 006/454] Implementing sharing support New file-specific methods in lib/public/share Changes to how keyfiles are stored --- apps/files_encryption/hooks/hooks.php | 47 +++++----- apps/files_encryption/lib/crypt.php | 41 +++++--- apps/files_encryption/lib/keymanager.php | 97 +++++++++++++++++-- apps/files_encryption/lib/proxy.php | 113 +++++++++++++---------- apps/files_encryption/test/crypt.php | 8 +- lib/public/share.php | 82 ++++++++++++++-- 6 files changed, 283 insertions(+), 105 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index c6d4c16115a..9252a341fb7 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -82,8 +82,12 @@ class Hooks { } + \OC_FileProxy::$enabled = false; + $publicKey = Keymanager::getPublicKey( $view, $params['uid'] ); + \OC_FileProxy::$enabled = false; + // Encrypt existing user files: // This serves to upgrade old versions of the encryption // app (see appinfo/spec.txt) @@ -175,8 +179,9 @@ class Hooks { $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); + $session = new Session(); - $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'] ); + $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'], 1 ); $userIds = array(); @@ -202,41 +207,35 @@ class Hooks { } - trigger_error("UIDS = ".var_export($userIds, 1)); - $userPubKeys = Keymanager::getPublicKeys( $view, $userIds ); -// trigger_error("PUB KEYS = ".var_export($userPubKeys, 1)); - - // TODO: Fetch path from Crypt{} getter - $plainContent = $view->file_get_contents( $userId . '/' . 'files'. '/' . $params['fileTarget'] ); + \OC_FileProxy::$enabled = false; - // Generate new catfile and share keys - if ( ! $encrypted = Crypt::multiKeyEncrypt( $plainContent, $userPubKeys ) ) { + // get the keyfile + $encKeyfile = Keymanager::getFileKey( $view, $userId, $params['fileTarget'] ); - // If the re-encryption failed, don't risk deleting data - return false; - - } + $privateKey = $session->getPrivateKey(); - trigger_error("ENCRYPTED = ". var_export($encrypted, 1)); + // decrypt the keyfile + $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - // Save env keys to user folders - foreach ( $encrypted['keys'] as $key ) { + // re-enc keyfile to sharekeys + $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); -// Keymanager::setShareKey( $view, $params['fileTarget'], $userId, $key ); + // save sharekeys + if ( ! Keymanager::setShareKeys( $view, $params['fileTarget'], $shareKeys['keys'] ) ) { + trigger_error( "SET Share keys failed" ); + } - // Delete existing catfile - // Check if keyfile exists (it won't if file has been shared before) + // Delete existing keyfile // Do this last to ensure file is recoverable in case of error - if ( $util->isEncryptedPath( $params['fileTarget'] ) ) { - - // NOTE: This will trigger an error if keyfile isn't found -// Keymanager::deleteFileKey( $params['fileTarget'] ); +// Keymanager::deleteFileKey( $view, $userId, $params['fileTarget'] ); - } + \OC_FileProxy::$enabled = true; + + return true; } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index e3d23023db3..fdee03eeaf5 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -370,22 +370,41 @@ class Crypt { /** * @brief Create asymmetrically encrypted keyfile content using a generated key * @param string $plainContent content to be encrypted - * @returns array keys: key, encrypted - * @note symmetricDecryptFileContent() can be used to decrypt files created using this method - * - * This function decrypts a file + * @param array $publicKeys array keys must be the userId of corresponding user + * @returns array keys: keys (array, key = userId), encrypted + * @note symmetricDecryptFileContent() can decrypt files created using this method */ public static function multiKeyEncrypt( $plainContent, array $publicKeys ) { - + + // openssl_seal returns false without errors if $plainContent + // is empty, so trigger our own error + if ( empty( $plainContent ) ) { + + trigger_error( "Cannot mutliKeyEncrypt empty plain content" ); + throw new \Exception( 'Cannot mutliKeyEncrypt empty plain content' ); + + } + // Set empty vars to be set by openssl by reference $sealed = ''; - $envKeys = array(); + $shareKeys = array(); - if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) { + if( openssl_seal( $plainContent, $sealed, $shareKeys, $publicKeys ) ) { + + $i = 0; + + // Ensure each shareKey is labelled with its + // corresponding userId + foreach ( $publicKeys as $userId => $publicKey ) { + + $mappedShareKeys[$userId] = $shareKeys[$i]; + $i++; + + } return array( - 'keys' => $envKeys - , 'encrypted' => $sealed + 'keys' => $mappedShareKeys + , 'data' => $sealed ); } else { @@ -404,7 +423,7 @@ class Crypt { * * This function decrypts a file */ - public static function multiKeyDecrypt( $encryptedContent, $envKey, $privateKey ) { + public static function multiKeyDecrypt( $encryptedContent, $shareKey, $privateKey ) { if ( !$encryptedContent ) { @@ -412,7 +431,7 @@ class Crypt { } - if ( openssl_open( $encryptedContent, $plainContent, $envKey, $privateKey ) ) { + if ( openssl_open( $encryptedContent, $plainContent, $shareKey, $privateKey ) ) { return $plainContent; diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 3160572ba1b..5f9eea1a0bc 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -52,8 +52,11 @@ class Keymanager { */ public static function getPublicKey( \OC_FilesystemView $view, $userId ) { + \OC_FileProxy::$enabled = false; + return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); + \OC_FileProxy::$enabled = true; } /** @@ -77,20 +80,16 @@ class Keymanager { * @param array $userIds * @return array of public keys for the specified users */ - public static function getPublicKeys( \OC_FilesystemView $view, $userIds ) { + public static function getPublicKeys( \OC_FilesystemView $view, array $userIds ) { - $i = 0; $keys = array(); foreach ( $userIds as $userId ) { - $i++; $keys[$userId] = self::getPublicKey( $view, $userId ); } - $keys['total'] = $i; - return $keys; } @@ -137,11 +136,11 @@ class Keymanager { $filePath_f = ltrim( $filePath, '/' ); - $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + $keyfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - if ( $view->file_exists( $catfilePath ) ) { + if ( $view->file_exists( $keyfilePath ) ) { - return $view->file_get_contents( $catfilePath ); + return $view->file_get_contents( $keyfilePath ); } else { @@ -239,7 +238,7 @@ class Keymanager { } /** - * @brief store file encryption key + * @brief store share key * * @param string $path relative path of the file, including filename * @param string $key @@ -255,7 +254,85 @@ class Keymanager { $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey ); + $writePath = $basePath . '/' . $shareKeyPath . '.shareKey'; + + \OC_FileProxy::$enabled = false; + + $result = $view->file_put_contents( $writePath, $shareKey ); + + if ( + is_int( $result ) + && $result > 0 + ) { + + return true; + + } else { + + return false; + + } + + } + + /** + * @brief store multiple share keys for a single file + * @return bool + */ + public static function setShareKeys( \OC_FilesystemView $view, $path, array $shareKeys ) { + + // $shareKeys must be an array with the following format: + // [userId] => [encrypted key] + + $result = true; + + foreach ( $shareKeys as $userId => $shareKey ) { + + if ( ! self::setShareKey( $view, $path, $userId, $shareKey ) ) { + + // If any of the keys are not set, flag false + $result = false; + + } + + } + + // Returns false if any of the keys weren't set + return $result; + + } + + /** + * @brief retrieve shareKey for an encrypted file + * @param \OC_FilesystemView $view + * @param $userId + * @param $filePath + * @internal param \OCA\Encryption\file $string name + * @return string file key or false + * @note The sharekey returned is encrypted. Decryption + * of the keyfile must be performed by client code + */ + public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) { + + \OC_FileProxy::$enabled = false; + + $filePath_f = ltrim( $filePath, '/' ); + + $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $filePath_f . '.shareKey'; + + if ( $view->file_exists( $shareKeyPath ) ) { + + $result = $view->file_get_contents( $shareKeyPath ); + + } else { + + $result = false; + + } + + \OC_FileProxy::$enabled = true; + + return $result; } diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 58b9bc0725b..b5e59e89b9e 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -99,58 +99,65 @@ class Proxy extends \OC_FileProxy { if ( !is_resource( $data ) ) { $userId = \OCP\USER::getUser(); - $rootView = new \OC_FilesystemView( '/' ); - + $util = new Util( $rootView, $userId ); + $filePath = $util->stripUserFilesPath( $path ); // Set the filesize for userland, before encrypting $size = strlen( $data ); // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; - $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + // Encrypt data + $encData = Crypt::symmetricEncryptFileContentKeyfile( $data ); // Check if the keyfile needs to be shared - if ( - $fileOwner !== true - or $fileOwner !== $userId - ) { + if ( \OCP\Share::isSharedFile( $filePath ) ) { + +// $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + + // List everyone sharing the file + $shares = \OCP\Share::getUsersSharingFile( $filePath, 1 ); + + $userIds = array(); + + foreach ( $shares as $share ) { + + $userIds[] = $share['userId']; + + } + + $publicKeys = Keymanager::getPublicKeys( $rootView, $userIds ); + + \OC_FileProxy::$enabled = false; + + // Encrypt plain keyfile to multiple sharefiles + $multiEncrypted = Crypt::multiKeyEncrypt( $encData['key'], $publicKeys ); + + // Save sharekeys to user folders + Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); + + // Set encrypted keyfile as common varname + $encKey = $multiEncrypted['encrypted']; - // Shared storage backend isn't loaded - $users = \OCP\Share::getItemShared( 'file', $path, \OC_Share_backend_File::FORMAT_SHARED_STORAGE ); -// - trigger_error("SHARE USERS = ". var_export($users, 1)); -// -// $publicKeys = Keymanager::getPublicKeys( $rootView, $users); -// -// // Encrypt plain data to multiple users -// $encrypted = Crypt::multiKeyEncrypt( $data, $publicKeys ); } else { $publicKey = Keymanager::getPublicKey( $rootView, $userId ); // Encrypt plain data to a single user - $encrypted = Crypt::keyEncryptKeyfile( $data, $publicKey ); + $encKey = Crypt::keyEncrypt( $encData['key'], $publicKey ); } - // Replace plain content with encrypted content by reference - $data = $encrypted['data']; - - $filePath = explode( '/', $path ); - - $filePath = array_slice( $filePath, 3 ); - - $filePath = '/' . implode( '/', $filePath ); - - // TODO: make keyfile dir dynamic from app config - - $view = new \OC_FilesystemView( '/' ); + // TODO: Replace userID with ownerId so keyfile is saved centrally // Save keyfile for newly encrypted file in parallel directory tree - Keymanager::setFileKey( $view, $filePath, $userId, $encrypted['key'] ); + Keymanager::setFileKey( $rootView, $filePath, $userId, $encKey ); + + // Replace plain content with encrypted content by reference + $data = $encData['encrypted']; // Update the file cache with file info \OC\Files\Filesystem::putFileInfo( $path, array( 'encrypted'=>true, 'size' => $size ), '' ); @@ -168,8 +175,6 @@ class Proxy extends \OC_FileProxy { * @param string $data Data that has been read from file */ public function postFile_get_contents( $path, $data ) { - - // TODO: Use dependency injection to add required args for view and user etc. to this method // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; @@ -180,45 +185,55 @@ class Proxy extends \OC_FileProxy { && Crypt::isCatfile( $data ) ) { - $split = explode( '/', $path ); - - $filePath = array_slice( $split, 3 ); + $view = new \OC_FilesystemView( '/' ); + $userId = \OCP\USER::getUser(); + $session = new Session(); + $util = new Util( $view, $userId ); + $filePath = $util->stripUserFilesPath( $path ); + $privateKey = $session->getPrivateKey( $userId ); - $filePath = '/' . implode( '/', $filePath ); + // Get the encrypted keyfile + $encKeyfile = Keymanager::getFileKey( $view, $userId, $filePath ); - //$cached = \OC\Files\Filesystem::getFileInfo( $path, '' ); + // Check if key is shared or not + if ( \OCP\Share::isSharedFile( $filePath ) ) { - $view = new \OC_FilesystemView( '' ); + // If key is shared, fetch the user's shareKey + $shareKey = Keymanager::getShareKey( $view, $userId, $filePath ); + + \OC_FileProxy::$enabled = false; + + // Decrypt keyfile with shareKey + $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); - $userId = \OCP\USER::getUser(); + } else { + + // If key is unshared, decrypt with user private key + $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - // TODO: Check if file is shared, if so, use multiKeyDecrypt + } - $encryptedKeyfile = Keymanager::getFileKey( $view, $userId, $filePath ); + $plainData = Crypt::symmetricDecryptFileContent( $data, $plainKeyfile ); - $session = new Session(); - - $decrypted = Crypt::keyDecryptKeyfile( $data, $encryptedKeyfile, $session->getPrivateKey( $split[1] ) ); - } elseif ( Crypt::mode() == 'server' && isset( $_SESSION['legacyenckey'] ) && Crypt::isEncryptedMeta( $path ) ) { - $decrypted = Crypt::legacyDecrypt( $data, $_SESSION['legacyenckey'] ); + $plainData = Crypt::legacyDecrypt( $data, $session->getLegacyKey() ); } \OC_FileProxy::$enabled = true; - if ( ! isset( $decrypted ) ) { + if ( ! isset( $plainData ) ) { - $decrypted = $data; + $plainData = $data; } - return $decrypted; + return $plainData; } diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php index aa87ec32821..48ad2ee0075 100755 --- a/apps/files_encryption/test/crypt.php +++ b/apps/files_encryption/test/crypt.php @@ -439,14 +439,14 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->assertTrue( strlen( $pair1['privateKey'] ) > 1 ); - $crypted = Encryption\Crypt::multiKeyEncrypt( $this->dataUrl, array( $pair1['publicKey'] ) ); + $crypted = Encryption\Crypt::multiKeyEncrypt( $this->dataShort, array( $pair1['publicKey'] ) ); - $this->assertNotEquals( $this->dataUrl, $crypted['encrypted'] ); + $this->assertNotEquals( $this->dataShort, $crypted['data'] ); - $decrypt = Encryption\Crypt::multiKeyDecrypt( $crypted['encrypted'], $crypted['keys'][0], $pair1['privateKey'] ); + $decrypt = Encryption\Crypt::multiKeyDecrypt( $crypted['data'], $crypted['keys'][0], $pair1['privateKey'] ); - $this->assertEquals( $this->dataUrl, $decrypt ); + $this->assertEquals( $this->dataShort, $decrypt ); } diff --git a/lib/public/share.php b/lib/public/share.php index 936f85021c0..4170783d71e 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -92,20 +92,73 @@ class Share { return false; } + /** + * @brief Prepare a path to be passed to DB as file_target + * @return string Prepared path + */ + public static function prepFileTarget( $path ) { + + // Paths in DB are stored with leading slashes, so add one if necessary + if ( substr( $path, 0, 1 ) !== '/' ) { + + $path = '/' . $path; + + } + + return $path; + + } + + public static function isSharedFile( $path ) { + + $fPath = self::prepFileTarget( $path ); + + // Fetch all shares of this file path from DB + $query = \OC_DB::prepare( + 'SELECT + id + FROM + `*PREFIX*share` + WHERE + file_target = ?' + ); + + $result = $query->execute( array( $fPath ) ); + + if ( \OC_DB::isError( $result ) ) { + + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage( $result ) . ', path=' . $fPath, \OC_Log::ERROR ); + + } + + if ( $result->fetchRow() !== false ) { + + return true; + + } else { + + return false; + + } + + } + /** * @brief Find which users can access a shared item - * @param string Item type - * @param int Format (optional) Format type must be defined by the backend - * @param int Number of items to return (optional) Returns all by default - * @return Return depends on format + * @return bool / array + * @note $path needs to be relative to user data dir, e.g. 'file.txt' + * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path ) { + public static function getUsersSharingFile( $path, $includeOwner = 0 ) { + + $fPath = self::prepFileTarget( $path ); // Fetch all shares of this file path from DB $query = \OC_DB::prepare( 'SELECT share_type , share_with + , uid_owner , permissions FROM `*PREFIX*share` @@ -113,11 +166,11 @@ class Share { file_target = ?' ); - $result = $query->execute( array( $path ) ); + $result = $query->execute( array( $fPath ) ); if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result) . ', path=' . $path, \OC_Log::ERROR ); + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result) . ', path=' . $fPath, \OC_Log::ERROR ); } @@ -128,6 +181,7 @@ class Share { // Set helpful array keys $shares[] = array( 'userId' => $row['share_with'] + , 'owner' => $row['uid_owner'] // we just set this so it can be used once, hugly hack :/ , 'shareType' => $row['share_type'] , 'permissions' => $row['permissions'] ); @@ -136,6 +190,20 @@ class Share { if ( ! empty( $shares ) ) { + // Include owner in list of users, if requested + if ( $includeOwner == 1 ) { + + // NOTE: The values are incorrect for shareType and + // permissions of the owner; we just include them for + // optional convenience + $shares[] = array( + 'userId' => $shares[0]['owner'] + , 'shareType' => 0 + , 'permissions' => 0 + ); + + } + return $shares; } else { -- GitLab From d17d838eccb4e8752fc59c2a6812d69a8a5b707e Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Mon, 11 Feb 2013 10:34:23 +0000 Subject: [PATCH 007/454] Updated specfile --- apps/files_encryption/appinfo/spec.txt | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt index 2d22dffe08d..7a937a91439 100644 --- a/apps/files_encryption/appinfo/spec.txt +++ b/apps/files_encryption/appinfo/spec.txt @@ -9,6 +9,31 @@ Encrypted files [encrypted data string][delimiter][IV][padding] [anhAAjAmcGXqj1X9g==][00iv00][MSHU5N5gECP7aAg7][xx] (square braces added) + +- Directory structure: + - Encrypted user data (catfiles) are stored in the usual /data/user/files dir + - Keyfiles are stored in /data/user/files_encryption/keyfiles + - Sharekey are stored in /data/user/files_encryption/share-files + +- File extensions: + - Catfiles have keep the file extension of the original file, pre-encryption + - Keyfiles use .keyfile + - Sharekeys have .shareKey + +Shared files +------------ + +Shared files have a centrally stored catfile and keyfile, and one sharekey for +each user that shares it. + +When sharing is used, a different encryption method is used to encrypt the +keyfile (openssl_seal). Although shared files have a keyfile, its contents +use a different format therefore. + +Each time a shared file is edited or deleted, all sharekeys for users sharing +that file must have their sharekeys changed also. The keyfile and catfile +however need only changing in the owners files, as there is only one copy of +these. Notes ----- @@ -16,4 +41,7 @@ Notes - The user passphrase is required in order to set up or upgrade the app. New keypair generation, and the re-encryption of legacy encrypted files requires it. Therefore an appinfo/update.php script cannot be used, and upgrade logic - is handled in the login hook listener. \ No newline at end of file + is handled in the login hook listener. Therefore each time the user logs in + their files are scanned to detect unencrypted and legacy encrypted files, and + they are (re)encrypted as necessary. This may present a performance issue; we + need to monitor this. \ No newline at end of file -- GitLab From 2787aafae6577dfad1f3db0dc70a8e0b05eaba53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 11 Feb 2013 12:12:21 +0100 Subject: [PATCH 008/454] added some TODOs --- apps/files_encryption/hooks/hooks.php | 1 + apps/files_encryption/lib/proxy.php | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 9252a341fb7..b0075a3ada7 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -190,6 +190,7 @@ class Hooks { $util = new Util( $view, $share['userId'] ); // Check that the user is encryption capable + // TODO create encryption key when user gets created if ( $util->ready() ) { // Construct array of just UIDs for Keymanager{} diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index b5e59e89b9e..40ac411539b 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -92,12 +92,13 @@ class Proxy extends \OC_FileProxy { } public function preFile_put_contents( $path, &$data ) { - + // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. if ( self::shouldEncrypt( $path ) ) { // Stream put contents should have been converted to fopen if ( !is_resource( $data ) ) { + // TODO check who is the owner of the file in case of shared folders $userId = \OCP\USER::getUser(); $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); @@ -175,7 +176,7 @@ class Proxy extends \OC_FileProxy { * @param string $data Data that has been read from file */ public function postFile_get_contents( $path, $data ) { - + // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; @@ -184,8 +185,8 @@ class Proxy extends \OC_FileProxy { Crypt::mode() == 'server' && Crypt::isCatfile( $data ) ) { - $view = new \OC_FilesystemView( '/' ); + // TODO use get owner to find correct location of key files for shared files $userId = \OCP\USER::getUser(); $session = new Session(); $util = new Util( $view, $userId ); -- GitLab From 3e3cee98c87e90ece7a4a908b6cbbc7cbc94aac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 11 Feb 2013 13:28:37 +0100 Subject: [PATCH 009/454] - moved the enrcyption of the filekey ifg file gets shared from the post shared hook to Crypt::encKeyfileToMultipleUsers() because this can be reused if files get unshared - switch from preUnshare hook to postUnshare hook because afterward we can simply get the updated list of users with access to the file and call Crypt::encKeyfileToMultipleUsers() --- apps/files_encryption/appinfo/app.php | 4 +-- apps/files_encryption/hooks/hooks.php | 47 ++++++--------------------- apps/files_encryption/lib/crypt.php | 42 ++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 39 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index f83109a18ea..6778e1faa3c 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -16,8 +16,8 @@ OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'set // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); -OCP\Util::connectHook( 'OCP\Share', 'pre_unshare', 'OCA\Encryption\Hooks', 'preUnshare' ); -OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' ); +OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); +OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); // Webdav-related hooks OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index b0075a3ada7..c8565964ba9 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -179,7 +179,6 @@ class Hooks { $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); - $session = new Session(); $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'], 1 ); @@ -207,55 +206,29 @@ class Hooks { } } - - $userPubKeys = Keymanager::getPublicKeys( $view, $userIds ); - - \OC_FileProxy::$enabled = false; - - // get the keyfile - $encKeyfile = Keymanager::getFileKey( $view, $userId, $params['fileTarget'] ); - - $privateKey = $session->getPrivateKey(); - - // decrypt the keyfile - $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - - // re-enc keyfile to sharekeys - $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); - - // save sharekeys - if ( ! Keymanager::setShareKeys( $view, $params['fileTarget'], $shareKeys['keys'] ) ) { - - trigger_error( "SET Share keys failed" ); - - } - - // Delete existing keyfile - // Do this last to ensure file is recoverable in case of error -// Keymanager::deleteFileKey( $view, $userId, $params['fileTarget'] ); - - \OC_FileProxy::$enabled = true; - - return true; + + return Crypt::encKeyfileToMultipleUsers($shares, $params['fileTarget']); } /** * @brief */ - public static function preUnshare( $params ) { - - // Delete existing catfile + public static function postUnshare( $params ) { + $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'], 1 ); - // Generate new catfile and env keys + $userIds = array(); + foreach ( $shares as $share ) { + $userIds[] = $share['userId']; + } - // Save env keys to user folders + return Crypt::encKeyfileToMultipleUsers($userIDs, $params['fileTarget']); } /** * @brief */ - public static function preUnshareAll( $params ) { + public static function postUnshareAll( $params ) { trigger_error( "preUnshareAll" ); diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index fdee03eeaf5..6704ea6bf18 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -744,4 +744,46 @@ class Crypt { } + + /** + * @brief encrypt file key to multiple users + * @param $users list of users which should be able to access the file + * @param $fileTarget target of the file + */ + public static function encKeyfileToMultipleUsers($users, $fileTarget) { + $view = new \OC_FilesystemView( '/' ); + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + $session = new Session(); + + $userPubKeys = Keymanager::getPublicKeys( $view, $users ); + + \OC_FileProxy::$enabled = false; + + // get the keyfile + $encKeyfile = Keymanager::getFileKey( $view, $userId, $fileTarget ); + + $privateKey = $session->getPrivateKey(); + + // decrypt the keyfile + $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); + + // re-enc keyfile to sharekeys + $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); + + // save sharekeys + if ( ! Keymanager::setShareKeys( $view, $fileTarget, $shareKeys['keys'] ) ) { + + trigger_error( "SET Share keys failed" ); + + } + + // Delete existing keyfile + // Do this last to ensure file is recoverable in case of error + // Keymanager::deleteFileKey( $view, $userId, $params['fileTarget'] ); + + \OC_FileProxy::$enabled = true; + + return true; + } } \ No newline at end of file -- GitLab From 9b498320903fc7d35e2e0bcfd03ebf69e7c90720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 11 Feb 2013 13:50:11 +0100 Subject: [PATCH 010/454] unshare all should work the same like unshare single users --- apps/files_encryption/hooks/hooks.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index c8565964ba9..550593daf68 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -229,9 +229,7 @@ class Hooks { * @brief */ public static function postUnshareAll( $params ) { - - trigger_error( "preUnshareAll" ); - + return self::postUnshare($params); } } -- GitLab From 5a64c96d06db50c3ca13bb3c6c10c3a0e32a3380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 11 Feb 2013 15:13:42 +0100 Subject: [PATCH 011/454] go back to preUnshare hooks since sharing doesn't trigger post unshare hooks --- apps/files_encryption/appinfo/app.php | 4 ++-- apps/files_encryption/hooks/hooks.php | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 6778e1faa3c..f83109a18ea 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -16,8 +16,8 @@ OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'set // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); -OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); -OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); +OCP\Util::connectHook( 'OCP\Share', 'pre_unshare', 'OCA\Encryption\Hooks', 'preUnshare' ); +OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' ); // Webdav-related hooks OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 550593daf68..17bcb9238ac 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -157,8 +157,6 @@ class Hooks { , \OC_Log::ERROR ); - error_log( "Client side encryption is enabled but the client doesn't provide an encryption key for the file!" ); - } } @@ -169,7 +167,7 @@ class Hooks { * @brief */ public static function postShared( $params ) { - + error_log("post shared triggered!"); // NOTE: $params is an array with these keys: // itemSource -> int, filecache file ID // shareWith -> string, uid of user being shared to @@ -214,22 +212,27 @@ class Hooks { /** * @brief */ - public static function postUnshare( $params ) { - $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'], 1 ); + public static function preUnshare( $params ) { + $items = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']); + $shares = \OCP\Share::getUsersSharingFile( $item[0]['file_target'], 1 ); $userIds = array(); foreach ( $shares as $share ) { $userIds[] = $share['userId']; } - return Crypt::encKeyfileToMultipleUsers($userIDs, $params['fileTarget']); + // remove the user from the list from which the file will be unshared + unset($userIds[$params['shareWith']]); + + return Crypt::encKeyfileToMultipleUsers($userIDs, $item[0]['file_target']); } /** * @brief */ - public static function postUnshareAll( $params ) { - return self::postUnshare($params); + public static function preUnshareAll( $params ) { + $items = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']); + return Crypt::encKeyfileToMultipleUsers(array($items[0]['uid_owner']), $items[0]['file_target']); } } -- GitLab From 8eef919a754ff3404df1065d616e66cb9b1ff437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 12 Feb 2013 12:08:34 +0100 Subject: [PATCH 012/454] take group shares into account if we retrieve the list a all recipients --- apps/files_encryption/hooks/hooks.php | 35 +++------------ apps/files_encryption/lib/crypt.php | 30 +++++++++++-- lib/public/share.php | 65 +++++++++++++-------------- 3 files changed, 63 insertions(+), 67 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 17bcb9238ac..c14ce3e91db 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -167,44 +167,21 @@ class Hooks { * @brief */ public static function postShared( $params ) { - error_log("post shared triggered!"); + // NOTE: $params is an array with these keys: // itemSource -> int, filecache file ID // shareWith -> string, uid of user being shared to // fileTarget -> path of file being shared // uidOwner -> owner of the original file being shared + //TODO: We don't deal with shared folder yet, need to recursively update every file in the folder + $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); - $shares = \OCP\Share::getUsersSharingFile( $params['fileTarget'], 1 ); - - $userIds = array(); - - foreach ( $shares as $share ) { - - $util = new Util( $view, $share['userId'] ); - - // Check that the user is encryption capable - // TODO create encryption key when user gets created - if ( $util->ready() ) { - - // Construct array of just UIDs for Keymanager{} - $userIds[] = $share['userId']; - - } else { - - // Log warning; we can't do necessary setup here - // because we don't have the user passphrase - // TODO: Provide user feedback indicating that - // sharing failed - \OC_Log::write( 'Encryption library', 'File cannot be shared: user "'.$share['userId'].'" is not setup for encryption', \OC_Log::WARN ); - - } + $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); - } - return Crypt::encKeyfileToMultipleUsers($shares, $params['fileTarget']); } @@ -213,11 +190,11 @@ class Hooks { * @brief */ public static function preUnshare( $params ) { - $items = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $item[0]['file_target'], 1 ); + $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); $userIds = array(); foreach ( $shares as $share ) { + error_log("keek user id: " . $share['userId']); $userIds[] = $share['userId']; } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 6704ea6bf18..a8cc2b3726d 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -752,16 +752,40 @@ class Crypt { */ public static function encKeyfileToMultipleUsers($users, $fileTarget) { $view = new \OC_FilesystemView( '/' ); - $userId = \OCP\User::getUser(); + $owner = \OCP\User::getUser(); $util = new Util( $view, $userId ); $session = new Session(); + + $userIds = array(); + + foreach ( $users as $user ) { + + $util = new Util( $view, $user ); + + // Check that the user is encryption capable + if ( $util->ready() ) { + // Construct array of just UIDs for Keymanager{} + $userIds[] = $user; + + } else { + + // Log warning; we can't do necessary setup here + // because we don't have the user passphrase + // TODO: Provide user feedback indicating that + // sharing failed + \OC_Log::write( 'Encryption library', 'File cannot be shared: user "'.$user.'" is not setup for encryption', \OC_Log::WARN ); + + } + + } + - $userPubKeys = Keymanager::getPublicKeys( $view, $users ); + $userPubKeys = Keymanager::getPublicKeys( $view, $userIds ); \OC_FileProxy::$enabled = false; // get the keyfile - $encKeyfile = Keymanager::getFileKey( $view, $userId, $fileTarget ); + $encKeyfile = Keymanager::getFileKey( $view, $owner, $fileTarget ); $privateKey = $session->getPrivateKey(); diff --git a/lib/public/share.php b/lib/public/share.php index 4170783d71e..841240692d8 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -149,62 +149,57 @@ class Share { * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path, $includeOwner = 0 ) { - - $fPath = self::prepFileTarget( $path ); - + public static function getUsersSharingFile( $source, $includeOwner = 0 ) { + //TODO get also the recipients from folders which are shared above the current file // Fetch all shares of this file path from DB $query = \OC_DB::prepare( - 'SELECT - share_type - , share_with - , uid_owner - , permissions + 'SELECT share_with FROM `*PREFIX*share` WHERE - file_target = ?' + item_source = ? AND share_type = ? AND uid_owner = ?' ); - $result = $query->execute( array( $fPath ) ); + $result = $query->execute( array( $source, self::SHARE_TYPE_USER, \OCP\User::getUser() ) ); if ( \OC_DB::isError( $result ) ) { - - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result) . ', path=' . $fPath, \OC_Log::ERROR ); - + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); } $shares = array(); while( $row = $result->fetchRow() ) { + $shares[] = $row['share_with']; + } - // Set helpful array keys - $shares[] = array( - 'userId' => $row['share_with'] - , 'owner' => $row['uid_owner'] // we just set this so it can be used once, hugly hack :/ - , 'shareType' => $row['share_type'] - , 'permissions' => $row['permissions'] - ); + // We also need to take group shares into account + + $query = \OC_DB::prepare( + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ? AND uid_owner = ?' + ); + $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP, \OCP\User::getUser() ) ); + + if ( \OC_DB::isError( $result ) ) { + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); } + while( $row = $result->fetchRow() ) { + $usersInGroup = \OC_Group::usersInGroup($row['share_with']); + $shares = array_merge($shares, $usersInGroup); + } + if ( ! empty( $shares ) ) { - // Include owner in list of users, if requested if ( $includeOwner == 1 ) { - - // NOTE: The values are incorrect for shareType and - // permissions of the owner; we just include them for - // optional convenience - $shares[] = array( - 'userId' => $shares[0]['owner'] - , 'shareType' => 0 - , 'permissions' => 0 - ); - + $shares[] = \OCP\User::getUser(); } - - return $shares; + + return array_unique($shares); } else { @@ -235,7 +230,7 @@ class Share { public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections); } - + /** * @brief Get the item of item type shared with the current user by source * @param string Item type -- GitLab From 1e5d03da800e5ad36e7b5adbab7eef03a2add80c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 12 Feb 2013 12:45:54 +0100 Subject: [PATCH 013/454] use right location of the file is the source and not the target it is shared to --- apps/files_encryption/hooks/hooks.php | 32 ++++++++++++++++----------- apps/files_encryption/lib/crypt.php | 6 ++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index c14ce3e91db..ebc345a47e7 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -163,6 +163,20 @@ class Hooks { } + /** + * @brief get path of a file. + * @param $fileId id of the file + * @return path of the file + */ + private static function getFilePath($fileId) { + $query = \OC_DB::prepare('SELECT `path`' + .' FROM `*PREFIX*filecache`' + .' WHERE `fileid` = ?'); + $result = $query->execute(array($fileId)); + $row = $result->fetchRow(); + return $row['path']; + } + /** * @brief */ @@ -182,7 +196,7 @@ class Hooks { $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); - return Crypt::encKeyfileToMultipleUsers($shares, $params['fileTarget']); + return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource'])); } @@ -191,25 +205,17 @@ class Hooks { */ public static function preUnshare( $params ) { $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); - - $userIds = array(); - foreach ( $shares as $share ) { - error_log("keek user id: " . $share['userId']); - $userIds[] = $share['userId']; - } - // remove the user from the list from which the file will be unshared - unset($userIds[$params['shareWith']]); - - return Crypt::encKeyfileToMultipleUsers($userIDs, $item[0]['file_target']); + unset($shares[$params['shareWith']]); + + return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource'])); } /** * @brief */ public static function preUnshareAll( $params ) { - $items = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']); - return Crypt::encKeyfileToMultipleUsers(array($items[0]['uid_owner']), $items[0]['file_target']); + return Crypt::encKeyfileToMultipleUsers(array(\OCP\User::getUser()), self::getFilePath($params['itemSource'])); } } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index a8cc2b3726d..cbdae323e56 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -750,7 +750,7 @@ class Crypt { * @param $users list of users which should be able to access the file * @param $fileTarget target of the file */ - public static function encKeyfileToMultipleUsers($users, $fileTarget) { + public static function encKeyfileToMultipleUsers($users, $filePath) { $view = new \OC_FilesystemView( '/' ); $owner = \OCP\User::getUser(); $util = new Util( $view, $userId ); @@ -785,7 +785,7 @@ class Crypt { \OC_FileProxy::$enabled = false; // get the keyfile - $encKeyfile = Keymanager::getFileKey( $view, $owner, $fileTarget ); + $encKeyfile = Keymanager::getFileKey( $view, $owner, $filePath ); $privateKey = $session->getPrivateKey(); @@ -796,7 +796,7 @@ class Crypt { $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); // save sharekeys - if ( ! Keymanager::setShareKeys( $view, $fileTarget, $shareKeys['keys'] ) ) { + if ( ! Keymanager::setShareKeys( $view, $filePath, $shareKeys['keys'] ) ) { trigger_error( "SET Share keys failed" ); -- GitLab From d1bbb30385260d77b01bc5998465ebe68ccd83d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 12 Feb 2013 16:48:04 +0100 Subject: [PATCH 014/454] also find users with access to the file if a folder above the actual file was already shared --- apps/files_encryption/hooks/hooks.php | 30 +++------ apps/files_encryption/lib/crypt.php | 2 - apps/files_encryption/lib/util.php | 14 ++++ lib/public/share.php | 97 ++++++++++++++------------- 4 files changed, 75 insertions(+), 68 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ebc345a47e7..ffd3e4544f1 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -164,21 +164,7 @@ class Hooks { } /** - * @brief get path of a file. - * @param $fileId id of the file - * @return path of the file - */ - private static function getFilePath($fileId) { - $query = \OC_DB::prepare('SELECT `path`' - .' FROM `*PREFIX*filecache`' - .' WHERE `fileid` = ?'); - $result = $query->execute(array($fileId)); - $row = $result->fetchRow(); - return $row['path']; - } - - /** - * @brief + * @brief get all users with access to the file and encrypt the file key to each of them */ public static function postShared( $params ) { @@ -194,9 +180,11 @@ class Hooks { $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); - $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); + $path = Util::getFilePath($params['itemSource']); + + $shares = \OCP\Share::getUsersSharingFile( $path, 1 ); - return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource'])); + return Crypt::encKeyfileToMultipleUsers($shares, $path); } @@ -204,18 +192,20 @@ class Hooks { * @brief */ public static function preUnshare( $params ) { - $shares = \OCP\Share::getUsersSharingFile( $params['itemSource'], 1 ); + + $path = Util::getFilePath($params['itemSource']); + $shares = \OCP\Share::getUsersSharingFile( $path, 1 ); // remove the user from the list from which the file will be unshared unset($shares[$params['shareWith']]); - return Crypt::encKeyfileToMultipleUsers($shares, self::getFilePath($params['itemSource'])); + return Crypt::encKeyfileToMultipleUsers($shares, $path ); } /** * @brief */ public static function preUnshareAll( $params ) { - return Crypt::encKeyfileToMultipleUsers(array(\OCP\User::getUser()), self::getFilePath($params['itemSource'])); + return Crypt::encKeyfileToMultipleUsers(array(\OCP\User::getUser()), Util::getFilePath($params['itemSource'])); } } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index cbdae323e56..ba9f0cb9a2a 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -450,9 +450,7 @@ class Crypt { * @returns encrypted file */ public static function keyEncrypt( $plainContent, $publicKey ) { - openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey ); - return $encryptedContent; } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 52bc74db27a..843727d7ab4 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -472,5 +472,19 @@ class Util { } } + + /** + * @brief get path of a file. + * @param $fileId id of the file + * @return path of the file + */ + public static function getFilePath($fileId) { + $query = \OC_DB::prepare('SELECT `path`' + .' FROM `*PREFIX*filecache`' + .' WHERE `fileid` = ?'); + $result = $query->execute(array($fileId)); + $row = $result->fetchRow(); + return substr($row['path'], 5); + } } diff --git a/lib/public/share.php b/lib/public/share.php index 841240692d8..55ff4d4738f 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -149,64 +149,69 @@ class Share { * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $source, $includeOwner = 0 ) { - //TODO get also the recipients from folders which are shared above the current file - // Fetch all shares of this file path from DB - $query = \OC_DB::prepare( - 'SELECT share_with - FROM - `*PREFIX*share` - WHERE - item_source = ? AND share_type = ? AND uid_owner = ?' - ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_USER, \OCP\User::getUser() ) ); - - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); - } - + public static function getUsersSharingFile( $path, $includeOwner = 0 ) { + + $user = \OCP\User::getUser(); + $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); + $path = ''; $shares = array(); - while( $row = $result->fetchRow() ) { - $shares[] = $row['share_with']; - } - - // We also need to take group shares into account - - $query = \OC_DB::prepare( - 'SELECT share_with - FROM - `*PREFIX*share` - WHERE - item_source = ? AND share_type = ? AND uid_owner = ?' - ); + foreach ($path_parts as $p) { + $path .= '/'.$p; + $meta = \OC\Files\Filesystem::getFileInfo(\OC_Filesystem::normalizePath($path)); + $source = $meta['fileid']; - $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP, \OCP\User::getUser() ) ); - - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); - } - - while( $row = $result->fetchRow() ) { - $usersInGroup = \OC_Group::usersInGroup($row['share_with']); - $shares = array_merge($shares, $usersInGroup); + // Fetch all shares of this file path from DB + $query = \OC_DB::prepare( + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ? AND uid_owner = ?' + ); + + $result = $query->execute( array( $source, self::SHARE_TYPE_USER, $user ) ); + + if ( \OC_DB::isError( $result ) ) { + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + } + + while( $row = $result->fetchRow() ) { + $shares[] = $row['share_with']; + } + + // We also need to take group shares into account + + $query = \OC_DB::prepare( + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ? AND uid_owner = ?' + ); + + $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP, $user ) ); + + if ( \OC_DB::isError( $result ) ) { + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + } + + while( $row = $result->fetchRow() ) { + $usersInGroup = \OC_Group::usersInGroup($row['share_with']); + $shares = array_merge($shares, $usersInGroup); + } } - + if ( ! empty( $shares ) ) { // Include owner in list of users, if requested if ( $includeOwner == 1 ) { - $shares[] = \OCP\User::getUser(); + $shares[] = $user; } - return array_unique($shares); - } else { - return false; - } - + } /** -- GitLab From a692264fa416fec44d774bd955a06a65c7c0d158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 12 Feb 2013 17:00:33 +0100 Subject: [PATCH 015/454] add option to keep duplicates in the list of users with access to a file, e.g. for the unshare operation we need to know if access was granted more than once, for example as group share and as individual share --- apps/files_encryption/hooks/hooks.php | 6 +++--- apps/files_encryption/lib/proxy.php | 11 ++--------- lib/public/share.php | 17 +++++++++++------ 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ffd3e4544f1..5e06948aa50 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -182,7 +182,7 @@ class Hooks { $path = Util::getFilePath($params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $path, 1 ); + $shares = \OCP\Share::getUsersSharingFile( $path, true ); return Crypt::encKeyfileToMultipleUsers($shares, $path); @@ -194,11 +194,11 @@ class Hooks { public static function preUnshare( $params ) { $path = Util::getFilePath($params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $path, 1 ); + $shares = \OCP\Share::getUsersSharingFile( $path, true, false ); // remove the user from the list from which the file will be unshared unset($shares[$params['shareWith']]); - return Crypt::encKeyfileToMultipleUsers($shares, $path ); + return Crypt::encKeyfileToMultipleUsers(array_unique($shares), $path ); } /** diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 40ac411539b..3e4178e8a87 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -118,15 +118,8 @@ class Proxy extends \OC_FileProxy { // $fileOwner = \OC\Files\Filesystem::getOwner( $path ); // List everyone sharing the file - $shares = \OCP\Share::getUsersSharingFile( $filePath, 1 ); - - $userIds = array(); - - foreach ( $shares as $share ) { - - $userIds[] = $share['userId']; - - } + //TODO check, is this path always the path to the source file? + $userIds = \OCP\Share::getUsersSharingFile( $filePath, true ); $publicKeys = Keymanager::getPublicKeys( $rootView, $userIds ); diff --git a/lib/public/share.php b/lib/public/share.php index 55ff4d4738f..68f5e93baa7 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -145,11 +145,14 @@ class Share { /** * @brief Find which users can access a shared item - * @return bool / array + * @param $path to the file + * @param include owner to the list of users with access to the file + * @param remove duplicates in the result + * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path, $includeOwner = 0 ) { + public static function getUsersSharingFile( $path, $includeOwner = false, $removeDuplicates = true ) { $user = \OCP\User::getUser(); $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); @@ -204,14 +207,16 @@ class Share { if ( ! empty( $shares ) ) { // Include owner in list of users, if requested - if ( $includeOwner == 1 ) { + if ( $includeOwner ) { $shares[] = $user; } + } + + if ( $removeDuplicates ) return array_unique($shares); - } else { - return false; + else { + return $shares; } - } /** -- GitLab From 4952dfe95657ba52f1b39f958100659539831ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 13 Feb 2013 14:56:39 +0100 Subject: [PATCH 016/454] add post_unshare hook, also add public link shares to the list of user with access to a file --- apps/files_encryption/appinfo/app.php | 2 +- apps/files_encryption/hooks/hooks.php | 9 +++---- apps/files_encryption/lib/crypt.php | 4 ++- lib/public/share.php | 35 +++++++++++++++++++++------ 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index f83109a18ea..932e8855d07 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -16,7 +16,7 @@ OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'set // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); -OCP\Util::connectHook( 'OCP\Share', 'pre_unshare', 'OCA\Encryption\Hooks', 'preUnshare' ); +OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' ); // Webdav-related hooks diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 5e06948aa50..ae05ba78012 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -176,6 +176,8 @@ class Hooks { //TODO: We don't deal with shared folder yet, need to recursively update every file in the folder + if ($params['shareType'] == \OCP\Share::SHARE_TYPE_LINK) + $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); @@ -191,12 +193,9 @@ class Hooks { /** * @brief */ - public static function preUnshare( $params ) { - + public static function postUnshare( $params ) { $path = Util::getFilePath($params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $path, true, false ); - // remove the user from the list from which the file will be unshared - unset($shares[$params['shareWith']]); + $shares = \OCP\Share::getUsersSharingFile( $path, true ); return Crypt::encKeyfileToMultipleUsers(array_unique($shares), $path ); } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index ba9f0cb9a2a..0f465d7d95a 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -450,7 +450,9 @@ class Crypt { * @returns encrypted file */ public static function keyEncrypt( $plainContent, $publicKey ) { - openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey ); + + if (openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey )) error_log("feinifeine"); else error_log("ups"); + return $encryptedContent; } diff --git a/lib/public/share.php b/lib/public/share.php index 68f5e93baa7..f691ae9b39f 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -147,7 +147,6 @@ class Share { * @brief Find which users can access a shared item * @param $path to the file * @param include owner to the list of users with access to the file - * @param remove duplicates in the result * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' @@ -203,6 +202,25 @@ class Share { $usersInGroup = \OC_Group::usersInGroup($row['share_with']); $shares = array_merge($shares, $usersInGroup); } + + //check for public link shares + $query = \OC_DB::prepare( + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ? AND uid_owner = ?' + ); + + $result = $query->execute( array( $source, self::SHARE_TYPE_LINK, $user ) ); + + if ( \OC_DB::isError( $result ) ) { + \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + } + + if ($result->fetchRow()) { + $shares[] = self::SHARE_TYPE_LINK; + } } if ( ! empty( $shares ) ) { @@ -212,11 +230,8 @@ class Share { } } - if ( $removeDuplicates ) - return array_unique($shares); - else { - return $shares; - } + return array_unique($shares); + } /** @@ -475,8 +490,14 @@ class Share { 'itemSource' => $itemSource, 'shareType' => $shareType, 'shareWith' => $shareWith, - )); + )); self::delete($item['id']); + \OC_Hook::emit('OCP\Share', 'post_unshare', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + )); return true; } return false; -- GitLab From 9356f9a6bf6e9bd048e31e787d5fcb621de8eebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 13 Feb 2013 17:23:27 +0100 Subject: [PATCH 017/454] add post_unshareALll hook, update recursively all keyfiles if a folder was shared/unshared --- apps/files_encryption/appinfo/app.php | 2 +- apps/files_encryption/hooks/hooks.php | 15 +++++------ apps/files_encryption/lib/crypt.php | 36 ++++++++++++++++++++++++++- lib/public/share.php | 5 ++++ 4 files changed, 47 insertions(+), 11 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 932e8855d07..6778e1faa3c 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -17,7 +17,7 @@ OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'set // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); -OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' ); +OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); // Webdav-related hooks OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ae05ba78012..34ed11c7e24 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -176,17 +176,13 @@ class Hooks { //TODO: We don't deal with shared folder yet, need to recursively update every file in the folder - if ($params['shareType'] == \OCP\Share::SHARE_TYPE_LINK) - $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = Util::getFilePath($params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $path, true ); - - return Crypt::encKeyfileToMultipleUsers($shares, $path); + return Crypt::updateKeyfile($path); } @@ -195,16 +191,17 @@ class Hooks { */ public static function postUnshare( $params ) { $path = Util::getFilePath($params['itemSource']); - $shares = \OCP\Share::getUsersSharingFile( $path, true ); - return Crypt::encKeyfileToMultipleUsers(array_unique($shares), $path ); + return Crypt::updateKeyfile($path); } /** * @brief */ - public static function preUnshareAll( $params ) { - return Crypt::encKeyfileToMultipleUsers(array(\OCP\User::getUser()), Util::getFilePath($params['itemSource'])); + public static function postUnshareAll( $params ) { + $path = Util::getFilePath($params['itemSource']); + + return Crypt::updateKeyfile($path); } } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 0f465d7d95a..18e9535bf35 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -750,7 +750,7 @@ class Crypt { * @param $users list of users which should be able to access the file * @param $fileTarget target of the file */ - public static function encKeyfileToMultipleUsers($users, $filePath) { + private static function encKeyfileToMultipleUsers($users, $filePath) { $view = new \OC_FilesystemView( '/' ); $owner = \OCP\User::getUser(); $util = new Util( $view, $userId ); @@ -810,4 +810,38 @@ class Crypt { return true; } + + /** + * @brief update keyfile encryption for given path and all sub folders/files + * @param path which needs to be updated + * @return bool success + */ + public static function updateKeyfile($path) { + + $filesView = \OCP\Files::getStorage('files'); + + $result = true; + + if ( $filesView->is_dir($path) ) { + $content = $filesView->getDirectoryContent($path); + foreach ( $content as $c) { + $path = substr($c['path'], 5); + if ( $filesView->is_dir($path) ) { + error_log("dive into $path"); + $result &= self::updateKeyfile($path); + } else { + error_log("encKeyFileToMultipleUsers $path"); + $shares = \OCP\Share::getUsersSharingFile( $path, true ); + $result &= self::encKeyfileToMultipleUsers($shares, $path); + } + } + } else { + error_log("encKeyFileToMultipleUsers single file: " . $path); + $shares = \OCP\Share::getUsersSharingFile( $path, true ); + $result = self::encKeyfileToMultipleUsers($shares, $path); + } + + return $result; + + } } \ No newline at end of file diff --git a/lib/public/share.php b/lib/public/share.php index f691ae9b39f..d1297c6e59e 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -520,6 +520,11 @@ class Share { foreach ($shares as $share) { self::delete($share['id']); } + \OC_Hook::emit('OCP\Share', 'post_unshareAll', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'shares' => $shares + )); return true; } return false; -- GitLab From 5005195db005fd0d7c8fdf1a73e12c4a4619acb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 13 Feb 2013 17:57:45 +0100 Subject: [PATCH 018/454] create keypair for ownCloud with empty passphrase, will be used for public link shares --- apps/files_encryption/lib/crypt.php | 5 +---- apps/files_encryption/lib/session.php | 28 +++++++++++++++++++++++++++ lib/public/share.php | 2 +- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 18e9535bf35..2e5912a8683 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -763,7 +763,7 @@ class Crypt { $util = new Util( $view, $user ); // Check that the user is encryption capable - if ( $util->ready() ) { + if ( $util->ready() && $user == 'ownCloud' ) { // Construct array of just UIDs for Keymanager{} $userIds[] = $user; @@ -827,16 +827,13 @@ class Crypt { foreach ( $content as $c) { $path = substr($c['path'], 5); if ( $filesView->is_dir($path) ) { - error_log("dive into $path"); $result &= self::updateKeyfile($path); } else { - error_log("encKeyFileToMultipleUsers $path"); $shares = \OCP\Share::getUsersSharingFile( $path, true ); $result &= self::encKeyfileToMultipleUsers($shares, $path); } } } else { - error_log("encKeyFileToMultipleUsers single file: " . $path); $shares = \OCP\Share::getUsersSharingFile( $path, true ); $result = self::encKeyfileToMultipleUsers($shares, $path); } diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 769a40b359f..ebf7edcd715 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -27,6 +27,34 @@ namespace OCA\Encryption; */ class Session { + + /** + * @brief if session is started, check if ownCloud key pair is set up, if not create it + * + * The ownCloud key pair is used to allow public link sharing even if encryption is enabled + */ + public function __construct() { + $view = new \OC\Files\View('/'); + if (!$view->is_dir('owncloud_private_key')) { + $view->mkdir('owncloud_private_key'); + } + + if (!$view->file_exists("/public-keys/owncloud.public.key") || !$view->file_exists("/owncloud_private_key/owncloud.private.key") ) { + + $keypair = Crypt::createKeypair(); + + \OC_FileProxy::$enabled = false; + // Save public key + $view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); + // Encrypt private key empthy passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); + // Save private key + error_log("encrypted private key: " . $encryptedPrivateKey ); + $view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey ); + + \OC_FileProxy::$enabled = true; + } + } /** * @brief Sets user private key to session diff --git a/lib/public/share.php b/lib/public/share.php index d1297c6e59e..720337c3c38 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -219,7 +219,7 @@ class Share { } if ($result->fetchRow()) { - $shares[] = self::SHARE_TYPE_LINK; + $shares[] = "ownCloud"; } } -- GitLab From 8c35bbcba75590d5f66ecf08a4dd07db3fd23732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 14 Feb 2013 16:33:57 +0100 Subject: [PATCH 019/454] remove debug output, fix typo in file names --- apps/files_encryption/lib/session.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index ebf7edcd715..171a6900f0f 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -34,23 +34,23 @@ class Session { * The ownCloud key pair is used to allow public link sharing even if encryption is enabled */ public function __construct() { + $view = new \OC\Files\View('/'); if (!$view->is_dir('owncloud_private_key')) { $view->mkdir('owncloud_private_key'); } if (!$view->file_exists("/public-keys/owncloud.public.key") || !$view->file_exists("/owncloud_private_key/owncloud.private.key") ) { - + $keypair = Crypt::createKeypair(); \OC_FileProxy::$enabled = false; // Save public key - $view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); + $view->file_put_contents( '/public-keys/ownCloud.public.key', $keypair['publicKey'] ); // Encrypt private key empthy passphrase $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); // Save private key - error_log("encrypted private key: " . $encryptedPrivateKey ); - $view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey ); + $view->file_put_contents( '/owncloud_private_key/ownCloud.private.key', $encryptedPrivateKey ); \OC_FileProxy::$enabled = true; } -- GitLab From 109fee7673f1c3f395da47ae7114fba3354fa22f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 19 Feb 2013 14:47:45 +0100 Subject: [PATCH 020/454] remove todo, it is already solved --- apps/files_encryption/hooks/hooks.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 34ed11c7e24..50207246576 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -174,8 +174,6 @@ class Hooks { // fileTarget -> path of file being shared // uidOwner -> owner of the original file being shared - //TODO: We don't deal with shared folder yet, need to recursively update every file in the folder - $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); -- GitLab From fd629983fa61ad7fdc1c6696e6b2fa1739ae6f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 19 Feb 2013 17:10:32 +0100 Subject: [PATCH 021/454] remove debug output --- apps/files_encryption/lib/crypt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 2e5912a8683..a1684fc95f6 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -451,7 +451,7 @@ class Crypt { */ public static function keyEncrypt( $plainContent, $publicKey ) { - if (openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey )) error_log("feinifeine"); else error_log("ups"); + openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey ); return $encryptedContent; -- GitLab From 14ae373dfe86b34b3e027306b5f857a3f38ff418 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 19 Feb 2013 17:41:38 +0000 Subject: [PATCH 022/454] Fixed wrong array key reference --- apps/files_encryption/lib/crypt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index a1684fc95f6..49b75c17f6a 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -371,7 +371,7 @@ class Crypt { * @brief Create asymmetrically encrypted keyfile content using a generated key * @param string $plainContent content to be encrypted * @param array $publicKeys array keys must be the userId of corresponding user - * @returns array keys: keys (array, key = userId), encrypted + * @returns array keys: keys (array, key = userId), data * @note symmetricDecryptFileContent() can decrypt files created using this method */ public static function multiKeyEncrypt( $plainContent, array $publicKeys ) { -- GitLab From 1b880f2f96df514c68a17e90141cff9620c2ddb5 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 19 Feb 2013 19:16:50 +0000 Subject: [PATCH 023/454] Moved dependencies out of Crypt methods (encKeyfileToMultipleUsers)(DI) Fixed bug preventing sharing with users other than 'ownCloud' Added comments Moved functionality into filterShareReadyUsers() Other changes --- apps/files_encryption/appinfo/app.php | 2 +- apps/files_encryption/hooks/hooks.php | 23 +++++-- apps/files_encryption/lib/crypt.php | 97 ++++++++++++++------------- apps/files_encryption/lib/util.php | 41 +++++++++++ 4 files changed, 109 insertions(+), 54 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 6778e1faa3c..742e4add8f1 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -20,7 +20,7 @@ OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'pos OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); // Webdav-related hooks -OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' ); +OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 50207246576..1ebfdb1ae0a 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -139,7 +139,7 @@ class Hooks { /** * @brief update the encryption key of the file uploaded by the client */ - public static function updateKeyfile( $params ) { + public static function updateKeyfileFromClient( $params ) { if ( Crypt::mode() == 'client' ) { @@ -175,12 +175,13 @@ class Hooks { // uidOwner -> owner of the original file being shared $view = new \OC_FilesystemView( '/' ); + $session = new Session(); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); - $path = Util::getFilePath($params['itemSource']); + $path = Util::getFilePath( $params['itemSource'] ); - return Crypt::updateKeyfile($path); + return Crypt::updateKeyfile( $view, $session, $path ); } @@ -188,18 +189,26 @@ class Hooks { * @brief */ public static function postUnshare( $params ) { - $path = Util::getFilePath($params['itemSource']); + + $view = new \OC_FilesystemView( '/' ); + $session = new Session(); + $path = Util::getFilePath( $params['itemSource'] ); + + return Crypt::updateKeyfile( $view, $session, $path ); - return Crypt::updateKeyfile($path); } /** * @brief */ public static function postUnshareAll( $params ) { - $path = Util::getFilePath($params['itemSource']); + + $view = new \OC_FilesystemView( '/' ); + $session = new Session(); + $path = Util::getFilePath( $params['itemSource'] ); + + return Crypt::updateKeyfile( $view, $session, $path ); - return Crypt::updateKeyfile($path); } } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 49b75c17f6a..1b0167834e1 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -746,52 +746,44 @@ class Crypt { /** - * @brief encrypt file key to multiple users - * @param $users list of users which should be able to access the file - * @param $fileTarget target of the file + * @brief Encrypt keyfile to multiple users + * @param array $users list of users which should be able to access the file + * @param string $filePath path of the file to be shared */ - private static function encKeyfileToMultipleUsers($users, $filePath) { - $view = new \OC_FilesystemView( '/' ); - $owner = \OCP\User::getUser(); - $util = new Util( $view, $userId ); - $session = new Session(); + private static function encKeyfileToMultipleUsers( \OC_FilesystemView $view, Util $util, Session $session, $userId, array $users, $filePath ) { + + // Make sure users are capable of sharing + $filteredUids = $util->filterShareReadyUsers( $users ); - $userIds = array(); + // Get public keys for each user, ready for generating sharekeys + $userPubKeys = Keymanager::getPublicKeys( $view, $filteredUids ); // TODO: check this includes the owner's public key + + \OC_FileProxy::$enabled = false; + + // Get the current users's private key for decrypting existing keyfile + $privateKey = $session->getPrivateKey(); - foreach ( $users as $user ) { + // We need to get a decrypted key for the file + // Determine how to decrypt the keyfile by checking if current user is owner + if ( $userId == \OC\Files\Filesystem::getOwner( $filePath ) ) { - $util = new Util( $view, $user ); - - // Check that the user is encryption capable - if ( $util->ready() && $user == 'ownCloud' ) { - // Construct array of just UIDs for Keymanager{} - $userIds[] = $user; - - } else { - - // Log warning; we can't do necessary setup here - // because we don't have the user passphrase - // TODO: Provide user feedback indicating that - // sharing failed - \OC_Log::write( 'Encryption library', 'File cannot be shared: user "'.$user.'" is not setup for encryption', \OC_Log::WARN ); + // If current user is owner, decrypt without using sharekey - } + } else { + + // Current user is resharing a file they don't own + // Decrypt keyfile using sharekey } - - $userPubKeys = Keymanager::getPublicKeys( $view, $userIds ); - - \OC_FileProxy::$enabled = false; - - // get the keyfile + // get the existing keyfile $encKeyfile = Keymanager::getFileKey( $view, $owner, $filePath ); - $privateKey = $session->getPrivateKey(); - - // decrypt the keyfile + // decrypt the existing keyfile $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - + + trigger_error("PUBKEYS = ". var_export($userPubKeys, 1)); + // re-enc keyfile to sharekeys $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); @@ -816,29 +808,42 @@ class Crypt { * @param path which needs to be updated * @return bool success */ - public static function updateKeyfile($path) { + public static function updateKeyfile( \OC_FilesystemView $view, Util $util, Session $session, $path ) { - $filesView = \OCP\Files::getStorage('files'); + // Make path include 'files' dir for OC_FSV operations + $fPath = 'files' . $path; $result = true; - if ( $filesView->is_dir($path) ) { - $content = $filesView->getDirectoryContent($path); - foreach ( $content as $c) { + if ( ! $view->is_dir( $fPath ) ) { + + $shares = \OCP\Share::getUsersSharingFile( $path, true ); + $result = self::encKeyfileToMultipleUsers( $view, $util, $session, $shares, $path ); + + } else { + + $content = $view->getDirectoryContent( $fPath ); + + foreach ( $content as $c ) { + $path = substr($c['path'], 5); - if ( $filesView->is_dir($path) ) { - $result &= self::updateKeyfile($path); + + if ( $view->is_dir( $fPath ) ) { + + $result &= self::updateKeyfile( $path ); + } else { + $shares = \OCP\Share::getUsersSharingFile( $path, true ); - $result &= self::encKeyfileToMultipleUsers($shares, $path); + $result &= self::encKeyfileToMultipleUsers( $view, $util, $session, $shares, $path ); + } } - } else { - $shares = \OCP\Share::getUsersSharingFile( $path, true ); - $result = self::encKeyfileToMultipleUsers($shares, $path); + } return $result; } + } \ No newline at end of file diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 843727d7ab4..8ca51c95d77 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -486,5 +486,46 @@ class Util { $row = $result->fetchRow(); return substr($row['path'], 5); } + + /** + * @brief Filter an array of UIDs to return only ones ready for sharing + * @param array $unfilteredUsers users to be checked for sharing readiness + * @return array $userIds filtered users + */ + public function filterShareReadyUsers( $unfilteredUsers ) { + + // This array will collect the filtered IDs + $userIds = array(); + + // Loop through users and create array of UIDs that need new keyfiles + foreach ( $unfilteredUsers as $user ) { + + $util = new Util( $this->view, $user ); + + // Check that the user is encryption capable, or is the + // public system user 'ownCloud' (for public shares) + if ( + $util->ready() + or $user == 'ownCloud' + ) { + + // Construct array of just UIDs for Keymanager{} + $userIds[] = $user; + + } else { + + // Log warning; we can't do necessary setup here + // because we don't have the user passphrase + // TODO: Provide user feedback indicating that + // sharing failed + \OC_Log::write( 'Encryption library', '"'.$user.'" is not setup for encryption', \OC_Log::WARN ); + + } + + } + + return $userIds; + + } } -- GitLab From 2d267501a10642e5c601ca87748b692ca58e4094 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 20 Feb 2013 19:18:00 +0000 Subject: [PATCH 024/454] Development snapshot Added comments Added methods --- apps/files_encryption/hooks/hooks.php | 54 ++++++-- apps/files_encryption/lib/crypt.php | 102 -------------- apps/files_encryption/lib/keymanager.php | 4 +- apps/files_encryption/lib/proxy.php | 43 ++++-- apps/files_encryption/lib/util.php | 169 +++++++++++++++++++++-- apps/files_encryption/test/util.php | 4 +- 6 files changed, 240 insertions(+), 136 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 1ebfdb1ae0a..6d982b2c3b0 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -178,10 +178,34 @@ class Hooks { $session = new Session(); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); + $path = $util->fileIdToPath( $params['itemSource'] ); - $path = Util::getFilePath( $params['itemSource'] ); - - return Crypt::updateKeyfile( $view, $session, $path ); + $usersSharing = \OCP\Share::getUsersSharingFile( $path, true ); + + $allPaths = $util->getPaths( $path ); + + $failed = array(); + + foreach ( $allPaths as $path ) { + + if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { + + $failed[] = $path; + + } + + } + + // If no attempts to set keyfiles failed + if ( empty( $failed ) ) { + + return true; + + } else { + + return false; + + } } @@ -190,11 +214,13 @@ class Hooks { */ public static function postUnshare( $params ) { - $view = new \OC_FilesystemView( '/' ); - $session = new Session(); - $path = Util::getFilePath( $params['itemSource'] ); - - return Crypt::updateKeyfile( $view, $session, $path ); +// $view = new \OC_FilesystemView( '/' ); +// $session = new Session(); +// $userId = \OCP\User::getUser(); +// $util = new Util( $view, $userId ); +// $path = $util->fileIdToPath( $params['itemSource'] ); +// +// return Crypt::updateKeyfile( $view, $util, $session, $userId, $path ); } @@ -203,11 +229,13 @@ class Hooks { */ public static function postUnshareAll( $params ) { - $view = new \OC_FilesystemView( '/' ); - $session = new Session(); - $path = Util::getFilePath( $params['itemSource'] ); - - return Crypt::updateKeyfile( $view, $session, $path ); +// $view = new \OC_FilesystemView( '/' ); +// $session = new Session(); +// $userId = \OCP\User::getUser(); +// $util = new Util( $view, $userId ); +// $path = $util->fileIdToPath( $params['itemSource'] ); +// +// return Crypt::updateKeyfile( $view, $util, $session, $userId, $path ); } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 1b0167834e1..a677de950ae 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -744,106 +744,4 @@ class Crypt { } - - /** - * @brief Encrypt keyfile to multiple users - * @param array $users list of users which should be able to access the file - * @param string $filePath path of the file to be shared - */ - private static function encKeyfileToMultipleUsers( \OC_FilesystemView $view, Util $util, Session $session, $userId, array $users, $filePath ) { - - // Make sure users are capable of sharing - $filteredUids = $util->filterShareReadyUsers( $users ); - - // Get public keys for each user, ready for generating sharekeys - $userPubKeys = Keymanager::getPublicKeys( $view, $filteredUids ); // TODO: check this includes the owner's public key - - \OC_FileProxy::$enabled = false; - - // Get the current users's private key for decrypting existing keyfile - $privateKey = $session->getPrivateKey(); - - // We need to get a decrypted key for the file - // Determine how to decrypt the keyfile by checking if current user is owner - if ( $userId == \OC\Files\Filesystem::getOwner( $filePath ) ) { - - // If current user is owner, decrypt without using sharekey - - } else { - - // Current user is resharing a file they don't own - // Decrypt keyfile using sharekey - - } - - // get the existing keyfile - $encKeyfile = Keymanager::getFileKey( $view, $owner, $filePath ); - - // decrypt the existing keyfile - $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - - trigger_error("PUBKEYS = ". var_export($userPubKeys, 1)); - - // re-enc keyfile to sharekeys - $shareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); - - // save sharekeys - if ( ! Keymanager::setShareKeys( $view, $filePath, $shareKeys['keys'] ) ) { - - trigger_error( "SET Share keys failed" ); - - } - - // Delete existing keyfile - // Do this last to ensure file is recoverable in case of error - // Keymanager::deleteFileKey( $view, $userId, $params['fileTarget'] ); - - \OC_FileProxy::$enabled = true; - - return true; - } - - /** - * @brief update keyfile encryption for given path and all sub folders/files - * @param path which needs to be updated - * @return bool success - */ - public static function updateKeyfile( \OC_FilesystemView $view, Util $util, Session $session, $path ) { - - // Make path include 'files' dir for OC_FSV operations - $fPath = 'files' . $path; - - $result = true; - - if ( ! $view->is_dir( $fPath ) ) { - - $shares = \OCP\Share::getUsersSharingFile( $path, true ); - $result = self::encKeyfileToMultipleUsers( $view, $util, $session, $shares, $path ); - - } else { - - $content = $view->getDirectoryContent( $fPath ); - - foreach ( $content as $c ) { - - $path = substr($c['path'], 5); - - if ( $view->is_dir( $fPath ) ) { - - $result &= self::updateKeyfile( $path ); - - } else { - - $shares = \OCP\Share::getUsersSharingFile( $path, true ); - $result &= self::encKeyfileToMultipleUsers( $view, $util, $session, $shares, $path ); - - } - } - - } - - return $result; - - } - } \ No newline at end of file diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 5f9eea1a0bc..ec1fdd1fd55 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -305,8 +305,8 @@ class Keymanager { /** * @brief retrieve shareKey for an encrypted file * @param \OC_FilesystemView $view - * @param $userId - * @param $filePath + * @param string $userId + * @param string $filePath * @internal param \OCA\Encryption\file $string name * @return string file key or false * @note The sharekey returned is encrypted. Decryption diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 3e4178e8a87..9e6a11d9d48 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -169,6 +169,24 @@ class Proxy extends \OC_FileProxy { * @param string $data Data that has been read from file */ public function postFile_get_contents( $path, $data ) { + + // FIXME: $path for shared files is just /uid/files/Shared/filepath + + $userId = \OCP\USER::getUser(); + $view = new \OC_FilesystemView( '/' ); + $util = new Util( $view, $userId ); + + if ( $util->isSharedPath( $path ) ) { + + $relPath = $util->stripSharedFilePath( $path ); + + } else { + + $relPath = $util->stripUserFilesPath( $path ); + + } + + // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; @@ -178,27 +196,34 @@ class Proxy extends \OC_FileProxy { Crypt::mode() == 'server' && Crypt::isCatfile( $data ) ) { - $view = new \OC_FilesystemView( '/' ); + // TODO use get owner to find correct location of key files for shared files - $userId = \OCP\USER::getUser(); $session = new Session(); - $util = new Util( $view, $userId ); - $filePath = $util->stripUserFilesPath( $path ); $privateKey = $session->getPrivateKey( $userId ); + // Get the file owner so we can retrieve its keyfile + $fileOwner = \OC\Files\Filesystem::getOwner( $relPath ); //NOTE: This might be false! make sure the path passed to it is right + $fileOwner = 'admin'; // FIXME: Manually set the correct UID for now + // Get the encrypted keyfile - $encKeyfile = Keymanager::getFileKey( $view, $userId, $filePath ); + $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $relPath ); - // Check if key is shared or not - if ( \OCP\Share::isSharedFile( $filePath ) ) { + trigger_error("\$encKeyfile = ". var_export($encKeyfile, 1)); + + // Attempt to fetch the user's shareKey + $shareKey = Keymanager::getShareKey( $view, $userId, $relPath ); + + trigger_error("\$shareKey = ".var_export($shareKey, 1)); - // If key is shared, fetch the user's shareKey - $shareKey = Keymanager::getShareKey( $view, $userId, $filePath ); + // Check if key is shared or not + if ( $shareKey ) { \OC_FileProxy::$enabled = false; // Decrypt keyfile with shareKey $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + + trigger_error("PROXY plainkeyfile = ". var_export($plainKeyfile, 1)); } else { diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 8ca51c95d77..ac098cd877d 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -224,7 +224,7 @@ class Util { * @note $directory needs to be a path relative to OC data dir. e.g. * /admin/files NOT /backup OR /home/www/oc/data/admin/files */ - public function findFiles( $directory ) { + public function findEncFiles( $directory ) { // Disable proxy - we don't want files to be decrypted before // we handle them @@ -251,7 +251,7 @@ class Util { // its contents if ( $this->view->is_dir( $filePath ) ) { - $this->findFiles( $filePath ); + $this->findEncFiles( $filePath ); // If the path is a file, determine // its encryption status @@ -348,6 +348,38 @@ class Util { } + /** + * @brief Format a shared path to be relative to the /user/files/ directory + * @note Expects a path like /uid/files/Shared/filepath + */ + public function stripSharedFilePath( $path ) { + + $trimmed = ltrim( $path, '/' ); + $split = explode( '/', $trimmed ); + $sliced = array_slice( $split, 3 ); + $relPath = implode( '/', $sliced ); + + return $relPath; + + } + + public function isSharedPath( $path ) { + + $trimmed = ltrim( $path, '/' ); + $split = explode( '/', $trimmed ); + + if ( $split[2] == "Shared" ) { + + return true; + + } else { + + return false; + + } + + } + /** * @brief Encrypt all files in a directory * @param string $publicKey the public key to encrypt files with @@ -356,7 +388,7 @@ class Util { */ public function encryptAll( $publicKey, $dirPath, $legacyPassphrase = null, $newPassphrase = null ) { - if ( $found = $this->findFiles( $dirPath ) ) { + if ( $found = $this->findEncFiles( $dirPath ) ) { // Disable proxy to prevent file being encrypted twice \OC_FileProxy::$enabled = false; @@ -478,13 +510,18 @@ class Util { * @param $fileId id of the file * @return path of the file */ - public static function getFilePath($fileId) { - $query = \OC_DB::prepare('SELECT `path`' + public static function fileIdToPath( $fileId ) { + + $query = \OC_DB::prepare( 'SELECT `path`' .' FROM `*PREFIX*filecache`' - .' WHERE `fileid` = ?'); - $result = $query->execute(array($fileId)); + .' WHERE `fileid` = ?' ); + + $result = $query->execute( array( $fileId ) ); + $row = $result->fetchRow(); - return substr($row['path'], 5); + + return substr( $row['path'], 5 ); + } /** @@ -527,5 +564,121 @@ class Util { return $userIds; } + + /** + * @brief Expand given path to all sub files & folders + * @param Session $session + * @param string $path path which needs to be updated + * @return bool outcome of attempt to set keyfiles + */ + public function getPaths( $path ) { + + // Default return value is success + $result = true; + + // Make path include 'files' dir for OC_FSV operations + $fPath = 'files' . $path; + + // If we're handling a single file + if ( ! $this->view->is_dir( $fPath ) ) { + + $pathsArray[] = $path; + + // If we're handling a folder (recursively) + } else { + + $subFiles = $this->view->getDirectoryContent( $fPath ); + + foreach ( $subFiles as $file ) { + + $filePath = substr( $file['path'], 5 ); + + // If this is a nested file + if ( ! $this->view->is_dir( $fPath ) ) { + + // Add the file path to array + $pathsArray[] = $path; + + } else { + + // If this is a nested folder + $dirPaths = $this->getPaths( $filePath ); + + // Add all subfiles & folders to the array + $pathsArray = array_merge( $dirPaths, $pathsArray ); + + } + } + + } + + return $pathsArray; + + } + + /** + * @brief Encrypt keyfile to multiple users + * @param array $users list of users which should be able to access the file + * @param string $filePath path of the file to be shared + */ + public function setSharedFileKeyfiles( Session $session, array $users, $filePath ) { + + // Make sure users are capable of sharing + $filteredUids = $this->filterShareReadyUsers( $users ); + + // Get public keys for each user, ready for generating sharekeys + $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids ); // TODO: check this includes the owner's public key + + \OC_FileProxy::$enabled = false; + + // Get the current users's private key for decrypting existing keyfile + $privateKey = $session->getPrivateKey(); + + $fileOwner = \OC\Files\Filesystem::getOwner( $filePath ); + + // Get the encrypted keyfile + // NOTE: the keyfile format depends on how it was encrypted! At + // this stage we don't know how it was encrypted + $encKeyfile = Keymanager::getFileKey( $this->view, $this->userId, $filePath ); + + // We need to decrypt the keyfile + // Has the file been shared yet? + if ( + $this->userId == $fileOwner + && ! Keymanager::getShareKey( $this->view, $this->userId, $filePath ) // NOTE: we can't use isShared() here because it's a post share hook so it always returns true + ) { + + // The file has no shareKey, and its keyfile must be + // decrypted conventionally + $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); + + + } else { + + // The file has a shareKey and must use it for decryption + $shareKey = Keymanager::getShareKey( $this->view, $this->userId, $filePath ); + + $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + + } + + // Re-enc keyfile to (additional) sharekeys + $newShareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); + + // Save new sharekeys to all necessary user folders + if ( ! Keymanager::setShareKeys( $this->view, $filePath, $newShareKeys['keys'] ) ) { + + trigger_error( "SET Share keys failed" ); + + } + + // Delete existing keyfile + // Do this last to ensure file is recoverable in case of error + // Keymanager::deleteFileKey( $this->view, $this->userId, $params['fileTarget'] ); + + \OC_FileProxy::$enabled = true; + + return true; + } } diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php index 1cdeff8008d..275e60f4bd6 100755 --- a/apps/files_encryption/test/util.php +++ b/apps/files_encryption/test/util.php @@ -150,13 +150,13 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { } - function testFindFiles() { + function testFindEncFiles() { // $this->view->chroot( "/data/{$this->userId}/files" ); $util = new Encryption\Util( $this->view, $this->userId ); - $files = $util->findFiles( '/', 'encrypted' ); + $files = $util->findEncFiles( '/', 'encrypted' ); var_dump( $files ); -- GitLab From 40efeb91878e72eb5c2eb1ab50574cda9435e0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 22 Feb 2013 16:02:27 +0100 Subject: [PATCH 025/454] isSharedFile() doesn't detect all shares, just use getUsersSharingFile() directly either you get a list of users or not --- apps/files_encryption/lib/proxy.php | 6 +---- lib/public/share.php | 34 ----------------------------- 2 files changed, 1 insertion(+), 39 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 9e6a11d9d48..ebe09dc075a 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -113,14 +113,10 @@ class Proxy extends \OC_FileProxy { $encData = Crypt::symmetricEncryptFileContentKeyfile( $data ); // Check if the keyfile needs to be shared - if ( \OCP\Share::isSharedFile( $filePath ) ) { + if ( ($userIds = \OCP\Share::getUsersSharingFile( $filePath, true )) ) { // $fileOwner = \OC\Files\Filesystem::getOwner( $path ); - // List everyone sharing the file - //TODO check, is this path always the path to the source file? - $userIds = \OCP\Share::getUsersSharingFile( $filePath, true ); - $publicKeys = Keymanager::getPublicKeys( $rootView, $userIds ); \OC_FileProxy::$enabled = false; diff --git a/lib/public/share.php b/lib/public/share.php index 720337c3c38..7630c8ae6cb 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -108,41 +108,7 @@ class Share { return $path; } - - public static function isSharedFile( $path ) { - - $fPath = self::prepFileTarget( $path ); - - // Fetch all shares of this file path from DB - $query = \OC_DB::prepare( - 'SELECT - id - FROM - `*PREFIX*share` - WHERE - file_target = ?' - ); - - $result = $query->execute( array( $fPath ) ); - - if ( \OC_DB::isError( $result ) ) { - - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage( $result ) . ', path=' . $fPath, \OC_Log::ERROR ); - - } - - if ( $result->fetchRow() !== false ) { - return true; - - } else { - - return false; - - } - - } - /** * @brief Find which users can access a shared item * @param $path to the file -- GitLab From 31c434b79560c3c45e6202cecc635ad6cb887390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 22 Feb 2013 16:08:08 +0100 Subject: [PATCH 026/454] the default should be to encrypt all files if the user/admin doesn't specify a blacklist explicitely --- apps/files_encryption/lib/proxy.php | 2 +- apps/files_encryption/settings-personal.php | 2 +- apps/files_encryption/settings.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index ebe09dc075a..56c9000bfb0 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -70,7 +70,7 @@ class Proxy extends \OC_FileProxy { if ( is_null(self::$blackList ) ) { - self::$blackList = explode(',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', 'jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) ); + self::$blackList = explode(',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) ); } diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php index 6fe4ea6d564..94e37ebe96b 100644 --- a/apps/files_encryption/settings-personal.php +++ b/apps/files_encryption/settings-personal.php @@ -8,7 +8,7 @@ $tmpl = new OCP\Template( 'files_encryption', 'settings-personal'); -$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', 'jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) ); +$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) ); $tmpl->assign( 'blacklist', $blackList ); diff --git a/apps/files_encryption/settings.php b/apps/files_encryption/settings.php index d1260f44e9f..85c616bca79 100644 --- a/apps/files_encryption/settings.php +++ b/apps/files_encryption/settings.php @@ -10,7 +10,7 @@ $tmpl = new OCP\Template( 'files_encryption', 'settings' ); -$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', 'jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) ); +$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) ); $tmpl->assign( 'blacklist', $blackList ); $tmpl->assign( 'encryption_mode', \OC_Appconfig::getValue( 'files_encryption', 'mode', 'none' ) ); -- GitLab From ca1b94d890c281507c31082f1116f15d246341dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 25 Feb 2013 12:29:07 +0100 Subject: [PATCH 027/454] make sure that home folders are mounted correctly before write/read keyfile --- apps/files_encryption/lib/keymanager.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index ec1fdd1fd55..d35ad8f4d5e 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -105,6 +105,7 @@ class Keymanager { */ public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { + \OC\Files\Filesystem::initMountPoints($userId); $basePath = '/' . $userId . '/files_encryption/keyfiles'; $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); @@ -134,6 +135,7 @@ class Keymanager { */ public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { + \OC\Files\Filesystem::initMountPoints($userId); $filePath_f = ltrim( $filePath, '/' ); $keyfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; -- GitLab From 4550ae6a69c00aeab2f54d0210ae5dee90f7ee82 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 26 Feb 2013 18:11:29 +0000 Subject: [PATCH 028/454] Shared encrypted files now readable by both sharer and sharee --- apps/files_encryption/lib/crypt.php | 2 ++ apps/files_encryption/lib/keymanager.php | 20 ++++++++++--- apps/files_encryption/lib/proxy.php | 15 ++++++---- apps/files_encryption/lib/util.php | 37 +++++++++++++++++------- 4 files changed, 53 insertions(+), 21 deletions(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index a677de950ae..5a2d99df546 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -391,6 +391,8 @@ class Crypt { if( openssl_seal( $plainContent, $sealed, $shareKeys, $publicKeys ) ) { +// trigger_error("SEALED = $sealed"); + $i = 0; // Ensure each shareKey is labelled with its diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index d35ad8f4d5e..ec4057d0983 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -105,6 +105,8 @@ class Keymanager { */ public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { + \OC_FileProxy::$enabled = false; + \OC\Files\Filesystem::initMountPoints($userId); $basePath = '/' . $userId . '/files_encryption/keyfiles'; @@ -112,15 +114,19 @@ class Keymanager { if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { - + // FIXME: write me } else { // Save the keyfile in parallel directory - return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); + $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); } + \OC_FileProxy::$enabled = true; + + return $result; + } /** @@ -140,16 +146,22 @@ class Keymanager { $keyfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + \OC_FileProxy::$enabled = false; + if ( $view->file_exists( $keyfilePath ) ) { - return $view->file_get_contents( $keyfilePath ); + $result = $view->file_get_contents( $keyfilePath ); } else { - return false; + $result = false; } + \OC_FileProxy::$enabled = true; + + return $result; + } /** diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 56c9000bfb0..29207dce07d 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -91,7 +91,8 @@ class Proxy extends \OC_FileProxy { return false; } - public function preFile_put_contents( $path, &$data ) { + public function preFile_put_contents( $path, &$data ) { + // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. if ( self::shouldEncrypt( $path ) ) { @@ -204,22 +205,22 @@ class Proxy extends \OC_FileProxy { // Get the encrypted keyfile $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $relPath ); - trigger_error("\$encKeyfile = ". var_export($encKeyfile, 1)); - // Attempt to fetch the user's shareKey $shareKey = Keymanager::getShareKey( $view, $userId, $relPath ); - trigger_error("\$shareKey = ".var_export($shareKey, 1)); - // Check if key is shared or not if ( $shareKey ) { \OC_FileProxy::$enabled = false; +// trigger_error("\$encKeyfile = $encKeyfile, \$shareKey = $shareKey, \$privateKey = $privateKey"); + // Decrypt keyfile with shareKey $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); - trigger_error("PROXY plainkeyfile = ". var_export($plainKeyfile, 1)); +// $plainKeyfile = $encKeyfile; + +// trigger_error("PROXY plainkeyfile = ". var_export($plainKeyfile, 1)); } else { @@ -229,6 +230,8 @@ class Proxy extends \OC_FileProxy { } $plainData = Crypt::symmetricDecryptFileContent( $data, $plainKeyfile ); + +// trigger_error("PLAINDATA = ". var_export($plainData, 1)); } elseif ( Crypt::mode() == 'server' diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index ac098cd877d..920ff3eb159 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -21,17 +21,28 @@ * */ -// Todo: +# Bugs +# ---- +# Sharing a file to a user without encryption set up will not provide them with access but won't notify the sharer +# Deleting files if keyfile is missing fails +# When encryption app is disabled files become unreadable +# Timeouts on first login due to encryption of very large files +# MultiKeyEncrypt() may be failing + + +# Missing features +# ---------------- +# Unshare a file +# Re-use existing keyfiles so they don't need version control +# Make sure user knows if large files weren't encrypted +# Trashbin support + + +// Old Todo: // - Crypt/decrypt button in the userinterface // - Setting if crypto should be on by default // - Add a setting "Don´t encrypt files larger than xx because of performance // reasons" -// - Transparent decrypt/encrypt in filesystem.php. Autodetect if a file is -// encrypted (.encrypted extension) -// - Don't use a password directly as encryption key. but a key which is -// stored on the server and encrypted with the user password. -> password -// change faster -// - IMPORTANT! Check if the block lenght of the encrypted data stays the same namespace OCA\Encryption; @@ -663,10 +674,14 @@ class Util { } // Re-enc keyfile to (additional) sharekeys - $newShareKeys = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); - - // Save new sharekeys to all necessary user folders - if ( ! Keymanager::setShareKeys( $this->view, $filePath, $newShareKeys['keys'] ) ) { + $multiEncKey = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); + + // Save the recrypted key to it's owner's keyfiles directory + // Save new sharekeys to all necessary user directory + if ( + ! Keymanager::setFileKey( $this->view, $filePath, $fileOwner, $multiEncKey['data'] ) + || ! Keymanager::setShareKeys( $this->view, $filePath, $multiEncKey['keys'] ) + ) { trigger_error( "SET Share keys failed" ); -- GitLab From aae9b0b1bfc95d60bcc7c4a4b85a387a94ac9caa Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 26 Feb 2013 18:33:31 +0000 Subject: [PATCH 029/454] Started work on post unshare hook Development snapshot --- apps/files_encryption/hooks/hooks.php | 114 ++++++++++++++++------- apps/files_encryption/lib/keymanager.php | 24 +++++ apps/files_encryption/lib/util.php | 3 +- 3 files changed, 107 insertions(+), 34 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 6d982b2c3b0..bf16a492e33 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -167,44 +167,60 @@ class Hooks { * @brief get all users with access to the file and encrypt the file key to each of them */ public static function postShared( $params ) { - - // NOTE: $params is an array with these keys: + + // NOTE: $params has keys: + // [itemType] => file // itemSource -> int, filecache file ID + // [parent] => + // [itemTarget] => /13 // shareWith -> string, uid of user being shared to // fileTarget -> path of file being shared // uidOwner -> owner of the original file being shared + // [shareType] => 0 + // [shareWith] => test1 + // [uidOwner] => admin + // [permissions] => 17 + // [fileSource] => 13 + // [fileTarget] => /test8 + // [id] => 10 + // [token] => - $view = new \OC_FilesystemView( '/' ); - $session = new Session(); - $userId = \OCP\User::getUser(); - $util = new Util( $view, $userId ); - $path = $util->fileIdToPath( $params['itemSource'] ); - - $usersSharing = \OCP\Share::getUsersSharingFile( $path, true ); - - $allPaths = $util->getPaths( $path ); + // TODO: Should other kinds of item be encrypted too? + if ( $params['itemType'] === 'file' ) { - $failed = array(); - - foreach ( $allPaths as $path ) { - - if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { + $view = new \OC_FilesystemView( '/' ); + $session = new Session(); + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + $path = $util->fileIdToPath( $params['itemSource'] ); + + $usersSharing = \OCP\Share::getUsersSharingFile( $path, true ); + + $allPaths = $util->getPaths( $path ); + + $failed = array(); - $failed[] = $path; + foreach ( $allPaths as $path ) { + + if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { + + $failed[] = $path; + + } } - } - - // If no attempts to set keyfiles failed - if ( empty( $failed ) ) { - - return true; + // If no attempts to set keyfiles failed + if ( empty( $failed ) ) { - } else { - - return false; + return true; + + } else { + return false; + + } + } } @@ -213,15 +229,47 @@ class Hooks { * @brief */ public static function postUnshare( $params ) { + + // NOTE: $params has keys: + // [itemType] => file + // [itemSource] => 13 + // [shareType] => 0 + // [shareWith] => test1 -// $view = new \OC_FilesystemView( '/' ); -// $session = new Session(); -// $userId = \OCP\User::getUser(); -// $util = new Util( $view, $userId ); -// $path = $util->fileIdToPath( $params['itemSource'] ); -// -// return Crypt::updateKeyfile( $view, $util, $session, $userId, $path ); + // TODO: Should other kinds of item be encrypted too? + if ( $params['itemType'] === 'file' ) { + + $view = new \OC_FilesystemView( '/' ); + $session = new Session(); + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + $path = $util->fileIdToPath( $params['itemSource'] ); + $allPaths = $util->getPaths( $path ); + + foreach ( $allPaths as $path ) { + + if ( ! Keymanager::delShareKey( $view, $userId, $path ) ) { + + $failed[] = $path; + + } + + } + + // If no attempts to set keyfiles failed + if ( empty( $failed ) ) { + + return true; + + } else { + + return false; + + } + + } + } /** diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index ec4057d0983..22e2ffa500e 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -350,6 +350,30 @@ class Keymanager { } + /** + * @brief Delete a single user's shareKey for a single file + */ + public static function delShareKey( \OC_FilesystemView $view, $userId, $filePath ) { + + $trimmed = ltrim( $filePath, '/' ); + $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $trimmed . '.shareKey'; + + // Unlink doesn't tell us if file was deleted (not found returns + // true), so we perform our own test + if ( $view->file_exists( $shareKeyPath ) ) { + + return $view->unlink( $shareKeyPath ); + + } else { + + \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); + + return false; + + } + + } + /** * @brief Make preparations to vars and filesystem for saving a keyfile */ diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 920ff3eb159..02c62e160c8 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -580,7 +580,8 @@ class Util { * @brief Expand given path to all sub files & folders * @param Session $session * @param string $path path which needs to be updated - * @return bool outcome of attempt to set keyfiles + * @return array $pathsArray all found file paths + * @note Paths of directories excluded, only *file* paths are returned */ public function getPaths( $path ) { -- GitLab From 14eae441eb77ee53304d8a164deb146bda4020f4 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 27 Feb 2013 15:31:23 +0000 Subject: [PATCH 030/454] Unsharing a single file now works --- apps/files_encryption/hooks/hooks.php | 4 +++- apps/files_encryption/lib/keymanager.php | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index bf16a492e33..fb3545208d2 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -245,11 +245,13 @@ class Hooks { $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); + // If path is a folder, get all children $allPaths = $util->getPaths( $path ); foreach ( $allPaths as $path ) { - if ( ! Keymanager::delShareKey( $view, $userId, $path ) ) { + // Unshare each child path + if ( ! Keymanager::delShareKey( $view, $params['shareWith'], $path ) ) { $failed[] = $path; diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 22e2ffa500e..62bb12bf90d 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -355,6 +355,8 @@ class Keymanager { */ public static function delShareKey( \OC_FilesystemView $view, $userId, $filePath ) { + \OC_FileProxy::$enabled = false; + $trimmed = ltrim( $filePath, '/' ); $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $trimmed . '.shareKey'; @@ -362,16 +364,22 @@ class Keymanager { // true), so we perform our own test if ( $view->file_exists( $shareKeyPath ) ) { - return $view->unlink( $shareKeyPath ); + $result = $view->unlink( $shareKeyPath ); } else { + trigger_error("Could not delete shareKey; does not exist: $shareKeyPath"); + \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); - return false; + $result = false; } + \OC_FileProxy::$enabled = false; + + return $result; + } /** -- GitLab From 69bc42f920324ef02ade5dff6bd52f2ddde113a2 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 27 Feb 2013 16:15:03 +0000 Subject: [PATCH 031/454] Deleting encrypted files with missing keyfiles/shareKeys now succeeds --- apps/files_encryption/hooks/hooks.php | 9 ++------- apps/files_encryption/lib/crypt.php | 2 -- apps/files_encryption/lib/proxy.php | 27 +++++++++++++++++++++------ apps/files_encryption/lib/util.php | 3 --- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index fb3545208d2..590ba7b1b97 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -279,13 +279,8 @@ class Hooks { */ public static function postUnshareAll( $params ) { -// $view = new \OC_FilesystemView( '/' ); -// $session = new Session(); -// $userId = \OCP\User::getUser(); -// $util = new Util( $view, $userId ); -// $path = $util->fileIdToPath( $params['itemSource'] ); -// -// return Crypt::updateKeyfile( $view, $util, $session, $userId, $path ); + // NOTE: It appears that this is never called for files, so + // we may not need to implement it } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 5a2d99df546..a138f5f3cb0 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -390,8 +390,6 @@ class Crypt { $shareKeys = array(); if( openssl_seal( $plainContent, $sealed, $shareKeys, $publicKeys ) ) { - -// trigger_error("SEALED = $sealed"); $i = 0; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 29207dce07d..92a70499367 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -272,23 +272,38 @@ class Proxy extends \OC_FileProxy { $split = explode( '/', $trimmed ); $sliced = array_slice( $split, 2 ); $relPath = implode( '/', $sliced ); + $filePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $relPath; if ( $view->is_dir( $path ) ) { // Dirs must be handled separately as deleteFileKey // doesn't handle them - $view->unlink( $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $relPath ); + $view->unlink( $filePath ); } else { - // Delete keyfile so it isn't orphaned - $result = Keymanager::deleteFileKey( $view, $userId, $relPath ); - - \OC_FileProxy::$enabled = true; + // Delete keyfile & shareKey so it isn't orphaned + if ( + ! ( + Keymanager::deleteFileKey( $view, $userId, $relPath ) + && Keymanager::delShareKey( $view, $userId, $relPath ) + ) + ) { + + \OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "'.$filePath.'"', \OC_Log::ERROR ); + + + } + - return $result; } + + \OC_FileProxy::$enabled = true; + + // If we don't return true then file delete will fail; better + // to leave orphaned keyfiles than to disallow file deletion + return true; } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 02c62e160c8..31ce3a413cc 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -24,15 +24,12 @@ # Bugs # ---- # Sharing a file to a user without encryption set up will not provide them with access but won't notify the sharer -# Deleting files if keyfile is missing fails # When encryption app is disabled files become unreadable # Timeouts on first login due to encryption of very large files -# MultiKeyEncrypt() may be failing # Missing features # ---------------- -# Unshare a file # Re-use existing keyfiles so they don't need version control # Make sure user knows if large files weren't encrypted # Trashbin support -- GitLab From 953319a2c3d85bf0d5eb86511c7466188b5ca45f Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 27 Feb 2013 18:46:44 +0000 Subject: [PATCH 032/454] Made proxy class reuse existing keyfiles not gen new ones; Added notes about reusing shareKeys --- apps/files_encryption/lib/keymanager.php | 2 - apps/files_encryption/lib/proxy.php | 46 +++++++++++++++------- apps/files_encryption/lib/util.php | 50 ++++++++++++++++-------- 3 files changed, 65 insertions(+), 33 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 62bb12bf90d..0c2db2be329 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -368,8 +368,6 @@ class Keymanager { } else { - trigger_error("Could not delete shareKey; does not exist: $shareKeyPath"); - \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); $result = false; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 92a70499367..c5b1c8154c4 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -93,16 +93,17 @@ class Proxy extends \OC_FileProxy { public function preFile_put_contents( $path, &$data ) { - // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. if ( self::shouldEncrypt( $path ) ) { // Stream put contents should have been converted to fopen if ( !is_resource( $data ) ) { - // TODO check who is the owner of the file in case of shared folders $userId = \OCP\USER::getUser(); $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); + $session = new Session(); + $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + $privateKey = $session->getPrivateKey(); $filePath = $util->stripUserFilesPath( $path ); // Set the filesize for userland, before encrypting $size = strlen( $data ); @@ -110,45 +111,62 @@ class Proxy extends \OC_FileProxy { // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; + // Check if there is an existing key we can reuse + if ( $encKeyfile = Keymanager::getFileKey( $rootView, $fileOwner, $filePath ) ) { + + $keyPreExists = true; + + // Decrypt the keyfile + $plainKey = $util->decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ); + + } else { + + $keyPreExists = false; + + // Make a new key + $plainKey = Crypt::generateKey(); + + } + // Encrypt data - $encData = Crypt::symmetricEncryptFileContentKeyfile( $data ); + $encData = Crypt::symmetricEncryptFileContent( $data, $plainKey ); // Check if the keyfile needs to be shared - if ( ($userIds = \OCP\Share::getUsersSharingFile( $filePath, true )) ) { - -// $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + if ( $userIds = \OCP\Share::getUsersSharingFile( $filePath, true ) ) { $publicKeys = Keymanager::getPublicKeys( $rootView, $userIds ); \OC_FileProxy::$enabled = false; // Encrypt plain keyfile to multiple sharefiles - $multiEncrypted = Crypt::multiKeyEncrypt( $encData['key'], $publicKeys ); + $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); // Save sharekeys to user folders + // TODO: openssl_seal generates new shareKeys (envelope keys) each time data is encrypted, but will data still be decryptable using old shareKeys? If so we don't need to replace the old shareKeys here, we only need to set the new ones Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); // Set encrypted keyfile as common varname $encKey = $multiEncrypted['encrypted']; - - } else { $publicKey = Keymanager::getPublicKey( $rootView, $userId ); // Encrypt plain data to a single user - $encKey = Crypt::keyEncrypt( $encData['key'], $publicKey ); + $encKey = Crypt::keyEncrypt( $plainKey, $publicKey ); } - // TODO: Replace userID with ownerId so keyfile is saved centrally + // Save the key if its new + if ( ! $keyPreExists ) { - // Save keyfile for newly encrypted file in parallel directory tree - Keymanager::setFileKey( $rootView, $filePath, $userId, $encKey ); + // Save keyfile for newly encrypted file in parallel directory tree + Keymanager::setFileKey( $rootView, $filePath, $fileOwner, $encKey ); + + } // Replace plain content with encrypted content by reference - $data = $encData['encrypted']; + $data = $encData; // Update the file cache with file info \OC\Files\Filesystem::putFileInfo( $path, array( 'encrypted'=>true, 'size' => $size ), '' ); diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 31ce3a413cc..cd223bd7029 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -626,25 +626,15 @@ class Util { } /** - * @brief Encrypt keyfile to multiple users - * @param array $users list of users which should be able to access the file - * @param string $filePath path of the file to be shared + * @brief Decrypt a keyfile without knowing how it was encrypted + * @param string $filePath + * @param string $fileOwner + * @param string $privateKey + * @note Checks whether file was encrypted with openssl_seal or + * openssl_encrypt, and decrypts accrdingly */ - public function setSharedFileKeyfiles( Session $session, array $users, $filePath ) { - - // Make sure users are capable of sharing - $filteredUids = $this->filterShareReadyUsers( $users ); - - // Get public keys for each user, ready for generating sharekeys - $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids ); // TODO: check this includes the owner's public key + public function decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ) { - \OC_FileProxy::$enabled = false; - - // Get the current users's private key for decrypting existing keyfile - $privateKey = $session->getPrivateKey(); - - $fileOwner = \OC\Files\Filesystem::getOwner( $filePath ); - // Get the encrypted keyfile // NOTE: the keyfile format depends on how it was encrypted! At // this stage we don't know how it was encrypted @@ -671,6 +661,32 @@ class Util { } + return $plainKeyfile; + + } + + /** + * @brief Encrypt keyfile to multiple users + * @param array $users list of users which should be able to access the file + * @param string $filePath path of the file to be shared + */ + public function setSharedFileKeyfiles( Session $session, array $users, $filePath ) { + + // Make sure users are capable of sharing + $filteredUids = $this->filterShareReadyUsers( $users ); + + // Get public keys for each user, ready for generating sharekeys + $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids ); // TODO: check this includes the owner's public key + + \OC_FileProxy::$enabled = false; + + // Get the current users's private key for decrypting existing keyfile + $privateKey = $session->getPrivateKey(); + + $fileOwner = \OC\Files\Filesystem::getOwner( $filePath ); + + $plainKeyfile = $this->decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ); + // Re-enc keyfile to (additional) sharekeys $multiEncKey = Crypt::multiKeyEncrypt( $plainKeyfile, $userPubKeys ); -- GitLab From 0bc7d3bcf833e257fa4b2ae3b74d60bef63218b8 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 27 Feb 2013 18:50:57 +0000 Subject: [PATCH 033/454] Added notes where to reuse old keys instead of generating new ones --- apps/files_encryption/lib/stream.php | 1 + apps/files_encryption/lib/util.php | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index d4b993b4c06..f4bd6f1b6b0 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -318,6 +318,7 @@ class Stream { // one), save the newly generated keyfile if ( ! $this->getKey() ) { + // TODO: Reuse the keyfile, it it exists, instead of making a new one $this->keyfile = Crypt::generateKey(); $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index cd223bd7029..6a18feea7df 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -692,6 +692,7 @@ class Util { // Save the recrypted key to it's owner's keyfiles directory // Save new sharekeys to all necessary user directory + // TODO: Reuse the keyfile, it it exists, instead of making a new one if ( ! Keymanager::setFileKey( $this->view, $filePath, $fileOwner, $multiEncKey['data'] ) || ! Keymanager::setShareKeys( $this->view, $filePath, $multiEncKey['keys'] ) -- GitLab From e65e6a12f1270faec377363f02f27ddd7d68b8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 4 Mar 2013 15:33:38 +0100 Subject: [PATCH 034/454] define key size in constructor, otherwise the key size will depend on the servers openssl conf --- apps/files_encryption/lib/crypt.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index a138f5f3cb0..2be6e3ae5d9 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -56,7 +56,7 @@ class Crypt { */ public static function createKeypair() { - $res = openssl_pkey_new(); + $res = openssl_pkey_new(array('private_key_bits' => 4096)); // Get private key openssl_pkey_export( $res, $privateKey ); @@ -450,7 +450,7 @@ class Crypt { * @returns encrypted file */ public static function keyEncrypt( $plainContent, $publicKey ) { - + openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey ); return $encryptedContent; -- GitLab From f2b86d0227d080dd4395efaf5fb086b024af0c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 4 Mar 2013 17:58:56 +0100 Subject: [PATCH 035/454] make sure that $this->userId is initialized before using it as a parameter --- apps/files_encryption/lib/stream.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index f4bd6f1b6b0..6074638ab39 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -68,6 +68,8 @@ class Stream { private $rootView; // a fsview object set to '/' public function stream_open( $path, $mode, $options, &$opened_path ) { + + $this->userId = \OCP\User::getUser(); // Get access to filesystem via filesystemview object if ( !self::$view ) { @@ -82,9 +84,7 @@ class Stream { $this->rootView = new \OC_FilesystemView( $this->userId . '/' ); } - - $this->userId = \OCP\User::getUser(); - + // Get the bare file path $path = str_replace( 'crypt://', '', $path ); -- GitLab From d4f98923b9be7f3e6805573085bf9fedfaff836c Mon Sep 17 00:00:00 2001 From: herbrechtsmeier Date: Sat, 23 Feb 2013 12:58:06 +0100 Subject: [PATCH 036/454] Overwrite host and webroot when forcessl is enabled This patch enables the use of forcessl together with a multiple domains reverse SSL proxy (owncloud/core#1099) which have different hostname and webroot for http and https access. The code assumes that the ssl proxy (https) hostname and webroot is configured via overwritehost and overwritewebroot. --- lib/request.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/request.php b/lib/request.php index 9f74cf9beb5..859276a12a3 100755 --- a/lib/request.php +++ b/lib/request.php @@ -11,9 +11,10 @@ class OC_Request { * @brief Check overwrite condition * @returns true/false */ - private static function isOverwriteCondition() { + private static function isOverwriteCondition($type = '') { $regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/'; - return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1; + return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1 + or ($type <> 'protocol' and OC_Config::getValue('forcessl', false)); } /** @@ -52,7 +53,7 @@ class OC_Request { * Returns the server protocol. It respects reverse proxy servers and load balancers */ public static function serverProtocol() { - if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) { + if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition('protocol')) { return OC_Config::getValue('overwriteprotocol'); } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { -- GitLab From ecb9d37b55f5c55545a2c0ec475e22d71bd4dcc8 Mon Sep 17 00:00:00 2001 From: herbrechtsmeier Date: Sat, 9 Mar 2013 11:39:20 +0100 Subject: [PATCH 037/454] request.php: add type check to the not empty check of a string The not equal comparison (<>) of a variable with an empty string could lead to false positive results as the compare do not check the type and thereby could not make sure that the checked variable is a string. The usage of the not identical comparison operator (!==) make sure that the variable is a string and not empty. --- lib/request.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/request.php b/lib/request.php index 859276a12a3..4d8380eb9ac 100755 --- a/lib/request.php +++ b/lib/request.php @@ -14,7 +14,7 @@ class OC_Request { private static function isOverwriteCondition($type = '') { $regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/'; return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1 - or ($type <> 'protocol' and OC_Config::getValue('forcessl', false)); + or ($type !== 'protocol' and OC_Config::getValue('forcessl', false)); } /** @@ -28,7 +28,7 @@ class OC_Request { if(OC::$CLI) { return 'localhost'; } - if(OC_Config::getValue('overwritehost', '')<>'' and self::isOverwriteCondition()) { + if(OC_Config::getValue('overwritehost', '') !== '' and self::isOverwriteCondition()) { return OC_Config::getValue('overwritehost'); } if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { @@ -53,7 +53,7 @@ class OC_Request { * Returns the server protocol. It respects reverse proxy servers and load balancers */ public static function serverProtocol() { - if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition('protocol')) { + if(OC_Config::getValue('overwriteprotocol', '') !== '' and self::isOverwriteCondition('protocol')) { return OC_Config::getValue('overwriteprotocol'); } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { @@ -77,7 +77,7 @@ class OC_Request { */ public static function requestUri() { $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { + if (OC_Config::getValue('overwritewebroot', '') !== '' and self::isOverwriteCondition()) { $uri = self::scriptName() . substr($uri, strlen($_SERVER['SCRIPT_NAME'])); } return $uri; @@ -92,7 +92,7 @@ class OC_Request { */ public static function scriptName() { $name = $_SERVER['SCRIPT_NAME']; - if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { + if (OC_Config::getValue('overwritewebroot', '') !== '' and self::isOverwriteCondition()) { $serverroot = str_replace("\\", '/', substr(__DIR__, 0, -4)); $suburi = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen($serverroot))); $name = OC_Config::getValue('overwritewebroot', '') . $suburi; -- GitLab From c1f1fbda08b464b286e309283ed81d16f30a5ca6 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Sat, 9 Mar 2013 19:18:34 +0100 Subject: [PATCH 038/454] Fixed stream wrapper bugs Switched encryptAll() to use stream-based instead of file-at-a-time encryption Development snapshot --- apps/files_encryption/lib/crypt.php | 4 +- apps/files_encryption/lib/proxy.php | 10 ++-- apps/files_encryption/lib/stream.php | 60 +++++++++------------ apps/files_encryption/lib/util.php | 78 +++++++++++++++++++++++----- apps/files_encryption/test/crypt.php | 6 +-- 5 files changed, 99 insertions(+), 59 deletions(-) diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 2be6e3ae5d9..f92930c2cbd 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -114,7 +114,7 @@ class Crypt { * @return true / false * @note see also OCA\Encryption\Util->isEncryptedPath() */ - public static function isCatfile( $content ) { + public static function isCatfileContent( $content ) { if ( !$content ) { @@ -179,7 +179,7 @@ class Crypt { if ( isset( $metadata['encrypted'] ) and $metadata['encrypted'] === true - and ! self::isCatfile( $data ) + and ! self::isCatfileContent( $data ) ) { return true; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index c5b1c8154c4..2a738c80e38 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -74,7 +74,7 @@ class Proxy extends \OC_FileProxy { } - if ( Crypt::isCatfile( $path ) ) { + if ( Crypt::isCatfileContent( $path ) ) { return true; @@ -209,7 +209,7 @@ class Proxy extends \OC_FileProxy { // If data is a catfile if ( Crypt::mode() == 'server' - && Crypt::isCatfile( $data ) + && Crypt::isCatfileContent( $data ) ) { // TODO use get owner to find correct location of key files for shared files @@ -439,7 +439,7 @@ class Proxy extends \OC_FileProxy { public function postGetMimeType( $path, $mime ) { - if ( Crypt::isCatfile( $path ) ) { + if ( Crypt::isCatfileContent( $path ) ) { $mime = \OCP\Files::getMimeType( 'crypt://' . $path, 'w' ); @@ -451,7 +451,7 @@ class Proxy extends \OC_FileProxy { public function postStat( $path, $data ) { - if ( Crypt::isCatfile( $path ) ) { + if ( Crypt::isCatfileContent( $path ) ) { $cached = \OC\Files\Filesystem::getFileInfo( $path, '' ); @@ -464,7 +464,7 @@ class Proxy extends \OC_FileProxy { public function postFileSize( $path, $size ) { - if ( Crypt::isCatfile( $path ) ) { + if ( Crypt::isCatfileContent( $path ) ) { $cached = \OC\Files\Filesystem::getFileInfo( $path, '' ); diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 6074638ab39..0b2e6ab3e64 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -68,42 +68,33 @@ class Stream { private $rootView; // a fsview object set to '/' public function stream_open( $path, $mode, $options, &$opened_path ) { - - $this->userId = \OCP\User::getUser(); - // Get access to filesystem via filesystemview object - if ( !self::$view ) { - - self::$view = new \OC_FilesystemView( $this->userId . '/' ); - - } + $this->userId = \OCP\User::getUser(); - // Set rootview object if necessary - if ( ! $this->rootView ) { + if ( ! isset( $this->rootView ) ) { - $this->rootView = new \OC_FilesystemView( $this->userId . '/' ); + $this->rootView = new \OC_FilesystemView( '/' ); } - // Get the bare file path - $path = str_replace( 'crypt://', '', $path ); + // Strip identifier text from path + $this->rawPath = str_replace( 'crypt://', '', $path ); - $this->rawPath = $path; - - $this->path_f = $this->userId . '/files/' . $path; + // Set file path relative to user files dir + $this->relPath = $this->userId . '/files/' . $this->rawPath; if ( - dirname( $path ) == 'streams' - and isset( self::$sourceStreams[basename( $path )] ) + dirname( $this->rawPath ) == 'streams' + and isset( self::$sourceStreams[basename( $this->rawPath )] ) ) { // Is this just for unit testing purposes? - $this->handle = self::$sourceStreams[basename( $path )]['stream']; + $this->handle = self::$sourceStreams[basename( $this->rawPath )]['stream']; - $this->path = self::$sourceStreams[basename( $path )]['path']; + $this->path = self::$sourceStreams[basename( $this->rawPath )]['path']; - $this->size = self::$sourceStreams[basename( $path )]['size']; + $this->size = self::$sourceStreams[basename( $this->rawPath )]['size']; } else { @@ -114,41 +105,38 @@ class Stream { or $mode == 'wb+' ) { + // We're writing a new file so start write counter with 0 bytes $this->size = 0; } else { + $this->size = $this->rootView->filesize( $this->relPath, $mode ); - - $this->size = self::$view->filesize( $this->path_f, $mode ); - - //$this->size = filesize( $path ); + //$this->size = filesize( $this->rawPath ); } // Disable fileproxies so we can open the source file without recursive encryption \OC_FileProxy::$enabled = false; - //$this->handle = fopen( $path, $mode ); + //$this->handle = fopen( $this->rawPath, $mode ); - $this->handle = self::$view->fopen( $this->path_f, $mode ); + $this->handle = $this->rootView->fopen( $this->relPath, $mode ); \OC_FileProxy::$enabled = true; - if ( !is_resource( $this->handle ) ) { + if ( ! is_resource( $this->handle ) ) { - \OCP\Util::writeLog( 'files_encryption', 'failed to open '.$path, \OCP\Util::ERROR ); + \OCP\Util::writeLog( 'files_encryption', 'failed to open file "'.$this->rootView . '"', \OCP\Util::ERROR ); + } else { + + $this->meta = stream_get_meta_data( $this->handle ); + } } - if ( is_resource( $this->handle ) ) { - - $this->meta = stream_get_meta_data( $this->handle ); - - } - return is_resource( $this->handle ); } @@ -238,7 +226,7 @@ class Stream { // If a keyfile already exists for a file named identically to // file to be written - if ( self::$view->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) { + if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) { // TODO: add error handling for when file exists but no // keyfile diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 6a18feea7df..e8b5be2de15 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -24,13 +24,12 @@ # Bugs # ---- # Sharing a file to a user without encryption set up will not provide them with access but won't notify the sharer -# When encryption app is disabled files become unreadable # Timeouts on first login due to encryption of very large files # Missing features # ---------------- -# Re-use existing keyfiles so they don't need version control +# Re-use existing keyfiles so they don't need version control (part implemented, stream{} and util{} remain) # Make sure user knows if large files weren't encrypted # Trashbin support @@ -280,14 +279,14 @@ class Util { // will eat server resources :( if ( Keymanager::getFileKey( $this->view, $this->userId, $file ) - && Crypt::isCatfile( $data ) + && Crypt::isCatfileContent( $data ) ) { $found['encrypted'][] = array( 'name' => $file, 'path' => $filePath ); // If the file uses old // encryption system - } elseif ( Crypt::isLegacyEncryptedContent( $this->view->file_get_contents( $filePath ), $relPath ) ) { + } elseif ( Crypt::isLegacyEncryptedContent( $this->tail( $filePath, 3 ), $relPath ) ) { $found['legacy'][] = array( 'name' => $file, 'path' => $filePath ); @@ -324,6 +323,49 @@ class Util { } + /** + * @brief Fetch the last lines of a file efficiently + * @note Safe to use on large files; does not read entire file to memory + * @note Derivative of http://tekkie.flashbit.net/php/tail-functionality-in-php + */ + public function tail( $filename, $numLines ) { + + \OC_FileProxy::$enabled = false; + + $text = ''; + $pos = -1; + $handle = $this->view->fopen( $filename, 'r' ); + + while ( $numLines > 0 ) { + + --$pos; + + if( fseek( $handle, $pos, SEEK_END ) !== 0 ) { + + rewind( $handle ); + $numLines = 0; + + } elseif ( fgetc( $handle ) === "\n" ) { + + --$numLines; + + } + + $block_size = ( -$pos ) % 8192; + if ( $block_size === 0 || $numLines === 0 ) { + + $text = fread( $handle, ( $block_size === 0 ? 8192 : $block_size ) ) . $text; + + } + } + + fclose( $handle ); + + \OC_FileProxy::$enabled = true; + + return $text; + } + /** * @brief Check if a given path identifies an encrypted file * @return true / false @@ -338,7 +380,7 @@ class Util { \OC_FileProxy::$enabled = true; - return Crypt::isCatfile( $data ); + return Crypt::isCatfileContent( $data ); } @@ -403,22 +445,32 @@ class Util { // Encrypt unencrypted files foreach ( $found['plain'] as $plainFile ) { + + // Open plain file handle + + + // Open enc file handle + - // Fetch data from file - $plainData = $this->view->file_get_contents( $plainFile['path'] ); + // Read plain file in chunks - // Encrypt data, generate catfile - $encrypted = Crypt::keyEncryptKeyfile( $plainData, $publicKey ); $relPath = $this->stripUserFilesPath( $plainFile['path'] ); - // Save keyfile - Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encrypted['key'] ); + // Open handle with for binary reading + $plainHandle = $this->view->fopen( $plainFile['path'], 'rb' ); + // Open handle with for binary writing + $encHandle = fopen( 'crypt://' . 'var/www/oc6/data/' . $plainFile['path'] . '.tmp', 'ab' ); // Overwrite the existing file with the encrypted one - $this->view->file_put_contents( $plainFile['path'], $encrypted['data'] ); + //$this->view->file_put_contents( $plainFile['path'], $encrypted['data'] ); + $size = stream_copy_to_stream( $plainHandle, $encHandle ); + + // Fetch the key that has just been set/updated by the stream + $encKey = Keymanager::getFileKey( $relPath ); - $size = strlen( $encrypted['data'] ); + // Save keyfile + Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encKey ); // Add the file to the cache \OC\Files\Filesystem::putFileInfo( $plainFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' ); diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php index 48ad2ee0075..b02e63b2ffc 100755 --- a/apps/files_encryption/test/crypt.php +++ b/apps/files_encryption/test/crypt.php @@ -416,13 +416,13 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { function testIsEncryptedContent() { - $this->assertFalse( Encryption\Crypt::isCatfile( $this->dataUrl ) ); + $this->assertFalse( Encryption\Crypt::isCatfileContent( $this->dataUrl ) ); - $this->assertFalse( Encryption\Crypt::isCatfile( $this->legacyEncryptedData ) ); + $this->assertFalse( Encryption\Crypt::isCatfileContent( $this->legacyEncryptedData ) ); $keyfileContent = Encryption\Crypt::symmetricEncryptFileContent( $this->dataUrl, 'hat' ); - $this->assertTrue( Encryption\Crypt::isCatfile( $keyfileContent ) ); + $this->assertTrue( Encryption\Crypt::isCatfileContent( $keyfileContent ) ); } -- GitLab From c89fd49870e3bdd66b73ab6d8d64895e870de260 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 19 Mar 2013 19:53:15 +0100 Subject: [PATCH 039/454] Improved folder creation code Created stub method for checking user pwd recovery preference from db Added pwd recovery column to db Added comments --- apps/files_encryption/appinfo/database.xml | 8 +++ apps/files_encryption/hooks/hooks.php | 6 +- apps/files_encryption/lib/util.php | 68 ++++++++++------------ 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/apps/files_encryption/appinfo/database.xml b/apps/files_encryption/appinfo/database.xml index d294c35d63d..b144b6cb2a4 100644 --- a/apps/files_encryption/appinfo/database.xml +++ b/apps/files_encryption/appinfo/database.xml @@ -18,6 +18,14 @@ text true 64 + What client-side / server-side configuration is used + + + recovery + boolean + true + 0 + Whether encryption key recovery is enabled diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 590ba7b1b97..8db75397063 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -29,9 +29,6 @@ namespace OCA\Encryption; class Hooks { - // TODO: use passphrase for encrypting private key that is separate to - // the login password - /** * @brief Startup encryption backend upon user login * @note This method should never be called for users using client side encryption @@ -196,12 +193,15 @@ class Hooks { $usersSharing = \OCP\Share::getUsersSharingFile( $path, true ); + // Recursively expand path to include subfiles $allPaths = $util->getPaths( $path ); $failed = array(); + // Loop through all subfiles foreach ( $allPaths as $path ) { + // Attempt to set shareKey if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { $failed[] = $path; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index e8b5be2de15..a80da73a4b0 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -153,45 +153,24 @@ class Util { */ public function setupServerSide( $passphrase = null ) { - // Create user dir - if( !$this->view->file_exists( $this->userDir ) ) { + // Set directories to check / create + $setUpDirs = array( + $this->userDir + , $this->userFilesDir + , $this->publicKeyDir + , $this->encryptionDir + , $this->keyfilesPath + , $this->shareKeysPath + ); - $this->view->mkdir( $this->userDir ); + // Check / create all necessary dirs + foreach ( $setUpDirs as $dirPath ) { - } - - // Create user files dir - if( !$this->view->file_exists( $this->userFilesDir ) ) { - - $this->view->mkdir( $this->userFilesDir ); - - } - - // Create shared public key directory - if( !$this->view->file_exists( $this->publicKeyDir ) ) { - - $this->view->mkdir( $this->publicKeyDir ); - - } - - // Create encryption app directory - if( !$this->view->file_exists( $this->encryptionDir ) ) { - - $this->view->mkdir( $this->encryptionDir ); - - } - - // Create mirrored keyfile directory - if( !$this->view->file_exists( $this->keyfilesPath ) ) { - - $this->view->mkdir( $this->keyfilesPath ); - - } - - // Create mirrored share env keys directory - if( !$this->view->file_exists( $this->shareKeysPath ) ) { - - $this->view->mkdir( $this->shareKeysPath ); + if( !$this->view->file_exists( $dirPath ) ) { + + $this->view->mkdir( $dirPath ); + + } } @@ -223,6 +202,20 @@ class Util { } + public function recoveryEnabled( ) { + + $sql = 'SELECT * FROM `*PREFIX*myusers` WHERE id = ?'; + $args = array(1); + + $query = \OCP\DB::prepare($sql); + $result = $query->execute($args); + + while($row = $result->fetchRow()) { + $userName = $row['username']; + } + + } + /** * @brief Find all files and their encryption status within a directory * @param string $directory The path of the parent directory to search @@ -737,6 +730,7 @@ class Util { $fileOwner = \OC\Files\Filesystem::getOwner( $filePath ); + // Decrypt keyfile $plainKeyfile = $this->decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ); // Re-enc keyfile to (additional) sharekeys -- GitLab From fd4e59b748d2d22e4aea4a7583139b5a4e4b65d7 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 20 Mar 2013 19:26:59 +0100 Subject: [PATCH 040/454] Added method for setting user keyfile recovery preference Fixed method for checking if keyfile recovery is enabled for a user Added unit test for above 2 methods Made proxy{} always use sharing Made proxy{} work regardless of sharing API enabled or not Implemented proxy-based sharing to admin if user keyfile recovery is enabled --- apps/files_encryption/hooks/hooks.php | 2 - apps/files_encryption/lib/keymanager.php | 1 + apps/files_encryption/lib/proxy.php | 56 +++++++++++------ apps/files_encryption/lib/util.php | 78 +++++++++++++++++++++--- apps/files_encryption/test/util.php | 20 ++++++ 5 files changed, 126 insertions(+), 31 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 8db75397063..82e650c417c 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -40,7 +40,6 @@ class Hooks { \OC\Files\Filesystem::init( $params['uid'] . '/' . 'files' . '/' ); $view = new \OC_FilesystemView( '/' ); - $util = new Util( $view, $params['uid'] ); // Check files_encryption infrastructure is ready for action @@ -61,7 +60,6 @@ class Hooks { $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); $session = new Session(); - $session->setPrivateKey( $privateKey, $params['uid'] ); $view1 = new \OC_FilesystemView( '/' . $params['uid'] ); diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 0c2db2be329..6837dcf67b5 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -57,6 +57,7 @@ class Keymanager { return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); \OC_FileProxy::$enabled = true; + } /** diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 2a738c80e38..f469422e225 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -131,32 +131,50 @@ class Proxy extends \OC_FileProxy { // Encrypt data $encData = Crypt::symmetricEncryptFileContent( $data, $plainKey ); - // Check if the keyfile needs to be shared - if ( $userIds = \OCP\Share::getUsersSharingFile( $filePath, true ) ) { - - $publicKeys = Keymanager::getPublicKeys( $rootView, $userIds ); - - \OC_FileProxy::$enabled = false; - - // Encrypt plain keyfile to multiple sharefiles - $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); - - // Save sharekeys to user folders - // TODO: openssl_seal generates new shareKeys (envelope keys) each time data is encrypted, but will data still be decryptable using old shareKeys? If so we don't need to replace the old shareKeys here, we only need to set the new ones - Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); + // Check if key recovery is enabled + $recoveryEnabled = $util->recoveryEnabled(); + + // Make sure that a share key is generated for the owner too + $userIds = array( $userId ); + + if ( \OCP\Share::isEnabled() ) { + + // Find out who, if anyone, is sharing the file + $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true ); - // Set encrypted keyfile as common varname - $encKey = $multiEncrypted['encrypted']; + $userIds = array_merge( $userIds, $shareUids ); - } else { + } - $publicKey = Keymanager::getPublicKey( $rootView, $userId ); + // If recovery is enabled, add the + // Admin UID to list of users to share to + if ( $recoveryEnabled ) { - // Encrypt plain data to a single user - $encKey = Crypt::keyEncrypt( $plainKey, $publicKey ); + // FIXME: Create a separate admin user purely for recovery, and create method in util for fetching this id from DB? + $adminUid = 'recoveryAdmin'; + $userIds[] = $adminUid; + } + // Remove duplicate UIDs + $uniqueUserIds = array_unique ( $userIds ); + + // Fetch public keys for all users who will share the file + $publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds ); + + \OC_FileProxy::$enabled = false; + + // Encrypt plain keyfile to multiple sharefiles + $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); + + // Save sharekeys to user folders + // TODO: openssl_seal generates new shareKeys (envelope keys) each time data is encrypted, but will data still be decryptable using old shareKeys? If so we don't need to replace the old shareKeys here, we only need to set the new ones + Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); + + // Set encrypted keyfile as common varname + $encKey = $multiEncrypted['data']; + // Save the key if its new if ( ! $keyPreExists ) { diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index a80da73a4b0..b86e7f421b8 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -31,7 +31,12 @@ # ---------------- # Re-use existing keyfiles so they don't need version control (part implemented, stream{} and util{} remain) # Make sure user knows if large files weren't encrypted -# Trashbin support + + +# Test +# ---- +# Test that writing files works when recovery is enabled, and sharing API is disabled +# Test trashbin support // Old Todo: @@ -202,18 +207,71 @@ class Util { } - public function recoveryEnabled( ) { + /** + * @brief Check whether pwd recovery is enabled for a given user + * @return bool + * @note If records are not being returned, check for a hidden space + * at the start of the uid in db + */ + public function recoveryEnabled() { - $sql = 'SELECT * FROM `*PREFIX*myusers` WHERE id = ?'; - $args = array(1); - - $query = \OCP\DB::prepare($sql); - $result = $query->execute($args); + $sql = 'SELECT + recovery + FROM + `*PREFIX*encryption` + WHERE + uid = ?'; + + $args = array( $this->userId ); - while($row = $result->fetchRow()) { - $userName = $row['username']; - } + $query = \OCP\DB::prepare( $sql ); + + $result = $query->execute( $args ); + + // Set default in case no records found + $recoveryEnabled = 0; + + while( $row = $result->fetchRow() ) { + + $recoveryEnabled = $row['recovery']; + + } + + return $recoveryEnabled; + + } + /** + * @brief Enable / disable pwd recovery for a given user + * @param bool $enabled Whether to enable or disable recovery + * @return bool + */ + public function setRecovery( $enabled ) { + + $sql = 'UPDATE + *PREFIX*encryption + SET + recovery = ? + WHERE + uid = ?'; + + // Ensure value is an integer + $enabled = intval( $enabled ); + + $args = array( $enabled, $this->userId ); + + $query = \OCP\DB::prepare( $sql ); + + if ( $query->execute( $args ) ) { + + return true; + + } else { + + return false; + + } + } /** diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php index 275e60f4bd6..e2767a2ec39 100755 --- a/apps/files_encryption/test/util.php +++ b/apps/files_encryption/test/util.php @@ -164,6 +164,26 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { # then false will be returned. Use strict ordering? } + + function testRecoveryEnabled() { + + $util = new Encryption\Util( $this->view, $this->userId ); + + // Record the value so we can return it to it's original state later + $enabled = $util->recoveryEnabled(); + + $this->assertTrue( $util->setRecovery( 1 ) ); + + $this->assertEquals( 1, $util->recoveryEnabled() ); + + $this->assertTrue( $util->setRecovery( 0 ) ); + + $this->assertEquals( 0, $util->recoveryEnabled() ); + + // Return the setting to it's previous state + $this->assertTrue( $util->setRecovery( $enabled ) ); + + } // /** // * @brief test decryption using legacy blowfish method -- GitLab From 033c94d076e3340a4a472d1b3f61ade5f22009ea Mon Sep 17 00:00:00 2001 From: Valerio Ponte Date: Wed, 20 Mar 2013 22:37:02 +0100 Subject: [PATCH 041/454] fixed xsendfile zip generation race condition --- lib/files.php | 18 ++++++++---------- lib/helper.php | 24 ++++++++++++++---------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/lib/files.php b/lib/files.php index 04ba51d9d24..ab7fa1ed096 100644 --- a/lib/files.php +++ b/lib/files.php @@ -59,11 +59,7 @@ class OC_Files { $executionTime = intval(ini_get('max_execution_time')); set_time_limit(0); $zip = new ZipArchive(); - if ($xsendfile) { - $filename = OC_Helper::tmpFileNoClean('.zip'); - }else{ - $filename = OC_Helper::tmpFile('.zip'); - } + $filename = OC_Helper::tmpFile('.zip'); if ($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==true) { exit("cannot open <$filename>\n"); } @@ -78,6 +74,9 @@ class OC_Files { } } $zip->close(); + if ($xsendfile) { + $filename = OC_Helper::moveToNoClean($filename); + } $basename = basename($dir); if ($basename) { $name = $basename . '.zip'; @@ -91,17 +90,16 @@ class OC_Files { $executionTime = intval(ini_get('max_execution_time')); set_time_limit(0); $zip = new ZipArchive(); - if ($xsendfile) { - $filename = OC_Helper::tmpFileNoClean('.zip'); - }else{ - $filename = OC_Helper::tmpFile('.zip'); - } + $filename = OC_Helper::tmpFile('.zip'); if ($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==true) { exit("cannot open <$filename>\n"); } $file = $dir . '/' . $files; self::zipAddDir($file, $zip); $zip->close(); + if ($xsendfile) { + $filename = OC_Helper::moveToNoClean($filename); + } $name = $files . '.zip'; set_time_limit($executionTime); } else { diff --git a/lib/helper.php b/lib/helper.php index 73484ad913f..d178c3dc50b 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -541,13 +541,15 @@ class OC_Helper { } /** - * create a temporary file with an unique filename. It will not be deleted - * automatically - * @param string $postfix - * @return string + * move a file to oc-noclean temp dir + * @param string $filename + * @return mixed * */ - public static function tmpFileNoClean($postfix='') { + public static function moveToNoClean($filename='') { + if ($filename == '') { + return false; + } $tmpDirNoClean=get_temp_dir().'/oc-noclean/'; if (!file_exists($tmpDirNoClean) || !is_dir($tmpDirNoClean)) { if (file_exists($tmpDirNoClean)) { @@ -555,10 +557,12 @@ class OC_Helper { } mkdir($tmpDirNoClean); } - $file=$tmpDirNoClean.md5(time().rand()).$postfix; - $fh=fopen($file, 'w'); - fclose($fh); - return $file; + $newname=$tmpDirNoClean.basename($filename); + if (rename($filename, $newname)) { + return $newname; + } else { + return false; + } } /** @@ -597,7 +601,7 @@ class OC_Helper { } /** - * remove all files created by self::tmpFileNoClean + * remove all files in PHP /oc-noclean temp dir */ public static function cleanTmpNoClean() { $tmpDirNoCleanFile=get_temp_dir().'/oc-noclean/'; -- GitLab From f10be4ea17b08059103627fb97716672bdff4fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 11:58:54 +0100 Subject: [PATCH 042/454] new file structure for share keys; sub-folder need to be generated each by one (we don't have a recursive mkdir) --- apps/files_encryption/lib/keymanager.php | 41 ++++++++++++++++++------ 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 6837dcf67b5..6ef256553d7 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -28,6 +28,22 @@ namespace OCA\Encryption; * @note Where a method requires a view object, it's root must be '/' */ class Keymanager { + + /** + * @brief get uid of the owners of the file and the path to the file + * @param $filename + * @return array + */ + public static function getUidAndFilename($filename) { + $uid = \OC\Files\Filesystem::getOwner($filename); + \OC\Files\Filesystem::initMountPoints($uid); + if ( $uid != \OCP\User::getUser() ) { + $info = \OC\Files\Filesystem::getFileInfo($filename); + $ownerView = new \OC\Files\View('/'.$uid.'/files'); + $filename = $ownerView->getPath($info['fileid']); + } + return array($uid, $filename); + } /** * @brief retrieve the ENCRYPTED private key from a user @@ -264,15 +280,17 @@ class Keymanager { * asymmetrically encrypt the keyfile before passing it to this method */ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { + + list($owner, $filename) = self::getUidAndFilename($path); + + $basePath = '/' . $owner . '/files_encryption/share-keys'; - $basePath = '/' . $userId . '/files_encryption/share-keys'; - - $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + $shareKeyPath = self::keySetPreparation( $view, $filename, $basePath, $owner ); - $writePath = $basePath . '/' . $shareKeyPath . '.shareKey'; + $writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey'; \OC_FileProxy::$enabled = false; - + $result = $view->file_put_contents( $writePath, $shareKey ); if ( @@ -295,7 +313,7 @@ class Keymanager { * @return bool */ public static function setShareKeys( \OC_FilesystemView $view, $path, array $shareKeys ) { - + // $shareKeys must be an array with the following format: // [userId] => [encrypted key] @@ -395,9 +413,14 @@ class Keymanager { isset( $path_parts['dirname'] ) && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] ) ) { - - $view->mkdir( $basePath . '/' . $path_parts['dirname'] ); - + $sub_dirs = explode(DIRECTORY_SEPARATOR, $basePath . '/' . $path_parts['dirname']); + $dir = ''; + foreach ($sub_dirs as $sub_dir) { + $dir .= '/' . $sub_dir; + if (!$view->is_dir($dir)) { + $view->mkdir($dir); + } + } } return $targetPath; -- GitLab From 5995b6996b113145da65fd0b44cdb498ae6e56a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 12:23:28 +0100 Subject: [PATCH 043/454] always call stripUserFilesPath(), we need to keep the Shared/ to find the correct owner of the file later --- apps/files_encryption/lib/proxy.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index f469422e225..4dc2bfd7491 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -202,22 +202,14 @@ class Proxy extends \OC_FileProxy { * @param string $data Data that has been read from file */ public function postFile_get_contents( $path, $data ) { - + // FIXME: $path for shared files is just /uid/files/Shared/filepath $userId = \OCP\USER::getUser(); $view = new \OC_FilesystemView( '/' ); $util = new Util( $view, $userId ); - if ( $util->isSharedPath( $path ) ) { - - $relPath = $util->stripSharedFilePath( $path ); - - } else { - - $relPath = $util->stripUserFilesPath( $path ); - - } + $relPath = $util->stripUserFilesPath( $path ); // TODO check for existing key file and reuse it if possible to avoid problems with versioning etc. -- GitLab From 890f0142a25c4f4a2e66738360e4c70d86147a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 12:24:04 +0100 Subject: [PATCH 044/454] get shared keys from new location --- apps/files_encryption/lib/keymanager.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 6ef256553d7..19c9de3ece6 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -36,6 +36,7 @@ class Keymanager { */ public static function getUidAndFilename($filename) { $uid = \OC\Files\Filesystem::getOwner($filename); + \OC\Files\Filesystem::initMountPoints($uid); if ( $uid != \OCP\User::getUser() ) { $info = \OC\Files\Filesystem::getFileInfo($filename); @@ -348,11 +349,9 @@ class Keymanager { public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) { \OC_FileProxy::$enabled = false; - - $filePath_f = ltrim( $filePath, '/' ); - - $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $filePath_f . '.shareKey'; - + list($owner, $filename) = self::getUidAndFilename($filePath); + + $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'; if ( $view->file_exists( $shareKeyPath ) ) { $result = $view->file_get_contents( $shareKeyPath ); -- GitLab From a65d741a3fda0a35326e0dee7627a69c00e3d0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 12:39:55 +0100 Subject: [PATCH 045/454] move getUidAndFilename() tu util.php --- apps/files_encryption/lib/keymanager.php | 26 +++++++----------------- apps/files_encryption/lib/util.php | 17 ++++++++++++++++ 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 19c9de3ece6..23c061b8e63 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -28,23 +28,6 @@ namespace OCA\Encryption; * @note Where a method requires a view object, it's root must be '/' */ class Keymanager { - - /** - * @brief get uid of the owners of the file and the path to the file - * @param $filename - * @return array - */ - public static function getUidAndFilename($filename) { - $uid = \OC\Files\Filesystem::getOwner($filename); - - \OC\Files\Filesystem::initMountPoints($uid); - if ( $uid != \OCP\User::getUser() ) { - $info = \OC\Files\Filesystem::getFileInfo($filename); - $ownerView = new \OC\Files\View('/'.$uid.'/files'); - $filename = $ownerView->getPath($info['fileid']); - } - return array($uid, $filename); - } /** * @brief retrieve the ENCRYPTED private key from a user @@ -282,7 +265,9 @@ class Keymanager { */ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { - list($owner, $filename) = self::getUidAndFilename($path); + $util = new Util( $view, $userId ); + + list($owner, $filename) = $util->getUidAndFilename($path); $basePath = '/' . $owner . '/files_encryption/share-keys'; @@ -349,7 +334,10 @@ class Keymanager { public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) { \OC_FileProxy::$enabled = false; - list($owner, $filename) = self::getUidAndFilename($filePath); + + $util = new Util( $view, $userId ); + + list($owner, $filename) = $util->getUidAndFilename($filePath); $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'; if ( $view->file_exists( $shareKeyPath ) ) { diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index b86e7f421b8..5276dae99a1 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -815,4 +815,21 @@ class Util { return true; } + /** + * @brief get uid of the owners of the file and the path to the file + * @param $filename + * @return array + */ + public function getUidAndFilename($filename) { + $uid = \OC\Files\Filesystem::getOwner($filename); + + \OC\Files\Filesystem::initMountPoints($uid); + if ( $uid != \OCP\User::getUser() ) { + $info = \OC\Files\Filesystem::getFileInfo($filename); + $ownerView = new \OC\Files\View('/'.$uid.'/files'); + $filename = $ownerView->getPath($info['fileid']); + } + return array($uid, $filename); + } + } -- GitLab From 5f233ee8140476d02e1c20325b83362c0d54d237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 12:40:31 +0100 Subject: [PATCH 046/454] get the correct paths and owner to access shared files --- apps/files_encryption/lib/proxy.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 4dc2bfd7491..7c981d4fc44 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -227,11 +227,10 @@ class Proxy extends \OC_FileProxy { $privateKey = $session->getPrivateKey( $userId ); // Get the file owner so we can retrieve its keyfile - $fileOwner = \OC\Files\Filesystem::getOwner( $relPath ); //NOTE: This might be false! make sure the path passed to it is right - $fileOwner = 'admin'; // FIXME: Manually set the correct UID for now - + list($fileOwner, $ownerPath) = $util->getUidAndFilename($relPath); + // Get the encrypted keyfile - $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $relPath ); + $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $ownerPath ); // Attempt to fetch the user's shareKey $shareKey = Keymanager::getShareKey( $view, $userId, $relPath ); -- GitLab From b1d620300e0671d5a7f24e994b62be310688d13b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 14:22:18 +0100 Subject: [PATCH 047/454] delete share keys if file gets deleted --- apps/files_encryption/lib/keymanager.php | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 23c061b8e63..9022ed2cac0 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -362,16 +362,23 @@ class Keymanager { public static function delShareKey( \OC_FilesystemView $view, $userId, $filePath ) { \OC_FileProxy::$enabled = false; - - $trimmed = ltrim( $filePath, '/' ); - $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $trimmed . '.shareKey'; - - // Unlink doesn't tell us if file was deleted (not found returns - // true), so we perform our own test - if ( $view->file_exists( $shareKeyPath ) ) { - - $result = $view->unlink( $shareKeyPath ); - + + $util = new Util( $view, $userId ); + + list($owner, $filename) = $util->getUidAndFilename($filePath); + + $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename; + + $absPath = $view->getLocalFile($shareKeyPath); + + $matches = glob(preg_quote($absPath).'.*.shareKey' ); + + if ( $matches ) { + + foreach ( $matches as $ma ) { + unlink($ma); + } + } else { \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); -- GitLab From 6beeb2466f08dbed95f69761668efa6d27fc4d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 16:17:26 +0100 Subject: [PATCH 048/454] also delete share keys if a different user than the owner deletes a shared file --- apps/files_encryption/lib/keymanager.php | 6 +----- apps/files_encryption/lib/proxy.php | 17 +++++++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 9022ed2cac0..49c6ffa8a5f 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -363,11 +363,7 @@ class Keymanager { \OC_FileProxy::$enabled = false; - $util = new Util( $view, $userId ); - - list($owner, $filename) = $util->getUidAndFilename($filePath); - - $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename; + $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $filePath; $absPath = $view->getLocalFile($shareKeyPath); diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 7c981d4fc44..7c23336b3d1 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -291,17 +291,22 @@ class Proxy extends \OC_FileProxy { \OC_FileProxy::$enabled = false; $view = new \OC_FilesystemView( '/' ); - + $userId = \OCP\USER::getUser(); - + + $util = new Util( $view, $userId ); + // Format path to be relative to user files dir $trimmed = ltrim( $path, '/' ); $split = explode( '/', $trimmed ); $sliced = array_slice( $split, 2 ); $relPath = implode( '/', $sliced ); - $filePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $relPath; + + list($owner, $ownerPath) = $util->getUidAndFilename($relPath); + + $filePath = $owner . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $ownerPath; - if ( $view->is_dir( $path ) ) { + if ( $view->is_dir( $ownerPath ) ) { // Dirs must be handled separately as deleteFileKey // doesn't handle them @@ -312,8 +317,8 @@ class Proxy extends \OC_FileProxy { // Delete keyfile & shareKey so it isn't orphaned if ( ! ( - Keymanager::deleteFileKey( $view, $userId, $relPath ) - && Keymanager::delShareKey( $view, $userId, $relPath ) + Keymanager::deleteFileKey( $view, $owner, $ownerPath ) + && Keymanager::delShareKey( $view, $owner, $ownerPath ) ) ) { -- GitLab From 73157133e825ff3d66b83091e2b4ebeec0b83e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 16:22:26 +0100 Subject: [PATCH 049/454] reuse function provided in util.php --- apps/files_encryption/lib/proxy.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 7c23336b3d1..a9042946590 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -297,10 +297,7 @@ class Proxy extends \OC_FileProxy { $util = new Util( $view, $userId ); // Format path to be relative to user files dir - $trimmed = ltrim( $path, '/' ); - $split = explode( '/', $trimmed ); - $sliced = array_slice( $split, 2 ); - $relPath = implode( '/', $sliced ); + $relPath = $util->stripUserFilesPath($path); list($owner, $ownerPath) = $util->getUidAndFilename($relPath); -- GitLab From e717f7150e703821fc98a30ff80b953b737785e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 26 Mar 2013 16:52:58 +0100 Subject: [PATCH 050/454] check for dir in deleteFileKey() and delShareKey(), to always handle all share keys and file keys on delete --- apps/files_encryption/lib/keymanager.php | 56 ++++++++++++++---------- apps/files_encryption/lib/proxy.php | 31 ++++--------- 2 files changed, 43 insertions(+), 44 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 49c6ffa8a5f..cac5ab262de 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -178,21 +178,27 @@ class Keymanager { public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) { $trimmed = ltrim( $path, '/' ); - $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key'; - - // Unlink doesn't tell us if file was deleted (not found returns - // true), so we perform our own test - if ( $view->file_exists( $keyPath ) ) { - - return $view->unlink( $keyPath ); - - } else { + $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed; + + $result = false; + + if ( $view->is_dir($keyPath) ) { + + $result = $view->unlink($keyPath); + + } else if ( $view->file_exists( $keyPath.'.key' ) ) { + + $result = $view->unlink( $keyPath.'.key' ); + + } + + if ( !$result ) { \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR ); - - return false; - + } + + return $result; } @@ -365,22 +371,28 @@ class Keymanager { $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $filePath; - $absPath = $view->getLocalFile($shareKeyPath); + $result = false; - $matches = glob(preg_quote($absPath).'.*.shareKey' ); + if ( $view->is_dir($shareKeyPath) ) { + $result = $view->unlink($shareKeyPath); + } else { + $absPath = $view->getLocalFile($shareKeyPath); - if ( $matches ) { + $matches = glob(preg_quote($absPath).'.*.shareKey' ); + + if ( $matches ) { + + foreach ( $matches as $ma ) { + unlink($ma); + } - foreach ( $matches as $ma ) { - unlink($ma); } - } else { - + $result = true; + } + + if ( !result ) { \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); - - $result = false; - } \OC_FileProxy::$enabled = false; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index a9042946590..a1eb76666d6 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -302,30 +302,17 @@ class Proxy extends \OC_FileProxy { list($owner, $ownerPath) = $util->getUidAndFilename($relPath); $filePath = $owner . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $ownerPath; + + // Delete keyfile & shareKey so it isn't orphaned + if ( + ! ( + Keymanager::deleteFileKey( $view, $owner, $ownerPath ) + && Keymanager::delShareKey( $view, $owner, $ownerPath ) + ) + ) { - if ( $view->is_dir( $ownerPath ) ) { - - // Dirs must be handled separately as deleteFileKey - // doesn't handle them - $view->unlink( $filePath ); - - } else { - - // Delete keyfile & shareKey so it isn't orphaned - if ( - ! ( - Keymanager::deleteFileKey( $view, $owner, $ownerPath ) - && Keymanager::delShareKey( $view, $owner, $ownerPath ) - ) - ) { - - \OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "'.$filePath.'"', \OC_Log::ERROR ); - + \OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "'.$filePath.'"', \OC_Log::ERROR ); - } - - - } \OC_FileProxy::$enabled = true; -- GitLab From 9ecfd07f23e7fe2924bee6103792c00c6ec3cb0a Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Thu, 28 Mar 2013 18:29:18 +0100 Subject: [PATCH 051/454] Added ajax scripts for setting pwd recovery preferences --- apps/files_encryption/ajax/adminrecovery.php | 72 ++++++++++++++++++++ apps/files_encryption/ajax/userrecovery.php | 42 ++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 apps/files_encryption/ajax/adminrecovery.php create mode 100644 apps/files_encryption/ajax/userrecovery.php diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php new file mode 100644 index 00000000000..f22114f8514 --- /dev/null +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -0,0 +1,72 @@ +setValue( $app, $key, $value ) + + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + * + * @brief Script to handle admin settings for encrypted key recovery + */ + +use OCA\Encryption; + +\OCP\JSON::checkAdminUser(); +\OCP\JSON::checkAppEnabled( 'files_encryption' ); +\OCP\JSON::callCheck(); + +if ( + isset( $_POST['adminEnableRecovery'] ) + && $_POST['adminEnableRecovery'] == 1 + && isset( $_POST['recoveryPassword'] ) + && ! empty ( $_POST['recoveryPassword'] ) +) { + + // TODO: Let the admin set this themselves + $recoveryAdminUid = 'recoveryAdmin'; + + // If desired recoveryAdmin UID is already in use + if ( ! \OC_User::userExists( $recoveryAdminUid ) ) { + + // Create new recoveryAdmin user + \OC_User::createUser( $recoveryAdminUid, $_POST['recoveryPassword'] ); + + $doSetup = true; + + } else { + + // Get list of admin users + $admins = OC_Group::usersInGroup( 'admin' ); + + // If the existing recoveryAdmin UID is an admin + if ( in_array( $recoveryAdminUid, $admins ) ) { + + // The desired recoveryAdmi UID pre-exists and can be used + $doSetup = true; + + // If the recoveryAdmin UID exists but doesn't have admin rights + } else { + + \OCP\JSON::error(); + + } + + } + + // If recoveryAdmin has passed other checks + if ( $doSetup ) { + + $view = new \OC_FilesystemView( '/' ); + $util = new Util( $view, $recoveryAdminUid ); + + // Ensure recoveryAdmin is ready for encryption (has usable keypair etc.) + $util->setupServerSide( $_POST['recoveryPassword'] ); + + // Store the UID in the DB + OC_Appconfig::setValue( 'encryption', 'recoveryAdminUid', $recoveryAdminUid ); + + \OCP\JSON::success(); + + } + +} \ No newline at end of file diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php new file mode 100644 index 00000000000..56c18f7ad5b --- /dev/null +++ b/apps/files_encryption/ajax/userrecovery.php @@ -0,0 +1,42 @@ +setValue( $app, $key, $value ) + + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + * + * @brief Script to handle admin settings for encrypted key recovery + */ + +use OCA\Encryption; + +\OCP\JSON::checkLoggedIn(); +\OCP\JSON::checkAppEnabled( 'files_encryption' ); +\OCP\JSON::callCheck(); + +if ( + isset( $_POST['userEnableRecovery'] ) +) { + + // Ensure preference is an integer + $recoveryEnabled = intval( $_POST['userEnableRecovery'] ); + + $userId = \OCP\USER::getUser(); + $view = new \OC_FilesystemView( '/' ); + $util = new Util( $view, $userId ); + + // Save recovery preference to DB + $result = $util->setRecovery( $recoveryEnabled ); + + if ( $result ) { + + \OCP\JSON::success(); + + } else { + + \OCP\JSON::error(); + + } + +} \ No newline at end of file -- GitLab From 14451bdaf07f88c6ac46092c74b987a360b04547 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Fri, 29 Mar 2013 21:11:29 +0100 Subject: [PATCH 052/454] Development snapshot; Fixed errors from Hooks::login(); Work on enable/disable recoveryAdmin for lost passwords in settings page (template, ajax, js); Work on fixing sharing files to users (still broken); --- apps/files_encryption/appinfo/spec.txt | 12 +++++ apps/files_encryption/hooks/hooks.php | 5 +- apps/files_encryption/js/settings.js | 14 +++++ apps/files_encryption/lib/keymanager.php | 4 +- apps/files_encryption/lib/proxy.php | 2 +- apps/files_encryption/lib/stream.php | 2 +- apps/files_encryption/lib/util.php | 56 ++++++++++++++++---- apps/files_encryption/settings.php | 6 +++ apps/files_encryption/templates/settings.php | 19 +++++++ 9 files changed, 106 insertions(+), 14 deletions(-) diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt index 7a937a91439..bb15864cbb7 100644 --- a/apps/files_encryption/appinfo/spec.txt +++ b/apps/files_encryption/appinfo/spec.txt @@ -35,6 +35,18 @@ that file must have their sharekeys changed also. The keyfile and catfile however need only changing in the owners files, as there is only one copy of these. +Publicly shared files (public links) +------------------------------------ + +Files shared via public links use a separate system user account called 'ownCloud'. All public files are shared to that user's public key, and the private key is used to access the files when the public link is used in browser. + +This means that files shared via public links are accessible only to users who know the shared URL, or to admins who know the 'ownCloud' user password. + +Lost password recovery +---------------------- + +In order to enable users to read their encrypted files in the event of a password loss/reset scenario, administrators can choose to enable a 'recoveryAdmin' account. This is a user that all user files will automatically be shared to of the option is enabled. This allows the recoveryAdmin user to generate new keyfiles for the user. By default the UID of the recoveryAdmin is 'recoveryAdmin'. + Notes ----- diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 302671889d3..43d3dfb5a6a 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -40,7 +40,7 @@ class Hooks { // Manually initialise Filesystem{} singleton with correct // fake root path, in order to avoid fatal webdav errors - \OC\Files\Filesystem::init( $params['uid'] . '/' . 'files' . '/' ); + \OC\Files\Filesystem::init( $params['uid'], '/' . 'files' . '/' ); $view = new \OC_FilesystemView( '/' ); @@ -194,7 +194,8 @@ class Hooks { $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); - $usersSharing = \OCP\Share::getUsersSharingFile( $path, true ); + // Note: this currently doesn't include the owner due to \OC\Files\Filesystem::getOwner() + $usersSharing = $util->getUsersSharingFile( $path ); // Recursively expand path to include subfiles $allPaths = $util->getPaths( $path ); diff --git a/apps/files_encryption/js/settings.js b/apps/files_encryption/js/settings.js index 0be857bb73e..4f367f880db 100644 --- a/apps/files_encryption/js/settings.js +++ b/apps/files_encryption/js/settings.js @@ -6,12 +6,26 @@ $(document).ready(function(){ + // Trigger ajax on filetype blacklist change $('#encryption_blacklist').multiSelect({ oncheck:blackListChange, onuncheck:blackListChange, createText:'...' }); + // Trigger ajax on recoveryAdmin status change + $( 'input:radio[name="adminEnableRecovery"]' ).change( + function() { + $.post( + '../ajax/adminrecovery.php' + , $( this ).val() + , function( data ) { + // TODO: provide user with feedback of outcome + } + ); + } + ); + function blackListChange(){ var blackList=$('#encryption_blacklist').val().join(','); OC.AppConfig.setValue('files_encryption','type_blacklist',blackList); diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 99516949afa..9bb062d0fdb 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -391,8 +391,10 @@ class Keymanager { $result = true; } - if ( !result ) { + if ( ! $result ) { + \OC_Log::write( 'Encryption library', 'Could not delete shareKey; does not exist: "' . $shareKeyPath, \OC_Log::ERROR ); + } \OC_FileProxy::$enabled = false; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index a1eb76666d6..d5aa0f74f11 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -140,7 +140,7 @@ class Proxy extends \OC_FileProxy { if ( \OCP\Share::isEnabled() ) { // Find out who, if anyone, is sharing the file - $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true ); + $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true, true, true ); $userIds = array_merge( $userIds, $shareUids ); diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 86439b4864f..9d01c2ca6c5 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -127,7 +127,7 @@ class Stream { if ( ! is_resource( $this->handle ) ) { - \OCP\Util::writeLog( 'files_encryption', 'failed to open file "'.$this->rootView . '"', \OCP\Util::ERROR ); + \OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->relPath . '"', \OCP\Util::ERROR ); } else { diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 5276dae99a1..f6386ad84d9 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -638,7 +638,7 @@ class Util { /** * @brief Filter an array of UIDs to return only ones ready for sharing * @param array $unfilteredUsers users to be checked for sharing readiness - * @return array $userIds filtered users + * @return multi-dimensional array. keys: ready, unready */ public function filterShareReadyUsers( $unfilteredUsers ) { @@ -649,6 +649,8 @@ class Util { foreach ( $unfilteredUsers as $user ) { $util = new Util( $this->view, $user ); + + $readyIds = $unreadyIds = array(); // Check that the user is encryption capable, or is the // public system user 'ownCloud' (for public shares) @@ -657,22 +659,26 @@ class Util { or $user == 'ownCloud' ) { - // Construct array of just UIDs for Keymanager{} - $userIds[] = $user; + // Construct array of ready UIDs for Keymanager{} + $readyIds[] = $user; } else { - + + // Construct array of unready UIDs for Keymanager{} + $unreadyIds[] = $user; + // Log warning; we can't do necessary setup here // because we don't have the user passphrase - // TODO: Provide user feedback indicating that - // sharing failed \OC_Log::write( 'Encryption library', '"'.$user.'" is not setup for encryption', \OC_Log::WARN ); } } - return $userIds; + return array ( + 'ready' => $userIds + , 'unready' => $unreadyIds + ); } @@ -778,8 +784,18 @@ class Util { // Make sure users are capable of sharing $filteredUids = $this->filterShareReadyUsers( $users ); +// trigger_error( print_r($filteredUids, 1) ); + + if ( ! empty( $filteredUids['unready'] ) ) { + + // Notify user of unready userDir + // TODO: Move this out of here; it belongs somewhere else + \OCP\JSON::error(); + + } + // Get public keys for each user, ready for generating sharekeys - $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids ); // TODO: check this includes the owner's public key + $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids['ready'] ); // TODO: check this includes the owner's public key \OC_FileProxy::$enabled = false; @@ -814,8 +830,30 @@ class Util { return true; } + + /** + * @brief Returns the users who are sharing a file, including the file owner + * @param $path Relative path of the file, like files/file.txt + * @return $users array of UIDs + * @note This wraps the OCP\Share method, but includes the owner even if + * the file isn't registered in sharing API + */ + public function getUsersSharingFile( $path ) { + + $users = \OCP\Share::getUsersSharingFile( $path, true, true ); + + // FIXME: this is returning empty :/ + $owner = \OC\Files\Filesystem::getOwner( $path ); + +// trigger_error( var_export( $owner, 1)); + + $users[] = $owner; + + return array_unique( $users ); + + } - /** + /** * @brief get uid of the owners of the file and the path to the file * @param $filename * @return array diff --git a/apps/files_encryption/settings.php b/apps/files_encryption/settings.php index 85c616bca79..71d47f061af 100644 --- a/apps/files_encryption/settings.php +++ b/apps/files_encryption/settings.php @@ -12,8 +12,14 @@ $tmpl = new OCP\Template( 'files_encryption', 'settings' ); $blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) ); +// Check if an adminRecovery account is enabled for recovering files after lost pwd +$view = new OC_FilesystemView( '' ); +$util = new \OCA\Encryption\Util( $view, \OCP\USER::getUser() ); +$recoveryEnabled = $util->recoveryEnabled(); + $tmpl->assign( 'blacklist', $blackList ); $tmpl->assign( 'encryption_mode', \OC_Appconfig::getValue( 'files_encryption', 'mode', 'none' ) ); +$tmpl->assign( 'recoveryEnabled', $recoveryEnabled ); \OCP\Util::addscript( 'files_encryption', 'settings' ); \OCP\Util::addscript( 'core', 'multiselect' ); diff --git a/apps/files_encryption/templates/settings.php b/apps/files_encryption/templates/settings.php index b873d7f5aaf..6499d0c8e80 100644 --- a/apps/files_encryption/templates/settings.php +++ b/apps/files_encryption/templates/settings.php @@ -3,6 +3,7 @@

t( 'Encryption' )); ?> +
t( "Exclude the following file types from encryption:" )); ?>
@@ -16,5 +17,23 @@

+

+ t( "Enable encryption passwords recovery account (allow sharing to recovery account):" )); ?> +
+ /> + t( "Enabled" )); ?> +
+ + /> + t( "Disabled" )); ?> +

-- GitLab From 38941a61bf105a601200e378409bc2078a070994 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sun, 7 Apr 2013 21:51:10 +0200 Subject: [PATCH 053/454] turn off autocompletion for password field refs #2632 --- core/js/jquery-showpassword.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/js/jquery-showpassword.js b/core/js/jquery-showpassword.js index 0f4678327a3..9cdc48efe89 100644 --- a/core/js/jquery-showpassword.js +++ b/core/js/jquery-showpassword.js @@ -35,7 +35,8 @@ 'style' : $element.attr('style'), 'size' : $element.attr('size'), 'name' : $element.attr('name')+'-clone', - 'tabindex' : $element.attr('tabindex') + 'tabindex' : $element.attr('tabindex'), + 'autocomplete' : 'off' }); return $clone; -- GitLab From 16b513e4dc4fd65e77da7be37e99fb5c00656704 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Tue, 9 Apr 2013 12:22:55 +0200 Subject: [PATCH 054/454] added correct check for gd and check for php-intl --- lib/util.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/util.php b/lib/util.php index 37fb1bd9d06..348163d9a29 100755 --- a/lib/util.php +++ b/lib/util.php @@ -247,11 +247,16 @@ class OC_Util { 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } - if(!function_exists('imagepng')) { + if(!extension_loaded('gd') || !function_exists('gd_info')) { $errors[]=array('error'=>'PHP module GD is not installed.', 'hint'=>'Please ask your server administrator to install the module.'); $web_server_restart= false; } + if(!class_exists('Locale')) { + $errors[]=array('error'=>'PHP module intl is not installed.', + 'hint'=>'Please ask your server administrator to install the module.'); + $web_server_restart= false; + } if(!function_exists('gzencode')) { $errors[]=array('error'=>'PHP module zlib is not installed.', 'hint'=>'Please ask your server administrator to install the module.'); -- GitLab From 400cf5beb30de7475520192e840ddb899d0f742e Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 9 Apr 2013 19:11:38 +0200 Subject: [PATCH 055/454] Fixed naming bug of public owncloud key dir, which caused new keypair to be generated on each pageload --- apps/files_encryption/lib/session.php | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 171a6900f0f..7bfea7bed48 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -27,32 +27,44 @@ namespace OCA\Encryption; */ class Session { + + private $view; /** * @brief if session is started, check if ownCloud key pair is set up, if not create it * * The ownCloud key pair is used to allow public link sharing even if encryption is enabled */ - public function __construct() { + public function __construct( \OC_FilesystemView $view ) { + + $this->view = $view; + + if ( ! $this->view->is_dir( 'owncloud_private_key' ) ) { - $view = new \OC\Files\View('/'); - if (!$view->is_dir('owncloud_private_key')) { - $view->mkdir('owncloud_private_key'); + $this->view->mkdir('owncloud_private_key'); } - if (!$view->file_exists("/public-keys/owncloud.public.key") || !$view->file_exists("/owncloud_private_key/owncloud.private.key") ) { + + if ( + ! $this->view->file_exists("/public-keys/owncloud.public.key") + || ! $this->view->file_exists("/owncloud_private_key/owncloud.private.key" ) + ) { $keypair = Crypt::createKeypair(); \OC_FileProxy::$enabled = false; + // Save public key - $view->file_put_contents( '/public-keys/ownCloud.public.key', $keypair['publicKey'] ); + $this->view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); + // Encrypt private key empthy passphrase $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); + // Save private key - $view->file_put_contents( '/owncloud_private_key/ownCloud.private.key', $encryptedPrivateKey ); + $this->view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey ); \OC_FileProxy::$enabled = true; + } } -- GitLab From 109fe198c3b8ffd5a4f7f4a4aba6639480895644 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 9 Apr 2013 19:19:27 +0200 Subject: [PATCH 056/454] Added info about filesystem method access conventions --- apps/files_encryption/appinfo/spec.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt index bb15864cbb7..a1846ca47ff 100644 --- a/apps/files_encryption/appinfo/spec.txt +++ b/apps/files_encryption/appinfo/spec.txt @@ -47,6 +47,20 @@ Lost password recovery In order to enable users to read their encrypted files in the event of a password loss/reset scenario, administrators can choose to enable a 'recoveryAdmin' account. This is a user that all user files will automatically be shared to of the option is enabled. This allows the recoveryAdmin user to generate new keyfiles for the user. By default the UID of the recoveryAdmin is 'recoveryAdmin'. +OC_FilesystemView +----------------- + +files_encryption deals extensively with paths and the filesystem. In order to minimise bugs, it makes calls to filesystem methods in a consistent way: OC_FilesystemView{} objects always use '/' as their root, and specify paths each time particular methods are called. e.g. do this: + +$view->file_exists( 'path/to/file' ); + +Not: + +$view->chroot( 'path/to' ); +$view->file_exists( 'file' ); + +Using this convention means that $view objects are more predictable and less likely to break. Problems with paths are the #1 cause of bugs in this app, and consistent $view handling is an important way to prevent them. + Notes ----- -- GitLab From 98de385b8adf748bc1f7d9b527b253624575e370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 10 Apr 2013 15:08:28 +0200 Subject: [PATCH 057/454] add $view as parameter for session constructor --- apps/files_encryption/appinfo/app.php | 4 ++-- apps/files_encryption/hooks/hooks.php | 10 +++++----- apps/files_encryption/lib/proxy.php | 4 ++-- apps/files_encryption/lib/stream.php | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index b095f79c0c3..47f4120fb35 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -24,8 +24,8 @@ OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', ' OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); - -$session = new OCA\Encryption\Session(); +$view = new OC\Files\View('/'); +$session = new OCA\Encryption\Session($view); if ( ! $session->getPrivateKey( \OCP\USER::getUser() ) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 43d3dfb5a6a..82de80a1cf4 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -63,7 +63,7 @@ class Hooks { $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); - $session = new Session(); + $session = new Session($view); $session->setPrivateKey( $privateKey, $params['uid'] ); @@ -116,8 +116,8 @@ class Hooks { // is in use (client-side encryption does not have access to // the necessary keys) if ( Crypt::mode() == 'server' ) { - - $session = new Session(); + $view = new \OC_FilesystemView( '/' ); + $session = new Session($view); // Get existing decrypted private key $privateKey = $session->getPrivateKey(); @@ -189,7 +189,7 @@ class Hooks { if ( $params['itemType'] === 'file' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session(); + $session = new Session($view); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); @@ -244,7 +244,7 @@ class Hooks { if ( $params['itemType'] === 'file' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session(); + $session = new Session($view); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index d5aa0f74f11..7e18ec9b104 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -101,7 +101,7 @@ class Proxy extends \OC_FileProxy { $userId = \OCP\USER::getUser(); $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); - $session = new Session(); + $session = new Session($rootView); $fileOwner = \OC\Files\Filesystem::getOwner( $path ); $privateKey = $session->getPrivateKey(); $filePath = $util->stripUserFilesPath( $path ); @@ -223,7 +223,7 @@ class Proxy extends \OC_FileProxy { ) { // TODO use get owner to find correct location of key files for shared files - $session = new Session(); + $session = new Session($view); $privateKey = $session->getPrivateKey( $userId ); // Get the file owner so we can retrieve its keyfile diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 9d01c2ca6c5..8bacb981268 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -236,7 +236,7 @@ class Stream { $this->getUser(); - $session = new Session(); + $session = new Session($this->rootView); $privateKey = $session->getPrivateKey( $this->userId ); -- GitLab From fff979a5907cd3d3ff018e541c50c6bd8c095c67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 10 Apr 2013 15:14:44 +0200 Subject: [PATCH 058/454] add $view as parameter for getFileKey() call --- apps/files_encryption/lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index f6386ad84d9..815f2594ce1 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -518,7 +518,7 @@ class Util { $size = stream_copy_to_stream( $plainHandle, $encHandle ); // Fetch the key that has just been set/updated by the stream - $encKey = Keymanager::getFileKey( $relPath ); + $encKey = Keymanager::getFileKey( $this->view, $this->userId, $relPath ); // Save keyfile Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encKey ); -- GitLab From 4303d6318ebf04929a74e1b08e3fad82e1be3a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 10 Apr 2013 15:31:19 +0200 Subject: [PATCH 059/454] Session expect OC_FilesystemView() --- apps/files_encryption/appinfo/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 47f4120fb35..9747fb20ad6 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -24,7 +24,7 @@ OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', ' OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); -$view = new OC\Files\View('/'); +$view = new OC_FilesystemView('/'); $session = new OCA\Encryption\Session($view); if ( -- GitLab From c3a284569b5a6f83104cf3b5f0a52b2ecfffd8c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 10 Apr 2013 16:46:02 +0200 Subject: [PATCH 060/454] make sure that public-keys dir exists --- apps/files_encryption/lib/session.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 7bfea7bed48..0c6a7131fd9 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -38,7 +38,8 @@ class Session { public function __construct( \OC_FilesystemView $view ) { $this->view = $view; - + + if ( ! $this->view->is_dir( 'owncloud_private_key' ) ) { $this->view->mkdir('owncloud_private_key'); @@ -55,6 +56,11 @@ class Session { \OC_FileProxy::$enabled = false; // Save public key + + if (!$view->is_dir('/public-keys')) { + $view->mkdir('/public-keys'); + } + $this->view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); // Encrypt private key empthy passphrase -- GitLab From 8f0bbdc5cbd17d8fdaa773a5a3558b7af7f0a734 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 11 Apr 2013 22:55:48 +0200 Subject: [PATCH 061/454] fix performance issues --- apps/files_encryption/lib/stream.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 8bacb981268..dcc12c9f9ea 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -224,6 +224,11 @@ class Stream { */ public function getKey() { + // fix performance issues + if(isset($this->keyfile) && isset($this->encKeyfile)) { + return true; + } + // If a keyfile already exists for a file named identically to // file to be written if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) { -- GitLab From f87229ddafff57980bfc93f52d6aff3427e9a0e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 12 Apr 2013 14:13:38 +0200 Subject: [PATCH 062/454] fix stream wrapper to make initial encryption work --- apps/files_encryption/lib/keymanager.php | 18 ++++++++++-------- apps/files_encryption/lib/stream.php | 19 ++++++++++--------- apps/files_encryption/lib/util.php | 11 +++++++---- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 9bb062d0fdb..3e26e6bb699 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -113,17 +113,19 @@ class Keymanager { $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); - if ( $view->is_dir( $basePath . '/' . $targetPath ) ) { - - // FIXME: write me - - } else { + if ( !$view->is_dir( $basePath . '/' . $targetPath ) ) { - // Save the keyfile in parallel directory - $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); - + // create all parent folders + $info=pathinfo($basePath . '/' . $targetPath); + $keyfileFolderName=$view->getLocalFolder($info['dirname']); + if(!file_exists($keyfileFolderName)) { + mkdir($keyfileFolderName, 0750, true); + } } + $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); + + \OC_FileProxy::$enabled = true; return $result; diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 8bacb981268..3bad43de2e0 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -52,7 +52,7 @@ class Stream { // TODO: make all below properties private again once unit testing is // configured correctly public $rawPath; // The raw path received by stream_open - public $path_f; // The raw path formatted to include username and data dir + public $relPath; // rel path to users file dir private $userId; private $handle; // Resource returned by fopen private $path; @@ -80,8 +80,9 @@ class Stream { // Strip identifier text from path $this->rawPath = str_replace( 'crypt://', '', $path ); - // Set file path relative to user files dir - $this->relPath = $this->userId . '/files/' . $this->rawPath; + // Set file path relative to user files dir (7 = string length of '/files/') + $this->relPath = substr($this->rawPath, strlen($this->userId)+7); + //$this->relPath = $this->userId . '/files/' . $this->rawPath; if ( dirname( $this->rawPath ) == 'streams' @@ -110,7 +111,7 @@ class Stream { } else { - $this->size = $this->rootView->filesize( $this->relPath, $mode ); + $this->size = $this->rootView->filesize( $this->rawPath, $mode ); //$this->size = filesize( $this->rawPath ); @@ -121,13 +122,13 @@ class Stream { //$this->handle = fopen( $this->rawPath, $mode ); - $this->handle = $this->rootView->fopen( $this->relPath, $mode ); + $this->handle = $this->rootView->fopen( $this->rawPath, $mode ); \OC_FileProxy::$enabled = true; if ( ! is_resource( $this->handle ) ) { - \OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->relPath . '"', \OCP\Util::ERROR ); + \OCP\Util::writeLog( 'files_encryption', 'failed to open file "' . $this->rawPath . '"', \OCP\Util::ERROR ); } else { @@ -226,13 +227,13 @@ class Stream { // If a keyfile already exists for a file named identically to // file to be written - if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) { + if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->relPath . '.key' ) ) { // TODO: add error handling for when file exists but no // keyfile // Fetch existing keyfile - $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->rawPath ); + $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath ); $this->getUser(); @@ -317,7 +318,7 @@ class Stream { $userId = \OCP\User::getUser(); // Save the new encrypted file key - Keymanager::setFileKey( $view, $this->rawPath, $userId, $this->encKeyfile ); + Keymanager::setFileKey( $view, $this->relPath, $userId, $this->encKeyfile ); } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 815f2594ce1..4605c0f597d 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -511,17 +511,20 @@ class Util { // Open handle with for binary reading $plainHandle = $this->view->fopen( $plainFile['path'], 'rb' ); // Open handle with for binary writing - $encHandle = fopen( 'crypt://' . 'var/www/oc6/data/' . $plainFile['path'] . '.tmp', 'ab' ); + + $encHandle = fopen( 'crypt://' . $plainFile['path'] . '.tmp', 'wb' ); // Overwrite the existing file with the encrypted one //$this->view->file_put_contents( $plainFile['path'], $encrypted['data'] ); $size = stream_copy_to_stream( $plainHandle, $encHandle ); - + + $this->view->rename($plainFile['path'] . '.tmp', $plainFile['path']); + // Fetch the key that has just been set/updated by the stream - $encKey = Keymanager::getFileKey( $this->view, $this->userId, $relPath ); + //$encKey = Keymanager::getFileKey( $this->view, $this->userId, $relPath ); // Save keyfile - Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encKey ); + //Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encKey ); // Add the file to the cache \OC\Files\Filesystem::putFileInfo( $plainFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' ); -- GitLab From 02d1f86a535410e26d20d860f800ff069a6aa25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 12 Apr 2013 14:30:02 +0200 Subject: [PATCH 063/454] fix some confusion about paths relative to the files dir and to the data dir --- apps/files_encryption/lib/stream.php | 11 +++++------ apps/files_encryption/lib/util.php | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 3bad43de2e0..d269a562404 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -51,7 +51,7 @@ class Stream { // TODO: make all below properties private again once unit testing is // configured correctly - public $rawPath; // The raw path received by stream_open + public $rawPath; // The raw path relative to the data dir public $relPath; // rel path to users file dir private $userId; private $handle; // Resource returned by fopen @@ -77,12 +77,11 @@ class Stream { } - // Strip identifier text from path - $this->rawPath = str_replace( 'crypt://', '', $path ); + // Strip identifier text from path, this gives us the path relative to data//files + $this->relPath = str_replace( 'crypt://', '', $path ); - // Set file path relative to user files dir (7 = string length of '/files/') - $this->relPath = substr($this->rawPath, strlen($this->userId)+7); - //$this->relPath = $this->userId . '/files/' . $this->rawPath; + // rawPath is relative to the data directory + $this->rawPath = $this->userId . '/files/' . $this->relPath; if ( dirname( $this->rawPath ) == 'streams' diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 4605c0f597d..6e0aeb96e96 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -344,7 +344,7 @@ class Util { // If the file is not encrypted } else { - $found['plain'][] = array( 'name' => $file, 'path' => $filePath ); + $found['plain'][] = array( 'name' => $file, 'path' => $relPath ); } -- GitLab From 854b9207878d9c5cd8f0d972f4b16b618beade3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 12 Apr 2013 15:18:19 +0200 Subject: [PATCH 064/454] fix some more paths --- apps/files_encryption/lib/util.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 6e0aeb96e96..420e3398a8d 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -505,20 +505,22 @@ class Util { // Read plain file in chunks - - $relPath = $this->stripUserFilesPath( $plainFile['path'] ); - + //relative to data//file + $relPath = $plainFile['path']; + //relative to /data + $rawPath = $this->userId . '/files/' . $plainFile['path']; + // Open handle with for binary reading - $plainHandle = $this->view->fopen( $plainFile['path'], 'rb' ); + $plainHandle = $this->view->fopen( $rawPath, 'rb' ); // Open handle with for binary writing - $encHandle = fopen( 'crypt://' . $plainFile['path'] . '.tmp', 'wb' ); + $encHandle = fopen( 'crypt://' . $relPath . '.tmp', 'wb' ); // Overwrite the existing file with the encrypted one //$this->view->file_put_contents( $plainFile['path'], $encrypted['data'] ); $size = stream_copy_to_stream( $plainHandle, $encHandle ); - $this->view->rename($plainFile['path'] . '.tmp', $plainFile['path']); + $this->view->rename($rawPath . '.tmp', $rawPath); // Fetch the key that has just been set/updated by the stream //$encKey = Keymanager::getFileKey( $this->view, $this->userId, $relPath ); @@ -545,18 +547,19 @@ class Util { // Recrypt data, generate catfile $recrypted = Crypt::legacyKeyRecryptKeyfile( $legacyData, $legacyPassphrase, $publicKey, $newPassphrase ); - $relPath = $this->stripUserFilesPath( $legacyFile['path'] ); + $relPath = $legacyFile['path']; + $rawPath = $this->userId . '/files/' . $plainFile['path']; // Save keyfile Keymanager::setFileKey( $this->view, $relPath, $this->userId, $recrypted['key'] ); // Overwrite the existing file with the encrypted one - $this->view->file_put_contents( $legacyFile['path'], $recrypted['data'] ); + $this->view->file_put_contents( $rawPath, $recrypted['data'] ); $size = strlen( $recrypted['data'] ); // Add the file to the cache - \OC\Files\Filesystem::putFileInfo( $legacyFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' ); + \OC\Files\Filesystem::putFileInfo( $rawPath, array( 'encrypted'=>true, 'size' => $size ), '' ); } -- GitLab From f378a7f572e1da4b24280c1fcbf830e026186c83 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 10 Apr 2013 17:37:03 +0200 Subject: [PATCH 065/454] Fixed proxy class handing of read / write files Various work on other classes --- apps/files_encryption/ajax/adminrecovery.php | 12 ++-- apps/files_encryption/appinfo/app.php | 6 +- apps/files_encryption/hooks/hooks.php | 10 +-- apps/files_encryption/js/settings.js | 9 ++- apps/files_encryption/lib/proxy.php | 49 ++++++-------- apps/files_encryption/lib/stream.php | 2 +- apps/files_encryption/lib/util.php | 70 ++++++++++++++++---- apps/files_encryption/test/proxy.php | 2 +- apps/files_encryption/test/util.php | 12 ++++ 9 files changed, 114 insertions(+), 58 deletions(-) diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index f22114f8514..cec0cd4ddda 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -15,6 +15,8 @@ use OCA\Encryption; \OCP\JSON::checkAppEnabled( 'files_encryption' ); \OCP\JSON::callCheck(); +$return = $doSetup = false; + if ( isset( $_POST['adminEnableRecovery'] ) && $_POST['adminEnableRecovery'] == 1 @@ -47,7 +49,7 @@ if ( // If the recoveryAdmin UID exists but doesn't have admin rights } else { - \OCP\JSON::error(); + $return = false; } @@ -63,10 +65,12 @@ if ( $util->setupServerSide( $_POST['recoveryPassword'] ); // Store the UID in the DB - OC_Appconfig::setValue( 'encryption', 'recoveryAdminUid', $recoveryAdminUid ); + OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminUid', $recoveryAdminUid ); - \OCP\JSON::success(); + $return = true; } -} \ No newline at end of file +} + +($return) ? OC_JSON::success() : OC_JSON::error(); \ No newline at end of file diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 9747fb20ad6..c2de9d0b441 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -24,8 +24,10 @@ OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', ' OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); -$view = new OC_FilesystemView('/'); -$session = new OCA\Encryption\Session($view); + +$view = new OC_FilesystemView( '/' ); + +$session = new OCA\Encryption\Session( $view ); if ( ! $session->getPrivateKey( \OCP\USER::getUser() ) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 82de80a1cf4..e65f0945f41 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -63,7 +63,7 @@ class Hooks { $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); - $session = new Session($view); + $session = new Session( $view ); $session->setPrivateKey( $privateKey, $params['uid'] ); @@ -116,8 +116,8 @@ class Hooks { // is in use (client-side encryption does not have access to // the necessary keys) if ( Crypt::mode() == 'server' ) { - $view = new \OC_FilesystemView( '/' ); - $session = new Session($view); + + $session = new Session(); // Get existing decrypted private key $privateKey = $session->getPrivateKey(); @@ -189,7 +189,7 @@ class Hooks { if ( $params['itemType'] === 'file' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session($view); + $session = new Session(); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); @@ -244,7 +244,7 @@ class Hooks { if ( $params['itemType'] === 'file' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session($view); + $session = new Session(); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); diff --git a/apps/files_encryption/js/settings.js b/apps/files_encryption/js/settings.js index 4f367f880db..9a0bebf2478 100644 --- a/apps/files_encryption/js/settings.js +++ b/apps/files_encryption/js/settings.js @@ -16,11 +16,14 @@ $(document).ready(function(){ // Trigger ajax on recoveryAdmin status change $( 'input:radio[name="adminEnableRecovery"]' ).change( function() { + + var foo = $( this ).val(); + $.post( - '../ajax/adminrecovery.php' - , $( this ).val() + OC.filePath('files_encryption', 'ajax', 'adminrecovery.php') + , { adminEnableRecovery: foo, recoveryPassword: 'password' } , function( data ) { - // TODO: provide user with feedback of outcome + alert( data ); } ); } diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 7e18ec9b104..44a2e1aae55 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -101,7 +101,7 @@ class Proxy extends \OC_FileProxy { $userId = \OCP\USER::getUser(); $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); - $session = new Session($rootView); + $session = new Session( $rootView ); $fileOwner = \OC\Files\Filesystem::getOwner( $path ); $privateKey = $session->getPrivateKey(); $filePath = $util->stripUserFilesPath( $path ); @@ -115,9 +115,16 @@ class Proxy extends \OC_FileProxy { if ( $encKeyfile = Keymanager::getFileKey( $rootView, $fileOwner, $filePath ) ) { $keyPreExists = true; - + + // Fetch shareKey + $shareKey = Keymanager::getShareKey( $rootView, $userId, $filePath ); + // Decrypt the keyfile - $plainKey = $util->decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ); + $plainKey = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + + trigger_error("\$shareKey = $shareKey"); + + trigger_error("\$plainKey = $plainKey"); } else { @@ -170,6 +177,7 @@ class Proxy extends \OC_FileProxy { // Save sharekeys to user folders // TODO: openssl_seal generates new shareKeys (envelope keys) each time data is encrypted, but will data still be decryptable using old shareKeys? If so we don't need to replace the old shareKeys here, we only need to set the new ones + Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); // Set encrypted keyfile as common varname @@ -219,15 +227,18 @@ class Proxy extends \OC_FileProxy { // If data is a catfile if ( Crypt::mode() == 'server' - && Crypt::isCatfileContent( $data ) + && Crypt::isCatfileContent( $data ) // TODO: Do we really need this check? Can't we assume it is properly encrypted? ) { - // TODO use get owner to find correct location of key files for shared files - $session = new Session($view); + // TODO: use get owner to find correct location of key files for shared files + $session = new Session( $view ); $privateKey = $session->getPrivateKey( $userId ); // Get the file owner so we can retrieve its keyfile - list($fileOwner, $ownerPath) = $util->getUidAndFilename($relPath); +// list( $fileOwner, $ownerPath ) = $util->getUidAndFilename( $relPath ); + + $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + $ownerPath = $util->stripUserFilesPath( $path ); // TODO: Don't trust $path, fetch owner path // Get the encrypted keyfile $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $ownerPath ); @@ -235,27 +246,9 @@ class Proxy extends \OC_FileProxy { // Attempt to fetch the user's shareKey $shareKey = Keymanager::getShareKey( $view, $userId, $relPath ); - // Check if key is shared or not - if ( $shareKey ) { - - \OC_FileProxy::$enabled = false; - -// trigger_error("\$encKeyfile = $encKeyfile, \$shareKey = $shareKey, \$privateKey = $privateKey"); - - // Decrypt keyfile with shareKey - $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); - -// $plainKeyfile = $encKeyfile; - -// trigger_error("PROXY plainkeyfile = ". var_export($plainKeyfile, 1)); - - } else { - - // If key is unshared, decrypt with user private key - $plainKeyfile = Crypt::keyDecrypt( $encKeyfile, $privateKey ); - - } - + // Decrypt keyfile with shareKey + $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + $plainData = Crypt::symmetricDecryptFileContent( $data, $plainKeyfile ); // trigger_error("PLAINDATA = ". var_export($plainData, 1)); diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index d269a562404..7315245fcce 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -236,7 +236,7 @@ class Stream { $this->getUser(); - $session = new Session($this->rootView); + $session = new Session( $this->rootView ); $privateKey = $session->getPrivateKey( $this->userId ); diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 420e3398a8d..dc4e37150c5 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -24,13 +24,17 @@ # Bugs # ---- # Sharing a file to a user without encryption set up will not provide them with access but won't notify the sharer -# Timeouts on first login due to encryption of very large files +# Sharing files to other users currently broken (due to merge + ongoing implementation of support for lost password recovery) +# Timeouts on first login due to encryption of very large files (fix in progress, as a result streaming is currently broken) +# Sharing all files to admin for recovery purposes still in progress +# Possibly public links are broken (not tested since last merge of master) +# getOwner() currently returns false in all circumstances, unsure what code is returning this... # Missing features # ---------------- -# Re-use existing keyfiles so they don't need version control (part implemented, stream{} and util{} remain) # Make sure user knows if large files weren't encrypted +# Support for resharing encrypted files # Test @@ -122,7 +126,8 @@ class Util { $this->userId = $userId; $this->client = $client; $this->userDir = '/' . $this->userId; - $this->userFilesDir = '/' . $this->userId . '/' . 'files'; + $this->fileFolderName = 'files'; + $this->userFilesDir = '/' . $this->userId . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? $this->publicKeyDir = '/' . 'public-keys'; $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; @@ -690,7 +695,6 @@ class Util { /** * @brief Expand given path to all sub files & folders - * @param Session $session * @param string $path path which needs to be updated * @return array $pathsArray all found file paths * @note Paths of directories excluded, only *file* paths are returned @@ -747,6 +751,8 @@ class Util { * @param string $privateKey * @note Checks whether file was encrypted with openssl_seal or * openssl_encrypt, and decrypts accrdingly + * @note This was used when 2 types of encryption for keyfiles was used, + * but now we've switched to exclusively using openssl_seal() */ public function decryptUnknownKeyfile( $filePath, $fileOwner, $privateKey ) { @@ -861,19 +867,55 @@ class Util { /** * @brief get uid of the owners of the file and the path to the file - * @param $filename + * @param $shareFilePath Path of the file to check + * @note $shareFilePath must be relative to data/UID/files. Files + * relative to /Shared are also acceptable * @return array */ - public function getUidAndFilename($filename) { - $uid = \OC\Files\Filesystem::getOwner($filename); - - \OC\Files\Filesystem::initMountPoints($uid); - if ( $uid != \OCP\User::getUser() ) { - $info = \OC\Files\Filesystem::getFileInfo($filename); - $ownerView = new \OC\Files\View('/'.$uid.'/files'); - $filename = $ownerView->getPath($info['fileid']); + public function getUidAndFilename( $shareFilePath ) { + + $fileOwnerUid = \OC\Files\Filesystem::getOwner( $shareFilePath ); + + // Check that UID is valid + if ( ! \OCP\User::userExists( $fileOwnerUid ) ) { + + throw new \Exception( 'Could not find owner (UID = "' . var_export( $fileOwnerUid, 1 ) . '") of file "' . $shareFilePath . '"' ); + + } + + // NOTE: Bah, this dependency should be elsewhere + \OC\Files\Filesystem::initMountPoints( $fileOwnerUid ); + + // If the file owner is the currently logged in user + if ( $fileOwnerUid == $this->userId ) { + + // Assume the path supplied is correct + $filename = $shareFilePath; + + } else { + + $info = \OC\Files\Filesystem::getFileInfo( $shareFilePath ); + $ownerView = new \OC\Files\View( '/' . $fileOwnerUid . '/files' ); + + // Fetch real file path from DB + $filename = $ownerView->getPath( $info['fileid'] ); // TODO: Check that this returns a path without including the user data dir + } - return array($uid, $filename); + + // Make path relative for use by $view + $relpath = $fileOwnerUid . '/' . $this->fileFolderName . '/' . $filename; + + // Check that the filename we're using is working + if ( $this->view->file_exists( $relpath ) ) { + + return array ( $fileOwnerUid, $relpath ); + + } else { + + throw new \Exception( 'Supplied path could not be resolved "' . $shareFilePath . '"' ); + + } + } } diff --git a/apps/files_encryption/test/proxy.php b/apps/files_encryption/test/proxy.php index 709730f7609..5a2d851ff7c 100644 --- a/apps/files_encryption/test/proxy.php +++ b/apps/files_encryption/test/proxy.php @@ -52,7 +52,7 @@ // $this->userId = 'admin'; // $this->pass = 'admin'; // -// $this->session = new Encryption\Session(); +// $this->session = new Encryption\Session( $view ); // FIXME: Provide a $view object for use here // // $this->session->setPrivateKey( // '-----BEGIN PRIVATE KEY----- diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php index e2767a2ec39..3ebc484809b 100755 --- a/apps/files_encryption/test/util.php +++ b/apps/files_encryption/test/util.php @@ -24,6 +24,8 @@ $loader->register(); use \Mockery as m; use OCA\Encryption; +\OC_User::login( 'admin', 'admin' ); + class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function setUp() { @@ -184,6 +186,16 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $this->assertTrue( $util->setRecovery( $enabled ) ); } + + function testGetUidAndFilename() { + + \OC_User::setUserId( 'admin' ); + + $this->util->getUidAndFilename( 'test1.txt' ); + + + + } // /** // * @brief test decryption using legacy blowfish method -- GitLab From 770dcbf663c31c912b88b280121b21ec7ea4be8e Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 16 Apr 2013 14:50:20 +0200 Subject: [PATCH 066/454] Fixed stream{} reading of encrypted files (stream_read()) --- apps/files_encryption/lib/stream.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index ebfd05041ba..f765d62201c 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -239,13 +239,15 @@ class Stream { // Fetch existing keyfile $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath ); - $this->getUser(); + $this->setUserProperty(); $session = new Session( $this->rootView ); $privateKey = $session->getPrivateKey( $this->userId ); - $this->keyfile = Crypt::keyDecrypt( $this->encKeyfile, $privateKey ); + $shareKey = Keymanager::getShareKey( $this->rootView, $this->userId, $this->relPath ); + + $this->keyfile = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey ); return true; @@ -257,7 +259,7 @@ class Stream { } - public function getuser() { + public function setUserProperty() { // Only get the user again if it isn't already set if ( empty( $this->userId ) ) { -- GitLab From f89a3604aabbd36f05789db46b6108f0f41f52b1 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 16 Apr 2013 18:29:22 +0200 Subject: [PATCH 067/454] Working on stream{} writing Development snapshot --- apps/files_encryption/appinfo/spec.txt | 6 +- apps/files_encryption/lib/keymanager.php | 22 +++++++ apps/files_encryption/lib/proxy.php | 44 ++++--------- apps/files_encryption/lib/stream.php | 83 ++++++++++++++++-------- apps/files_encryption/lib/util.php | 39 +++++++++++ 5 files changed, 133 insertions(+), 61 deletions(-) diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt index a1846ca47ff..4a7b3fc6ade 100644 --- a/apps/files_encryption/appinfo/spec.txt +++ b/apps/files_encryption/appinfo/spec.txt @@ -70,4 +70,8 @@ Notes is handled in the login hook listener. Therefore each time the user logs in their files are scanned to detect unencrypted and legacy encrypted files, and they are (re)encrypted as necessary. This may present a performance issue; we - need to monitor this. \ No newline at end of file + need to monitor this. +- When files are saved to ownCloud via WebDAV, a .part file extension is used so + that the file isn't cached before the upload has been completed. .part files + are not compatible with files_encrytion's key management system however, so + we have to always sanitise such paths manually before using them. \ No newline at end of file diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 3e26e6bb699..c37680fcbea 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -132,6 +132,28 @@ class Keymanager { } + /** + * @brief Remove .path extension from a file path + * @param string $path Path that may identify a .part file + * @return string File path without .part extension + */ + public static function fixPartialFilePath( $path ) { + + if ( preg_match( '/\.part$/', $path ) ) { + + $newLength = strlen( $path ) - 5; + $fPath = substr( $path, 0, $newLength ); + + return $fPath; + + } else { + + return $path; + + } + + } + /** * @brief retrieve keyfile for an encrypted file * @param \OC_FilesystemView $view diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 44a2e1aae55..4efb3d2e49c 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -138,34 +138,9 @@ class Proxy extends \OC_FileProxy { // Encrypt data $encData = Crypt::symmetricEncryptFileContent( $data, $plainKey ); - // Check if key recovery is enabled - $recoveryEnabled = $util->recoveryEnabled(); + $sharingEnabled = \OCP\Share::isEnabled(); - // Make sure that a share key is generated for the owner too - $userIds = array( $userId ); - - if ( \OCP\Share::isEnabled() ) { - - // Find out who, if anyone, is sharing the file - $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true, true, true ); - - $userIds = array_merge( $userIds, $shareUids ); - - } - - // If recovery is enabled, add the - // Admin UID to list of users to share to - if ( $recoveryEnabled ) { - - // FIXME: Create a separate admin user purely for recovery, and create method in util for fetching this id from DB? - $adminUid = 'recoveryAdmin'; - - $userIds[] = $adminUid; - - } - - // Remove duplicate UIDs - $uniqueUserIds = array_unique ( $userIds ); + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath ); // Fetch public keys for all users who will share the file $publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds ); @@ -280,6 +255,8 @@ class Proxy extends \OC_FileProxy { */ public function preUnlink( $path ) { + $path = Keymanager::fixPartialFilePath( $path ); + // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; @@ -290,17 +267,20 @@ class Proxy extends \OC_FileProxy { $util = new Util( $view, $userId ); // Format path to be relative to user files dir - $relPath = $util->stripUserFilesPath($path); + $relPath = $util->stripUserFilesPath( $path ); + +// list( $owner, $ownerPath ) = $util->getUidAndFilename( $relPath ); - list($owner, $ownerPath) = $util->getUidAndFilename($relPath); + $fileOwner = \OC\Files\Filesystem::getOwner( $path ); + $ownerPath = $util->stripUserFilesPath( $path ); // TODO: Don't trust $path, fetch owner path - $filePath = $owner . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $ownerPath; + $filePath = $fileOwner . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $ownerPath; // Delete keyfile & shareKey so it isn't orphaned if ( ! ( - Keymanager::deleteFileKey( $view, $owner, $ownerPath ) - && Keymanager::delShareKey( $view, $owner, $ownerPath ) + Keymanager::deleteFileKey( $view, $fileOwner, $ownerPath ) + && Keymanager::delShareKey( $view, $fileOwner, $ownerPath ) ) ) { diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index f765d62201c..3e854c8df87 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -44,6 +44,9 @@ namespace OCA\Encryption; * buffer size used internally by PHP. The encryption process makes the input * data longer, and input is chunked into smaller pieces in order to result in * a 8192 encrypted block size. + * @note When files are deleted via webdav, or when they are updated and the + * previous version deleted, this is handled by OC\Files\View, and thus the + * encryption proxies are used and keyfiles deleted. */ class Stream { @@ -171,17 +174,21 @@ class Stream { // // Get the data from the file handle $data = fread( $this->handle, 8192 ); + + $result = ''; if ( strlen( $data ) ) { - $this->getKey(); + if ( ! $this->getKey() ) { + + // Error! We don't have a key to decrypt the file with + throw new \Exception( 'Encryption key not found for "' . $this->rawPath . '" during attempted read via stream' ); - $result = Crypt::symmetricDecryptFileContent( $data, $this->keyfile ); + } + + // Decrypt data + $result = Crypt::symmetricDecryptFileContent( $data, $this->plainKey ); - } else { - - $result = ''; - } // $length = $this->size - $pos; @@ -224,18 +231,20 @@ class Stream { */ public function getKey() { - // fix performance issues - if(isset($this->keyfile) && isset($this->encKeyfile)) { - return true; - } - - // If a keyfile already exists for a file named identically to - // file to be written - if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->relPath . '.key' ) ) { + // Check if key is already set + if ( isset( $this->plainKey ) && isset( $this->encKeyfile ) ) { + + return true; + + } - // TODO: add error handling for when file exists but no - // keyfile + // Avoid problems with .part file extensions + $this->relPath = Keymanager::fixPartialFilePath( $this->relPath ); + + // If a keyfile already exists + if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->relPath . '.key' ) ) { + // Fetch and decrypt keyfile // Fetch existing keyfile $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath ); @@ -247,12 +256,17 @@ class Stream { $shareKey = Keymanager::getShareKey( $this->rootView, $this->userId, $this->relPath ); - $this->keyfile = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey ); + $this->plainKey = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey ); + + trigger_error( '$this->relPath = '.$this->relPath ); + trigger_error( '$this->userId = '.$this->userId); + trigger_error( '$this->encKeyfile = '.$this->encKeyfile ); + trigger_error( '$this->plainKey1 = '.var_export($this->plainKey, 1)); return true; } else { - + return false; } @@ -303,7 +317,7 @@ class Stream { $pointer = ftell( $this->handle ); // Make sure the userId is set - $this->getuser(); + $this->setUserProperty(); // TODO: Check if file is shared, if so, use multiKeyEncrypt and // save shareKeys in necessary user directories @@ -313,21 +327,34 @@ class Stream { // one), save the newly generated keyfile if ( ! $this->getKey() ) { - // TODO: Reuse the keyfile, it it exists, instead of making a new one - $this->keyfile = Crypt::generateKey(); + $util = new Util( $this->rootView, $this->userId ); + + $this->plainKey = Crypt::generateKey(); $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); - $this->encKeyfile = Crypt::keyEncrypt( $this->keyfile, $this->publicKey ); + $sharingEnabled = \OCP\Share::isEnabled(); + + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath ); + + // Fetch public keys for all users who will share the file + $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); + + $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); $view = new \OC_FilesystemView( '/' ); - $userId = \OCP\User::getUser(); // Save the new encrypted file key - Keymanager::setFileKey( $view, $this->relPath, $userId, $this->encKeyfile ); + Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); + +// trigger_error( '$this->relPath = '.$this->relPath ); +// trigger_error( '$this->userId = '.$this->userId); +// trigger_error( '$this->encKeyfile = '.var_export($this->encKeyfiles, 1) ); } - + +// trigger_error( '$this->plainKey2 = '.var_export($this->plainKey, 1)); + // If extra data is left over from the last round, make sure it // is integrated into the next 6126 / 8192 block if ( $this->writeCache ) { @@ -355,7 +382,7 @@ class Stream { // // fseek( $this->handle, - ( $currentPos % 8192 ), SEEK_CUR ); // -// $block = Crypt::symmetricDecryptFileContent( $unencryptedNewBlock, $this->keyfile ); +// $block = Crypt::symmetricDecryptFileContent( $unencryptedNewBlock, $this->plainKey ); // // $x = substr( $block, 0, $currentPos % 8192 ); // @@ -396,7 +423,7 @@ class Stream { // Read the chunk from the start of $data $chunk = substr( $data, 0, 6126 ); - $encrypted = $this->preWriteEncrypt( $chunk, $this->keyfile ); + $encrypted = $this->preWriteEncrypt( $chunk, $this->plainKey ); // Write the data chunk to disk. This will be // attended to the last data chunk if the file @@ -461,7 +488,7 @@ class Stream { // Set keyfile property for file in question $this->getKey(); - $encrypted = $this->preWriteEncrypt( $this->writeCache, $this->keyfile ); + $encrypted = $this->preWriteEncrypt( $this->writeCache, $this->plainKey ); fwrite( $this->handle, $encrypted ); diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index dc4e37150c5..c964bd94dfa 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -864,7 +864,46 @@ class Util { return array_unique( $users ); } + + /** + * @brief Find, sanitise and format users sharing a file + * @note This wraps other methods into a portable bundle + */ + public function getSharingUsersArray( $sharingEnabled, $filePath ) { + // Check if key recovery is enabled + $recoveryEnabled = $this->recoveryEnabled(); + + // Make sure that a share key is generated for the owner too + $userIds = array( $this->userId ); + + if ( $sharingEnabled ) { + + // Find out who, if anyone, is sharing the file + $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true, true, true ); + + $userIds = array_merge( $userIds, $shareUids ); + + } + + // If recovery is enabled, add the + // Admin UID to list of users to share to + if ( $recoveryEnabled ) { + + // FIXME: Create a separate admin user purely for recovery, and create method in util for fetching this id from DB? + $adminUid = 'recoveryAdmin'; + + $userIds[] = $adminUid; + + } + + // Remove duplicate UIDs + $uniqueUserIds = array_unique ( $userIds ); + + return $uniqueUserIds; + + } + /** * @brief get uid of the owners of the file and the path to the file * @param $shareFilePath Path of the file to check -- GitLab From 8a504592230bbe97971ddefe69377669aa276898 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 17 Apr 2013 01:08:27 +0200 Subject: [PATCH 068/454] Fix OC_User::getDisplaynames when using numeric user id's fixes #2948 --- lib/user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/user.php b/lib/user.php index b19af940795..226b716188d 100644 --- a/lib/user.php +++ b/lib/user.php @@ -527,7 +527,7 @@ class OC_User { foreach (self::$_usedBackends as $backend) { $backendDisplayNames = $backend->getDisplayNames($search, $limit, $offset); if (is_array($backendDisplayNames)) { - $displayNames = array_merge($displayNames, $backendDisplayNames); + $displayNames = $displayNames + $backendDisplayNames; } } asort($displayNames); -- GitLab From 6a5f5ce1579ed27649c8537bfdeb67e97f531289 Mon Sep 17 00:00:00 2001 From: AndreasErgenzinger Date: Wed, 17 Apr 2013 10:29:32 +0200 Subject: [PATCH 069/454] merge translations with those from theme --- lib/l10n.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/l10n.php b/lib/l10n.php index 315e326b292..7aef653ef79 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -125,6 +125,15 @@ class OC_L10N{ include strip_tags($i18ndir).strip_tags($lang).'.php'; if(isset($TRANSLATIONS) && is_array($TRANSLATIONS)) { $this->translations = $TRANSLATIONS; + //merge with translations from theme + $theme = OC_Config::getValue( "theme" ); + if (!is_null($theme)) { + $transFile = OC::$SERVERROOT.'/themes/'.$theme.substr($transFile, strlen(OC::$SERVERROOT)); + if (file_exists($transFile)) { + include $transFile; + $this->translations = array_merge($this->translations, $TRANSLATIONS); + } + } } } -- GitLab From 7611d218dfd4a8c1e8a36e9032c68a586c55b5df Mon Sep 17 00:00:00 2001 From: AndreasErgenzinger Date: Wed, 17 Apr 2013 10:34:29 +0200 Subject: [PATCH 070/454] merge translations with those from theme --- lib/l10n.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/l10n.php b/lib/l10n.php index 7aef653ef79..7b81d51b5e2 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -122,18 +122,19 @@ class OC_L10N{ ) && file_exists($i18ndir.$lang.'.php')) { // Include the file, save the data from $CONFIG - include strip_tags($i18ndir).strip_tags($lang).'.php'; + $transFile = strip_tags($i18ndir).strip_tags($lang).'.php'; + include $transFile; if(isset($TRANSLATIONS) && is_array($TRANSLATIONS)) { $this->translations = $TRANSLATIONS; //merge with translations from theme - $theme = OC_Config::getValue( "theme" ); - if (!is_null($theme)) { - $transFile = OC::$SERVERROOT.'/themes/'.$theme.substr($transFile, strlen(OC::$SERVERROOT)); - if (file_exists($transFile)) { - include $transFile; - $this->translations = array_merge($this->translations, $TRANSLATIONS); - } - } + $theme = OC_Config::getValue( "theme" ); + if (!is_null($theme)) { + $transFile = OC::$SERVERROOT.'/themes/'.$theme.substr($transFile, strlen(OC::$SERVERROOT)); + if (file_exists($transFile)) { + include $transFile; + $this->translations = array_merge($this->translations, $TRANSLATIONS); + } + } } } -- GitLab From eef1cf529ed03754798a2329fd29824be44cecda Mon Sep 17 00:00:00 2001 From: AndreasErgenzinger Date: Wed, 17 Apr 2013 10:41:07 +0200 Subject: [PATCH 071/454] additional safety checks --- lib/l10n.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/l10n.php b/lib/l10n.php index 7b81d51b5e2..d35ce5fed14 100644 --- a/lib/l10n.php +++ b/lib/l10n.php @@ -132,7 +132,9 @@ class OC_L10N{ $transFile = OC::$SERVERROOT.'/themes/'.$theme.substr($transFile, strlen(OC::$SERVERROOT)); if (file_exists($transFile)) { include $transFile; - $this->translations = array_merge($this->translations, $TRANSLATIONS); + if (isset($TRANSLATIONS) && is_array($TRANSLATIONS)) { + $this->translations = array_merge($this->translations, $TRANSLATIONS); + } } } } -- GitLab From 6dd8c79461bc5edd723ffb1d561f8ab9251ba02c Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 17 Apr 2013 17:20:37 +0200 Subject: [PATCH 072/454] Development snapshot Working on stream{} write --- apps/files_encryption/lib/proxy.php | 5 +- apps/files_encryption/lib/stream.php | 80 +++++++++++++++------------- apps/files_encryption/lib/util.php | 3 ++ 3 files changed, 48 insertions(+), 40 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 4efb3d2e49c..1e7ac609a4b 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -122,9 +122,8 @@ class Proxy extends \OC_FileProxy { // Decrypt the keyfile $plainKey = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); - trigger_error("\$shareKey = $shareKey"); - - trigger_error("\$plainKey = $plainKey"); +// trigger_error("\$shareKey = $shareKey"); +// trigger_error("\$plainKey = $plainKey"); } else { diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 3e854c8df87..01eee177cd9 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -225,7 +225,7 @@ class Stream { } /** - * @brief Get the keyfile for the current file, generate one if necessary + * @brief Fetch the plain encryption key for the file and set it as plainKey property * @param bool $generate if true, a new key will be generated if none can be found * @return bool true on key found and set, false on key not found and new key generated and set */ @@ -258,10 +258,10 @@ class Stream { $this->plainKey = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey ); - trigger_error( '$this->relPath = '.$this->relPath ); - trigger_error( '$this->userId = '.$this->userId); - trigger_error( '$this->encKeyfile = '.$this->encKeyfile ); - trigger_error( '$this->plainKey1 = '.var_export($this->plainKey, 1)); +// trigger_error( '$this->relPath = '.$this->relPath ); +// trigger_error( '$this->userId = '.$this->userId); +// trigger_error( '$this->encKeyfile = '.$this->encKeyfile ); +// trigger_error( '$this->plainKey1 = '.var_export($this->plainKey, 1)); return true; @@ -319,40 +319,44 @@ class Stream { // Make sure the userId is set $this->setUserProperty(); - // TODO: Check if file is shared, if so, use multiKeyEncrypt and - // save shareKeys in necessary user directories - // Get / generate the keyfile for the file we're handling // If we're writing a new file (not overwriting an existing // one), save the newly generated keyfile if ( ! $this->getKey() ) { - $util = new Util( $this->rootView, $this->userId ); - $this->plainKey = Crypt::generateKey(); - $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); - - $sharingEnabled = \OCP\Share::isEnabled(); - - $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath ); - - // Fetch public keys for all users who will share the file - $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); - - $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); - - $view = new \OC_FilesystemView( '/' ); - - // Save the new encrypted file key - Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); - -// trigger_error( '$this->relPath = '.$this->relPath ); -// trigger_error( '$this->userId = '.$this->userId); -// trigger_error( '$this->encKeyfile = '.var_export($this->encKeyfiles, 1) ); - } + // Fetch user's public key + $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); + + // Check if OC sharing api is enabled + $sharingEnabled = \OCP\Share::isEnabled(); + + $util = new Util( $this->rootView, $this->userId ); + + // Get all users sharing the file + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath ); + + // Fetch public keys for all sharing users + $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); + + // Encrypt enc key for all sharing users + $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); + + $view = new \OC_FilesystemView( '/' ); + + // Save the new encrypted file key + Keymanager::setFileKey( $this->rootView, $this->relPath, $this->userId, $this->encKeyfiles['data'] ); + + // Save the sharekeys + Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); + +// trigger_error( "\$this->encKeyfiles['data'] = ".$this->encKeyfiles['data'] ); +// trigger_error( '$this->relPath = '.$this->relPath ); +// trigger_error( '$this->userId = '.$this->userId); +// trigger_error( '$this->encKeyfile = '.var_export($this->encKeyfiles, 1) ); // trigger_error( '$this->plainKey2 = '.var_export($this->plainKey, 1)); // If extra data is left over from the last round, make sure it @@ -396,7 +400,7 @@ class Stream { // // While there still remains somed data to be processed & written while( strlen( $data ) > 0 ) { -// + // // Remaining length for this iteration, not of the // // entire file (may be greater than 8192 bytes) // $remainingLength = strlen( $data ); @@ -404,7 +408,7 @@ class Stream { // // If data remaining to be written is less than the // // size of 1 6126 byte block if ( strlen( $data ) < 6126 ) { - + // Set writeCache to contents of $data // The writeCache will be carried over to the // next write round, and added to the start of @@ -425,6 +429,8 @@ class Stream { $encrypted = $this->preWriteEncrypt( $chunk, $this->plainKey ); + trigger_error("\$encrypted = $encrypted"); + // Write the data chunk to disk. This will be // attended to the last data chunk if the file // being handled totals more than 6126 bytes @@ -441,7 +447,7 @@ class Stream { } } - + $this->size = max( $this->size, $pointer + $length ); return $length; @@ -493,7 +499,7 @@ class Stream { fwrite( $this->handle, $encrypted ); $this->writeCache = ''; - + } } @@ -501,16 +507,16 @@ class Stream { public function stream_close() { $this->flush(); - + if ( $this->meta['mode']!='r' and $this->meta['mode']!='rb' ) { - + \OC\Files\Filesystem::putFileInfo( $this->path, array( 'encrypted' => true, 'size' => $this->size ), '' ); } - + return fclose( $this->handle ); } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index c964bd94dfa..2fc7b959ece 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -29,6 +29,9 @@ # Sharing all files to admin for recovery purposes still in progress # Possibly public links are broken (not tested since last merge of master) # getOwner() currently returns false in all circumstances, unsure what code is returning this... +# encryptAll during login mangles paths: /files/files/ +# encryptAll is accessing files via encryption proxy - perhaps proxies should be disabled? +# Sharekeys appear to not be deleted when their parent file is, and thus get orphaned # Missing features -- GitLab From 2434739d699e2ca4316ea3aece86d7f609ff8e6d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 18 Apr 2013 02:03:03 +0200 Subject: [PATCH 073/454] fix for trashbin --- apps/files_encryption/lib/proxy.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 1e7ac609a4b..3af9dc73d83 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -254,6 +254,11 @@ class Proxy extends \OC_FileProxy { */ public function preUnlink( $path ) { + // let the trashbin handle this + if ( \OCP\App::isEnabled('files_trashbin') ) { + return true; + } + $path = Keymanager::fixPartialFilePath( $path ); // Disable encryption proxy to prevent recursive calls -- GitLab From a646a1169f9a17be8d520489ae85c16bbcc7236c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 13:41:21 +0200 Subject: [PATCH 074/454] return filename relative to users file dir and not relative to data dir --- apps/files_encryption/lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 2fc7b959ece..f03b2308b2f 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -950,7 +950,7 @@ class Util { // Check that the filename we're using is working if ( $this->view->file_exists( $relpath ) ) { - return array ( $fileOwnerUid, $relpath ); + return array ( $fileOwnerUid, $filename ); } else { -- GitLab From 79218be1d2214095eae1272eac7559a67a55a786 Mon Sep 17 00:00:00 2001 From: kondou Date: Thu, 18 Apr 2013 14:17:37 +0200 Subject: [PATCH 075/454] Priorize common languages. --- settings/js/personal.js | 4 ++++ settings/personal.php | 15 ++++++++++++--- settings/templates/personal.php | 7 ++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/settings/js/personal.js b/settings/js/personal.js index 7c879bcafe9..271de1599d9 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -88,6 +88,10 @@ $(document).ready(function(){ $("#languageinput").chosen(); $("#languageinput").change( function(){ + // the divider is no language + if ($("#languageinput option").hasClass('divider')) { + return false; + } // Serialize the data var post = $( "#languageinput" ).serialize(); // Ajax foo diff --git a/settings/personal.php b/settings/personal.php index 9bbc66c9b7f..57a7e4ee9cd 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -22,8 +22,14 @@ $email=OC_Preferences::getValue(OC_User::getUser(), 'settings', 'email', ''); $userLang=OC_Preferences::getValue( OC_User::getUser(), 'core', 'lang', OC_L10N::findLanguage() ); $languageCodes=OC_L10N::findAvailableLanguages(); +// array of common languages +$commonlangcodes = array( + 'en', 'es', 'fr', 'de', 'de_DE', 'ja_JP', 'nl', 'it', 'pt_BR', 'pt_PT', 'da', 'fi_FI', 'nb_NO', 'sv', 'zh_CN', 'ko' +); + $languageNames=include 'languageCodes.php'; $languages=array(); +$commonlanguages = array(); foreach($languageCodes as $lang) { $l=OC_L10N::get('settings', $lang); if(substr($l->t('__language_name__'), 0, 1)!='_') {//first check if the language name is in the translation file @@ -34,8 +40,12 @@ foreach($languageCodes as $lang) { $ln=array('code'=>$lang, 'name'=>$lang); } + // put apropriate languages into apropriate arrays, to print them sorted + // used language -> common languages -> divider -> other languages if ($lang === $userLang) { $userLang = $ln; + } elseif (in_array($lang, $commonlangcodes)) { + $commonlanguages[]=$ln; } else { $languages[]=$ln; } @@ -46,9 +56,6 @@ usort( $languages, function ($a, $b) { return strcmp($a['name'], $b['name']); }); -//put the current language in the front -array_unshift($languages, $userLang); - //links to clients $clients = array( 'desktop' => OC_Config::getValue('customclient_desktop', 'http://owncloud.org/sync-clients/'), @@ -64,6 +71,8 @@ $tmpl->assign('usage_relative', $storageInfo['relative']); $tmpl->assign('clients', $clients); $tmpl->assign('email', $email); $tmpl->assign('languages', $languages); +$tmpl->assign('commonlanguages', $commonlanguages); +$tmpl->assign('activelanguage', $userLang); $tmpl->assign('passwordChangeSupported', OC_User::canUserChangePassword(OC_User::getUser())); $tmpl->assign('displayNameChangeSupported', OC_User::canUserChangeDisplayName(OC_User::getUser())); $tmpl->assign('displayName', OC_User::getDisplayName()); diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 03073069ab7..c0fcf5c1bd6 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -78,11 +78,16 @@ if($_['displayNameChangeSupported']) {
t('Language'));?> - t('Help translate'));?>
-- GitLab From bd3024242f95a0761c0ce2295b39b4e350a6795d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 15:42:28 +0200 Subject: [PATCH 076/454] always save key file, the key doesn't change but the encrypted keyfile change always the same way like the share-keys change --- apps/files_encryption/lib/proxy.php | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 1e7ac609a4b..4f02c60e103 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -113,8 +113,6 @@ class Proxy extends \OC_FileProxy { // Check if there is an existing key we can reuse if ( $encKeyfile = Keymanager::getFileKey( $rootView, $fileOwner, $filePath ) ) { - - $keyPreExists = true; // Fetch shareKey $shareKey = Keymanager::getShareKey( $rootView, $userId, $filePath ); @@ -127,8 +125,6 @@ class Proxy extends \OC_FileProxy { } else { - $keyPreExists = false; - // Make a new key $plainKey = Crypt::generateKey(); @@ -157,14 +153,9 @@ class Proxy extends \OC_FileProxy { // Set encrypted keyfile as common varname $encKey = $multiEncrypted['data']; - // Save the key if its new - if ( ! $keyPreExists ) { - - // Save keyfile for newly encrypted file in parallel directory tree - Keymanager::setFileKey( $rootView, $filePath, $fileOwner, $encKey ); - - } - + // Save keyfile for newly encrypted file in parallel directory tree + Keymanager::setFileKey( $rootView, $filePath, $fileOwner, $encKey ); + // Replace plain content with encrypted content by reference $data = $encData; -- GitLab From 7892fddcb95d5d4becde224b1d387025b2a5dd5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 15:44:57 +0200 Subject: [PATCH 077/454] remove ToDo, every time the file key gets encrypted new share keys are generated and a new encrypted filekey. We always need to use the latest share-keys and encrypted keyfiles --- apps/files_encryption/lib/proxy.php | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 4f02c60e103..f996a612bfe 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -146,7 +146,6 @@ class Proxy extends \OC_FileProxy { $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); // Save sharekeys to user folders - // TODO: openssl_seal generates new shareKeys (envelope keys) each time data is encrypted, but will data still be decryptable using old shareKeys? If so we don't need to replace the old shareKeys here, we only need to set the new ones Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); -- GitLab From 40905c8941fa707fe358c0f4a5413931b34f8217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 16:34:23 +0200 Subject: [PATCH 078/454] fix file sharing, sharing files works now; moved the identification of file owner and the owner path in the keymanager functions so that other functions doesn't have to deal with it --- apps/files_encryption/lib/keymanager.php | 17 ++++++++++------- apps/files_encryption/lib/proxy.php | 13 +++---------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index c37680fcbea..52d100055e0 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -107,11 +107,13 @@ class Keymanager { public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { \OC_FileProxy::$enabled = false; + + $util = new Util($view, $userId); + list($owner, $filename) = $util->getUidAndFilename($path); + + $basePath = '/' . $owner . '/files_encryption/keyfiles'; - \OC\Files\Filesystem::initMountPoints($userId); - $basePath = '/' . $userId . '/files_encryption/keyfiles'; - - $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId ); + $targetPath = self::keySetPreparation( $view, $filename, $basePath, $owner ); if ( !$view->is_dir( $basePath . '/' . $targetPath ) ) { @@ -166,10 +168,11 @@ class Keymanager { */ public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { - \OC\Files\Filesystem::initMountPoints($userId); - $filePath_f = ltrim( $filePath, '/' ); + $util = new Util($view, $userId); + list($owner, $filename) = $util->getUidAndFilename($filePath); + $filePath_f = ltrim( $filename, '/' ); - $keyfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + $keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key'; \OC_FileProxy::$enabled = false; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index f996a612bfe..88a8c072ea0 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -102,7 +102,6 @@ class Proxy extends \OC_FileProxy { $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); $session = new Session( $rootView ); - $fileOwner = \OC\Files\Filesystem::getOwner( $path ); $privateKey = $session->getPrivateKey(); $filePath = $util->stripUserFilesPath( $path ); // Set the filesize for userland, before encrypting @@ -112,7 +111,7 @@ class Proxy extends \OC_FileProxy { \OC_FileProxy::$enabled = false; // Check if there is an existing key we can reuse - if ( $encKeyfile = Keymanager::getFileKey( $rootView, $fileOwner, $filePath ) ) { + if ( $encKeyfile = Keymanager::getFileKey( $rootView, $userId, $filePath ) ) { // Fetch shareKey $shareKey = Keymanager::getShareKey( $rootView, $userId, $filePath ); @@ -153,7 +152,7 @@ class Proxy extends \OC_FileProxy { $encKey = $multiEncrypted['data']; // Save keyfile for newly encrypted file in parallel directory tree - Keymanager::setFileKey( $rootView, $filePath, $fileOwner, $encKey ); + Keymanager::setFileKey( $rootView, $filePath, $userId, $encKey ); // Replace plain content with encrypted content by reference $data = $encData; @@ -198,14 +197,8 @@ class Proxy extends \OC_FileProxy { $session = new Session( $view ); $privateKey = $session->getPrivateKey( $userId ); - // Get the file owner so we can retrieve its keyfile -// list( $fileOwner, $ownerPath ) = $util->getUidAndFilename( $relPath ); - - $fileOwner = \OC\Files\Filesystem::getOwner( $path ); - $ownerPath = $util->stripUserFilesPath( $path ); // TODO: Don't trust $path, fetch owner path - // Get the encrypted keyfile - $encKeyfile = Keymanager::getFileKey( $view, $fileOwner, $ownerPath ); + $encKeyfile = Keymanager::getFileKey( $view, $userId, $relPath ); // Attempt to fetch the user's shareKey $shareKey = Keymanager::getShareKey( $view, $userId, $relPath ); -- GitLab From 1df36e0c889e9f80f821274f7f5d1e01a7cc01ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 16:37:49 +0200 Subject: [PATCH 079/454] rename $shareFilePath to $path to avoid confusions, it is not about paths to share files but about general path to files stored in ownCloud --- apps/files_encryption/lib/util.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index f03b2308b2f..dbe4acc74ea 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -909,19 +909,19 @@ class Util { /** * @brief get uid of the owners of the file and the path to the file - * @param $shareFilePath Path of the file to check + * @param $path Path of the file to check * @note $shareFilePath must be relative to data/UID/files. Files * relative to /Shared are also acceptable * @return array */ - public function getUidAndFilename( $shareFilePath ) { - - $fileOwnerUid = \OC\Files\Filesystem::getOwner( $shareFilePath ); + public function getUidAndFilename( $path ) { + + $fileOwnerUid = \OC\Files\Filesystem::getOwner( $path ); // Check that UID is valid if ( ! \OCP\User::userExists( $fileOwnerUid ) ) { - throw new \Exception( 'Could not find owner (UID = "' . var_export( $fileOwnerUid, 1 ) . '") of file "' . $shareFilePath . '"' ); + throw new \Exception( 'Could not find owner (UID = "' . var_export( $fileOwnerUid, 1 ) . '") of file "' . $path . '"' ); } @@ -932,11 +932,11 @@ class Util { if ( $fileOwnerUid == $this->userId ) { // Assume the path supplied is correct - $filename = $shareFilePath; + $filename = $path; } else { - $info = \OC\Files\Filesystem::getFileInfo( $shareFilePath ); + $info = \OC\Files\Filesystem::getFileInfo( $path ); $ownerView = new \OC\Files\View( '/' . $fileOwnerUid . '/files' ); // Fetch real file path from DB @@ -954,7 +954,7 @@ class Util { } else { - throw new \Exception( 'Supplied path could not be resolved "' . $shareFilePath . '"' ); + throw new \Exception( 'Supplied path could not be resolved "' . $path . '"' ); } -- GitLab From fe58e4b1a6a0f3b63afe74690986493facdad2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 17:46:04 +0200 Subject: [PATCH 080/454] we need to add the owner of the file as parameter in case someone else like the owner edits the file; if $includeOwner is set than add owner also if no other recipient was found. This changes enable all user with write access to the file to edit it and to encrypt it to the right list of users again --- lib/public/share.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 876de892572..acdf895c920 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -127,21 +127,21 @@ class Share { /** * @brief Find which users can access a shared item * @param $path to the file + * @param $user owner of the file * @param include owner to the list of users with access to the file * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path, $includeOwner = false, $removeDuplicates = true ) { + public static function getUsersSharingFile( $path, $user, $includeOwner = false, $removeDuplicates = true ) { - $user = \OCP\User::getUser(); $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); $path = ''; $shares = array(); - + $view = new \OC\Files\View('/'.$user.'/files/'); foreach ($path_parts as $p) { $path .= '/'.$p; - $meta = \OC\Files\Filesystem::getFileInfo(\OC_Filesystem::normalizePath($path)); + $meta = $view->getFileInfo(\OC_Filesystem::normalizePath($path)); $source = $meta['fileid']; // Fetch all shares of this file path from DB @@ -203,12 +203,9 @@ class Share { $shares[] = "ownCloud"; } } - - if ( ! empty( $shares ) ) { - // Include owner in list of users, if requested - if ( $includeOwner ) { - $shares[] = $user; - } + // Include owner in list of users, if requested + if ( $includeOwner ) { + $shares[] = $user; } return array_unique($shares); -- GitLab From 39c717b24cd4551a78d07256e15b29e52841f49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 17:52:27 +0200 Subject: [PATCH 081/454] some fixes to the keymanager class to identify the file owner and the owner path correctly. --- apps/files_encryption/lib/keymanager.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 52d100055e0..5c5a6c7ec5c 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -108,7 +108,8 @@ class Keymanager { \OC_FileProxy::$enabled = false; - $util = new Util($view, $userId); + //here we need the currently logged in user, while userId can be a different user + $util = new Util($view, \OCP\User::getUser()); list($owner, $filename) = $util->getUidAndFilename($path); $basePath = '/' . $owner . '/files_encryption/keyfiles'; @@ -168,7 +169,7 @@ class Keymanager { */ public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { - $util = new Util($view, $userId); + $util = new Util($view, \OCP\User::getUser()); list($owner, $filename) = $util->getUidAndFilename($filePath); $filePath_f = ltrim( $filename, '/' ); @@ -298,7 +299,8 @@ class Keymanager { */ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { - $util = new Util( $view, $userId ); + //here we need the currently logged in user, while userId can be a different user + $util = new Util( $view, \OCP\User::getUser() ); list($owner, $filename) = $util->getUidAndFilename($path); @@ -368,7 +370,8 @@ class Keymanager { \OC_FileProxy::$enabled = false; - $util = new Util( $view, $userId ); + //here we need the currently logged in user, while userId can be a different user + $util = new Util( $view, \OCP\User::getUser() ); list($owner, $filename) = $util->getUidAndFilename($filePath); -- GitLab From 935d0398600df7c0f46f1cf5d5905c423b9c22e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 17:53:59 +0200 Subject: [PATCH 082/454] necessary changes in util.php after the changes in \OCP\Share::getUsersSharingFile() (fe58e4b1a6a0f3b63afe74690986493facdad2c4) --- apps/files_encryption/lib/util.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index dbe4acc74ea..e4321fdb9df 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -878,12 +878,15 @@ class Util { $recoveryEnabled = $this->recoveryEnabled(); // Make sure that a share key is generated for the owner too - $userIds = array( $this->userId ); - + list($owner, $ownerPath) = $this->getUidAndFilename($filePath); + + //$userIds = array( $this->userId ); + $userIds = array(); + if ( $sharingEnabled ) { // Find out who, if anyone, is sharing the file - $shareUids = \OCP\Share::getUsersSharingFile( $filePath, true, true, true ); + $shareUids = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); $userIds = array_merge( $userIds, $shareUids ); -- GitLab From 5a7a64df08ba0270d282389ff798708367c30e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 20:00:45 +0200 Subject: [PATCH 083/454] Session needs filesystem view as parameter; use getSharingUsersArray(), this function also adds the owner to the list --- apps/files_encryption/hooks/hooks.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e65f0945f41..265b90a87a1 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -189,13 +189,13 @@ class Hooks { if ( $params['itemType'] === 'file' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session(); + $session = new Session($view); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); - - // Note: this currently doesn't include the owner due to \OC\Files\Filesystem::getOwner() - $usersSharing = $util->getUsersSharingFile( $path ); + + $sharingEnabled = \OCP\Share::isEnabled(); + $usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path); // Recursively expand path to include subfiles $allPaths = $util->getPaths( $path ); -- GitLab From 2bd338c49fd15a992ecc8c796cb921af4ee59e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 18 Apr 2013 20:02:27 +0200 Subject: [PATCH 084/454] getUsersSharingFile() no longer needed, use getSharingUsersArray() instead; fix filterShareReadyUsers() to return the correct results --- apps/files_encryption/lib/util.php | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index e4321fdb9df..8807de7c2ad 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -657,14 +657,12 @@ class Util { public function filterShareReadyUsers( $unfilteredUsers ) { // This array will collect the filtered IDs - $userIds = array(); + $readyIds = $unreadyIds = array(); // Loop through users and create array of UIDs that need new keyfiles foreach ( $unfilteredUsers as $user ) { $util = new Util( $this->view, $user ); - - $readyIds = $unreadyIds = array(); // Check that the user is encryption capable, or is the // public system user 'ownCloud' (for public shares) @@ -690,7 +688,7 @@ class Util { } return array ( - 'ready' => $userIds + 'ready' => $readyIds , 'unready' => $unreadyIds ); @@ -810,7 +808,7 @@ class Util { } // Get public keys for each user, ready for generating sharekeys - $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids['ready'] ); // TODO: check this includes the owner's public key + $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids['ready'] ); \OC_FileProxy::$enabled = false; @@ -846,28 +844,6 @@ class Util { return true; } - /** - * @brief Returns the users who are sharing a file, including the file owner - * @param $path Relative path of the file, like files/file.txt - * @return $users array of UIDs - * @note This wraps the OCP\Share method, but includes the owner even if - * the file isn't registered in sharing API - */ - public function getUsersSharingFile( $path ) { - - $users = \OCP\Share::getUsersSharingFile( $path, true, true ); - - // FIXME: this is returning empty :/ - $owner = \OC\Files\Filesystem::getOwner( $path ); - -// trigger_error( var_export( $owner, 1)); - - $users[] = $owner; - - return array_unique( $users ); - - } - /** * @brief Find, sanitise and format users sharing a file * @note This wraps other methods into a portable bundle -- GitLab From 0e1970438b6dd7b6f705aeb420e1d4b4bd27c609 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 18 Apr 2013 22:34:22 +0200 Subject: [PATCH 085/454] fixed incorrect filesize, download via web is now possible fixed broken file-info --- apps/files_encryption/lib/proxy.php | 36 ++++++++++++++++++++++++++-- apps/files_encryption/lib/stream.php | 2 +- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 3af9dc73d83..e23598bb5ff 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -439,9 +439,41 @@ class Proxy extends \OC_FileProxy { public function postFileSize( $path, $size ) { - if ( Crypt::isCatfileContent( $path ) ) { + // Reformat path for use with OC_FSV + $path_split = explode( '/', $path ); + $path_f = implode( '/', array_slice( $path_split, 3 ) ); + + if ( Crypt::isEncryptedMeta( $path_f ) ) { - $cached = \OC\Files\Filesystem::getFileInfo( $path, '' ); + // Disable encryption proxy to prevent recursive calls + \OC_FileProxy::$enabled = false; + + // get file info + $cached = \OC\Files\Filesystem::getFileInfo( $path_f, '' ); + + // calculate last chunk nr + $lastChunckNr = floor( $size / 8192); + + // open stream + $result = fopen( 'crypt://'.$path_f, "r" ); + + // calculate last chunk position + $lastChunckPos = ( $lastChunckNr * 8192 ); + + // seek to end + fseek( $result, $lastChunckPos ); + + // get the content of the last chunck + $lastChunkContent = fgets( $result ); + + // calc the real filesize with the size of the last chunk + $realSize = ( ( $lastChunckNr * 6126 ) + strlen( $lastChunkContent ) ); + + // enable proxy + \OC_FileProxy::$enabled = true; + + // set the size + $cached['size'] = $realSize; return $cached['size']; diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 01eee177cd9..4b33c200bf3 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -513,7 +513,7 @@ class Stream { and $this->meta['mode']!='rb' ) { - \OC\Files\Filesystem::putFileInfo( $this->path, array( 'encrypted' => true, 'size' => $this->size ), '' ); + \OC\Files\Filesystem::putFileInfo( $this->relPath, array( 'encrypted' => true, 'size' => $this->size ), '' ); } -- GitLab From 7a2be0c5dc487d2c2e3dbef67cfa1c5cf2af462e Mon Sep 17 00:00:00 2001 From: kondou Date: Fri, 19 Apr 2013 00:39:42 +0200 Subject: [PATCH 086/454] Make divider not selectable Very hacky --- settings/js/personal.js | 7 +++---- settings/templates/personal.php | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/settings/js/personal.js b/settings/js/personal.js index 271de1599d9..db18b2861ab 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -86,12 +86,11 @@ $(document).ready(function(){ }); $("#languageinput").chosen(); + // Show only the not selectable optgroup + // Choosen only shows optgroup-labels if there are options in the optgroup + $(".languagedivider").remove(); $("#languageinput").change( function(){ - // the divider is no language - if ($("#languageinput option").hasClass('divider')) { - return false; - } // Serialize the data var post = $( "#languageinput" ).serialize(); // Ajax foo diff --git a/settings/templates/personal.php b/settings/templates/personal.php index c0fcf5c1bd6..67307872058 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -82,7 +82,7 @@ if($_['displayNameChangeSupported']) { - + -- GitLab From 938b12236ad934c9222b9c4fd2d1beaf9a0a4418 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 19 Apr 2013 10:06:18 +0200 Subject: [PATCH 087/454] modify password clone to password type right on submit to prevent the browser remind the content --- core/js/jquery-showpassword.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/js/jquery-showpassword.js b/core/js/jquery-showpassword.js index 9cdc48efe89..e1737643b48 100644 --- a/core/js/jquery-showpassword.js +++ b/core/js/jquery-showpassword.js @@ -103,7 +103,16 @@ $clone.bind('blur', function() { $input.trigger('focusout'); }); setState( $checkbox, $input, $clone ); - + + // set type of password field clone (type=text) to password right on submit + // to prevent browser save the value of this field + $clone.closest('form').submit(function(e) { + // .prop has to be used, because .attr throws + // an error while changing a type of an input + // element + $clone.prop('type', 'password'); + }); + if( callback.fn ){ callback.fn( callback.args ); } -- GitLab From 12785b93f188c85f19e52917c66aa749b9836ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 19 Apr 2013 13:17:08 +0200 Subject: [PATCH 088/454] make sure that all share keys get deleted if a file/folder gets unshared from a user/group --- apps/files_encryption/hooks/hooks.php | 15 +++++--- apps/files_encryption/lib/keymanager.php | 46 +++++++++++++++++------- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 265b90a87a1..2731ee11125 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -240,22 +240,27 @@ class Hooks { // [shareType] => 0 // [shareWith] => test1 - // TODO: Should other kinds of item be encrypted too? - if ( $params['itemType'] === 'file' ) { + if ( $params['itemType'] === 'file' || $params['itemType'] === 'folder' ) { $view = new \OC_FilesystemView( '/' ); - $session = new Session(); + $session = new Session($view); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); - + + if ($params['shareType'] == \OCP\Share::SHARE_TYPE_GROUP) { + $userIds = \OC_Group::usersInGroup($params['shareWith']); + } else { + $userIds = array($params['shareWith']); + } + // If path is a folder, get all children $allPaths = $util->getPaths( $path ); foreach ( $allPaths as $path ) { // Unshare each child path - if ( ! Keymanager::delShareKey( $view, $params['shareWith'], $path ) ) { + if ( ! Keymanager::delShareKey( $view, $userIds, $path ) ) { $failed[] = $path; diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 5c5a6c7ec5c..f23423062b9 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -395,27 +395,28 @@ class Keymanager { /** * @brief Delete a single user's shareKey for a single file */ - public static function delShareKey( \OC_FilesystemView $view, $userId, $filePath ) { + public static function delShareKey( \OC_FilesystemView $view, $userIds, $filePath ) { \OC_FileProxy::$enabled = false; - $shareKeyPath = '/' . $userId . '/files_encryption/share-keys/' . $filePath; + //here we need the currently logged in user, while userId can be a different user + $util = new Util( $view, \OCP\User::getUser() ); + + list($owner, $filename) = $util->getUidAndFilename($filePath); + + $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename; $result = false; if ( $view->is_dir($shareKeyPath) ) { - $result = $view->unlink($shareKeyPath); - } else { - $absPath = $view->getLocalFile($shareKeyPath); - - $matches = glob(preg_quote($absPath).'.*.shareKey' ); - if ( $matches ) { + $localPath = \OC_Filesystem::normalizePath($view->getLocalFolder($shareKeyPath)); + $result = self::recursiveDelShareKeys($localPath, $userIds); - foreach ( $matches as $ma ) { - unlink($ma); - } + } else { + foreach ($userIds as $userId) { + $view->unlink($shareKeyPath.'.'.$userId.'.shareKey'); } $result = true; @@ -432,7 +433,28 @@ class Keymanager { return $result; } - + + /** + * @brief recursively delete share keys from given users + * + * @param type $dir directory + * @param type $userIds user ids for which the share keys should be deleted + */ + private static function recursiveDelShareKeys($dir, $userIds) { + foreach ($userIds as $userId) { + $completePath = $dir.'/.*'.'.'.$userId.'.shareKey'; + $matches = glob(preg_quote($dir).'/*'.preg_quote('.'.$userId.'.shareKey')); + } + foreach ($matches as $ma) { + unlink($ma); + } + $subdirs = $directories = glob(preg_quote($dir) . '/*' , GLOB_ONLYDIR); + foreach ( $subdirs as $subdir ) { + self::recursiveDelShareKeys($subdir, $userIds); + } + return $true; + } + /** * @brief Make preparations to vars and filesystem for saving a keyfile */ -- GitLab From 10be42f5b7b17ca55c242960885a9b50e217af3f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 19 Apr 2013 15:03:59 +0200 Subject: [PATCH 089/454] Cache: only look for child entires when doing a move operation when moving a folder --- lib/files/cache/cache.php | 27 +++++++++++++++------------ tests/lib/files/cache/cache.php | 7 ++++--- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php index 71b70abe3fe..d30c5cd16ed 100644 --- a/lib/files/cache/cache.php +++ b/lib/files/cache/cache.php @@ -205,7 +205,7 @@ class Cache { . ' VALUES(' . implode(', ', $valuesPlaceholder) . ')'); $result = $query->execute($params); if (\OC_DB::isError($result)) { - \OCP\Util::writeLog('cache', 'Insert to cache failed: '.$result, \OCP\Util::ERROR); + \OCP\Util::writeLog('cache', 'Insert to cache failed: ' . $result, \OCP\Util::ERROR); } return (int)\OC_DB::insertid('*PREFIX*filecache'); @@ -328,19 +328,22 @@ class Cache { * @param string $target */ public function move($source, $target) { - $sourceId = $this->getId($source); + $sourceData = $this->get($source); + $sourceId = $sourceData['fileid']; $newParentId = $this->getParentId($target); - //find all child entries - $query = \OC_DB::prepare('SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `path` LIKE ?'); - $result = $query->execute(array($source . '/%')); - $childEntries = $result->fetchAll(); - $sourceLength = strlen($source); - $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?'); - - foreach ($childEntries as $child) { - $targetPath = $target . substr($child['path'], $sourceLength); - $query->execute(array($targetPath, md5($targetPath), $child['fileid'])); + if ($sourceData['mimetype'] === 'httpd/unix-directory') { + //find all child entries + $query = \OC_DB::prepare('SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `path` LIKE ?'); + $result = $query->execute(array($source . '/%')); + $childEntries = $result->fetchAll(); + $sourceLength = strlen($source); + $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?'); + + foreach ($childEntries as $child) { + $targetPath = $target . substr($child['path'], $sourceLength); + $query->execute(array($targetPath, md5($targetPath), $child['fileid'])); + } } $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `name` = ?, `parent` =?' diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index 250842805e5..4051a6e234b 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -162,10 +162,11 @@ class Cache extends \PHPUnit_Framework_TestCase { $file4 = 'folder/foo/1'; $file5 = 'folder/foo/2'; $data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/bar'); + $folderData = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory'); - $this->cache->put($file1, $data); - $this->cache->put($file2, $data); - $this->cache->put($file3, $data); + $this->cache->put($file1, $folderData); + $this->cache->put($file2, $folderData); + $this->cache->put($file3, $folderData); $this->cache->put($file4, $data); $this->cache->put($file5, $data); -- GitLab From 15dae6198fc4855519a0ed2347c29485a061f6aa Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 20 Apr 2013 16:38:03 +0200 Subject: [PATCH 090/454] Cache: add a backgroundjob to check for external changes to the filesystem --- apps/files/appinfo/app.php | 4 +- lib/files/cache/backgroundwatcher.php | 73 +++++++++++++++++++++++++++ lib/files/cache/cache.php | 1 + lib/files/cache/permissions.php | 15 ++++++ tests/lib/files/cache/permissions.php | 6 ++- 5 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 lib/files/cache/backgroundwatcher.php diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php index 703b1c7cb6c..05ab1722b3e 100644 --- a/apps/files/appinfo/app.php +++ b/apps/files/appinfo/app.php @@ -18,4 +18,6 @@ OC_Search::registerProvider('OC_Search_Provider_File'); \OC_Hook::connect('OC_Filesystem', 'post_write', '\OC\Files\Cache\Updater', 'writeHook'); \OC_Hook::connect('OC_Filesystem', 'post_touch', '\OC\Files\Cache\Updater', 'touchHook'); \OC_Hook::connect('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Updater', 'deleteHook'); -\OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook'); \ No newline at end of file +\OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook'); + +\OC_BackgroundJob_RegularTask::register('\OC\Files\Cache\BackgroundWatcher', 'checkNext'); diff --git a/lib/files/cache/backgroundwatcher.php b/lib/files/cache/backgroundwatcher.php new file mode 100644 index 00000000000..3bcd447f53a --- /dev/null +++ b/lib/files/cache/backgroundwatcher.php @@ -0,0 +1,73 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Files\Cache; + +use \OC\Files\Mount; +use \OC\Files\Filesystem; + +class BackgroundWatcher { + static private function checkUpdate($id) { + $cacheItem = Cache::getById($id); + if (is_null($cacheItem)) { + return; + } + list($storageId, $internalPath) = $cacheItem; + $mounts = Mount::findByStorageId($storageId); + + if (count($mounts) === 0) { + //if the storage we need isn't mounted on default, try to find a user that has access to the storage + $permissionsCache = new Permissions($storageId); + $users = $permissionsCache->getUsers($id); + if (count($users) === 0) { + return; + } + Filesystem::initMountPoints($users[0]); + $mounts = Mount::findByStorageId($storageId); + if (count($mounts) === 0) { + return; + } + } + $storage = $mounts[0]->getStorage(); + $watcher = new Watcher($storage); + $watcher->checkUpdate($internalPath); + } + + /** + * get the next fileid in the cache + * + * @param int $previous + * @return int + */ + static private function getNextFileId($previous) { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? ORDER BY `fileid` ASC', 1); + $result = $query->execute(array($previous)); + if ($row = $result->fetchRow()) { + return $row['fileid']; + } else { + return 0; + } + } + + static public function checkNext() { + $previous = \OC_Appconfig::getValue('files', 'backgroundwatcher_previous', 0); + $next = self::getNextFileId($previous); + error_log($next); + \OC_Appconfig::setValue('files', 'backgroundwatcher_previous', $next); + self::checkUpdate($next); + } + + static public function checkAll() { + $previous = 0; + $next = 1; + while ($next != 0) { + $next = self::getNextFileId($previous); + self::checkUpdate($next); + } + } +} diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php index 71b70abe3fe..3ed3490f29b 100644 --- a/lib/files/cache/cache.php +++ b/lib/files/cache/cache.php @@ -517,6 +517,7 @@ class Cache { /** * get the storage id of the storage for a file and the internal path of the file * + * @param int $id * @return array, first element holding the storage id, second the path */ static public function getById($id) { diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php index a5c9c144054..faa5ff5eacc 100644 --- a/lib/files/cache/permissions.php +++ b/lib/files/cache/permissions.php @@ -107,4 +107,19 @@ class Permissions { $query->execute(array($fileId, $user)); } } + + /** + * get the list of users which have permissions stored for a file + * + * @param int $fileId + */ + public function getUsers($fileId) { + $query = \OC_DB::prepare('SELECT `user` FROM `*PREFIX*permissions` WHERE `fileid` = ?'); + $result = $query->execute(array($fileId)); + $users = array(); + while ($row = $result->fetchRow()) { + $users[] = $row['user']; + } + return $users; + } } diff --git a/tests/lib/files/cache/permissions.php b/tests/lib/files/cache/permissions.php index 56dbbc4518e..7e6e11e2eb2 100644 --- a/tests/lib/files/cache/permissions.php +++ b/tests/lib/files/cache/permissions.php @@ -14,8 +14,8 @@ class Permissions extends \PHPUnit_Framework_TestCase { */ private $permissionsCache; - function setUp(){ - $this->permissionsCache=new \OC\Files\Cache\Permissions('dummy'); + function setUp() { + $this->permissionsCache = new \OC\Files\Cache\Permissions('dummy'); } function testSimple() { @@ -23,8 +23,10 @@ class Permissions extends \PHPUnit_Framework_TestCase { $user = uniqid(); $this->assertEquals(-1, $this->permissionsCache->get(1, $user)); + $this->assertNotContains($user, $this->permissionsCache->getUsers(1)); $this->permissionsCache->set(1, $user, 1); $this->assertEquals(1, $this->permissionsCache->get(1, $user)); + $this->assertContains($user, $this->permissionsCache->getUsers(1)); $this->assertEquals(-1, $this->permissionsCache->get(2, $user)); $this->assertEquals(-1, $this->permissionsCache->get(1, $user . '2')); -- GitLab From eed5e9f804c0aac0467e1f502d86266ea232f350 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 20 Apr 2013 16:56:47 +0200 Subject: [PATCH 091/454] Cache: check one folder and one file each time the backgroundwatcher runs Because there are usually way less folders than files it walks trought the list of all folder quicker, this causes new files to be detected quicker --- lib/files/cache/backgroundwatcher.php | 47 ++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/lib/files/cache/backgroundwatcher.php b/lib/files/cache/backgroundwatcher.php index 3bcd447f53a..7549745e7d7 100644 --- a/lib/files/cache/backgroundwatcher.php +++ b/lib/files/cache/backgroundwatcher.php @@ -12,6 +12,18 @@ use \OC\Files\Mount; use \OC\Files\Filesystem; class BackgroundWatcher { + static $folderMimetype = null; + + static private function getFolderMimetype() { + if (!is_null(self::$folderMimetype)) { + return self::$folderMimetype; + } + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?'); + $result = $query->execute(array('httpd/unix-directory')); + $row = $result->fetchRow(); + return $row['id']; + } + static private function checkUpdate($id) { $cacheItem = Cache::getById($id); if (is_null($cacheItem)) { @@ -42,10 +54,15 @@ class BackgroundWatcher { * get the next fileid in the cache * * @param int $previous + * @param bool $folder * @return int */ - static private function getNextFileId($previous) { - $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? ORDER BY `fileid` ASC', 1); + static private function getNextFileId($previous, $folder) { + if ($folder) { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND mimetype = ' . self::getFolderMimetype() . ' ORDER BY `fileid` ASC', 1); + } else { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND mimetype != ' . self::getFolderMimetype() . ' ORDER BY `fileid` ASC', 1); + } $result = $query->execute(array($previous)); if ($row = $result->fetchRow()) { return $row['fileid']; @@ -55,18 +72,32 @@ class BackgroundWatcher { } static public function checkNext() { - $previous = \OC_Appconfig::getValue('files', 'backgroundwatcher_previous', 0); - $next = self::getNextFileId($previous); - error_log($next); - \OC_Appconfig::setValue('files', 'backgroundwatcher_previous', $next); - self::checkUpdate($next); + // check both 1 file and 1 folder, this way new files are detected quicker because there are less folders than files usually + $previousFile = \OC_Appconfig::getValue('files', 'backgroundwatcher_previous_file', 0); + $previousFolder = \OC_Appconfig::getValue('files', 'backgroundwatcher_previous_folder', 0); + $nextFile = self::getNextFileId($previousFile, false); + $nextFolder = self::getNextFileId($previousFolder, true); + \OC_Appconfig::setValue('files', 'backgroundwatcher_previous_file', $nextFile); + \OC_Appconfig::setValue('files', 'backgroundwatcher_previous_folder', $nextFolder); + if ($nextFile > 0) { + self::checkUpdate($nextFile); + } + if ($nextFolder > 0) { + self::checkUpdate($nextFolder); + } } static public function checkAll() { $previous = 0; $next = 1; while ($next != 0) { - $next = self::getNextFileId($previous); + $next = self::getNextFileId($previous, true); + self::checkUpdate($next); + } + $previous = 0; + $next = 1; + while ($next != 0) { + $next = self::getNextFileId($previous, false); self::checkUpdate($next); } } -- GitLab From b8fe7025da4b0b6f0fde9dde4553d0b29eefb10c Mon Sep 17 00:00:00 2001 From: kondou Date: Sat, 20 Apr 2013 22:45:17 +0200 Subject: [PATCH 092/454] =?UTF-8?q?Use=20!=3D=3D=20and=20=3D=3D=3D=20in=20?= =?UTF-8?q?user=5Fldap=20app=20=E2=80=93=20Part=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/user_ldap/appinfo/app.php | 2 +- apps/user_ldap/appinfo/install.php | 2 +- apps/user_ldap/appinfo/update.php | 4 ++-- apps/user_ldap/group_ldap.php | 12 ++++++------ apps/user_ldap/js/settings.js | 18 +++++++++--------- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index 89410b5ef07..81eaa0404b7 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -24,7 +24,7 @@ OCP\App::registerAdmin('user_ldap', 'settings'); $configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); -if(count($configPrefixes) == 1) { +if(count($configPrefixes) === 1) { $connector = new OCA\user_ldap\lib\Connection($configPrefixes[0]); $userBackend = new OCA\user_ldap\USER_LDAP(); $userBackend->setConnector($connector); diff --git a/apps/user_ldap/appinfo/install.php b/apps/user_ldap/appinfo/install.php index 378957ec409..c0c33a25c75 100644 --- a/apps/user_ldap/appinfo/install.php +++ b/apps/user_ldap/appinfo/install.php @@ -1,6 +1,6 @@ getUUID($newDN); //fix home folder to avoid new ones depending on the configuration $userBE->getHome($dn['owncloud_name']); diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 432ddd215db..04ff392f920 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -66,7 +66,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { //extra work if we don't get back user DNs //TODO: this can be done with one LDAP query - if(strtolower($this->connection->ldapGroupMemberAssocAttr) == 'memberuid') { + if(strtolower($this->connection->ldapGroupMemberAssocAttr) === 'memberuid') { $dns = array(); foreach($members as $mid) { $filter = str_replace('%uid', $mid, $this->connection->ldapLoginFilter); @@ -108,11 +108,11 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { } //uniqueMember takes DN, memberuid the uid, so we need to distinguish - if((strtolower($this->connection->ldapGroupMemberAssocAttr) == 'uniquemember') - || (strtolower($this->connection->ldapGroupMemberAssocAttr) == 'member') + if((strtolower($this->connection->ldapGroupMemberAssocAttr) === 'uniquemember') + || (strtolower($this->connection->ldapGroupMemberAssocAttr) === 'member') ) { $uid = $userDN; - } else if(strtolower($this->connection->ldapGroupMemberAssocAttr) == 'memberuid') { + } else if(strtolower($this->connection->ldapGroupMemberAssocAttr) === 'memberuid') { $result = $this->readAttribute($userDN, 'uid'); $uid = $result[0]; } else { @@ -157,7 +157,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { return $groupUsers; } - if($limit == -1) { + if($limit === -1) { $limit = null; } $groupDN = $this->groupname2dn($gid); @@ -175,7 +175,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface { } $groupUsers = array(); - $isMemberUid = (strtolower($this->connection->ldapGroupMemberAssocAttr) == 'memberuid'); + $isMemberUid = (strtolower($this->connection->ldapGroupMemberAssocAttr) === 'memberuid'); foreach($members as $member) { if($isMemberUid) { //we got uids, need to get their DNs to 'tranlsate' them to usernames diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index e34849ec887..9279dc0203b 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -8,13 +8,13 @@ var LdapConfiguration = { OC.filePath('user_ldap','ajax','getConfiguration.php'), $('#ldap_serverconfig_chooser').serialize(), function (result) { - if(result.status == 'success') { + if(result.status === 'success') { $.each(result.configuration, function(configkey, configvalue) { elementID = '#'+configkey; //deal with Checkboxes if($(elementID).is('input[type=checkbox]')) { - if(configvalue == 1) { + if(configvalue === 1) { $(elementID).attr('checked', 'checked'); } else { $(elementID).removeAttr('checked'); @@ -37,13 +37,13 @@ var LdapConfiguration = { resetDefaults: function() { $('#ldap').find('input[type=text], input[type=number], input[type=password], textarea, select').each(function() { - if($(this).attr('id') == 'ldap_serverconfig_chooser') { + if($(this).attr('id') === 'ldap_serverconfig_chooser') { return; } $(this).val($(this).attr('data-default')); }); $('#ldap').find('input[type=checkbox]').each(function() { - if($(this).attr('data-default') == 1) { + if($(this).attr('data-default') === 1) { $(this).attr('checked', 'checked'); } else { $(this).removeAttr('checked'); @@ -56,7 +56,7 @@ var LdapConfiguration = { OC.filePath('user_ldap','ajax','deleteConfiguration.php'), $('#ldap_serverconfig_chooser').serialize(), function (result) { - if(result.status == 'success') { + if(result.status === 'success') { $('#ldap_serverconfig_chooser option:selected').remove(); $('#ldap_serverconfig_chooser option:first').select(); LdapConfiguration.refreshConfig(); @@ -74,7 +74,7 @@ var LdapConfiguration = { $.post( OC.filePath('user_ldap','ajax','getNewServerConfigPrefix.php'), function (result) { - if(result.status == 'success') { + if(result.status === 'success') { if(doNotAsk) { LdapConfiguration.resetDefaults(); } else { @@ -115,7 +115,7 @@ $(document).ready(function() { OC.filePath('user_ldap','ajax','testConfiguration.php'), $('#ldap').serialize(), function (result) { - if (result.status == 'success') { + if (result.status === 'success') { OC.dialogs.alert( result.message, t('user_ldap', 'Connection test succeeded') @@ -150,7 +150,7 @@ $(document).ready(function() { $('#ldap').serialize(), function (result) { bgcolor = $('#ldap_submit').css('background'); - if (result.status == 'success') { + if (result.status === 'success') { //the dealing with colors is a but ugly, but the jQuery version in use has issues with rgba colors $('#ldap_submit').css('background', '#fff'); $('#ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() { @@ -168,7 +168,7 @@ $(document).ready(function() { $('#ldap_serverconfig_chooser').change(function(event) { value = $('#ldap_serverconfig_chooser option:selected:first').attr('value'); - if(value == 'NEW') { + if(value === 'NEW') { LdapConfiguration.addConfiguration(false); } else { LdapConfiguration.refreshConfig(); -- GitLab From d6b13ccd12e48257e0d085d190f57b159795c6dc Mon Sep 17 00:00:00 2001 From: kondou Date: Sat, 20 Apr 2013 22:45:50 +0200 Subject: [PATCH 093/454] =?UTF-8?q?Use=20!=3D=3D=20and=20=3D=3D=3D=20in=20?= =?UTF-8?q?user=5Fldap=20app=20=E2=80=93=20Part=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/user_ldap/lib/access.php | 22 +++++++++++----------- apps/user_ldap/lib/connection.php | 14 +++++++------- apps/user_ldap/lib/helper.php | 2 +- apps/user_ldap/templates/settings.php | 4 ++-- apps/user_ldap/user_ldap.php | 4 ++-- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 6d32e9b2ab0..69d07b6bb00 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -87,7 +87,7 @@ abstract class Access { for($i=0;$i<$result[$attr]['count'];$i++) { if($this->resemblesDN($attr)) { $values[] = $this->sanitizeDN($result[$attr][$i]); - } elseif(strtolower($attr) == 'objectguid' || strtolower($attr) == 'guid') { + } elseif(strtolower($attr) === 'objectguid' || strtolower($attr) === 'guid') { $values[] = $this->convertObjectGUID2Str($result[$attr][$i]); } else { $values[] = $result[$attr][$i]; @@ -462,7 +462,7 @@ abstract class Access { while($row = $res->fetchRow()) { $usedNames[] = $row['owncloud_name']; } - if(!($usedNames) || count($usedNames) == 0) { + if(!($usedNames) || count($usedNames) === 0) { $lastNo = 1; //will become name_2 } else { natsort($usedNames); @@ -550,7 +550,7 @@ abstract class Access { $sqlAdjustment = ''; $dbtype = \OCP\Config::getSystemValue('dbtype'); - if($dbtype == 'mysql') { + if($dbtype === 'mysql') { $sqlAdjustment = 'FROM DUAL'; } @@ -574,7 +574,7 @@ abstract class Access { $insRows = $res->numRows(); - if($insRows == 0) { + if($insRows === 0) { return false; } @@ -656,7 +656,7 @@ abstract class Access { $linkResources = array_pad(array(), count($base), $link_resource); $sr = ldap_search($linkResources, $base, $filter, $attr); $error = ldap_errno($link_resource); - if(!is_array($sr) || $error != 0) { + if(!is_array($sr) || $error !== 0) { \OCP\Util::writeLog('user_ldap', 'Error when searching: '.ldap_error($link_resource).' code '.ldap_errno($link_resource), \OCP\Util::ERROR); @@ -724,7 +724,7 @@ abstract class Access { foreach($attr as $key) { $key = mb_strtolower($key, 'UTF-8'); if(isset($item[$key])) { - if($key != 'dn') { + if($key !== 'dn') { $selection[$i][$key] = $this->resemblesDN($key) ? $this->sanitizeDN($item[$key][0]) : $item[$key][0]; @@ -816,7 +816,7 @@ abstract class Access { private function combineFilter($filters, $operator) { $combinedFilter = '('.$operator; foreach($filters as $filter) { - if($filter[0] != '(') { + if($filter[0] !== '(') { $filter = '('.$filter.')'; } $combinedFilter.=$filter; @@ -857,7 +857,7 @@ abstract class Access { private function getFilterPartForSearch($search, $searchAttributes, $fallbackAttribute) { $filter = array(); $search = empty($search) ? '*' : '*'.$search.'*'; - if(!is_array($searchAttributes) || count($searchAttributes) == 0) { + if(!is_array($searchAttributes) || count($searchAttributes) === 0) { if(empty($fallbackAttribute)) { return ''; } @@ -867,7 +867,7 @@ abstract class Access { $filter[] = $attribute . '=' . $search; } } - if(count($filter) == 1) { + if(count($filter) === 1) { return '('.$filter[0].')'; } return $this->combineFilterWithOr($filter); @@ -893,7 +893,7 @@ abstract class Access { * @returns true on success, false otherwise */ private function detectUuidAttribute($dn, $force = false) { - if(($this->connection->ldapUuidAttribute != 'auto') && !$force) { + if(($this->connection->ldapUuidAttribute !== 'auto') && !$force) { return true; } @@ -1007,7 +1007,7 @@ abstract class Access { * @returns string containing the key or empty if none is cached */ private function getPagedResultCookie($base, $filter, $limit, $offset) { - if($offset == 0) { + if($offset === 0) { return ''; } $offset -= $limit; diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index 20784570e93..f3946a0d613 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -99,7 +99,7 @@ class Connection { public function __set($name, $value) { $changed = false; //only few options are writable - if($name == 'ldapUuidAttribute') { + if($name === 'ldapUuidAttribute') { \OCP\Util::writeLog('user_ldap', 'Set config ldapUuidAttribute to '.$value, \OCP\Util::DEBUG); $this->config[$name] = $value; if(!empty($this->configID)) { @@ -321,9 +321,9 @@ class Connection { $params = $this->getConfigTranslationArray(); foreach($config as $parameter => $value) { - if(($parameter == 'homeFolderNamingRule' + if(($parameter === 'homeFolderNamingRule' || (isset($params[$parameter]) - && $params[$parameter] == 'homeFolderNamingRule')) + && $params[$parameter] === 'homeFolderNamingRule')) && !empty($value)) { $value = 'attr:'.$value; } @@ -389,7 +389,7 @@ class Connection { $trans = $this->getConfigTranslationArray(); $config = array(); foreach($trans as $dbKey => $classKey) { - if($classKey == 'homeFolderNamingRule') { + if($classKey === 'homeFolderNamingRule') { if(strpos($this->config[$classKey], 'attr:') === 0) { $config[$dbKey] = substr($this->config[$classKey], 5); } else { @@ -440,7 +440,7 @@ class Connection { } foreach(array('ldapAttributesForUserSearch', 'ldapAttributesForGroupSearch') as $key) { if(is_array($this->config[$key]) - && count($this->config[$key]) == 1 + && count($this->config[$key]) === 1 && empty($this->config[$key][0])) { $this->config[$key] = array(); } @@ -588,12 +588,12 @@ class Connection { $error = null; //if LDAP server is not reachable, try the Backup (Replica!) Server - if((!$bindStatus && ($error == -1)) + if((!$bindStatus && ($error === -1)) || $this->config['ldapOverrideMainServer'] || $this->getFromCache('overrideMainServer')) { $this->doConnect($this->config['ldapBackupHost'], $this->config['ldapBackupPort']); $bindStatus = $this->bind(); - if($bindStatus && $error == -1) { + if($bindStatus && $error === -1) { //when bind to backup server succeeded and failed to main server, //skip contacting him until next cache refresh $this->writeToCache('overrideMainServer', true); diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index 612a088269b..8bebd84c12e 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -96,7 +96,7 @@ class Helper { return false; } - if($res->numRows() == 0) { + if($res->numRows() === 0) { return false; } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index d3c2c298904..f0ee8c6b08a 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -14,7 +14,7 @@

-

+

t('Special Attributes'));?>

diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 1277e074714..41e2926605e 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -197,9 +197,9 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { //if attribute's value is an absolute path take this, otherwise append it to data dir //check for / at the beginning or pattern c:\ resp. c:/ if( - '/' == $path[0] + '/' === $path[0] || (3 < strlen($path) && ctype_alpha($path[0]) - && $path[1] == ':' && ('\\' == $path[2] || '/' == $path[2])) + && $path[1] === ':' && ('\\' === $path[2] || '/' === $path[2])) ) { $homedir = $path; } else { -- GitLab From 6b47da10bea66d7a925de2850919b503201558be Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 22 Apr 2013 04:40:49 +0200 Subject: [PATCH 094/454] improved rename and file size support fix missing user_id on write --- apps/files_encryption/lib/proxy.php | 174 +++++++++++++++------------ apps/files_encryption/lib/stream.php | 31 ++--- 2 files changed, 115 insertions(+), 90 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 67c93694e33..505fad440d5 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -288,38 +288,54 @@ class Proxy extends \OC_FileProxy { * @return bool Result of rename() * @note This is pre rather than post because using post didn't work */ - public function preRename( $oldPath, $newPath ) { - - // Disable encryption proxy to prevent recursive calls - \OC_FileProxy::$enabled = false; - - $view = new \OC_FilesystemView( '/' ); - - $userId = \OCP\USER::getUser(); - - // Format paths to be relative to user files dir - $oldTrimmed = ltrim( $oldPath, '/' ); - $oldSplit = explode( '/', $oldTrimmed ); - $oldSliced = array_slice( $oldSplit, 2 ); - $oldRelPath = implode( '/', $oldSliced ); - $oldKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $oldRelPath . '.key'; - - $newTrimmed = ltrim( $newPath, '/' ); - $newSplit = explode( '/', $newTrimmed ); - $newSliced = array_slice( $newSplit, 2 ); - $newRelPath = implode( '/', $newSliced ); - $newKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $newRelPath . '.key'; - - // Rename keyfile so it isn't orphaned - $result = $view->rename( $oldKeyfilePath, $newKeyfilePath ); - - \OC_FileProxy::$enabled = true; - - return $result; - - } - - public function postFopen( $path, &$result ){ + public function preRename( $oldPath, $newPath ) + { + + // Disable encryption proxy to prevent recursive calls + \OC_FileProxy::$enabled = false; + + $view = new \OC_FilesystemView('/'); + + $userId = \OCP\USER::getUser(); + + // Format paths to be relative to user files dir + $oldTrimmed = ltrim($oldPath, '/'); + $oldSplit = explode('/', $oldTrimmed); + $oldSliced = array_slice($oldSplit, 2); + $oldRelPath = implode('/', $oldSliced); + $oldKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $oldRelPath; + + + $newTrimmed = ltrim($newPath, '/'); + $newSplit = explode('/', $newTrimmed); + $newSliced = array_slice($newSplit, 2); + $newRelPath = implode('/', $newSliced); + $newKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $newRelPath; + + // add key ext if this is not an folder + if (!$view->is_dir($oldKeyfilePath)) { + $oldKeyfilePath .= '.key'; + $newKeyfilePath .= '.key'; + } else { + // handle share-keys folders + $oldShareKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $oldRelPath; + $newShareKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $newRelPath; + $view->rename($oldShareKeyfilePath, $newShareKeyfilePath); + } + + //TODO add support for share-keys files + //... + + // Rename keyfile so it isn't orphaned + $result = $view->rename($oldKeyfilePath, $newKeyfilePath); + + \OC_FileProxy::$enabled = true; + + return $result; + + } + + public function postFopen( $path, &$result ){ if ( !$result ) { @@ -421,49 +437,55 @@ class Proxy extends \OC_FileProxy { } public function postFileSize( $path, $size ) { - - // Reformat path for use with OC_FSV - $path_split = explode( '/', $path ); - $path_f = implode( '/', array_slice( $path_split, 3 ) ); - - if ( Crypt::isEncryptedMeta( $path_f ) ) { - - // Disable encryption proxy to prevent recursive calls - \OC_FileProxy::$enabled = false; - - // get file info - $cached = \OC\Files\Filesystem::getFileInfo( $path_f, '' ); - - // calculate last chunk nr - $lastChunckNr = floor( $size / 8192); - - // open stream - $result = fopen( 'crypt://'.$path_f, "r" ); - - // calculate last chunk position - $lastChunckPos = ( $lastChunckNr * 8192 ); - - // seek to end - fseek( $result, $lastChunckPos ); - - // get the content of the last chunck - $lastChunkContent = fgets( $result ); - - // calc the real filesize with the size of the last chunk - $realSize = ( ( $lastChunckNr * 6126 ) + strlen( $lastChunkContent ) ); - - // enable proxy - \OC_FileProxy::$enabled = true; - - // set the size - $cached['size'] = $realSize; - - return $cached['size']; - - } else { - - return $size; - - } + + // Reformat path for use with OC_FSV + $path_split = explode('/', $path); + $path_f = implode('/', array_slice($path_split, 3)); + + $view = new \OC_FilesystemView( '/' ); + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + + if ($util->isEncryptedPath($path)) { + + // Disable encryption proxy to prevent recursive calls + \OC_FileProxy::$enabled = false; + + // get file info + $cached = \OC\Files\Filesystem::getFileInfo($path_f, ''); + + // calculate last chunk nr + $lastChunckNr = floor($size / 8192); + + // open stream + $result = fopen('crypt://' . $path_f, "r"); + + if(is_resource($result)) { + // calculate last chunk position + $lastChunckPos = ($lastChunckNr * 8192); + + // seek to end + fseek($result, $lastChunckPos); + + // get the content of the last chunck + $lastChunkContent = fgets($result); + + // calc the real file size with the size of the last chunk + $realSize = (($lastChunckNr * 6126) + strlen($lastChunkContent)); + + // set the size + $cached['size'] = $realSize; + } + + // enable proxy + \OC_FileProxy::$enabled = true; + + return $cached['size']; + + } else { + + return $size; + + } } } diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 4b33c200bf3..c12fab783b3 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -101,6 +101,9 @@ class Stream { } else { + // Disable fileproxies so we can get the file size and open the source file without recursive encryption + \OC_FileProxy::$enabled = false; + if ( $mode == 'w' or $mode == 'w+' @@ -119,9 +122,6 @@ class Stream { } - // Disable fileproxies so we can open the source file without recursive encryption - \OC_FileProxy::$enabled = false; - //$this->handle = fopen( $this->rawPath, $mode ); $this->handle = $this->rootView->fopen( $this->rawPath, $mode ); @@ -240,14 +240,13 @@ class Stream { // Avoid problems with .part file extensions $this->relPath = Keymanager::fixPartialFilePath( $this->relPath ); - + + // Fetch and decrypt keyfile + // Fetch existing keyfile + $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath ); + // If a keyfile already exists - if ( $this->rootView->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->relPath . '.key' ) ) { - - // Fetch and decrypt keyfile - // Fetch existing keyfile - $this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->relPath ); - + if ( $this->encKeyfile ) { $this->setUserProperty(); $session = new Session( $this->rootView ); @@ -338,11 +337,15 @@ class Stream { // Get all users sharing the file $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath ); - + + // allways add current user + $uniqueUserIds[] = $this->userId; + array_unique( $uniqueUserIds ); + // Fetch public keys for all sharing users $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); - - // Encrypt enc key for all sharing users + + // Encrypt enc key for all sharing users $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); $view = new \OC_FilesystemView( '/' ); @@ -429,7 +432,7 @@ class Stream { $encrypted = $this->preWriteEncrypt( $chunk, $this->plainKey ); - trigger_error("\$encrypted = $encrypted"); + //trigger_error("\$encrypted = $encrypted"); // Write the data chunk to disk. This will be // attended to the last data chunk if the file -- GitLab From a2ba3c8a43780eab5ad8a4d96db33c584e7ae2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 11:58:39 +0200 Subject: [PATCH 095/454] fix sharing of folders. First we need to collect all files. Than we need to find all users with access to the file because this can vary from file to file and than we can encrypt it for all recipients --- apps/files_encryption/hooks/hooks.php | 58 +++++++++++++-------------- apps/files_encryption/lib/util.php | 20 +++++++++ 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 2731ee11125..13cf352b4ed 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -166,8 +166,8 @@ class Hooks { /** * @brief */ - public static function postShared( $params ) { - + public static function postShared($params) { + // NOTE: $params has keys: // [itemType] => file // itemSource -> int, filecache file ID @@ -183,50 +183,46 @@ class Hooks { // [fileSource] => 13 // [fileTarget] => /test8 // [id] => 10 - // [token] => - + // [token] => // TODO: Should other kinds of item be encrypted too? - if ( $params['itemType'] === 'file' ) { - - $view = new \OC_FilesystemView( '/' ); + if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { + + $view = new \OC_FilesystemView('/'); $session = new Session($view); $userId = \OCP\User::getUser(); - $util = new Util( $view, $userId ); - $path = $util->fileIdToPath( $params['itemSource'] ); + $util = new Util($view, $userId); + $path = $util->fileIdToPath($params['itemSource']); $sharingEnabled = \OCP\Share::isEnabled(); - $usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path); - - // Recursively expand path to include subfiles - $allPaths = $util->getPaths( $path ); - - $failed = array(); - - // Loop through all subfiles - foreach ( $allPaths as $path ) { - + + if ($params['itemType'] === 'folder') { + //list($owner, $ownerPath) = $util->getUidAndFilename($filePath); + $allFiles = $util->getAllFiles($path); + } else { + $allFiles = array($path); + } + + foreach ($allFiles as $path) { + $usersSharing = $util->getSharingUsersArray($sharingEnabled, $path); + + $failed = array(); + // Attempt to set shareKey - if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { - + if (!$util->setSharedFileKeyfiles($session, $usersSharing, $path)) { + $failed[] = $path; - } - } - + // If no attempts to set keyfiles failed - if ( empty( $failed ) ) { - + if (empty($failed)) { + return true; - } else { - + return false; - } - } - } /** diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 8807de7c2ad..b3df7f0db03 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -939,4 +939,24 @@ class Util { } + /** + *@ brief geo recursively through a dir and collect all files and sub files. + * @param type $dir relative to the users files folder + * @return array with list of files relative to the users files folder + */ + public function getAllFiles($dir) { + $result = array(); + $path = $this->view->getLocalFile(); + $content = $this->view->getDirectoryContent("/".$this->userFilesDir.'/'.$this->filesFolderName.$dir); + + foreach ($content as $c) { + if ($c['type'] === "dir" ) { + $result = array_merge($result, $this->getAllFiles(substr($c['path'],5))); + } else { + $result[] = substr($c['path'], 5); + } + } + return $result; + } + } -- GitLab From 8a46e809f00745f4b67d118e85ec2d35e74b732e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 12:22:07 +0200 Subject: [PATCH 096/454] remove util::getPaths(), this function was broken and is replaced my util::getAllFiles(). When unsharing a folder only remove the share key for sub files if the user really no longer have access to the file. Can happen that a sub-file/-folder is shared to a group the user is a member of or explicitly once more to the same user --- apps/files_encryption/hooks/hooks.php | 21 +++++++---- apps/files_encryption/lib/util.php | 51 --------------------------- 2 files changed, 14 insertions(+), 58 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 13cf352b4ed..e3861e7cc5a 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -196,7 +196,6 @@ class Hooks { $sharingEnabled = \OCP\Share::isEnabled(); if ($params['itemType'] === 'folder') { - //list($owner, $ownerPath) = $util->getUidAndFilename($filePath); $allFiles = $util->getAllFiles($path); } else { $allFiles = array($path); @@ -250,13 +249,21 @@ class Hooks { $userIds = array($params['shareWith']); } - // If path is a folder, get all children - $allPaths = $util->getPaths( $path ); - - foreach ( $allPaths as $path ) { + if ($params['itemType'] === 'folder') { + $allFiles = $util->getAllFiles($path); + } else { + $allFiles = array($path); + } + - // Unshare each child path - if ( ! Keymanager::delShareKey( $view, $userIds, $path ) ) { + foreach ( $allFiles as $path ) { + + // check if the user still has access to the file, otherwise delete share key + $sharingUsers = $util->getSharingUsersArray(true, $path); + + // Unshare every user who no longer has access to the file + $delUsers = array_diff($userIds, $sharingUsers); + if ( ! Keymanager::delShareKey( $view, $delUsers, $path ) ) { $failed[] = $path; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index b3df7f0db03..de63e0ff9f4 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -693,58 +693,7 @@ class Util { ); } - - /** - * @brief Expand given path to all sub files & folders - * @param string $path path which needs to be updated - * @return array $pathsArray all found file paths - * @note Paths of directories excluded, only *file* paths are returned - */ - public function getPaths( $path ) { - // Default return value is success - $result = true; - - // Make path include 'files' dir for OC_FSV operations - $fPath = 'files' . $path; - - // If we're handling a single file - if ( ! $this->view->is_dir( $fPath ) ) { - - $pathsArray[] = $path; - - // If we're handling a folder (recursively) - } else { - - $subFiles = $this->view->getDirectoryContent( $fPath ); - - foreach ( $subFiles as $file ) { - - $filePath = substr( $file['path'], 5 ); - - // If this is a nested file - if ( ! $this->view->is_dir( $fPath ) ) { - - // Add the file path to array - $pathsArray[] = $path; - - } else { - - // If this is a nested folder - $dirPaths = $this->getPaths( $filePath ); - - // Add all subfiles & folders to the array - $pathsArray = array_merge( $dirPaths, $pathsArray ); - - } - } - - } - - return $pathsArray; - - } - /** * @brief Decrypt a keyfile without knowing how it was encrypted * @param string $filePath -- GitLab From f6ac34afea6c1f68f53e0e7a076b0b274559fd8b Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 22 Apr 2013 12:25:55 +0200 Subject: [PATCH 097/454] improved handling for getSharingUsersArray --- apps/files_encryption/lib/proxy.php | 2 +- apps/files_encryption/lib/stream.php | 10 +++------- apps/files_encryption/lib/util.php | 9 +++++++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 505fad440d5..bc6280ff61b 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -134,7 +134,7 @@ class Proxy extends \OC_FileProxy { $sharingEnabled = \OCP\Share::isEnabled(); - $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath ); + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId ); // Fetch public keys for all users who will share the file $publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds ); diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index c12fab783b3..6fb95934c32 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -335,14 +335,10 @@ class Stream { $util = new Util( $this->rootView, $this->userId ); - // Get all users sharing the file - $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath ); + // Get all users sharing the file includes current user + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath, $this->userId); - // allways add current user - $uniqueUserIds[] = $this->userId; - array_unique( $uniqueUserIds ); - - // Fetch public keys for all sharing users + // Fetch public keys for all sharing users $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); // Encrypt enc key for all sharing users diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index b3df7f0db03..e69314e099a 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -848,7 +848,7 @@ class Util { * @brief Find, sanitise and format users sharing a file * @note This wraps other methods into a portable bundle */ - public function getSharingUsersArray( $sharingEnabled, $filePath ) { + public function getSharingUsersArray( $sharingEnabled, $filePath, $currentUserId = false ) { // Check if key recovery is enabled $recoveryEnabled = $this->recoveryEnabled(); @@ -878,7 +878,12 @@ class Util { $userIds[] = $adminUid; } - + + // add current user if given + if($currentUserId != false) { + $userIds[] = $currentUserId; + } + // Remove duplicate UIDs $uniqueUserIds = array_unique ( $userIds ); -- GitLab From 17059388482eabf6a1d05ea4c8d09e0f67ed9c43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 12:32:38 +0200 Subject: [PATCH 098/454] removed some leftover code; use already existing var for path to users file folder --- apps/files_encryption/lib/util.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index de63e0ff9f4..d1377df9a95 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -895,8 +895,8 @@ class Util { */ public function getAllFiles($dir) { $result = array(); - $path = $this->view->getLocalFile(); - $content = $this->view->getDirectoryContent("/".$this->userFilesDir.'/'.$this->filesFolderName.$dir); + + $content = $this->view->getDirectoryContent($this->userFilesDir.$dir); foreach ($content as $c) { if ($c['type'] === "dir" ) { -- GitLab From b24a673714289bf515c93999a1dd0dfc552eb7cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 14:12:18 +0200 Subject: [PATCH 099/454] the owner uid is not interesting. We want to get all users who have access to the given item source, no matter from whom it was shared --- lib/public/share.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index acdf895c920..9fd8eb42fb7 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -150,10 +150,10 @@ class Share { FROM `*PREFIX*share` WHERE - item_source = ? AND share_type = ? AND uid_owner = ?' + item_source = ? AND share_type = ?' ); - $result = $query->execute( array( $source, self::SHARE_TYPE_USER, $user ) ); + $result = $query->execute( array( $source, self::SHARE_TYPE_USER ) ); if ( \OC_DB::isError( $result ) ) { \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); @@ -170,10 +170,10 @@ class Share { FROM `*PREFIX*share` WHERE - item_source = ? AND share_type = ? AND uid_owner = ?' + item_source = ? AND share_type = ?' ); - $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP, $user ) ); + $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP ) ); if ( \OC_DB::isError( $result ) ) { \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); @@ -190,10 +190,10 @@ class Share { FROM `*PREFIX*share` WHERE - item_source = ? AND share_type = ? AND uid_owner = ?' + item_source = ? AND share_type = ?' ); - $result = $query->execute( array( $source, self::SHARE_TYPE_LINK, $user ) ); + $result = $query->execute( array( $source, self::SHARE_TYPE_LINK ) ); if ( \OC_DB::isError( $result ) ) { \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); -- GitLab From bcb2e87846407959a1826b3c38d6956d180e3468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 14:13:59 +0200 Subject: [PATCH 100/454] check if the item source was shared to me to decide if it is a re-share or not. Re-sharing of encrypted files should work now, we might still need to test some corner cases --- apps/files_encryption/hooks/hooks.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e3861e7cc5a..88ec64b492d 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -193,8 +193,18 @@ class Hooks { $util = new Util($view, $userId); $path = $util->fileIdToPath($params['itemSource']); + //check if this is a reshare action, that's true if the item source is already shared with me + $sharedItem = \OCP\Share::getItemSharedWithBySource($params['itemType'], $params['itemSource']); + if ($sharedItem) { + // if it is a re-share than the file is located in my Shared folder + $path = '/Shared'.$sharedItem['file_target']; + } else { + $path = $util->fileIdToPath($params['itemSource']); + } + $sharingEnabled = \OCP\Share::isEnabled(); + // if a folder was shared, get a list if all (sub-)folders if ($params['itemType'] === 'folder') { $allFiles = $util->getAllFiles($path); } else { @@ -243,12 +253,14 @@ class Hooks { $util = new Util( $view, $userId ); $path = $util->fileIdToPath( $params['itemSource'] ); + // for group shares get a list of the group members if ($params['shareType'] == \OCP\Share::SHARE_TYPE_GROUP) { $userIds = \OC_Group::usersInGroup($params['shareWith']); } else { $userIds = array($params['shareWith']); } + // if we unshare a folder we need a list of all (sub-)files if ($params['itemType'] === 'folder') { $allFiles = $util->getAllFiles($path); } else { -- GitLab From b57478fa27a2dc2dcfeba68064e44aca5848e145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 14:14:28 +0200 Subject: [PATCH 101/454] fix comment, remove unused variable --- apps/files_encryption/lib/util.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index d1377df9a95..1ba339c15df 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -805,15 +805,10 @@ class Util { // Make sure that a share key is generated for the owner too list($owner, $ownerPath) = $this->getUidAndFilename($filePath); - //$userIds = array( $this->userId ); - $userIds = array(); - if ( $sharingEnabled ) { // Find out who, if anyone, is sharing the file - $shareUids = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); - - $userIds = array_merge( $userIds, $shareUids ); + $userIds = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); } @@ -889,7 +884,7 @@ class Util { } /** - *@ brief geo recursively through a dir and collect all files and sub files. + * @brief geo recursively through a dir and collect all files and sub files. * @param type $dir relative to the users files folder * @return array with list of files relative to the users files folder */ -- GitLab From b5cb5dab513441b8c914aaa043921d0affae4604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 14:30:10 +0200 Subject: [PATCH 102/454] fix encryption to owncloud user for public link shares --- apps/files_encryption/lib/keymanager.php | 2 +- apps/files_encryption/lib/util.php | 2 +- lib/public/share.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index f23423062b9..6fb1f128b5e 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -54,7 +54,7 @@ class Keymanager { \OC_FileProxy::$enabled = false; - return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' ); + return $view->file_get_contents( '/public-keys/' . $userId . '.public.key' ); \OC_FileProxy::$enabled = true; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 1ba339c15df..143ba69f254 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -668,7 +668,7 @@ class Util { // public system user 'ownCloud' (for public shares) if ( $util->ready() - or $user == 'ownCloud' + or $user == 'owncloud' ) { // Construct array of ready UIDs for Keymanager{} diff --git a/lib/public/share.php b/lib/public/share.php index 9fd8eb42fb7..5cd556c6acb 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -200,7 +200,7 @@ class Share { } if ($result->fetchRow()) { - $shares[] = "ownCloud"; + $shares[] = "owncloud"; } } // Include owner in list of users, if requested -- GitLab From a4364a93d0e80e0d1daa2b28713df05c25970fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 22 Apr 2013 15:29:58 +0200 Subject: [PATCH 103/454] delete all share keys if a file gets deleted --- apps/files_encryption/lib/keymanager.php | 21 ++++++++++++++++++++- apps/files_encryption/lib/proxy.php | 11 +++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 6fb1f128b5e..9885f5e5508 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -391,7 +391,26 @@ class Keymanager { return $result; } - + + /** + * @brief delete all share keys of a given file + * @param \OC_FilesystemView $view + * @param type $userId owner of the file + * @param type $filePath path to the file, relative to the owners file dir + */ + public static function delAllShareKeys(\OC_FilesystemView $view, $userId, $filePath) { + + if ($view->is_dir($userId.'/files/'.$filePath)) { + $view->unlink($userId.'/files_encryption/share-keys/'.$filePath); + } else { + $localKeyPath = $view->getLocalFile($userId.'/files_encryption/share-keys/'.$filePath); + $matches = glob(preg_quote($localKeyPath).'*.shareKey'); + foreach ($matches as $ma) { + unlink($ma); + } + } + } + /** * @brief Delete a single user's shareKey for a single file */ diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 505fad440d5..bd25465ee69 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -256,18 +256,13 @@ class Proxy extends \OC_FileProxy { // Format path to be relative to user files dir $relPath = $util->stripUserFilesPath( $path ); -// list( $owner, $ownerPath ) = $util->getUidAndFilename( $relPath ); - - $fileOwner = \OC\Files\Filesystem::getOwner( $path ); - $ownerPath = $util->stripUserFilesPath( $path ); // TODO: Don't trust $path, fetch owner path - - $filePath = $fileOwner . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $ownerPath; + list( $owner, $ownerPath ) = $util->getUidAndFilename( $relPath ); // Delete keyfile & shareKey so it isn't orphaned if ( ! ( - Keymanager::deleteFileKey( $view, $fileOwner, $ownerPath ) - && Keymanager::delShareKey( $view, $fileOwner, $ownerPath ) + Keymanager::deleteFileKey( $view, $owner, $ownerPath ) + && Keymanager::delAllShareKeys( $view, $owner, $ownerPath ) ) ) { -- GitLab From 37c72059417d2f2f776ee4318e3705adf6c54fe7 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 22 Apr 2013 18:50:59 +0200 Subject: [PATCH 104/454] fix wrong file path in util --- apps/files_encryption/lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 9868aba02e8..6e8786b7cdb 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -337,7 +337,7 @@ class Util { // scanning every file like this // will eat server resources :( if ( - Keymanager::getFileKey( $this->view, $this->userId, $file ) + Keymanager::getFileKey( $this->view, $this->userId, $relPath ) && Crypt::isCatfileContent( $data ) ) { -- GitLab From 8ab9433fdff179649a5e5b9d6046d85efd81d3b8 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 22 Apr 2013 18:54:23 +0200 Subject: [PATCH 105/454] fix wrong file path in proxy --- apps/files_encryption/lib/proxy.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 1a96f1e4955..e058a528ad0 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -266,7 +266,7 @@ class Proxy extends \OC_FileProxy { ) ) { - \OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "'.$filePath.'"', \OC_Log::ERROR ); + \OC_Log::write( 'Encryption library', 'Keyfile or shareKey could not be deleted for file "'.$ownerPath.'"', \OC_Log::ERROR ); } -- GitLab From f1bcf6ef0289504f1f00e1265ad8ad88aa2302db Mon Sep 17 00:00:00 2001 From: kondou Date: Mon, 8 Apr 2013 07:11:35 +0200 Subject: [PATCH 106/454] Improve the password reset screen. Fixing #2752 --- core/css/styles.css | 2 ++ core/lostpassword/templates/lostpassword.php | 34 ++++++++++++++------ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 4dfa3f64a37..6eea2be433d 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -220,6 +220,8 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; } } #login #databaseField .infield { padding-left:0; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } +#login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; } +#login .success { background:#d7fed7; border:1px solid #0f0; width: 35%; margin: 30px auto; padding:1em; text-align: center;} /* Show password toggle */ #show, #dbpassword { position:absolute; right:1em; top:.8em; float:right; } diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index dc9f0bc8ad3..4009ba44050 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -1,17 +1,31 @@ -
-
- t('You will receive a link to reset your password via Email.'); ?> - - t('Reset email send.'); ?> - + +

+ t('The link to reset your password has been sent to your email.'); + echo "

"; + echo $l->t('If you do not receive it within a reasonable amount of time, check your spam/junk folders.'); + echo "

"; + echo $l->t('If it is not there ask your local administrator .'); + ?> +

+ + +
- t('Request failed!'); ?> +

+ t('Request failed!'); + echo "

"; + echo $l->t('Did you make sure the Email was right?'); + ?> +

+ t('You will receive a link to reset your password via Email.'); ?>

- -
- +
+ + -- GitLab From 06dfc951227375ae3729e93d5c0a3f90e4cdc566 Mon Sep 17 00:00:00 2001 From: kondou Date: Mon, 8 Apr 2013 22:41:15 +0200 Subject: [PATCH 107/454] Fix syntax error. --- core/lostpassword/templates/lostpassword.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index 4009ba44050..dd4d05d25c0 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -1,4 +1,4 @@ - +

t('The link to reset your password has been sent to your email.'); -- GitLab From 0d3afadab28c5d4008c6b0c1051c31f0c67a462e Mon Sep 17 00:00:00 2001 From: kondou Date: Thu, 11 Apr 2013 17:20:14 +0200 Subject: [PATCH 108/454] Don't split translation lines --- core/lostpassword/templates/lostpassword.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index dd4d05d25c0..bb06249b722 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -1,11 +1,9 @@

t('The link to reset your password has been sent to your email.'); - echo "

"; - echo $l->t('If you do not receive it within a reasonable amount of time, check your spam/junk folders.'); - echo "

"; - echo $l->t('If it is not there ask your local administrator .'); + echo $l->t('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.

+

If it is not there ask your local administrator .'); ?>

@@ -13,11 +11,7 @@

- t('Request failed!'); - echo "

"; - echo $l->t('Did you make sure the Email was right?'); - ?> + t('Request failed!

Did you make sure the Email was right?'); ?>

t('You will receive a link to reset your password via Email.'); ?> -- GitLab From 1e2efdddc9a8770f483a3a368fdc9a7fe6927420 Mon Sep 17 00:00:00 2001 From: kondou Date: Tue, 23 Apr 2013 12:36:27 +0200 Subject: [PATCH 109/454] Oneliners,
, proper errors & print_unescaped() --- core/lostpassword/templates/lostpassword.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index bb06249b722..4f884195799 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -1,25 +1,23 @@

t('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.

-

If it is not there ask your local administrator .'); + print_unescaped($l->t('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.
If it is not there ask your local administrator .')); ?>

-
+

- t('Request failed!

Did you make sure the Email was right?'); ?> + t('Request failed!
Did you make sure your email/username was right?')); ?>

- t('You will receive a link to reset your password via Email.'); ?> + t('You will receive a link to reset your password via Email.')=; ?>

- +

- +
-- GitLab From a1d241783ee44529fac99ba25cb34b658f827876 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 23 Apr 2013 14:12:28 +0200 Subject: [PATCH 110/454] Updated buglist --- apps/files_encryption/lib/util.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 1b69ad320cf..f7bb51a8613 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -24,20 +24,16 @@ # Bugs # ---- # Sharing a file to a user without encryption set up will not provide them with access but won't notify the sharer -# Sharing files to other users currently broken (due to merge + ongoing implementation of support for lost password recovery) # Timeouts on first login due to encryption of very large files (fix in progress, as a result streaming is currently broken) # Sharing all files to admin for recovery purposes still in progress # Possibly public links are broken (not tested since last merge of master) -# getOwner() currently returns false in all circumstances, unsure what code is returning this... # encryptAll during login mangles paths: /files/files/ # encryptAll is accessing files via encryption proxy - perhaps proxies should be disabled? -# Sharekeys appear to not be deleted when their parent file is, and thus get orphaned # Missing features # ---------------- # Make sure user knows if large files weren't encrypted -# Support for resharing encrypted files # Test -- GitLab From c6bfc7315b380710d7c59f7bb23588822063dc6f Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 23 Apr 2013 17:36:35 +0200 Subject: [PATCH 111/454] Stream writing improved: working with dolphin + kate, gedit & nautilus give errors, suspect those issues are clientside .part file paths fixed in stream{} --- apps/files_encryption/lib/proxy.php | 5 ----- apps/files_encryption/lib/stream.php | 22 ++++++---------------- apps/files_encryption/lib/util.php | 2 +- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index e058a528ad0..0d20ff1af1a 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -118,9 +118,6 @@ class Proxy extends \OC_FileProxy { // Decrypt the keyfile $plainKey = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); - -// trigger_error("\$shareKey = $shareKey"); -// trigger_error("\$plainKey = $plainKey"); } else { @@ -207,8 +204,6 @@ class Proxy extends \OC_FileProxy { $plainKeyfile = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); $plainData = Crypt::symmetricDecryptFileContent( $data, $plainKeyfile ); - -// trigger_error("PLAINDATA = ". var_export($plainData, 1)); } elseif ( Crypt::mode() == 'server' diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 6fb95934c32..9a37c3b08ee 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -86,6 +86,9 @@ class Stream { // rawPath is relative to the data directory $this->rawPath = $this->userId . '/files/' . $this->relPath; + // Fix .part filenames + $this->rawPath = Keymanager::fixPartialFilePath( $this->rawPath ); + if ( dirname( $this->rawPath ) == 'streams' and isset( self::$sourceStreams[basename( $this->rawPath )] ) @@ -257,11 +260,6 @@ class Stream { $this->plainKey = Crypt::multiKeyDecrypt( $this->encKeyfile, $shareKey, $privateKey ); -// trigger_error( '$this->relPath = '.$this->relPath ); -// trigger_error( '$this->userId = '.$this->userId); -// trigger_error( '$this->encKeyfile = '.$this->encKeyfile ); -// trigger_error( '$this->plainKey1 = '.var_export($this->plainKey, 1)); - return true; } else { @@ -352,12 +350,6 @@ class Stream { // Save the sharekeys Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); -// trigger_error( "\$this->encKeyfiles['data'] = ".$this->encKeyfiles['data'] ); -// trigger_error( '$this->relPath = '.$this->relPath ); -// trigger_error( '$this->userId = '.$this->userId); -// trigger_error( '$this->encKeyfile = '.var_export($this->encKeyfiles, 1) ); -// trigger_error( '$this->plainKey2 = '.var_export($this->plainKey, 1)); - // If extra data is left over from the last round, make sure it // is integrated into the next 6126 / 8192 block if ( $this->writeCache ) { @@ -420,7 +412,7 @@ class Stream { // Clear $data ready for next round $data = ''; -// + } else { // Read the chunk from the start of $data @@ -428,8 +420,6 @@ class Stream { $encrypted = $this->preWriteEncrypt( $chunk, $this->plainKey ); - //trigger_error("\$encrypted = $encrypted"); - // Write the data chunk to disk. This will be // attended to the last data chunk if the file // being handled totals more than 6126 bytes @@ -515,9 +505,9 @@ class Stream { \OC\Files\Filesystem::putFileInfo( $this->relPath, array( 'encrypted' => true, 'size' => $this->size ), '' ); } - - return fclose( $this->handle ); + return fclose( $this->handle ); + } } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index f7bb51a8613..38b4219f6e2 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -492,7 +492,7 @@ class Util { * @note Encryption is recursive */ public function encryptAll( $publicKey, $dirPath, $legacyPassphrase = null, $newPassphrase = null ) { - + if ( $found = $this->findEncFiles( $dirPath ) ) { // Disable proxy to prevent file being encrypted twice -- GitLab From b7d8da87d0b094c5e55a0ac43995074fa3351618 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Tue, 23 Apr 2013 18:41:01 +0200 Subject: [PATCH 112/454] Development snapshot working on stream handling (large files) in Util->encryptAll() --- apps/files_encryption/lib/keymanager.php | 3 +- apps/files_encryption/lib/proxy.php | 1 - apps/files_encryption/lib/util.php | 50 ++++++++++++------------ 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 9885f5e5508..0e1dafeed75 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -106,6 +106,7 @@ class Keymanager { */ public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) { + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; //here we need the currently logged in user, while userId can be a different user @@ -129,7 +130,7 @@ class Keymanager { $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; return $result; diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 0d20ff1af1a..620f7cc8c31 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -142,7 +142,6 @@ class Proxy extends \OC_FileProxy { $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); // Save sharekeys to user folders - Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); // Set encrypted keyfile as common varname diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 38b4219f6e2..f9198e0606a 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -500,37 +500,39 @@ class Util { // Encrypt unencrypted files foreach ( $found['plain'] as $plainFile ) { - - // Open plain file handle - - - // Open enc file handle - - - // Read plain file in chunks //relative to data//file $relPath = $plainFile['path']; + //relative to /data $rawPath = $this->userId . '/files/' . $plainFile['path']; - - // Open handle with for binary reading - $plainHandle = $this->view->fopen( $rawPath, 'rb' ); - // Open handle with for binary writing - - $encHandle = fopen( 'crypt://' . $relPath . '.tmp', 'wb' ); - // Overwrite the existing file with the encrypted one - //$this->view->file_put_contents( $plainFile['path'], $encrypted['data'] ); - $size = stream_copy_to_stream( $plainHandle, $encHandle ); - - $this->view->rename($rawPath . '.tmp', $rawPath); - - // Fetch the key that has just been set/updated by the stream - //$encKey = Keymanager::getFileKey( $this->view, $this->userId, $relPath ); + // Open plain file handle for binary reading + $plainHandle1 = $this->view->fopen( $rawPath, 'rb' ); + + // 2nd handle for moving plain file - view->rename() doesn't work, this is a workaround + $plainHandle2 = $this->view->fopen( $rawPath . '.plaintmp', 'wb' ); + + // Move plain file to a temporary location + stream_copy_to_stream( $plainHandle1, $plainHandle2 ); + + // Close access to original file +// $this->view->fclose( $plainHandle1 ); // not implemented in view{} + + // Delete original plain file so we can rename enc file later + $this->view->unlink( $rawPath ); + + // Open enc file handle for binary writing, with same filename as original plain file + $encHandle = fopen( 'crypt://' . $relPath, 'wb' ); + + // Save data from plain stream to new encrypted file via enc stream + // NOTE: Stream{} will be invoked for handling + // the encryption, and should handle all keys + // and their generation etc. automatically + $size = stream_copy_to_stream( $plainHandle2, $encHandle ); - // Save keyfile - //Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encKey ); + // Delete temporary plain copy of file + $this->view->unlink( $rawPath . '.plaintmp' ); // Add the file to the cache \OC\Files\Filesystem::putFileInfo( $plainFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' ); -- GitLab From baa6fd639fb9e6b2a954975603428603fcd04a85 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 23 Apr 2013 19:08:52 +0200 Subject: [PATCH 113/454] improved file size handling --- apps/files_encryption/lib/proxy.php | 92 +++++++++++++++++++---------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index e058a528ad0..cb7cb8a2cc7 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -91,14 +91,14 @@ class Proxy extends \OC_FileProxy { return false; } - public function preFile_put_contents( $path, &$data ) { - - if ( self::shouldEncrypt( $path ) ) { - - // Stream put contents should have been converted to fopen + public function preFile_put_contents( $path, &$data ) { + + if ( self::shouldEncrypt( $path ) ) { + + // Stream put contents should have been converted to fopen if ( !is_resource( $data ) ) { - - $userId = \OCP\USER::getUser(); + + $userId = \OCP\USER::getUser(); $rootView = new \OC_FilesystemView( '/' ); $util = new Util( $rootView, $userId ); $session = new Session( $rootView ); @@ -135,8 +135,8 @@ class Proxy extends \OC_FileProxy { $sharingEnabled = \OCP\Share::isEnabled(); $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId ); - - // Fetch public keys for all users who will share the file + + // Fetch public keys for all users who will share the file $publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds ); \OC_FileProxy::$enabled = false; @@ -165,7 +165,8 @@ class Proxy extends \OC_FileProxy { } } - + + return true; } /** @@ -174,7 +175,7 @@ class Proxy extends \OC_FileProxy { */ public function postFile_get_contents( $path, $data ) { - // FIXME: $path for shared files is just /uid/files/Shared/filepath + // FIXME: $path for shared files is just /uid/files/Shared/filepath $userId = \OCP\USER::getUser(); $view = new \OC_FilesystemView( '/' ); @@ -300,7 +301,6 @@ class Proxy extends \OC_FileProxy { $oldRelPath = implode('/', $oldSliced); $oldKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $oldRelPath; - $newTrimmed = ltrim($newPath, '/'); $newSplit = explode('/', $newTrimmed); $newSliced = array_slice($newSplit, 2); @@ -331,14 +331,14 @@ class Proxy extends \OC_FileProxy { } public function postFopen( $path, &$result ){ - - if ( !$result ) { + + if ( !$result ) { return $result; } - - // Reformat path for use with OC_FSV + + // Reformat path for use with OC_FSV $path_split = explode( '/', $path ); $path_f = implode( '/', array_slice( $path_split, 3 ) ); @@ -394,8 +394,8 @@ class Proxy extends \OC_FileProxy { // fclose( $tmp ); } - - $result = fopen( 'crypt://'.$path_f, $meta['mode'] ); + + $result = fopen( 'crypt://'.$path_f, $meta['mode'] ); } @@ -407,8 +407,8 @@ class Proxy extends \OC_FileProxy { } public function postGetMimeType( $path, $mime ) { - - if ( Crypt::isCatfileContent( $path ) ) { + + if ( Crypt::isCatfileContent( $path ) ) { $mime = \OCP\Files::getMimeType( 'crypt://' . $path, 'w' ); @@ -418,9 +418,28 @@ class Proxy extends \OC_FileProxy { } + public function postGetFileInfo( $path, $data ) { + + // if path is a folder do nothing + if(is_array($data) && array_key_exists('size', $data)) { + // Disable encryption proxy to prevent recursive calls + \OC_FileProxy::$enabled = false; + + // get file size + $data['size'] = self::postFileSize($path, $data['size']); + + // Re-enable the proxy + \OC_FileProxy::$enabled = true; + + trigger_error('postGetFileInfo '.$path.' size: '.$data['size']); + } + + return $data; + } + public function postStat( $path, $data ) { - - if ( Crypt::isCatfileContent( $path ) ) { + + if ( Crypt::isCatfileContent( $path ) ) { $cached = \OC\Files\Filesystem::getFileInfo( $path, '' ); @@ -433,29 +452,38 @@ class Proxy extends \OC_FileProxy { public function postFileSize( $path, $size ) { + $view = new \OC_FilesystemView( '/' ); + + // if path is a folder do nothing + if($view->is_dir($path)) { + return $size; + } + // Reformat path for use with OC_FSV $path_split = explode('/', $path); $path_f = implode('/', array_slice($path_split, 3)); - $view = new \OC_FilesystemView( '/' ); $userId = \OCP\User::getUser(); $util = new Util( $view, $userId ); - if ($util->isEncryptedPath($path)) { + + // FIXME: is there a better solution to check if file belongs to files path? + // only get file size if file is in 'files' path + if (count($path_split) >= 2 && $path_split[2] == 'files' && $util->isEncryptedPath($path)) { // Disable encryption proxy to prevent recursive calls \OC_FileProxy::$enabled = false; - // get file info - $cached = \OC\Files\Filesystem::getFileInfo($path_f, ''); - - // calculate last chunk nr - $lastChunckNr = floor($size / 8192); - // open stream $result = fopen('crypt://' . $path_f, "r"); if(is_resource($result)) { + // don't trust the given size, allways get the size from filesystem + $size = $view->filesize($path); + + // calculate last chunk nr + $lastChunckNr = floor($size / 8192); + // calculate last chunk position $lastChunckPos = ($lastChunckNr * 8192); @@ -469,13 +497,13 @@ class Proxy extends \OC_FileProxy { $realSize = (($lastChunckNr * 6126) + strlen($lastChunkContent)); // set the size - $cached['size'] = $realSize; + $size = $realSize; } // enable proxy \OC_FileProxy::$enabled = true; - return $cached['size']; + return $size; } else { -- GitLab From 7312cbec91e5e034c771ad7a473c744169d449c8 Mon Sep 17 00:00:00 2001 From: David Reagan Date: Tue, 23 Apr 2013 12:45:12 -0700 Subject: [PATCH 114/454] Made saving the display name work the same way as the email address. Fixed a few comparison operators. Increased the fadeOut time for the success and error messages. --- settings/ajax/changedisplayname.php | 4 +- settings/js/personal.js | 78 ++++++++++++++++------------- settings/templates/personal.php | 4 +- 3 files changed, 46 insertions(+), 40 deletions(-) diff --git a/settings/ajax/changedisplayname.php b/settings/ajax/changedisplayname.php index dff4d733cd2..dea07aad14c 100644 --- a/settings/ajax/changedisplayname.php +++ b/settings/ajax/changedisplayname.php @@ -4,6 +4,8 @@ OCP\JSON::callCheck(); OC_JSON::checkLoggedIn(); +$l=OC_L10N::get('core'); + $username = isset($_POST["username"]) ? $_POST["username"] : OC_User::getUser(); $displayName = $_POST["displayName"]; @@ -26,7 +28,7 @@ if(is_null($userstatus)) { // Return Success story if( OC_User::setDisplayName( $username, $displayName )) { - OC_JSON::success(array("data" => array( "username" => $username, 'displayName' => $displayName ))); + OC_JSON::success(array("data" => array( "message" => $l->t('Your display name was changed'), "username" => $username, 'displayName' => $displayName ))); } else{ OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change display name"), 'displayName' => OC_User::getDisplayName($username) ))); diff --git a/settings/js/personal.js b/settings/js/personal.js index 7c879bcafe9..cdea7d75a90 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -20,16 +20,40 @@ function changeEmailAddress(){ }); } +/** + * Post the email address change to the server. + */ +function changeDisplayName(){ + if ($('#displayName').val() !== '' ) { + OC.msg.startSaving('#displaynameform .msg'); + // Serialize the data + var post = $( "#displaynameform" ).serialize(); + // Ajax foo + $.post( 'ajax/changedisplayname.php', post, function(data){ + if( data.status === "success" ){ + $('#oldDisplayName').text($('#displayName').val()); + // update displayName on the top right expand button + $('#expandDisplayName').text($('#displayName').val()); + } + else{ + $('#newdisplayname').val(data.data.displayName); + } + OC.msg.finishedSaving('#displaynameform .msg', data); + }); + return false; + } +} + $(document).ready(function(){ $("#passwordbutton").click( function(){ - if ($('#pass1').val() != '' && $('#pass2').val() != '') { + if ($('#pass1').val() !== '' && $('#pass2').val() !== '') { // Serialize the data var post = $( "#passwordform" ).serialize(); $('#passwordchanged').hide(); $('#passworderror').hide(); // Ajax foo $.post( 'ajax/changepassword.php', post, function(data){ - if( data.status == "success" ){ + if( data.status === "success" ){ $('#pass1').val(''); $('#pass2').val(''); $('#passwordchanged').show(); @@ -48,41 +72,23 @@ $(document).ready(function(){ }); - $("#displaynamebutton").click( function(){ - if ($('#displayName').val() != '' ) { - // Serialize the data - var post = $( "#displaynameform" ).serialize(); - $('#displaynamechanged').hide(); - $('#displaynemerror').hide(); - // Ajax foo - $.post( 'ajax/changedisplayname.php', post, function(data){ - if( data.status == "success" ){ - $('#displaynamechanged').show(); - $('#oldDisplayName').text($('#displayName').val()); - // update displayName on the top right expand button - $('#expandDisplayName').text($('#displayName').val()); - } - else{ - $('#newdisplayname').val(data.data.displayName) - $('#displaynameerror').html( data.data.message ); - $('#displaynameerror').show(); - } - }); - return false; - } else { - $('#displayName').val($('#oldDisplayName').val()); - $('#displaynamechanged').hide(); - $('#displaynameerror').show(); - return false; - } + $('#displayName').keyup(function(){ + if ($('#displayName').val() !== '' ){ + if(typeof timeout !== 'undefined'){ + clearTimeout(timeout); + } + timeout = setTimeout('changeDisplayName()',1000); + } + }); - }); $('#email').keyup(function(){ - if(typeof timeout !== 'undefined'){ - clearTimeout(timeout); + if ($('#email').val() !== '' ){ + if(typeof timeout !== 'undefined'){ + clearTimeout(timeout); + } + timeout = setTimeout('changeEmailAddress()',1000); } - timeout = setTimeout('changeEmailAddress()',1000); }); $("#languageinput").chosen(); @@ -92,7 +98,7 @@ $(document).ready(function(){ var post = $( "#languageinput" ).serialize(); // Ajax foo $.post( 'ajax/setlanguage.php', post, function(data){ - if( data.status == "success" ){ + if( data.status === "success" ){ location.reload(); } else{ @@ -113,12 +119,12 @@ OC.msg={ .show(); }, finishedSaving:function(selector, data){ - if( data.status == "success" ){ + if( data.status === "success" ){ $(selector).html( data.data.message ) .addClass('success') .stop(true, true) .delay(3000) - .fadeOut(600); + .fadeOut(900); }else{ $(selector).html( data.data.message ).addClass('error'); } diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 03073069ab7..5ab111bd6d3 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -54,11 +54,9 @@ if($_['displayNameChangeSupported']) {
t('Display Name');?> -
t('Your display name was changed'));?>
-
t('Unable to change your display name'));?>
+ -
Date: Tue, 23 Apr 2013 22:20:31 +0200 Subject: [PATCH 115/454] Added post proxy for getFileInfo. This is needed for WebDAV and FileSize @samtuke and @schiesbn you guys know a better solution? --- lib/files/view.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/files/view.php b/lib/files/view.php index f607bb59aac..bd4812f8f81 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -724,6 +724,9 @@ class View { $data['permissions'] = $permissions; } } + + $data = \OC_FileProxy::runPostProxies('getFileInfo', $path, $data); + return $data; } -- GitLab From 4bee02f75cdd73c1f95f5d84ba8143ec812f1315 Mon Sep 17 00:00:00 2001 From: David Reagan Date: Tue, 23 Apr 2013 14:31:35 -0700 Subject: [PATCH 116/454] Fixed comment in personal.js. Changed message text in changedisplayname.php. --- settings/ajax/changedisplayname.php | 2 +- settings/js/personal.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/settings/ajax/changedisplayname.php b/settings/ajax/changedisplayname.php index dea07aad14c..faf962fbdd7 100644 --- a/settings/ajax/changedisplayname.php +++ b/settings/ajax/changedisplayname.php @@ -28,7 +28,7 @@ if(is_null($userstatus)) { // Return Success story if( OC_User::setDisplayName( $username, $displayName )) { - OC_JSON::success(array("data" => array( "message" => $l->t('Your display name was changed'), "username" => $username, 'displayName' => $displayName ))); + OC_JSON::success(array("data" => array( "message" => $l->t('Your display name has been changed.'), "username" => $username, 'displayName' => $displayName ))); } else{ OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change display name"), 'displayName' => OC_User::getDisplayName($username) ))); diff --git a/settings/js/personal.js b/settings/js/personal.js index cdea7d75a90..3ab811356c0 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -21,7 +21,7 @@ function changeEmailAddress(){ } /** - * Post the email address change to the server. + * Post the display name change to the server. */ function changeDisplayName(){ if ($('#displayName').val() !== '' ) { -- GitLab From 7eb6cc62f8bef131a570ee47972d61460c8c9354 Mon Sep 17 00:00:00 2001 From: Tom Needham Date: Tue, 23 Apr 2013 23:03:39 +0100 Subject: [PATCH 117/454] Make class properties protected instead of private to allow subclassing --- lib/ocs/result.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ocs/result.php b/lib/ocs/result.php index 8ab378d79c5..729c39056d9 100644 --- a/lib/ocs/result.php +++ b/lib/ocs/result.php @@ -22,7 +22,7 @@ class OC_OCS_Result{ - private $data, $message, $statusCode, $items, $perPage; + protected $data, $message, $statusCode, $items, $perPage; /** * create the OCS_Result object -- GitLab From 6f5501bbc88bff2e14e54420d44d770028586c85 Mon Sep 17 00:00:00 2001 From: kondou Date: Wed, 24 Apr 2013 14:17:13 +0200 Subject: [PATCH 118/454] Fis syntax error and add user icon. --- core/lostpassword/templates/lostpassword.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index 4f884195799..c19c6893f13 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -12,10 +12,11 @@ t('Request failed!
Did you make sure your email/username was right?')); ?>

- t('You will receive a link to reset your password via Email.')=; ?> + t('You will receive a link to reset your password via Email.')); ?>

- + +

-- GitLab From d41b6007254fcd5edaa7c4001a11cd8d2597ec9a Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Wed, 24 Apr 2013 18:47:38 +0200 Subject: [PATCH 119/454] Add an update notification on every page for admin users --- core/css/styles.css | 3 +++ core/templates/layout.user.php | 3 +++ lib/templatelayout.php | 14 +++++++++++ lib/updater.php | 46 +++++++++------------------------- settings/templates/admin.php | 3 +-- 5 files changed, 33 insertions(+), 36 deletions(-) diff --git a/core/css/styles.css b/core/css/styles.css index 4dfa3f64a37..49cdc8836f8 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -345,6 +345,9 @@ li.update, li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; bac #notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } #notification span { cursor:pointer; font-weight:bold; margin-left:1em; } +#update-notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } +#update-notification span { cursor:pointer; font-weight:bold; margin-left:1em; } + tr .action:not(.permanent), .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; } tr:hover .action, tr .action.permanent, .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); opacity:.5; } tr .action { width:16px; height:16px; } diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index cfe0a551943..12509019b04 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -32,6 +32,9 @@
-- GitLab From 3a6e39b990b1e58d03cc81479a8a27b6ad6c74fe Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sun, 28 Apr 2013 23:28:41 +0200 Subject: [PATCH 165/454] It's a class --- apps/files/js/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 4010c66593f..296e54e3568 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -116,7 +116,7 @@ $(document).ready(function() { }); // Trigger cancelling of file upload - $('#uploadprogresswrapper stop').on('click', function() { + $('#uploadprogresswrapper .stop').on('click', function() { Files.cancelUploads(); }); -- GitLab From 4a63faf64b14b21af7cb73f43ca3fcf841aff804 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 29 Apr 2013 01:43:59 +0200 Subject: [PATCH 166/454] speed improvement --- apps/files_encryption/lib/stream.php | 65 +++++++++++++++++----------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 411bcdac92d..a51f2c56d95 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -298,7 +298,8 @@ class Stream { // automatically attempted when the file is written to disk - // we are handling that separately here and we don't want to // get into an infinite loop - //\OC_FileProxy::$enabled = false; + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; // Get the length of the unencrypted data that we are handling $length = strlen( $data ); @@ -322,30 +323,7 @@ class Stream { } - // Fetch user's public key - $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); - - // Check if OC sharing api is enabled - $sharingEnabled = \OCP\Share::isEnabled(); - - $util = new Util( $this->rootView, $this->userId ); - - // Get all users sharing the file includes current user - $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath, $this->userId); - - // Fetch public keys for all sharing users - $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); - // Encrypt enc key for all sharing users - $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); - - $view = new \OC_FilesystemView( '/' ); - - // Save the new encrypted file key - Keymanager::setFileKey( $this->rootView, $this->relPath, $this->userId, $this->encKeyfiles['data'] ); - - // Save the sharekeys - Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); // If extra data is left over from the last round, make sure it // is integrated into the next 6126 / 8192 block @@ -437,6 +415,8 @@ class Stream { $this->size = max( $this->size, $pointer + $length ); $this->unencryptedSize += $length; + \OC_FileProxy::$enabled = $proxyStatus; + return $length; } @@ -492,13 +472,46 @@ class Stream { } public function stream_close() { - - $this->flush(); + + $this->flush(); if ( $this->meta['mode']!='r' and $this->meta['mode']!='rb' ) { + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // Fetch user's public key + $this->publicKey = Keymanager::getPublicKey( $this->rootView, $this->userId ); + + // Check if OC sharing api is enabled + $sharingEnabled = \OCP\Share::isEnabled(); + + $util = new Util( $this->rootView, $this->userId ); + + // Get all users sharing the file includes current user + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath, $this->userId); + + // Fetch public keys for all sharing users + $publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds ); + + // Encrypt enc key for all sharing users + $this->encKeyfiles = Crypt::multiKeyEncrypt( $this->plainKey, $publicKeys ); + + $view = new \OC_FilesystemView( '/' ); + + // Save the new encrypted file key + Keymanager::setFileKey( $this->rootView, $this->relPath, $this->userId, $this->encKeyfiles['data'] ); + + // Save the sharekeys + Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; + \OC\Files\Filesystem::putFileInfo( $this->relPath, array( 'encrypted' => 1, 'size' => $this->size, 'unencrypted_size' => $this->unencryptedSize ), '' ); } -- GitLab From 2b36ad292dcbfd8b714b028b71e2c42c622aa7d4 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Mon, 29 Apr 2013 02:00:26 +0200 Subject: [PATCH 167/454] [tx-robot] updated from transifex --- apps/files_external/l10n/nl.php | 1 + apps/files_external/l10n/sk_SK.php | 1 + core/l10n/cs_CZ.php | 3 ++ core/l10n/de.php | 3 ++ core/l10n/de_DE.php | 3 ++ core/l10n/el.php | 1 + core/l10n/es.php | 3 ++ core/l10n/gl.php | 3 ++ core/l10n/it.php | 1 + core/l10n/nl.php | 3 ++ core/l10n/nn_NO.php | 4 ++- core/l10n/pt_BR.php | 1 + core/l10n/sk_SK.php | 3 ++ l10n/cs_CZ/core.po | 13 +++++---- l10n/de/core.po | 13 +++++---- l10n/de/settings.po | 11 +++---- l10n/de_DE/core.po | 13 +++++---- l10n/de_DE/settings.po | 11 +++---- l10n/el/core.po | 9 +++--- l10n/es/core.po | 13 +++++---- l10n/gl/core.po | 13 +++++---- l10n/gl/settings.po | 11 +++---- l10n/it/core.po | 8 ++--- l10n/nl/core.po | 13 +++++---- l10n/nl/files_external.po | 9 +++--- l10n/nl/settings.po | 11 +++---- l10n/nn_NO/core.po | 13 +++++---- l10n/nn_NO/files_sharing.po | 4 +-- l10n/nn_NO/lib.po | 4 +-- l10n/nn_NO/settings.po | 45 +++++++++++++++-------------- l10n/pt_BR/core.po | 8 ++--- l10n/sk_SK/core.po | 13 +++++---- l10n/sk_SK/files_external.po | 9 +++--- l10n/sk_SK/settings.po | 11 +++---- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- settings/l10n/de.php | 1 + settings/l10n/de_DE.php | 1 + settings/l10n/gl.php | 1 + settings/l10n/nl.php | 1 + settings/l10n/nn_NO.php | 22 +++++++++++--- settings/l10n/sk_SK.php | 1 + 51 files changed, 199 insertions(+), 135 deletions(-) diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php index ad3eda9747f..ded5a861a8b 100644 --- a/apps/files_external/l10n/nl.php +++ b/apps/files_external/l10n/nl.php @@ -6,6 +6,7 @@ "Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Waarschuwing: \"smbclient\" is niet geïnstalleerd. Mounten van CIFS/SMB shares is niet mogelijk. Vraag uw beheerder om smbclient te installeren.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Waarschuwing: FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van FTP shares is niet mogelijk. Vraag uw beheerder FTP ondersteuning te installeren.", +"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Waarschuwing: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van ownCloud / WebDAV of GoogleDrive is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", "External Storage" => "Externe opslag", "Folder name" => "Mapnaam", "External storage" => "Externe opslag", diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index 35fea18445c..33edcb9d4c8 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -6,6 +6,7 @@ "Error configuring Google Drive storage" => "Chyba pri konfigurácii úložiska Google drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Upozornenie: \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Upozornenie: Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje.", +"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Varovanie: nie je nainštalovaná, alebo povolená, podpora Curl v PHP. Nie je možné pripojenie oddielov ownCloud, WebDAV, či GoogleDrive. Prosím požiadajte svojho administrátora systému, nech ju nainštaluje.", "External Storage" => "Externé úložisko", "Folder name" => "Meno priečinka", "External storage" => "Externé úložisko", diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index f3fc041b710..d9ec83b1469 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.", "ownCloud password reset" => "Obnovení hesla pro ownCloud", "Use the following link to reset your password: {link}" => "Heslo obnovíte použitím následujícího odkazu: {link}", +"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.
If it is not there ask your local administrator ." => "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu.
Pokud jej v krátké době neobdržíte, zkontrolujte váš koš a složku spam.
Pokud jej nenaleznete, kontaktujte svého správce.", +"Request failed!
Did you make sure your email/username was right?" => "Požadavek selhal.
Ujistili jste se, že vaše uživatelské jméno a e-mail jsou správně?", "You will receive a link to reset your password via Email." => "Bude Vám e-mailem zaslán odkaz pro obnovu hesla.", "Username" => "Uživatelské jméno", "Request reset" => "Vyžádat obnovu", @@ -123,6 +125,7 @@ "Database host" => "Hostitel databáze", "Finish setup" => "Dokončit nastavení", "web services under your control" => "služby webu pod Vaší kontrolou", +"%s is available. Click here to get more information." => "%s je dostupná. Pro více informací klikněte zde.", "Log out" => "Odhlásit se", "Automatic logon rejected!" => "Automatické přihlášení odmítnuto.", "If you did not change your password recently, your account may be compromised!" => "V nedávné době jste nezměnili své heslo, Váš účet může být kompromitován.", diff --git a/core/l10n/de.php b/core/l10n/de.php index 48bb06d80e9..667f11a5afa 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutze den nachfolgenden Link, um Dein Passwort zurückzusetzen: {link}", +"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.
If it is not there ask your local administrator ." => "Der Link zum Rücksetzen Deines Passwort ist an Deine E-Mail-Adresse geschickt worden.
Wenn Du ihn nicht innerhalb einer vernünftigen Zeit empfängst prüfe Deine Spam-Verzeichnisse.
Wenn er nicht dort ist frage Deinen lokalen Administrator.", +"Request failed!
Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen!
Hast Du darauf geachtet, dass Deine E-Mail/Dein Benutzername korrekt war?", "You will receive a link to reset your password via Email." => "Du erhältst einen Link per E-Mail, um Dein Passwort zurückzusetzen.", "Username" => "Benutzername", "Request reset" => "Beantrage Zurücksetzung", @@ -123,6 +125,7 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Deiner Kontrolle", +"%s is available.
Click here to get more information." => "%s ist verfügbar. Klicke hier für weitere Informationen.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatischer Login zurückgewiesen!", "If you did not change your password recently, your account may be compromised!" => "Wenn Du Dein Passwort nicht vor kurzem geändert hast, könnte Dein\nAccount kompromittiert sein!", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index cc0aeb169ac..4953788eeae 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutzen Sie den nachfolgenden Link, um Ihr Passwort zurückzusetzen: {link}", +"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.
If it is not there ask your local administrator ." => "Der Link zum Rücksetzen Ihres Passworts ist an Ihre E-Mail-Adresse gesendet worde.
Wenn Sie ihn nicht innerhalb einer sinnvollen Zeitspanne erhalten prüfen Sie bitte Ihre Spam-Verzeichnisse.
Wenn er nicht dort ist fragen Sie Ihren lokalen Administrator.", +"Request failed!
Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen!
Haben Sie darauf geachtet, dass E-Mail-Adresse/Nutzername korrekt waren?", "You will receive a link to reset your password via Email." => "Sie erhalten einen Link per E-Mail, um Ihr Passwort zurückzusetzen.", "Username" => "Benutzername", "Request reset" => "Zurücksetzung beantragen", @@ -123,6 +125,7 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Ihrer Kontrolle", +"%s is available.
Click here to get more information." => "%s ist verfügbar. Klicken Sie hier um weitere Informationen zu erhalten.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatische Anmeldung verweigert.", "If you did not change your password recently, your account may be compromised!" => "Wenn Sie Ihr Passwort nicht vor kurzem geändert haben, könnte Ihr\nAccount kompromittiert sein!", diff --git a/core/l10n/el.php b/core/l10n/el.php index e92f751018f..dbe0d0ee3d6 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -88,6 +88,7 @@ "The update was successful. Redirecting you to ownCloud now." => "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud.", "ownCloud password reset" => "Επαναφορά συνθηματικού ownCloud", "Use the following link to reset your password: {link}" => "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επανεκδόσετε τον κωδικό: {link}", +"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.
If it is not there ask your local administrator ." => "Ο σύνδεσμος για να επανακτήσετε τον κωδικό σας έχει σταλεί στο email
αν δεν το λάβετε μέσα σε ορισμένο διάστημα, ελέγξετε τους φακελλους σας spam/junk
αν δεν είναι εκεί ρωτήστε τον τοπικό σας διαχειριστή ", "Request failed!
Did you make sure your email/username was right?" => "Η αίτηση απέτυχε! Βεβαιωθηκατε ότι το email σας / username ειναι σωστο? ", "You will receive a link to reset your password via Email." => "Θα λάβετε ένα σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασής σας μέσω ηλεκτρονικού ταχυδρομείου.", "Username" => "Όνομα χρήστη", diff --git a/core/l10n/es.php b/core/l10n/es.php index 8a33b5217b5..091fa8edb7b 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado correctamente. Redireccionando a ownCloud ahora.", "ownCloud password reset" => "Reiniciar contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Utiliza el siguiente enlace para restablecer tu contraseña: {link}", +"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.
If it is not there ask your local administrator ." => "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su spam / carpetas no deseados.
Si no está allí pregunte a su administrador local.", +"Request failed!
Did you make sure your email/username was right?" => "Petición ha fallado!
¿Usted asegúrese que su dirección de correo electrónico / nombre de usuario estaba justo?", "You will receive a link to reset your password via Email." => "Recibirás un enlace por correo electrónico para restablecer tu contraseña", "Username" => "Nombre de usuario", "Request reset" => "Solicitar restablecimiento", @@ -123,6 +125,7 @@ "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", "web services under your control" => "Servicios web bajo su control", +"%s is available.
Click here to get more information." => "% s está disponible. Haga clic aquí para obtener más información.", "Log out" => "Salir", "Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!", "If you did not change your password recently, your account may be compromised!" => "Si usted no ha cambiado su contraseña recientemente, ¡puede que su cuenta esté comprometida!", diff --git a/core/l10n/gl.php b/core/l10n/gl.php index cd5e2583c56..adbbe1fcd5b 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.", "ownCloud password reset" => "Restabelecer o contrasinal de ownCloud", "Use the following link to reset your password: {link}" => "Usa a seguinte ligazón para restabelecer o contrasinal: {link}", +"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.
If it is not there ask your local administrator ." => "Envióuselle ao seu correo unha ligazón para restabelecer o seu contrasinal.
Se non o recibe nun prazo razoábel de tempo, revise o seu cartafol de correo lixo ou de non desexados.
Se non o atopa aí pregúntelle ao seu administrador local..", +"Request failed!
Did you make sure your email/username was right?" => "Non foi posíbel facer a petición!
Asegúrese de que o seu enderezo de correo ou nome de usuario é correcto.", "You will receive a link to reset your password via Email." => "Recibirá unha ligazón por correo para restabelecer o contrasinal", "Username" => "Nome de usuario", "Request reset" => "Petición de restabelecemento", @@ -123,6 +125,7 @@ "Database host" => "Servidor da base de datos", "Finish setup" => "Rematar a configuración", "web services under your control" => "servizos web baixo o seu control", +"%s is available.
Click here to get more information." => "%s está dispoñíbel. Prema aquí para obter máis información.", "Log out" => "Desconectar", "Automatic logon rejected!" => "Rexeitouse a entrada automática", "If you did not change your password recently, your account may be compromised!" => "Se non fixo recentemente cambios de contrasinal é posíbel que a súa conta estea comprometida!", diff --git a/core/l10n/it.php b/core/l10n/it.php index d450f90b1d2..fa2ddcf695f 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -125,6 +125,7 @@ "Database host" => "Host del database", "Finish setup" => "Termina la configurazione", "web services under your control" => "servizi web nelle tue mani", +"%s is available. Click here to get more information." => "%s è disponibile. Fai clic qui per ottenere ulteriori informazioni.", "Log out" => "Esci", "Automatic logon rejected!" => "Accesso automatico rifiutato.", "If you did not change your password recently, your account may be compromised!" => "Se non hai cambiato la password recentemente, il tuo account potrebbe essere compromesso.", diff --git a/core/l10n/nl.php b/core/l10n/nl.php index e7977e14a29..8411dc196b0 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.", "ownCloud password reset" => "ownCloud wachtwoord herstellen", "Use the following link to reset your password: {link}" => "Gebruik de volgende link om je wachtwoord te resetten: {link}", +"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.
If it is not there ask your local administrator ." => "De link voor het resetten van uw wachtwoord is verzonden naar uw e-mailadres.
Als u dat bericht niet snel ontvangen hebt, controleer dan uw spambakje.
Als het daar ook niet is, vraag dan uw beheerder om te helpen.", +"Request failed!
Did you make sure your email/username was right?" => "Aanvraag mislukt!
Weet u zeker dat uw gebruikersnaam en/of wachtwoord goed waren?", "You will receive a link to reset your password via Email." => "U ontvangt een link om uw wachtwoord opnieuw in te stellen via e-mail.", "Username" => "Gebruikersnaam", "Request reset" => "Resetaanvraag", @@ -123,6 +125,7 @@ "Database host" => "Database server", "Finish setup" => "Installatie afronden", "web services under your control" => "Webdiensten in eigen beheer", +"%s is available.
Click here to get more information." => "%s is beschikbaar. Klik hier voor meer informatie.", "Log out" => "Afmelden", "Automatic logon rejected!" => "Automatische aanmelding geweigerd!", "If you did not change your password recently, your account may be compromised!" => "Als u uw wachtwoord niet onlangs heeft aangepast, kan uw account overgenomen zijn!", diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index 61b2baffbf2..a582775b0b4 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -37,6 +37,7 @@ "Help" => "Hjelp", "Cloud not found" => "Fann ikkje skyen", "Add" => "Legg til", +"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen tilgjengeleg tilfeldig nummer-generator, ver vennleg og aktiver OpenSSL-utvidinga i PHP.", "Create an admin account" => "Lag ein admin-konto", "Advanced" => "Avansert", "Data folder" => "Datamappe", @@ -47,8 +48,9 @@ "Database name" => "Databasenamn", "Database host" => "Databasetenar", "Finish setup" => "Fullfør oppsettet", -"web services under your control" => "Vev tjenester under din kontroll", +"web services under your control" => "Vevtenester under din kontroll", "Log out" => "Logg ut", +"Please change your password to secure your account again." => "Ver vennleg og endra passordet for å gjera kontoen din trygg igjen.", "Lost your password?" => "Gløymt passordet?", "remember" => "hugs", "Log in" => "Logg inn", diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index ee1ac44d026..0c56b494707 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -125,6 +125,7 @@ "Database host" => "Host do banco de dados", "Finish setup" => "Concluir configuração", "web services under your control" => "serviços web sob seu controle", +"%s is available. Click here to get more information." => "%s está disponível. Click aqui para mais infoemações.", "Log out" => "Sair", "Automatic logon rejected!" => "Entrada Automática no Sistema Rejeitada!", "If you did not change your password recently, your account may be compromised!" => "Se você não mudou a sua senha recentemente, a sua conta pode estar comprometida!", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index aab65fb4e9e..90bdc4df109 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Aktualizácia bola úspešná. Presmerovávam na prihlasovaciu stránku.", "ownCloud password reset" => "Obnovenie hesla pre ownCloud", "Use the following link to reset your password: {link}" => "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", +"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.
If it is not there ask your local administrator ." => "Odkaz na obnovenie hesla bol odoslaný na Vašu emailovú adresu.
Ak ho v krátkej dobe neobdržíte, skontrolujte si Váš kôš a priečinok spam.
Ak ho ani tam nenájdete, kontaktujte svojho administrátora.", +"Request failed!
Did you make sure your email/username was right?" => "Požiadavka zlyhala.
Uistili ste sa, že Vaše používateľské meno a email sú správne?", "You will receive a link to reset your password via Email." => "Odkaz pre obnovenie hesla obdržíte e-mailom.", "Username" => "Meno používateľa", "Request reset" => "Požiadať o obnovenie", @@ -123,6 +125,7 @@ "Database host" => "Server databázy", "Finish setup" => "Dokončiť inštaláciu", "web services under your control" => "webové služby pod Vašou kontrolou", +"%s is available.
Click here to get more information." => "%s je dostupná. Pre viac informácií kliknite tu.", "Log out" => "Odhlásiť", "Automatic logon rejected!" => "Automatické prihlásenie bolo zamietnuté!", "If you did not change your password recently, your account may be compromised!" => "V nedávnej dobe ste nezmenili svoje heslo, Váš účet môže byť kompromitovaný.", diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po index 83bdbfaa27c..5ace199d70f 100644 --- a/l10n/cs_CZ/core.po +++ b/l10n/cs_CZ/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Tomáš Chvátal , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 08:20+0000\n" +"Last-Translator: Tomáš Chvátal \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu.
Pokud jej v krátké době neobdržíte, zkontrolujte váš koš a složku spam.
Pokud jej nenaleznete, kontaktujte svého správce." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Požadavek selhal.
Ujistili jste se, že vaše uživatelské jméno a e-mail jsou správně?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "služby webu pod Vaší kontrolou" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s je dostupná. Pro více informací klikněte zde." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de/core.po b/l10n/de/core.po index f84fd1ed7e8..9e7dac7c5b8 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# arkascha , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:40+0000\n" +"Last-Translator: arkascha \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Der Link zum Rücksetzen Deines Passwort ist an Deine E-Mail-Adresse geschickt worden.
Wenn Du ihn nicht innerhalb einer vernünftigen Zeit empfängst prüfe Deine Spam-Verzeichnisse.
Wenn er nicht dort ist frage Deinen lokalen Administrator." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Anfrage fehlgeschlagen!
Hast Du darauf geachtet, dass Deine E-Mail/Dein Benutzername korrekt war?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "Web-Services unter Deiner Kontrolle" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s ist verfügbar. Klicke hier für weitere Informationen." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de/settings.po b/l10n/de/settings.po index 02fef77ed98..43ac32ddf2e 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# arkascha , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:30+0000\n" +"Last-Translator: arkascha \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Fehler bei der Anmeldung" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Dein Anzeigename ist geändert worden." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Weniger" msgid "Version" msgstr "Version" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:50+0000\n" +"Last-Translator: arkascha \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Der Link zum Rücksetzen Ihres Passworts ist an Ihre E-Mail-Adresse gesendet worde.
Wenn Sie ihn nicht innerhalb einer sinnvollen Zeitspanne erhalten prüfen Sie bitte Ihre Spam-Verzeichnisse.
Wenn er nicht dort ist fragen Sie Ihren lokalen Administrator." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Anfrage fehlgeschlagen!
Haben Sie darauf geachtet, dass E-Mail-Adresse/Nutzername korrekt waren?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "Web-Services unter Ihrer Kontrolle" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s ist verfügbar. Klicken Sie hier um weitere Informationen zu erhalten." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po index a633ef2dd49..983e3752d45 100644 --- a/l10n/de_DE/settings.po +++ b/l10n/de_DE/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# arkascha , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:40+0000\n" +"Last-Translator: arkascha \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Authentifizierungs-Fehler" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Dein Anzeigename ist geändert worden." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Weniger" msgid "Version" msgstr "Version" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the , 2013 +# KAT.RAT12 , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 11:30+0000\n" +"Last-Translator: KAT.RAT12 \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -402,7 +403,7 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Ο σύνδεσμος για να επανακτήσετε τον κωδικό σας έχει σταλεί στο email
αν δεν το λάβετε μέσα σε ορισμένο διάστημα, ελέγξετε τους φακελλους σας spam/junk
αν δεν είναι εκεί ρωτήστε τον τοπικό σας διαχειριστή " #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" diff --git a/l10n/es/core.po b/l10n/es/core.po index 8f021c11877..7889db38585 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# msoko , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 00:50+0000\n" +"Last-Translator: msoko \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su spam / carpetas no deseados.
Si no está allí pregunte a su administrador local." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Petición ha fallado!
¿Usted asegúrese que su dirección de correo electrónico / nombre de usuario estaba justo?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "Servicios web bajo su control" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "% s está disponible. Haga clic aquí para obtener más información." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/gl/core.po b/l10n/gl/core.po index b24790fcb9a..fd906b7f3ce 100644 --- a/l10n/gl/core.po +++ b/l10n/gl/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mbouzada , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 09:10+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Envióuselle ao seu correo unha ligazón para restabelecer o seu contrasinal.
Se non o recibe nun prazo razoábel de tempo, revise o seu cartafol de correo lixo ou de non desexados.
Se non o atopa aí pregúntelle ao seu administrador local.." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Non foi posíbel facer a petición!
Asegúrese de que o seu enderezo de correo ou nome de usuario é correcto." #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "servizos web baixo o seu control" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s está dispoñíbel. Prema aquí para obter máis información." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po index 4342a6395a4..7b3e9df3f15 100644 --- a/l10n/gl/settings.po +++ b/l10n/gl/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mbouzada , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 09:00+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Produciuse un erro de autenticación" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "O seu nome visíbel foi cambiado" #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Menos" msgid "Version" msgstr "Versión" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 23:30+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -564,7 +564,7 @@ msgstr "servizi web nelle tue mani" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Click here to get more information." -msgstr "" +msgstr "%s è disponibile. Fai clic qui per ottenere ulteriori informazioni." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/nl/core.po b/l10n/nl/core.po index ec1d18f6001..74d93312d5c 100644 --- a/l10n/nl/core.po +++ b/l10n/nl/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André Koot , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 21:00+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "De link voor het resetten van uw wachtwoord is verzonden naar uw e-mailadres.
Als u dat bericht niet snel ontvangen hebt, controleer dan uw spambakje.
Als het daar ook niet is, vraag dan uw beheerder om te helpen." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Aanvraag mislukt!
Weet u zeker dat uw gebruikersnaam en/of wachtwoord goed waren?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "Webdiensten in eigen beheer" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s is beschikbaar. Klik hier voor meer informatie." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/nl/files_external.po b/l10n/nl/files_external.po index 7f08aff1abc..13735200722 100644 --- a/l10n/nl/files_external.po +++ b/l10n/nl/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André Koot , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:30+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgid "" "Warning: The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "your system administrator to install it." -msgstr "" +msgstr "Waarschuwing: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van ownCloud / WebDAV of GoogleDrive is niet mogelijk. Vraag uw systeembeheerder dit te installeren." #: templates/settings.php:3 msgid "External Storage" diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po index 9ca0cc9e804..577422c4691 100644 --- a/l10n/nl/settings.po +++ b/l10n/nl/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# André Koot , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 06:30+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Authenticatie fout" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Uw weergavenaam is gewijzigd." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Minder" msgid "Version" msgstr "Versie" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 22:20+0000\n" +"Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -489,7 +490,7 @@ msgstr "" msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." -msgstr "" +msgstr "Ingen tilgjengeleg tilfeldig nummer-generator, ver vennleg og aktiver OpenSSL-utvidinga i PHP." #: templates/installation.php:33 msgid "" @@ -558,7 +559,7 @@ msgstr "Fullfør oppsettet" #: templates/layout.guest.php:40 msgid "web services under your control" -msgstr "Vev tjenester under din kontroll" +msgstr "Vevtenester under din kontroll" #: templates/layout.user.php:36 #, php-format @@ -581,7 +582,7 @@ msgstr "" #: templates/login.php:12 msgid "Please change your password to secure your account again." -msgstr "" +msgstr "Ver vennleg og endra passordet for å gjera kontoen din trygg igjen." #: templates/login.php:34 msgid "Lost your password?" diff --git a/l10n/nn_NO/files_sharing.po b/l10n/nn_NO/files_sharing.po index d967970a7d4..94d12c1829e 100644 --- a/l10n/nn_NO/files_sharing.po +++ b/l10n/nn_NO/files_sharing.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 17:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nn_NO/lib.po b/l10n/nn_NO/lib.po index 3b4f85220b7..82db481dcd5 100644 --- a/l10n/nn_NO/lib.po +++ b/l10n/nn_NO/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 22:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po index b0178a146f8..00b5185d128 100644 --- a/l10n/nn_NO/settings.po +++ b/l10n/nn_NO/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 22:10+0000\n" +"Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,27 +25,27 @@ msgstr "Klarer ikkje å laste inn liste fra App Store" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/togglegroups.php:20 msgid "Authentication error" -msgstr "Feil i autentisering" +msgstr "Autentiseringsfeil" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Visningsnamnet ditt er endra." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" -msgstr "" +msgstr "Klarte ikkje å endra visningsnamnet" #: ajax/creategroup.php:10 msgid "Group already exists" -msgstr "" +msgstr "Gruppa finst allereie" #: ajax/creategroup.php:19 msgid "Unable to add group" -msgstr "" +msgstr "Klarte ikkje å leggja til gruppa" #: ajax/enableapp.php:11 msgid "Could not enable app. " -msgstr "" +msgstr "Klarte ikkje å aktivera app-en." #: ajax/lostpassword.php:12 msgid "Email saved" @@ -56,11 +57,11 @@ msgstr "Ugyldig e-postadresse" #: ajax/removegroup.php:13 msgid "Unable to delete group" -msgstr "" +msgstr "Klarte ikkje å sletta gruppa" #: ajax/removeuser.php:24 msgid "Unable to delete user" -msgstr "" +msgstr "Klarte ikkje å sletta brukaren" #: ajax/setlanguage.php:15 msgid "Language changed" @@ -72,25 +73,25 @@ msgstr "Ugyldig førespurnad" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "" +msgstr "Administratorar kan ikkje fjerna seg sjølv frå admin-gruppa" #: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" -msgstr "" +msgstr "Klarte ikkje å leggja til brukaren til gruppa %s" #: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" -msgstr "" +msgstr "Klarte ikkje å fjerna brukaren frå gruppa %s" #: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "Klarte ikkje å oppdatera app-en." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "Oppdater til {appversion}" #: js/apps.js:36 js/apps.js:76 msgid "Disable" @@ -102,7 +103,7 @@ msgstr "Slå på" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "Ver vennleg og vent …" #: js/apps.js:59 js/apps.js:71 js/apps.js:80 js/apps.js:93 msgid "Error" @@ -231,7 +232,7 @@ msgid "" "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" " of ownCloud." -msgstr "" +msgstr "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil bruka alle funksjonane til ownCloud." #: templates/admin.php:92 msgid "Cron" @@ -328,7 +329,7 @@ msgstr "" msgid "Version" msgstr "" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 13:50+0000\n" +"Last-Translator: Flávio Veras \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -564,7 +564,7 @@ msgstr "serviços web sob seu controle" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Click here to get more information." -msgstr "" +msgstr "%s está disponível. Click aqui para mais infoemações." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index ce975986822..492549a35e8 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mhh , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 18:50+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Odkaz na obnovenie hesla bol odoslaný na Vašu emailovú adresu.
Ak ho v krátkej dobe neobdržíte, skontrolujte si Váš kôš a priečinok spam.
Ak ho ani tam nenájdete, kontaktujte svojho administrátora." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Požiadavka zlyhala.
Uistili ste sa, že Vaše používateľské meno a email sú správne?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "webové služby pod Vašou kontrolou" #: templates/layout.user.php:36 #, php-format msgid "%s is available.
Click here to get more information." -msgstr "" +msgstr "%s je dostupná. Pre viac informácií kliknite tu." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po index dd0a1d55eeb..fdd045ce137 100644 --- a/l10n/sk_SK/files_external.po +++ b/l10n/sk_SK/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mhh , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 19:00+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgid "" "Warning: The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "your system administrator to install it." -msgstr "" +msgstr "Varovanie: nie je nainštalovaná, alebo povolená, podpora Curl v PHP. Nie je možné pripojenie oddielov ownCloud, WebDAV, či GoogleDrive. Prosím požiadajte svojho administrátora systému, nech ju nainštaluje." #: templates/settings.php:3 msgid "External Storage" diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po index 5a89998a8e8..adbef6c0f0c 100644 --- a/l10n/sk_SK/settings.po +++ b/l10n/sk_SK/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mhh , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"PO-Revision-Date: 2013-04-28 18:50+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Chyba autentifikácie" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Vaše zobrazované meno bolo zmenené." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Menej" msgid "Version" msgstr "Verzia" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 694be970671..9958d9a9a77 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 7e995100555..7b345c7edd5 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index d2205bc6eb6..f6af20af12e 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 86953182c03..485f516e155 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 8e7cbdd4f70..60cd70dff4c 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 544ceee7cc9..a6be10135b8 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 69123d96349..f78499f176c 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 96d1147f74c..7694e52c0c9 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index eaad5f88ee5..9118466368c 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index de9b4933409..44ef971c922 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" +"POT-Creation-Date: 2013-04-29 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/settings/l10n/de.php b/settings/l10n/de.php index aa9a2f18b32..12ef97ca75a 100644 --- a/settings/l10n/de.php +++ b/settings/l10n/de.php @@ -1,6 +1,7 @@ "Die Liste der Anwendungen im Store konnte nicht geladen werden.", "Authentication error" => "Fehler bei der Anmeldung", +"Your display name has been changed." => "Dein Anzeigename ist geändert worden.", "Unable to change display name" => "Das Ändern des Anzeigenamens ist nicht möglich", "Group already exists" => "Gruppe existiert bereits", "Unable to add group" => "Gruppe konnte nicht angelegt werden", diff --git a/settings/l10n/de_DE.php b/settings/l10n/de_DE.php index a8a78a15138..febc67ef2d7 100644 --- a/settings/l10n/de_DE.php +++ b/settings/l10n/de_DE.php @@ -1,6 +1,7 @@ "Die Liste der Anwendungen im Store konnte nicht geladen werden.", "Authentication error" => "Authentifizierungs-Fehler", +"Your display name has been changed." => "Dein Anzeigename ist geändert worden.", "Unable to change display name" => "Das Ändern des Anzeigenamens ist nicht möglich", "Group already exists" => "Die Gruppe existiert bereits", "Unable to add group" => "Die Gruppe konnte nicht angelegt werden", diff --git a/settings/l10n/gl.php b/settings/l10n/gl.php index 83bc3489aad..a6c5018626e 100644 --- a/settings/l10n/gl.php +++ b/settings/l10n/gl.php @@ -1,6 +1,7 @@ "Non foi posíbel cargar a lista desde a App Store", "Authentication error" => "Produciuse un erro de autenticación", +"Your display name has been changed." => "O seu nome visíbel foi cambiado", "Unable to change display name" => "Non é posíbel cambiar o nome visíbel", "Group already exists" => "O grupo xa existe", "Unable to add group" => "Non é posíbel engadir o grupo", diff --git a/settings/l10n/nl.php b/settings/l10n/nl.php index 4321eb1f085..d22b04ad571 100644 --- a/settings/l10n/nl.php +++ b/settings/l10n/nl.php @@ -1,6 +1,7 @@ "Kan de lijst niet van de App store laden", "Authentication error" => "Authenticatie fout", +"Your display name has been changed." => "Uw weergavenaam is gewijzigd.", "Unable to change display name" => "Kon de weergavenaam niet wijzigen", "Group already exists" => "Groep bestaat al", "Unable to add group" => "Niet in staat om groep toe te voegen", diff --git a/settings/l10n/nn_NO.php b/settings/l10n/nn_NO.php index d100335dc2b..4f76253ff24 100644 --- a/settings/l10n/nn_NO.php +++ b/settings/l10n/nn_NO.php @@ -1,16 +1,30 @@ "Klarer ikkje å laste inn liste fra App Store", -"Authentication error" => "Feil i autentisering", +"Authentication error" => "Autentiseringsfeil", +"Your display name has been changed." => "Visningsnamnet ditt er endra.", +"Unable to change display name" => "Klarte ikkje å endra visningsnamnet", +"Group already exists" => "Gruppa finst allereie", +"Unable to add group" => "Klarte ikkje å leggja til gruppa", +"Could not enable app. " => "Klarte ikkje å aktivera app-en.", "Email saved" => "E-postadresse lagra", "Invalid email" => "Ugyldig e-postadresse", +"Unable to delete group" => "Klarte ikkje å sletta gruppa", +"Unable to delete user" => "Klarte ikkje å sletta brukaren", "Language changed" => "Språk endra", "Invalid request" => "Ugyldig førespurnad", +"Admins can't remove themself from the admin group" => "Administratorar kan ikkje fjerna seg sjølv frå admin-gruppa", +"Unable to add user to group %s" => "Klarte ikkje å leggja til brukaren til gruppa %s", +"Unable to remove user from group %s" => "Klarte ikkje å fjerna brukaren frå gruppa %s", +"Couldn't update app." => "Klarte ikkje å oppdatera app-en.", +"Update to {appversion}" => "Oppdater til {appversion}", "Disable" => "Slå av", "Enable" => "Slå på", +"Please wait...." => "Ver vennleg og vent …", "Error" => "Feil", "Groups" => "Grupper", "Delete" => "Slett", "__language_name__" => "Nynorsk", +"This ownCloud 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 of ownCloud." => "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil bruka alle funksjonane til ownCloud.", "Log level" => "Log nivå", "Select an App" => "Vel ein applikasjon", "Update" => "Oppdater", @@ -19,9 +33,9 @@ "Current password" => "Passord", "New password" => "Nytt passord", "Change password" => "Endra passord", -"Email" => "Epost", -"Your email address" => "Din epost addresse", -"Fill in an email address to enable password recovery" => "Fyll inn din e-post addresse for og kunne motta passord tilbakestilling", +"Email" => "E-post", +"Your email address" => "Di epost-adresse", +"Fill in an email address to enable password recovery" => "Fyll inn e-postadressa di for å aktivera passordgjenoppretting", "Language" => "Språk", "Help translate" => "Hjelp oss å oversett", "Create" => "Lag", diff --git a/settings/l10n/sk_SK.php b/settings/l10n/sk_SK.php index a8e2a9ae800..377af0011d1 100644 --- a/settings/l10n/sk_SK.php +++ b/settings/l10n/sk_SK.php @@ -1,6 +1,7 @@ "Nie je možné nahrať zoznam z App Store", "Authentication error" => "Chyba autentifikácie", +"Your display name has been changed." => "Vaše zobrazované meno bolo zmenené.", "Unable to change display name" => "Nemožno zmeniť zobrazované meno", "Group already exists" => "Skupina už existuje", "Unable to add group" => "Nie je možné pridať skupinu", -- GitLab From 4ecd62e58d6caf8da3b6e1a14114fec49784a622 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 29 Apr 2013 09:12:43 +0200 Subject: [PATCH 168/454] improvements for test testSymmetricStreamEncryptShortFileContent this runs currently into an infinite loop --- apps/files_encryption/test/crypt.php | 66 ++++++++++++++++------------ 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php index b02e63b2ffc..9c5e43e2425 100755 --- a/apps/files_encryption/test/crypt.php +++ b/apps/files_encryption/test/crypt.php @@ -52,14 +52,19 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { \OC_User::setUserId( 'admin' ); $this->userId = 'admin'; $this->pass = 'admin'; - - \OC_Filesystem::init( '/' ); - \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => \OC_User::getHome($this->userId)), '/' ); - + + $userHome = \OC_User::getHome($this->userId); + if(!file_exists($userHome)) { + mkdir($userHome, 0777, true); + } + $dataDir = str_replace('/'.$this->userId, '', $userHome); + + \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $dataDir), '/' ); + \OC\Files\Filesystem::init($this->userId, '/'); } function tearDown() { - + } function testGenerateKey() { @@ -222,35 +227,38 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { function testSymmetricStreamEncryptShortFileContent() { - $filename = 'tmp-'.time(); - + $filename = 'tmp-'.time().'.test'; + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataShort ); // Test that data was successfully written $this->assertTrue( is_int( $cryptedFile ) ); - - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); - + + // Get file contents without using any wrapper to get it's actual contents on disk + $absolutePath = \OC\Files\Filesystem::getLocalFile($this->userId . '/files/' . $filename); + $retreivedCryptedFile = file_get_contents($absolutePath); + // Check that the file was encrypted before being written to disk $this->assertNotEquals( $this->dataShort, $retreivedCryptedFile ); - - // Get private key - $encryptedPrivateKey = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); - - $decryptedPrivateKey = Encryption\Crypt::symmetricDecryptFileContent( $encryptedPrivateKey, $this->pass ); - - - // Get keyfile - $encryptedKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); - - $decryptedKeyfile = Encryption\Crypt::keyDecrypt( $encryptedKeyfile, $decryptedPrivateKey ); - - - // Manually decrypt - $manualDecrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $retreivedCryptedFile, $decryptedKeyfile ); - + + // Get the encrypted keyfile + $encKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); + + // Attempt to fetch the user's shareKey + $shareKey = Encryption\Keymanager::getShareKey( $this->view, $this->userId, $filename ); + + // get session + $session = new Encryption\Session( $this->view ); + + // get private key + $privateKey = $session->getPrivateKey( $this->userId ); + + // Decrypt keyfile with shareKey + $plainKeyfile = Encryption\Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + + // Manually decrypt + $manualDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $retreivedCryptedFile, $plainKeyfile ); + // Check that decrypted data matches $this->assertEquals( $this->dataShort, $manualDecrypt ); @@ -329,7 +337,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->view->unlink( $filename ); - Encryption\Keymanager::deleteFileKey( $filename ); + Encryption\Keymanager::deleteFileKey( $this->view, $this->userId, $filename ); } -- GitLab From f55aaad858396484d35f87ca09e5f53e9848ddf6 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 29 Apr 2013 15:43:48 +0200 Subject: [PATCH 169/454] fix for infinite loop causing on files_encryption branch when testing "apps/files_encryption/test/crypt.php" on Method testSymmetricStreamEncryptShortFileContent --- lib/files/cache/cache.php | 2 +- lib/files/cache/scanner.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php index 857fe980be6..47f3c272b13 100644 --- a/lib/files/cache/cache.php +++ b/lib/files/cache/cache.php @@ -430,7 +430,7 @@ class Cache { $this->calculateFolderSize($path); if ($path !== '') { $parent = dirname($path); - if ($parent === '.') { + if ($parent === '.' or $parent === '/') { $parent = ''; } $this->correctFolderSize($parent); diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php index f019d4fc608..5241acec1ee 100644 --- a/lib/files/cache/scanner.php +++ b/lib/files/cache/scanner.php @@ -68,7 +68,7 @@ class Scanner { if ($data) { if ($file) { $parent = dirname($file); - if ($parent === '.') { + if ($parent === '.' or $parent === '/') { $parent = ''; } if (!$this->cache->inCache($parent)) { -- GitLab From 048569754aec39b0e58232107e8108fed70bf7e8 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Mon, 29 Apr 2013 22:35:37 +0200 Subject: [PATCH 170/454] Add compatibility function for outerHTML --- core/js/compatibility.js | 16 +++++++++++++++- core/js/octemplate.js | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/js/compatibility.js b/core/js/compatibility.js index cc37949409d..b690803ca77 100644 --- a/core/js/compatibility.js +++ b/core/js/compatibility.js @@ -133,4 +133,18 @@ if(!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g,''); }; -} \ No newline at end of file +} + +// Older Firefoxes doesn't support outerHTML +// From http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox#answer-3819589 +function outerHTML(node){ + // In newer browsers use the internal property otherwise build a wrapper. + return node.outerHTML || ( + function(n){ + var div = document.createElement('div'), h; + div.appendChild( n.cloneNode(true) ); + h = div.innerHTML; + div = null; + return h; + })(node); +} diff --git a/core/js/octemplate.js b/core/js/octemplate.js index a5d56852a57..e032506c0b1 100644 --- a/core/js/octemplate.js +++ b/core/js/octemplate.js @@ -72,7 +72,7 @@ }, // From stackoverflow.com/questions/1408289/best-way-to-do-variable-interpolation-in-javascript _build: function(o){ - var data = this.elem.attr('type') === 'text/template' ? this.elem.html() : this.elem.get(0).outerHTML; + var data = this.elem.attr('type') === 'text/template' ? this.elem.html() : outerHTML(this.elem.get(0)); try { return data.replace(/{([^{}]*)}/g, function (a, b) { -- GitLab From c52fe1253728dde2b85521df3fce4c461741bcc3 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 29 Apr 2013 23:37:08 +0200 Subject: [PATCH 171/454] fixed missing parameter --- apps/files_encryption/hooks/hooks.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 82aae2272aa..25c2d091c4b 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -119,8 +119,10 @@ class Hooks { // is in use (client-side encryption does not have access to // the necessary keys) if ( Crypt::mode() == 'server' ) { - - $session = new Session(); + + $view = new \OC_FilesystemView( '/' ); + + $session = new Session($view); // Get existing decrypted private key $privateKey = $session->getPrivateKey(); -- GitLab From d22795d68b4937bc6dba6d742b0f7b503cb32228 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 29 Apr 2013 23:41:49 +0200 Subject: [PATCH 172/454] fixed test for crypt and keymanager disabled encryption file proxy in test/lib/cache/file.php --- apps/files_encryption/test/crypt.php | 87 +++++++++++++---------- apps/files_encryption/test/keymanager.php | 37 ++++++---- tests/lib/cache/file.php | 7 +- 3 files changed, 78 insertions(+), 53 deletions(-) diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php index 9c5e43e2425..7f9572f4266 100755 --- a/apps/files_encryption/test/crypt.php +++ b/apps/files_encryption/test/crypt.php @@ -34,7 +34,9 @@ use OCA\Encryption; class Test_Crypt extends \PHPUnit_Framework_TestCase { function setUp() { - + // reset backend + \OC_User::useBackend('database'); + // set content for encrypting / decrypting in tests $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); $this->dataShort = 'hats'; @@ -54,13 +56,10 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->pass = 'admin'; $userHome = \OC_User::getHome($this->userId); - if(!file_exists($userHome)) { - mkdir($userHome, 0777, true); - } - $dataDir = str_replace('/'.$this->userId, '', $userHome); + $this->dataDir = str_replace('/'.$this->userId, '', $userHome); - \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $dataDir), '/' ); \OC\Files\Filesystem::init($this->userId, '/'); + \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); } function tearDown() { @@ -225,7 +224,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // // } - function testSymmetricStreamEncryptShortFileContent() { + function testSymmetricStreamEncryptShortFileContent() { $filename = 'tmp-'.time().'.test'; @@ -234,9 +233,15 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Test that data was successfully written $this->assertTrue( is_int( $cryptedFile ) ); + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + // Get file contents without using any wrapper to get it's actual contents on disk - $absolutePath = \OC\Files\Filesystem::getLocalFile($this->userId . '/files/' . $filename); - $retreivedCryptedFile = file_get_contents($absolutePath); + $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; // Check that the file was encrypted before being written to disk $this->assertNotEquals( $this->dataShort, $retreivedCryptedFile ); @@ -261,7 +266,11 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Check that decrypted data matches $this->assertEquals( $this->dataShort, $manualDecrypt ); - + + // Teardown + $this->view->unlink( $filename ); + + Encryption\Keymanager::deleteFileKey( $this->view, $this->userId, $filename ); } /** @@ -273,7 +282,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { function testSymmetricStreamEncryptLongFileContent() { // Generate a a random filename - $filename = 'tmp-'.time(); + $filename = 'tmp-'.time().'.test'; // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong.$this->dataLong ); @@ -281,12 +290,18 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Test that data was successfully written $this->assertTrue( is_int( $cryptedFile ) ); - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); - -// echo "\n\n\$retreivedCryptedFile = $retreivedCryptedFile\n\n"; - - // Check that the file was encrypted before being written to disk + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents($this->userId . '/files/' . $filename); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; + + + // Check that the file was encrypted before being written to disk $this->assertNotEquals( $this->dataLong.$this->dataLong, $retreivedCryptedFile ); // Manuallly split saved file into separate IVs and encrypted chunks @@ -298,39 +313,35 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $e = array( $r[0].$r[1], $r[2].$r[3], $r[4].$r[5], $r[6].$r[7], $r[8].$r[9], $r[10].$r[11], $r[12].$r[13] );//.$r[11], $r[12].$r[13], $r[14] ); //print_r($e); - - - // Get private key - $encryptedPrivateKey = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); - - $decryptedPrivateKey = Encryption\Crypt::symmetricDecryptFileContent( $encryptedPrivateKey, $this->pass ); - - - // Get keyfile - $encryptedKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); - - $decryptedKeyfile = Encryption\Crypt::keyDecrypt( $encryptedKeyfile, $decryptedPrivateKey ); - - + + // Get the encrypted keyfile + $encKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); + + // Attempt to fetch the user's shareKey + $shareKey = Encryption\Keymanager::getShareKey( $this->view, $this->userId, $filename ); + + // get session + $session = new Encryption\Session( $this->view ); + + // get private key + $privateKey = $session->getPrivateKey( $this->userId ); + + // Decrypt keyfile with shareKey + $plainKeyfile = Encryption\Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); + // Set var for reassembling decrypted content $decrypt = ''; // Manually decrypt chunk foreach ($e as $e) { - -// echo "\n\$e = $e"; - $chunkDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $e, $decryptedKeyfile ); + $chunkDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $e, $plainKeyfile ); // Assemble decrypted chunks $decrypt .= $chunkDecrypt; -// echo "\n\$chunkDecrypt = $chunkDecrypt"; - } -// echo "\n\$decrypt = $decrypt"; - $this->assertEquals( $this->dataLong.$this->dataLong, $decrypt ); // Teardown diff --git a/apps/files_encryption/test/keymanager.php b/apps/files_encryption/test/keymanager.php index bf453fe3163..3dba6d0df97 100644 --- a/apps/files_encryption/test/keymanager.php +++ b/apps/files_encryption/test/keymanager.php @@ -24,7 +24,9 @@ use OCA\Encryption; class Test_Keymanager extends \PHPUnit_Framework_TestCase { function setUp() { - + // reset backend + \OC_User::useBackend('database'); + \OC_FileProxy::$enabled = false; // set content for encrypting / decrypting in tests @@ -44,9 +46,12 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC_User::setUserId( 'admin' ); $this->userId = 'admin'; $this->pass = 'admin'; - - \OC_Filesystem::init( '/' ); - \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => \OC_User::getHome($this->userId)), '/' ); + + $userHome = \OC_User::getHome($this->userId); + $this->dataDir = str_replace('/'.$this->userId, '', $userHome); + + \OC_Filesystem::init( $this->userId, '/' ); + \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); } @@ -61,7 +66,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $key = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); // Will this length vary? Perhaps we should use a range instead - $this->assertEquals( 2296, strlen( $key ) ); + $this->assertEquals( 4388, strlen( $key ) ); } @@ -69,7 +74,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $key = Encryption\Keymanager::getPublicKey( $this->view, $this->userId ); - $this->assertEquals( 451, strlen( $key ) ); + $this->assertEquals( 800, strlen( $key ) ); $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $key, 0, 26 ) ); } @@ -81,11 +86,19 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $key = Encryption\Crypt::symmetricEncryptFileContentKeyfile( $this->randomKey, 'hat' ); - $path = 'unittest-'.time().'txt'; - + $file = 'unittest-'.time().'.txt'; + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $this->view->file_put_contents($this->userId . '/files/' . $file, $key['encrypted']); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; + //$view = new \OC_FilesystemView( '/' . $this->userId . '/files_encryption/keyfiles' ); - - Encryption\Keymanager::setFileKey( $this->view, $path, $this->userId, $key['key'] ); + Encryption\Keymanager::setFileKey( $this->view, $file, $this->userId, $key['key'] ); } @@ -109,9 +122,9 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $keys = Encryption\Keymanager::getUserKeys( $this->view, $this->userId ); - $this->assertEquals( 451, strlen( $keys['publicKey'] ) ); + $this->assertEquals( 800, strlen( $keys['publicKey'] ) ); $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $keys['publicKey'], 0, 26 ) ); - $this->assertEquals( 2296, strlen( $keys['privateKey'] ) ); + $this->assertEquals( 4388, strlen( $keys['privateKey'] ) ); } diff --git a/tests/lib/cache/file.php b/tests/lib/cache/file.php index 5dcd3268804..d113f90768d 100644 --- a/tests/lib/cache/file.php +++ b/tests/lib/cache/file.php @@ -33,9 +33,10 @@ class Test_Cache_File extends Test_Cache { OC_Hook::clear('OC_Filesystem'); //enable only the encryption hook if needed - if(OC_App::isEnabled('files_encryption')) { - OC_FileProxy::register(new OC_FileProxy_Encryption()); - } + //not used right now + //if(OC_App::isEnabled('files_encryption')) { + // OC_FileProxy::register(new OCA\Encryption\Proxy()); + //} //set up temporary storage \OC\Files\Filesystem::clearMounts(); -- GitLab From 882a747b47371ab9d71ba6c336a873873805c696 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 30 Apr 2013 00:34:05 +0200 Subject: [PATCH 173/454] rename folder to tests --- apps/files_encryption/{test => tests}/binary | Bin apps/files_encryption/{test => tests}/crypt.php | 0 .../files_encryption/{test => tests}/keymanager.php | 0 .../{test => tests}/legacy-encrypted-text.txt | Bin apps/files_encryption/{test => tests}/proxy.php | 0 apps/files_encryption/{test => tests}/stream.php | 0 apps/files_encryption/{test => tests}/util.php | 0 apps/files_encryption/{test => tests}/zeros | Bin 8 files changed, 0 insertions(+), 0 deletions(-) rename apps/files_encryption/{test => tests}/binary (100%) rename apps/files_encryption/{test => tests}/crypt.php (100%) rename apps/files_encryption/{test => tests}/keymanager.php (100%) rename apps/files_encryption/{test => tests}/legacy-encrypted-text.txt (100%) rename apps/files_encryption/{test => tests}/proxy.php (100%) rename apps/files_encryption/{test => tests}/stream.php (100%) rename apps/files_encryption/{test => tests}/util.php (100%) rename apps/files_encryption/{test => tests}/zeros (100%) diff --git a/apps/files_encryption/test/binary b/apps/files_encryption/tests/binary similarity index 100% rename from apps/files_encryption/test/binary rename to apps/files_encryption/tests/binary diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/tests/crypt.php similarity index 100% rename from apps/files_encryption/test/crypt.php rename to apps/files_encryption/tests/crypt.php diff --git a/apps/files_encryption/test/keymanager.php b/apps/files_encryption/tests/keymanager.php similarity index 100% rename from apps/files_encryption/test/keymanager.php rename to apps/files_encryption/tests/keymanager.php diff --git a/apps/files_encryption/test/legacy-encrypted-text.txt b/apps/files_encryption/tests/legacy-encrypted-text.txt similarity index 100% rename from apps/files_encryption/test/legacy-encrypted-text.txt rename to apps/files_encryption/tests/legacy-encrypted-text.txt diff --git a/apps/files_encryption/test/proxy.php b/apps/files_encryption/tests/proxy.php similarity index 100% rename from apps/files_encryption/test/proxy.php rename to apps/files_encryption/tests/proxy.php diff --git a/apps/files_encryption/test/stream.php b/apps/files_encryption/tests/stream.php similarity index 100% rename from apps/files_encryption/test/stream.php rename to apps/files_encryption/tests/stream.php diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/tests/util.php similarity index 100% rename from apps/files_encryption/test/util.php rename to apps/files_encryption/tests/util.php diff --git a/apps/files_encryption/test/zeros b/apps/files_encryption/tests/zeros similarity index 100% rename from apps/files_encryption/test/zeros rename to apps/files_encryption/tests/zeros -- GitLab From 27ce7845b4205650e50f3777d8b152470440cbe6 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 30 Apr 2013 01:35:46 +0200 Subject: [PATCH 174/454] fixed tests, now tests should work via autotest.sh files_encryption app is now enabled in enable_all.php --- apps/files_encryption/lib/util.php | 7 ++- apps/files_encryption/tests/keymanager.php | 4 +- apps/files_encryption/tests/util.php | 61 +++++++++++++++------- tests/enable_all.php | 1 + 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index fe040d88775..4097250b252 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -204,7 +204,12 @@ class Util { $this->view->file_put_contents( $this->privateKeyPath, $encryptedPrivateKey ); \OC_FileProxy::$enabled = true; - + + // create database configuration + $sql = 'INSERT INTO `*PREFIX*encryption` (`uid`,`mode`,`recovery`) VALUES (?,?,?)'; + $args = array( $this->userId, 'server-side', 0); + $query = \OCP\DB::prepare( $sql ); + $query->execute( $args ); } return true; diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 3dba6d0df97..7fe37838a42 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -50,8 +50,8 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $userHome = \OC_User::getHome($this->userId); $this->dataDir = str_replace('/'.$this->userId, '', $userHome); - \OC_Filesystem::init( $this->userId, '/' ); - \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + \OC\Files\Filesystem::init( $this->userId, '/' ); + \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); } diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 3ebc484809b..0659b468a37 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -29,19 +29,20 @@ use OCA\Encryption; class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function setUp() { - - \OC_Filesystem::mount( 'OC_Filestorage_Local', array(), '/' ); - - // set content for encrypting / decrypting in tests + // reset backend + \OC_User::useBackend('database'); + + \OC_User::setUserId( 'admin' ); + $this->userId = 'admin'; + $this->pass = 'admin'; + + // set content for encrypting / decrypting in tests $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); $this->dataShort = 'hats'; $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); $this->legacyData = realpath( dirname(__FILE__).'/legacy-text.txt' ); $this->legacyEncryptedData = realpath( dirname(__FILE__).'/legacy-encrypted-text.txt' ); - - $this->userId = 'admin'; - $this->pass = 'admin'; - + $keypair = Encryption\Crypt::createKeypair(); $this->genPublicKey = $keypair['publicKey']; @@ -54,9 +55,15 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key $this->view = new \OC_FilesystemView( '/' ); - - $this->mockView = m::mock('OC_FilesystemView'); - $this->util = new Encryption\Util( $this->mockView, $this->userId ); + + $userHome = \OC_User::getHome($this->userId); + $this->dataDir = str_replace('/'.$this->userId, '', $userHome); + + \OC\Files\Filesystem::init( $this->userId, '/' ); + \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + + $mockView = m::mock('OC_FilesystemView'); + $this->util = new Encryption\Util( $mockView, $this->userId ); } @@ -90,8 +97,8 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $mockView = m::mock('OC_FilesystemView'); - $mockView->shouldReceive( 'file_exists' )->times(5)->andReturn( false ); - $mockView->shouldReceive( 'mkdir' )->times(4)->andReturn( true ); + $mockView->shouldReceive( 'file_exists' )->times(7)->andReturn( false ); + $mockView->shouldReceive( 'mkdir' )->times(6)->andReturn( true ); $mockView->shouldReceive( 'file_put_contents' )->withAnyArgs(); $util = new Encryption\Util( $mockView, $this->userId ); @@ -107,7 +114,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $mockView = m::mock('OC_FilesystemView'); - $mockView->shouldReceive( 'file_exists' )->times(6)->andReturn( true ); + $mockView->shouldReceive( 'file_exists' )->times(8)->andReturn( true ); $mockView->shouldReceive( 'file_put_contents' )->withAnyArgs(); $util = new Encryption\Util( $mockView, $this->userId ); @@ -141,7 +148,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $mockView = m::mock('OC_FilesystemView'); - $mockView->shouldReceive( 'file_exists' )->times(3)->andReturn( true ); + $mockView->shouldReceive( 'file_exists' )->times(5)->andReturn( true ); $util = new Encryption\Util( $mockView, $this->userId ); @@ -190,11 +197,25 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function testGetUidAndFilename() { \OC_User::setUserId( 'admin' ); - - $this->util->getUidAndFilename( 'test1.txt' ); - - - + + $filename = 'tmp-'.time().'.test'; + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $this->view->file_put_contents($this->userId . '/files/' . $filename, $this->dataShort); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; + + $util = new Encryption\Util( $this->view, $this->userId ); + + list($fileOwnerUid, $file) = $util->getUidAndFilename( $filename ); + + $this->assertEquals('admin', $fileOwnerUid); + + $this->assertEquals($file, $filename); } // /** diff --git a/tests/enable_all.php b/tests/enable_all.php index 44af0115650..111ed0e1357 100644 --- a/tests/enable_all.php +++ b/tests/enable_all.php @@ -8,6 +8,7 @@ require_once __DIR__.'/../lib/base.php'; +OC_App::enable('files_encryption'); OC_App::enable('calendar'); OC_App::enable('contacts'); OC_App::enable('apptemplateadvanced'); -- GitLab From fbf9233648f59b06782330a9fef7aaa9f27480cb Mon Sep 17 00:00:00 2001 From: miicha Date: Tue, 30 Apr 2013 02:38:05 +0300 Subject: [PATCH 175/454] fixing mimetype for "new" ms office formats right mime types for docx, pptx and xlsx with the old mimetype I got a warning message from office everytime I opend such a file (it was downloaded as "filename.docx.doc") --- lib/mimetypes.list.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/mimetypes.list.php b/lib/mimetypes.list.php index 9135a7e3af2..2aac3bbfd27 100644 --- a/lib/mimetypes.list.php +++ b/lib/mimetypes.list.php @@ -86,11 +86,11 @@ return array( 'vcf' => 'text/vcard', 'vcard' => 'text/vcard', 'doc'=>'application/msword', - 'docx'=>'application/msword', + 'docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'xls'=>'application/msexcel', - 'xlsx'=>'application/msexcel', + 'xlsx'=>'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'ppt'=>'application/mspowerpoint', - 'pptx'=>'application/mspowerpoint', + 'pptx'=>'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'sgf' => 'application/sgf', 'cdr' => 'application/coreldraw', 'impress' => 'text/impress', -- GitLab From b1c4464eda73d0c6674a1635c7f8c8629414ecaa Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 30 Apr 2013 01:54:19 +0200 Subject: [PATCH 176/454] improved key length tests --- apps/files_encryption/tests/keymanager.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 7fe37838a42..81034be54b1 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -64,9 +64,13 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { function testGetPrivateKey() { $key = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); - + + $privateKey = Encryption\Crypt::symmetricDecryptFileContent( $key, $this->pass); + // Will this length vary? Perhaps we should use a range instead - $this->assertEquals( 4388, strlen( $key ) ); + $this->assertGreaterThan( 27, strlen( $privateKey ) ); + + $this->assertEquals( '-----BEGIN PRIVATE KEY-----', substr( $privateKey, 0, 27 ) ); } @@ -74,7 +78,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $key = Encryption\Keymanager::getPublicKey( $this->view, $this->userId ); - $this->assertEquals( 800, strlen( $key ) ); + $this->assertGreaterThan( 26, strlen( $key ) ); $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $key, 0, 26 ) ); } @@ -122,9 +126,15 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $keys = Encryption\Keymanager::getUserKeys( $this->view, $this->userId ); - $this->assertEquals( 800, strlen( $keys['publicKey'] ) ); + $this->assertGreaterThan( 26, strlen( $keys['publicKey'] ) ); + $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $keys['publicKey'], 0, 26 ) ); - $this->assertEquals( 4388, strlen( $keys['privateKey'] ) ); + + $privateKey = Encryption\Crypt::symmetricDecryptFileContent( $keys['privateKey'], $this->pass); + + $this->assertGreaterThan( 27, strlen( $keys['privateKey'] ) ); + + $this->assertEquals( '-----BEGIN PRIVATE KEY-----', substr( $privateKey, 0, 27 ) ); } -- GitLab From 5764bf088eb25f7b635e48cebbffce7addec463a Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 30 Apr 2013 01:59:18 +0200 Subject: [PATCH 177/454] [tx-robot] updated from transifex --- apps/files/l10n/nn_NO.php | 53 +++++++- apps/files_external/l10n/sl.php | 5 +- apps/files_trashbin/l10n/nn_NO.php | 5 + core/l10n/cs_CZ.php | 1 - core/l10n/de.php | 1 - core/l10n/de_DE.php | 1 - core/l10n/es.php | 1 - core/l10n/gl.php | 1 - core/l10n/it.php | 1 - core/l10n/nl.php | 1 - core/l10n/nn_NO.php | 96 +++++++++++++-- core/l10n/pt_BR.php | 1 - core/l10n/ru.php | 2 + core/l10n/sk_SK.php | 1 - core/l10n/sl.php | 2 + core/l10n/sq.php | 2 + l10n/af_ZA/core.po | 6 +- l10n/ar/core.po | 6 +- l10n/be/core.po | 6 +- l10n/bg_BG/core.po | 6 +- l10n/bn_BD/core.po | 6 +- l10n/ca/core.po | 6 +- l10n/cs_CZ/core.po | 10 +- l10n/cy_GB/core.po | 6 +- l10n/da/core.po | 6 +- l10n/de/core.po | 10 +- l10n/de_DE/core.po | 10 +- l10n/de_DE/files.po | 52 ++++---- l10n/de_DE/files_versions.po | 6 +- l10n/el/core.po | 8 +- l10n/eo/core.po | 6 +- l10n/es/core.po | 10 +- l10n/es/settings.po | 11 +- l10n/es_AR/core.po | 6 +- l10n/et_EE/core.po | 6 +- l10n/eu/core.po | 6 +- l10n/fa/core.po | 6 +- l10n/fi/core.po | 6 +- l10n/fi_FI/core.po | 6 +- l10n/fr/core.po | 6 +- l10n/gl/core.po | 10 +- l10n/he/core.po | 6 +- l10n/hi/core.po | 6 +- l10n/hr/core.po | 6 +- l10n/hu_HU/core.po | 6 +- l10n/hy/core.po | 6 +- l10n/ia/core.po | 6 +- l10n/id/core.po | 6 +- l10n/is/core.po | 6 +- l10n/it/core.po | 10 +- l10n/ja_JP/core.po | 6 +- l10n/ka/core.po | 6 +- l10n/ka_GE/core.po | 6 +- l10n/kn/core.po | 6 +- l10n/ko/core.po | 6 +- l10n/ku_IQ/core.po | 6 +- l10n/lb/core.po | 6 +- l10n/lt_LT/core.po | 6 +- l10n/lv/core.po | 6 +- l10n/mk/core.po | 6 +- l10n/ms_MY/core.po | 6 +- l10n/my_MM/core.po | 6 +- l10n/nb_NO/core.po | 6 +- l10n/ne/core.po | 6 +- l10n/nl/core.po | 10 +- l10n/nn_NO/core.po | 182 ++++++++++++++-------------- l10n/nn_NO/files.po | 157 ++++++++++++------------ l10n/nn_NO/files_trashbin.po | 14 +-- l10n/nn_NO/lib.po | 26 ++-- l10n/nn_NO/settings.po | 150 +++++++++++------------ l10n/oc/core.po | 6 +- l10n/pl/core.po | 6 +- l10n/pl_PL/core.po | 6 +- l10n/pt_BR/core.po | 10 +- l10n/pt_PT/core.po | 6 +- l10n/ro/core.po | 6 +- l10n/ru/core.po | 11 +- l10n/ru_RU/core.po | 6 +- l10n/si_LK/core.po | 6 +- l10n/sk/core.po | 6 +- l10n/sk_SK/core.po | 10 +- l10n/sl/core.po | 11 +- l10n/sl/files_external.po | 13 +- l10n/sl/lib.po | 4 +- l10n/sl/settings.po | 15 +-- l10n/sq/core.po | 11 +- l10n/sq/settings.po | 8 +- l10n/sr/core.po | 6 +- l10n/sr@latin/core.po | 6 +- l10n/sv/core.po | 6 +- l10n/sw_KE/core.po | 6 +- l10n/ta_LK/core.po | 6 +- l10n/te/core.po | 6 +- l10n/templates/core.pot | 4 +- l10n/templates/files.pot | 50 ++++---- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/th_TH/core.po | 6 +- l10n/tr/core.po | 6 +- l10n/uk/core.po | 6 +- l10n/ur_PK/core.po | 6 +- l10n/vi/core.po | 6 +- l10n/zh_CN.GB2312/core.po | 6 +- l10n/zh_CN/core.po | 6 +- l10n/zh_HK/core.po | 6 +- l10n/zh_TW/core.po | 6 +- lib/l10n/nn_NO.php | 12 +- settings/l10n/es.php | 2 +- settings/l10n/nn_NO.php | 80 +++++++++++- settings/l10n/sl.php | 5 +- settings/l10n/sq.php | 3 +- 118 files changed, 852 insertions(+), 631 deletions(-) diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php index 8f32dc012e3..2042e7bf8ad 100644 --- a/apps/files/l10n/nn_NO.php +++ b/apps/files/l10n/nn_NO.php @@ -1,23 +1,74 @@ "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet", +"Could not move %s" => "Klarte ikkje å flytta %s", +"Unable to rename file" => "Klarte ikkje å endra filnamnet", +"No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil", "There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet", "The uploaded file was only partially uploaded" => "Fila vart berre delvis lasta opp", "No file was uploaded" => "Ingen filer vart lasta opp", "Missing a temporary folder" => "Manglar ei mellombels mappe", +"Failed to write to disk" => "Klarte ikkje å skriva til disk", +"Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg", +"Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", +"Share" => "Del", +"Delete permanently" => "Slett for godt", "Delete" => "Slett", +"Rename" => "Endra namn", +"Pending" => "Under vegs", +"{new_name} already exists" => "{new_name} finst allereie", +"replace" => "byt ut", +"suggest name" => "føreslå namn", +"cancel" => "avbryt", +"replaced {new_name} with {old_name}" => "bytte ut {new_name} med {old_name}", +"undo" => "angre", +"perform delete operation" => "utfør sletting", +"1 file uploading" => "1 fil lastar opp", +"files uploading" => "filer lastar opp", +"'.' is an invalid file name." => "«.» er eit ugyldig filnamn.", +"File name cannot be empty." => "Filnamnet kan ikkje vera tomt.", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.", +"Your storage is full, files can not be updated or synced anymore!" => "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", +"Your storage is almost full ({usedSpacePercent}%)" => "Lagringa di er nesten full ({usedSpacePercent} %)", +"Your download is being prepared. This might take some time if the files are big." => "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje å lasta opp fila sidan ho er ei mappe eller er på 0 byte", +"Not enough space available" => "Ikkje nok lagringsplass tilgjengeleg", +"Upload cancelled." => "Opplasting avbroten.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Fila lastar no opp. Viss du forlèt sida no vil opplastinga bli avbroten.", +"URL cannot be empty." => "URL-en kan ikkje vera tom.", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ugyldig mappenamn. Mappa «Shared» er reservert av ownCloud", "Error" => "Feil", "Name" => "Namn", "Size" => "Storleik", "Modified" => "Endra", +"1 folder" => "1 mappe", +"{count} folders" => "{count} mapper", +"1 file" => "1 fil", +"{count} files" => "{count} filer", "Upload" => "Last opp", +"File handling" => "Filhandtering", "Maximum upload size" => "Maksimal opplastingsstorleik", +"max. possible: " => "maks. moglege:", +"Needed for multi-file and folder downloads." => "Naudsynt for fleirfils- og mappenedlastingar.", +"Enable ZIP-download" => "Skru på ZIP-nedlasting", +"0 is unlimited" => "0 er ubegrensa", +"Maximum input size for ZIP files" => "Maksimal storleik for ZIP-filer", "Save" => "Lagre", "New" => "Ny", "Text file" => "Tekst fil", "Folder" => "Mappe", +"From link" => "Frå lenkje", +"Deleted files" => "Sletta filer", +"Cancel upload" => "Avbryt opplasting", +"You don’t have write permissions here." => "Du har ikkje skriverettar her.", "Nothing in here. Upload something!" => "Ingenting her. Last noko opp!", "Download" => "Last ned", +"Unshare" => "Udel", "Upload too large" => "For stor opplasting", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren." +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren.", +"Files are being scanned, please wait." => "Skannar filer, ver venleg og vent.", +"Current scanning" => "Køyrande skanning", +"Upgrading filesystem cache..." => "Oppgraderer mellomlageret av filsystemet …" ); diff --git a/apps/files_external/l10n/sl.php b/apps/files_external/l10n/sl.php index 4ff2eed3bf0..09b91b913e9 100644 --- a/apps/files_external/l10n/sl.php +++ b/apps/files_external/l10n/sl.php @@ -5,7 +5,8 @@ "Please provide a valid Dropbox app key and secret." => "Vpisati je treba veljaven ključ programa in kodo za Dropbox", "Error configuring Google Drive storage" => "Napaka nastavljanja shrambe Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Opozorilo: paket \"smbclient\" ni nameščen. Priklapljanje pogonov CIFS/SMB ne bo mogoče.", -"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ni mogoče.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ne bo mogoče.", +"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora za Curl v PHP ni omogočena ali pa ni nameščena. Priklapljanje točke ownCloud / WebDAV ali GoogleDrive zato ne bo mogoče. Zahtevane pakete je treba pred uporabo namestiti.", "External Storage" => "Zunanja podatkovna shramba", "Folder name" => "Ime mape", "External storage" => "Zunanja shramba", @@ -18,7 +19,7 @@ "Groups" => "Skupine", "Users" => "Uporabniki", "Delete" => "Izbriši", -"Enable User External Storage" => "Omogoči uporabniško zunanjo podatkovno shrambo", +"Enable User External Storage" => "Omogoči zunanjo uporabniško podatkovno shrambo", "Allow users to mount their own external storage" => "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe", "SSL root certificates" => "Korenska potrdila SSL", "Import Root Certificate" => "Uvozi korensko potrdilo" diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php index 14345ddcc4d..8166a024e58 100644 --- a/apps/files_trashbin/l10n/nn_NO.php +++ b/apps/files_trashbin/l10n/nn_NO.php @@ -1,5 +1,10 @@ "Feil", +"Delete permanently" => "Slett for godt", "Name" => "Namn", +"1 folder" => "1 mappe", +"{count} folders" => "{count} mapper", +"1 file" => "1 fil", +"{count} files" => "{count} filer", "Delete" => "Slett" ); diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index d9ec83b1469..d64bda88df8 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -125,7 +125,6 @@ "Database host" => "Hostitel databáze", "Finish setup" => "Dokončit nastavení", "web services under your control" => "služby webu pod Vaší kontrolou", -"%s is available. Click here to get more information." => "%s je dostupná. Pro více informací klikněte zde.", "Log out" => "Odhlásit se", "Automatic logon rejected!" => "Automatické přihlášení odmítnuto.", "If you did not change your password recently, your account may be compromised!" => "V nedávné době jste nezměnili své heslo, Váš účet může být kompromitován.", diff --git a/core/l10n/de.php b/core/l10n/de.php index 667f11a5afa..c173e56c1f7 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -125,7 +125,6 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Deiner Kontrolle", -"%s is available. Click here to get more information." => "%s ist verfügbar. Klicke hier für weitere Informationen.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatischer Login zurückgewiesen!", "If you did not change your password recently, your account may be compromised!" => "Wenn Du Dein Passwort nicht vor kurzem geändert hast, könnte Dein\nAccount kompromittiert sein!", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 4953788eeae..b69868e5e5a 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -125,7 +125,6 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Ihrer Kontrolle", -"%s is available. Click here to get more information." => "%s ist verfügbar. Klicken Sie hier um weitere Informationen zu erhalten.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatische Anmeldung verweigert.", "If you did not change your password recently, your account may be compromised!" => "Wenn Sie Ihr Passwort nicht vor kurzem geändert haben, könnte Ihr\nAccount kompromittiert sein!", diff --git a/core/l10n/es.php b/core/l10n/es.php index 091fa8edb7b..8a3ab44e85d 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -125,7 +125,6 @@ "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", "web services under your control" => "Servicios web bajo su control", -"%s is available. Click here to get more information." => "% s está disponible. Haga clic aquí para obtener más información.", "Log out" => "Salir", "Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!", "If you did not change your password recently, your account may be compromised!" => "Si usted no ha cambiado su contraseña recientemente, ¡puede que su cuenta esté comprometida!", diff --git a/core/l10n/gl.php b/core/l10n/gl.php index adbbe1fcd5b..f6c36d6ac62 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -125,7 +125,6 @@ "Database host" => "Servidor da base de datos", "Finish setup" => "Rematar a configuración", "web services under your control" => "servizos web baixo o seu control", -"%s is available. Click here to get more information." => "%s está dispoñíbel. Prema aquí para obter máis información.", "Log out" => "Desconectar", "Automatic logon rejected!" => "Rexeitouse a entrada automática", "If you did not change your password recently, your account may be compromised!" => "Se non fixo recentemente cambios de contrasinal é posíbel que a súa conta estea comprometida!", diff --git a/core/l10n/it.php b/core/l10n/it.php index fa2ddcf695f..d450f90b1d2 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -125,7 +125,6 @@ "Database host" => "Host del database", "Finish setup" => "Termina la configurazione", "web services under your control" => "servizi web nelle tue mani", -"%s is available. Click here to get more information." => "%s è disponibile. Fai clic qui per ottenere ulteriori informazioni.", "Log out" => "Esci", "Automatic logon rejected!" => "Accesso automatico rifiutato.", "If you did not change your password recently, your account may be compromised!" => "Se non hai cambiato la password recentemente, il tuo account potrebbe essere compromesso.", diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 8411dc196b0..83d1e82dc31 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -125,7 +125,6 @@ "Database host" => "Database server", "Finish setup" => "Installatie afronden", "web services under your control" => "Webdiensten in eigen beheer", -"%s is available. Click here to get more information." => "%s is beschikbaar. Klik hier voor meer informatie.", "Log out" => "Afmelden", "Automatic logon rejected!" => "Automatische aanmelding geweigerd!", "If you did not change your password recently, your account may be compromised!" => "Als u uw wachtwoord niet onlangs heeft aangepast, kan uw account overgenomen zijn!", diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index a582775b0b4..f62897ed27d 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -1,4 +1,16 @@ "Brukaren %s delte ei fil med deg", +"User %s shared a folder with you" => "Brukaren %s delte ei mappe med deg", +"User %s shared the file \"%s\" with you. It is available for download here: %s" => "Brukaren %s delte fila «%s» med deg. Du kan lasta ho ned her: %s", +"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Brukaren %s delte mappa «%s» med deg. Du kan lasta ho ned her: %s", +"Category type not provided." => "Ingen kategoritype.", +"No category to add?" => "Ingen kategori å leggja til?", +"This category already exists: %s" => "Denne kategorien finst alt: %s", +"Object type not provided." => "Ingen objekttype.", +"%s ID not provided." => "Ingen %s-ID.", +"Error adding %s to favorites." => "Klarte ikkje å leggja til %s i favorittar.", +"No categories selected for deletion." => "Ingen kategoriar valt for sletting.", +"Error removing %s from favorites." => "Klarte ikkje å fjerna %s frå favorittar.", "Sunday" => "Søndag", "Monday" => "Måndag", "Tuesday" => "Tysdag", @@ -19,25 +31,88 @@ "November" => "November", "December" => "Desember", "Settings" => "Innstillingar", -"Cancel" => "Kanseller", +"seconds ago" => "sekund sidan", +"1 minute ago" => "1 minutt sidan", +"{minutes} minutes ago" => "{minutes} minutt sidan", +"1 hour ago" => "1 time sidan", +"{hours} hours ago" => "{hours} timar sidan", +"today" => "i dag", +"yesterday" => "i går", +"{days} days ago" => "{days} dagar sidan", +"last month" => "førre månad", +"{months} months ago" => "{months) månader sidan", +"months ago" => "månader sidan", +"last year" => "i fjor", +"years ago" => "år sidan", +"Ok" => "Greitt", +"Cancel" => "Avbryt", +"Choose" => "Vel", +"Yes" => "Ja", +"No" => "Nei", +"The object type is not specified." => "Objekttypen er ikkje spesifisert.", "Error" => "Feil", +"The app name is not specified." => "App-namnet er ikkje spesifisert.", +"The required file {file} is not installed!" => "Den kravde fila {file} er ikkje installert!", +"Shared" => "Delt", +"Share" => "Del", +"Error while sharing" => "Feil ved deling", +"Error while unsharing" => "Feil ved udeling", +"Error while changing permissions" => "Feil ved endring av tillatingar", +"Shared with you and the group {group} by {owner}" => "Delt med deg og gruppa {group} av {owner}", +"Shared with you by {owner}" => "Delt med deg av {owner}", +"Share with" => "Del med", +"Share with link" => "Del med lenkje", +"Password protect" => "Passordvern", "Password" => "Passord", -"Use the following link to reset your password: {link}" => "Bruk føljane link til å tilbakestille passordet ditt: {link}", -"You will receive a link to reset your password via Email." => "Du vil få ei lenkje for å nullstilla passordet via epost.", +"Email link to person" => "Send lenkja over e-post", +"Send" => "Send", +"Set expiration date" => "Set utlaupsdato", +"Expiration date" => "Utlaupsdato", +"Share via email:" => "Del over e-post:", +"No people found" => "Fann ingen personar", +"Resharing is not allowed" => "Vidaredeling er ikkje tillate", +"Shared in {item} with {user}" => "Delt i {item} med {brukar}", +"Unshare" => "Udel", +"can edit" => "kan endra", +"access control" => "tilgangskontroll", +"create" => "lag", +"update" => "oppdater", +"delete" => "slett", +"share" => "del", +"Password protected" => "Passordverna", +"Error unsetting expiration date" => "Klarte ikkje å fjerna utlaupsdato", +"Error setting expiration date" => "Klarte ikkje å setja utlaupsdato", +"Sending ..." => "Sender …", +"Email sent" => "E-post sendt", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "Oppdateringa feila. Ver venleg og rapporter feilen til ownCloud-fellesskapet.", +"The update was successful. Redirecting you to ownCloud now." => "Oppdateringa er fullført. Sender deg vidare til ownCloud no.", +"ownCloud password reset" => "Nullstilling av ownCloud-passord", +"Use the following link to reset your password: {link}" => "Klikk følgjande lenkje til å nullstilla passordet ditt: {link}", +"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.
If it is not there ask your local administrator ." => "Lenkja til å nullstilla passordet med er sendt til e-posten din.
Sjå i spam-/søppelmappa di viss du ikkje ser e-posten innan rimeleg tid.
Spør din lokale administrator viss han ikkje er der heller.", +"Request failed!
Did you make sure your email/username was right?" => "Førespurnaden feila!
Er du viss på at du skreiv inn rett e-post/brukarnamn?", +"You will receive a link to reset your password via Email." => "Du vil få ein e-post med ei lenkje for å nullstilla passordet.", "Username" => "Brukarnamn", "Request reset" => "Be om nullstilling", "Your password was reset" => "Passordet ditt er nullstilt", -"To login page" => "Til innloggings sida", +"To login page" => "Til innloggingssida", "New password" => "Nytt passord", "Reset password" => "Nullstill passord", "Personal" => "Personleg", "Users" => "Brukarar", "Apps" => "Applikasjonar", -"Admin" => "Administrer", +"Admin" => "Admin", "Help" => "Hjelp", +"Access forbidden" => "Tilgang forbudt", "Cloud not found" => "Fann ikkje skyen", +"Edit categories" => "Endra kategoriar", "Add" => "Legg til", -"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen tilgjengeleg tilfeldig nummer-generator, ver vennleg og aktiver OpenSSL-utvidinga i PHP.", +"Security Warning" => "Tryggleiksåtvaring", +"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP-utgåva di er sårbar for NULL-byteåtaket (CVE-2006-7243)", +"Please update your PHP installation to use ownCloud securely." => "Ver venleg og oppdater PHP-installasjonen din så han køyrer ownCloud på ein trygg måte.", +"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen tilgjengeleg tilfeldig nummer-generator, ver venleg og aktiver OpenSSL-utvidinga i PHP.", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Utan ein trygg tilfeldig nummer-generator er det enklare for ein åtakar å gjetta seg fram til passordnullstillingskodar og dimed ta over kontoen din.", +"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Datamappa og filene dine er sannsynlegvis tilgjengelege frå Internett sidan .htaccess-fila ikkje fungerer.", +"For information how to properly configure your server, please see the documentation." => "Ver venleg og les dokumentasjonen for å læra korleis du set opp tenaren din på rett måte.", "Create an admin account" => "Lag ein admin-konto", "Advanced" => "Avansert", "Data folder" => "Datamappe", @@ -46,14 +121,19 @@ "Database user" => "Databasebrukar", "Database password" => "Databasepassord", "Database name" => "Databasenamn", +"Database tablespace" => "Tabellnamnrom for database", "Database host" => "Databasetenar", "Finish setup" => "Fullfør oppsettet", "web services under your control" => "Vevtenester under din kontroll", "Log out" => "Logg ut", -"Please change your password to secure your account again." => "Ver vennleg og endra passordet for å gjera kontoen din trygg igjen.", +"Automatic logon rejected!" => "Automatisk innlogging avvist!", +"If you did not change your password recently, your account may be compromised!" => "Viss du ikkje endra passordet ditt nyleg, så kan kontoen din vera kompromittert!", +"Please change your password to secure your account again." => "Ver venleg og endra passordet for å gjera kontoen din trygg igjen.", "Lost your password?" => "Gløymt passordet?", "remember" => "hugs", "Log in" => "Logg inn", +"Alternative Logins" => "Alternative innloggingar", "prev" => "førre", -"next" => "neste" +"next" => "neste", +"Updating ownCloud to version %s, this may take a while." => "Oppdaterer ownCloud til utgåve %s, dette kan ta ei stund." ); diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index 0c56b494707..ee1ac44d026 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -125,7 +125,6 @@ "Database host" => "Host do banco de dados", "Finish setup" => "Concluir configuração", "web services under your control" => "serviços web sob seu controle", -"%s is available. Click here to get more information." => "%s está disponível. Click aqui para mais infoemações.", "Log out" => "Sair", "Automatic logon rejected!" => "Entrada Automática no Sistema Rejeitada!", "If you did not change your password recently, your account may be compromised!" => "Se você não mudou a sua senha recentemente, a sua conta pode estar comprometida!", diff --git a/core/l10n/ru.php b/core/l10n/ru.php index d1df01fd6d7..54a0b94ec9e 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...", "ownCloud password reset" => "Сброс пароля ", "Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}", +"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.
If it is not there ask your local administrator ." => "Ссылка для сброса пароля была отправлена ​​по электронной почте.
Если вы не получите его в пределах одной двух минут, проверьте папку спам.
Если это не возможно, обратитесь к Вашему администратору.", +"Request failed!
Did you make sure your email/username was right?" => "Что-то не так. Вы уверены что Email / Имя пользователя указаны верно?", "You will receive a link to reset your password via Email." => "На ваш адрес Email выслана ссылка для сброса пароля.", "Username" => "Имя пользователя", "Request reset" => "Запросить сброс", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index 90bdc4df109..d9f124b2b49 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -125,7 +125,6 @@ "Database host" => "Server databázy", "Finish setup" => "Dokončiť inštaláciu", "web services under your control" => "webové služby pod Vašou kontrolou", -"%s is available.
Click here to get more information." => "%s je dostupná. Pre viac informácií kliknite tu.", "Log out" => "Odhlásiť", "Automatic logon rejected!" => "Automatické prihlásenie bolo zamietnuté!", "If you did not change your password recently, your account may be compromised!" => "V nedávnej dobe ste nezmenili svoje heslo, Váš účet môže byť kompromitovaný.", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index cb54ede7fa4..db5583c6101 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.", "ownCloud password reset" => "Ponastavitev gesla za oblak ownCloud", "Use the following link to reset your password: {link}" => "Za ponastavitev gesla uporabite povezavo: {link}", +"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.
If it is not there ask your local administrator ." => "Povezava za ponastavitev gesla je bila poslana na elektronski naslov.
V kolikor sporočila ne prejmete v doglednem času, preverite tudi mape vsiljene pošte.
Če ne bo niti tam, stopite v stik s skrbnikom.", +"Request failed!
Did you make sure your email/username was right?" => "Zahteva je spodletela!
Ali sta elektronski naslov oziroma uporabniško ime navedena pravilno?", "You will receive a link to reset your password via Email." => "Na elektronski naslov boste prejeli povezavo za ponovno nastavitev gesla.", "Username" => "Uporabniško ime", "Request reset" => "Zahtevaj ponovno nastavitev", diff --git a/core/l10n/sq.php b/core/l10n/sq.php index 0d43b314009..8769a833e18 100644 --- a/core/l10n/sq.php +++ b/core/l10n/sq.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Azhurnimi u krye. Tani do t'ju kaloj tek ownCloud-i.", "ownCloud password reset" => "Rivendosja e kodit të ownCloud-it", "Use the following link to reset your password: {link}" => "Përdorni lidhjen në vijim për të rivendosur kodin: {link}", +"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.
If it is not there ask your local administrator ." => "Lidhja për rivendosjen e kodit tuaj u dërgua tek email-i juaj.
Nëqoftëse nuk e merrni brenda një kohe të arsyeshme, kontrolloni dosjet e postës së padëshirueshme (spam).
Nëqoftëse nuk është as aty, pyesni administratorin tuaj lokal.", +"Request failed!
Did you make sure your email/username was right?" => "Kërkesa dështoi!
A u siguruat që email-i/përdoruesi juaj ishte i saktë?", "You will receive a link to reset your password via Email." => "Do t'iu vijë një email që përmban një lidhje për ta rivendosur kodin.", "Username" => "Përdoruesi", "Request reset" => "Bëj kërkesë për rivendosjen", diff --git a/l10n/af_ZA/core.po b/l10n/af_ZA/core.po index 22a20d255a0..75c2b8c54c5 100644 --- a/l10n/af_ZA/core.po +++ b/l10n/af_ZA/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "webdienste onder jou beheer" #: templates/layout.user.php:36 #, php-format -msgid "%s is available.
Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ar/core.po b/l10n/ar/core.po index e22968d6732..9442b987a22 100644 --- a/l10n/ar/core.po +++ b/l10n/ar/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "خدمات الشبكة تحت سيطرتك" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/be/core.po b/l10n/be/core.po index 4e32279b9bc..b35189b41ae 100644 --- a/l10n/be/core.po +++ b/l10n/be/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/bg_BG/core.po b/l10n/bg_BG/core.po index d1ca9b57359..eb678223979 100644 --- a/l10n/bg_BG/core.po +++ b/l10n/bg_BG/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "уеб услуги под Ваш контрол" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/bn_BD/core.po b/l10n/bn_BD/core.po index bb085ea0a6d..59b3c25b06d 100644 --- a/l10n/bn_BD/core.po +++ b/l10n/bn_BD/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "ওয়েব সার্ভিস আপনার হাতের ম #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ca/core.po b/l10n/ca/core.po index dd657863a1d..c28a6d7ac1c 100644 --- a/l10n/ca/core.po +++ b/l10n/ca/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "controleu els vostres serveis web" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/cs_CZ/core.po b/l10n/cs_CZ/core.po index 5ace199d70f..76830c09503 100644 --- a/l10n/cs_CZ/core.po +++ b/l10n/cs_CZ/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 08:20+0000\n" -"Last-Translator: Tomáš Chvátal \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "služby webu pod Vaší kontrolou" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s je dostupná. Pro více informací klikněte zde." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/cy_GB/core.po b/l10n/cy_GB/core.po index 0c38104ecb0..4a7f86d0d28 100644 --- a/l10n/cy_GB/core.po +++ b/l10n/cy_GB/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "gwasanaethau gwe a reolir gennych" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/da/core.po b/l10n/da/core.po index b46b1f14dc0..5d4fa6016a7 100644 --- a/l10n/da/core.po +++ b/l10n/da/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Webtjenester under din kontrol" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/de/core.po b/l10n/de/core.po index 9e7dac7c5b8..2057a46835c 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 06:40+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "Web-Services unter Deiner Kontrolle" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s ist verfügbar. Klicke hier für weitere Informationen." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index edc9ca40e44..d49333cbd67 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 06:50+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "Web-Services unter Ihrer Kontrolle" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s ist verfügbar. Klicken Sie hier um weitere Informationen zu erhalten." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index b2d2603e6fb..54713d05960 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 20:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" @@ -86,7 +86,7 @@ msgstr "Teilen" msgid "Delete permanently" msgstr "Endgültig löschen" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Löschen" @@ -156,66 +156,66 @@ msgstr "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert ode msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ihr Speicher ist fast voll ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ihre Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nicht genügend Speicherplatz verfügbar" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Die URL darf nicht leer sein." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fehler" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Größe" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Bearbeitet" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 Datei" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} Dateien" @@ -279,37 +279,37 @@ msgstr "Gelöschte Dateien" msgid "Cancel upload" msgstr "Upload abbrechen" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Sie haben hier keine Schreib-Berechtigungen." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Alles leer. Bitte laden Sie etwas hoch!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Herunterladen" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Freigabe aufheben" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Der Upload ist zu groß" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Scanne" diff --git a/l10n/de_DE/files_versions.po b/l10n/de_DE/files_versions.po index e73f5ee0ada..4218653d90a 100644 --- a/l10n/de_DE/files_versions.po +++ b/l10n/de_DE/files_versions.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 20:39+0000\n" +"Last-Translator: a.tangemann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/el/core.po b/l10n/el/core.po index 7edba8f574e..e5c54f4c71d 100644 --- a/l10n/el/core.po +++ b/l10n/el/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 11:30+0000\n" -"Last-Translator: KAT.RAT12 \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -564,7 +564,7 @@ msgstr "υπηρεσίες δικτύου υπό τον έλεγχό σας" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/eo/core.po b/l10n/eo/core.po index cd1e7f51cec..e012849caa0 100644 --- a/l10n/eo/core.po +++ b/l10n/eo/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "TTT-servoj regataj de vi" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/es/core.po b/l10n/es/core.po index 7889db38585..9c9f16c7a68 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 00:50+0000\n" -"Last-Translator: msoko \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "Servicios web bajo su control" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "% s está disponible. Haga clic aquí para obtener más información." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/es/settings.po b/l10n/es/settings.po index 56391edf8eb..da161823531 100644 --- a/l10n/es/settings.po +++ b/l10n/es/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# scambra , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 09:30+0000\n" +"Last-Translator: scambra \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -328,7 +329,7 @@ msgstr "Menos" msgid "Version" msgstr "Version" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "servicios web controlados por vos" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/et_EE/core.po b/l10n/et_EE/core.po index 19448feb03f..79e459216ac 100644 --- a/l10n/et_EE/core.po +++ b/l10n/et_EE/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -563,7 +563,7 @@ msgstr "veebitenused sinu kontrolli all" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/eu/core.po b/l10n/eu/core.po index 17656482446..7f5af267bd9 100644 --- a/l10n/eu/core.po +++ b/l10n/eu/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "web zerbitzuak zure kontrolpean" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/fa/core.po b/l10n/fa/core.po index a959be2bdbe..5e282fc91e9 100644 --- a/l10n/fa/core.po +++ b/l10n/fa/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "سرویس های تحت وب در کنترل شما" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/fi/core.po b/l10n/fi/core.po index d2687b7e3f0..03746586e2a 100644 --- a/l10n/fi/core.po +++ b/l10n/fi/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po index 13fb881d86c..36d65066e3d 100644 --- a/l10n/fi_FI/core.po +++ b/l10n/fi_FI/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -563,7 +563,7 @@ msgstr "verkkopalvelut hallinnassasi" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/fr/core.po b/l10n/fr/core.po index bbc1a2483d3..5b8b4cdeb02 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -563,7 +563,7 @@ msgstr "services web sous votre contrôle" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/gl/core.po b/l10n/gl/core.po index fd906b7f3ce..653026359c7 100644 --- a/l10n/gl/core.po +++ b/l10n/gl/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 09:10+0000\n" -"Last-Translator: mbouzada \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "servizos web baixo o seu control" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s está dispoñíbel. Prema aquí para obter máis información." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/he/core.po b/l10n/he/core.po index 6ac13ac53e3..88f6865e1bd 100644 --- a/l10n/he/core.po +++ b/l10n/he/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "שירותי רשת תחת השליטה שלך" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/hi/core.po b/l10n/hi/core.po index 7620137255c..09e45c10d5e 100644 --- a/l10n/hi/core.po +++ b/l10n/hi/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/hr/core.po b/l10n/hr/core.po index cadc439bb6c..5ad69e813e1 100644 --- a/l10n/hr/core.po +++ b/l10n/hr/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "web usluge pod vašom kontrolom" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/hu_HU/core.po b/l10n/hu_HU/core.po index 16bc01f9be7..75eab46f630 100644 --- a/l10n/hu_HU/core.po +++ b/l10n/hu_HU/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "webszolgáltatások saját kézben" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/hy/core.po b/l10n/hy/core.po index 13fd7f3ee14..f393e4f5a2b 100644 --- a/l10n/hy/core.po +++ b/l10n/hy/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ia/core.po b/l10n/ia/core.po index 6ab4fa86234..8968d1e0668 100644 --- a/l10n/ia/core.po +++ b/l10n/ia/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "servicios web sub tu controlo" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/id/core.po b/l10n/id/core.po index 93fd69a5048..99b5e5b934d 100644 --- a/l10n/id/core.po +++ b/l10n/id/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "layanan web dalam kontrol Anda" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/is/core.po b/l10n/is/core.po index 9545dd71863..0fcf1d0e314 100644 --- a/l10n/is/core.po +++ b/l10n/is/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "vefþjónusta undir þinni stjórn" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/it/core.po b/l10n/it/core.po index 7aeb7ab5b11..3d79a4e3e3b 100644 --- a/l10n/it/core.po +++ b/l10n/it/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 23:30+0000\n" -"Last-Translator: Vincenzo Reale \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "servizi web nelle tue mani" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s è disponibile. Fai clic qui per ottenere ulteriori informazioni." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 3655678240a..dd62994b1b2 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "管理下のウェブサービス" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ka/core.po b/l10n/ka/core.po index 076dca265bf..3840fc7208c 100644 --- a/l10n/ka/core.po +++ b/l10n/ka/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ka_GE/core.po b/l10n/ka_GE/core.po index c636f31b9b2..7051022af7b 100644 --- a/l10n/ka_GE/core.po +++ b/l10n/ka_GE/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "web services under your control" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/kn/core.po b/l10n/kn/core.po index c40471762db..b412b63b1ff 100644 --- a/l10n/kn/core.po +++ b/l10n/kn/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kannada (http://www.transifex.com/projects/p/owncloud/language/kn/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ko/core.po b/l10n/ko/core.po index 7b37e969788..2e8b6e43eb6 100644 --- a/l10n/ko/core.po +++ b/l10n/ko/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -563,7 +563,7 @@ msgstr "내가 관리하는 웹 서비스" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ku_IQ/core.po b/l10n/ku_IQ/core.po index 62149976055..4be0cb61d85 100644 --- a/l10n/ku_IQ/core.po +++ b/l10n/ku_IQ/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "ڕاژه‌ی وێب له‌ژێر چاودێریت دایه" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/lb/core.po b/l10n/lb/core.po index 11df2e322d4..297e614c2b0 100644 --- a/l10n/lb/core.po +++ b/l10n/lb/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Web Servicer ënnert denger Kontroll" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/lt_LT/core.po b/l10n/lt_LT/core.po index 736c625c245..ad40286f05b 100644 --- a/l10n/lt_LT/core.po +++ b/l10n/lt_LT/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "jūsų valdomos web paslaugos" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/lv/core.po b/l10n/lv/core.po index 941cd8bc50c..ed8d247b10d 100644 --- a/l10n/lv/core.po +++ b/l10n/lv/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "tīmekļa servisi tavā varā" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/mk/core.po b/l10n/mk/core.po index 3591f82272d..cca6e22f555 100644 --- a/l10n/mk/core.po +++ b/l10n/mk/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "веб сервиси под Ваша контрола" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ms_MY/core.po b/l10n/ms_MY/core.po index 5b01217b802..4559ef41db5 100644 --- a/l10n/ms_MY/core.po +++ b/l10n/ms_MY/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Perkhidmatan web di bawah kawalan anda" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/my_MM/core.po b/l10n/my_MM/core.po index 7a389980504..46e82a3f92c 100644 --- a/l10n/my_MM/core.po +++ b/l10n/my_MM/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "သင်၏ထိန်းချုပ်မှု့အောက်တ #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/nb_NO/core.po b/l10n/nb_NO/core.po index bd80d433d86..fb7fcade402 100644 --- a/l10n/nb_NO/core.po +++ b/l10n/nb_NO/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "web tjenester du kontrollerer" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ne/core.po b/l10n/ne/core.po index 1571dcf0272..c5b6a57bbb9 100644 --- a/l10n/ne/core.po +++ b/l10n/ne/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Nepali (http://www.transifex.com/projects/p/owncloud/language/ne/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/nl/core.po b/l10n/nl/core.po index 74d93312d5c..9694e44327b 100644 --- a/l10n/nl/core.po +++ b/l10n/nl/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 21:00+0000\n" -"Last-Translator: André Koot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "Webdiensten in eigen beheer" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s is beschikbaar. Klik hier voor meer informatie." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index 3e81de1b303..c2f9d6ea436 100644 --- a/l10n/nn_NO/core.po +++ b/l10n/nn_NO/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 22:20+0000\n" -"Last-Translator: unhammer \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,65 +21,65 @@ msgstr "" #: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" -msgstr "" +msgstr "Brukaren %s delte ei fil med deg" #: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" -msgstr "" +msgstr "Brukaren %s delte ei mappe med deg" #: ajax/share.php:101 #, php-format msgid "" "User %s shared the file \"%s\" with you. It is available for download here: " "%s" -msgstr "" +msgstr "Brukaren %s delte fila «%s» med deg. Du kan lasta ho ned her: %s" #: ajax/share.php:104 #, php-format msgid "" "User %s shared the folder \"%s\" with you. It is available for download " "here: %s" -msgstr "" +msgstr "Brukaren %s delte mappa «%s» med deg. Du kan lasta ho ned her: %s" #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." -msgstr "" +msgstr "Ingen kategoritype." #: ajax/vcategories/add.php:30 msgid "No category to add?" -msgstr "" +msgstr "Ingen kategori å leggja til?" #: ajax/vcategories/add.php:37 #, php-format msgid "This category already exists: %s" -msgstr "" +msgstr "Denne kategorien finst alt: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 #: ajax/vcategories/removeFromFavorites.php:26 msgid "Object type not provided." -msgstr "" +msgstr "Ingen objekttype." #: ajax/vcategories/addToFavorites.php:30 #: ajax/vcategories/removeFromFavorites.php:30 #, php-format msgid "%s ID not provided." -msgstr "" +msgstr "Ingen %s-ID." #: ajax/vcategories/addToFavorites.php:35 #, php-format msgid "Error adding %s to favorites." -msgstr "" +msgstr "Klarte ikkje å leggja til %s i favorittar." #: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 msgid "No categories selected for deletion." -msgstr "" +msgstr "Ingen kategoriar valt for sletting." #: ajax/vcategories/removeFromFavorites.php:35 #, php-format msgid "Error removing %s from favorites." -msgstr "" +msgstr "Klarte ikkje å fjerna %s frå favorittar." #: js/config.php:34 msgid "Sunday" @@ -163,80 +163,80 @@ msgstr "Innstillingar" #: js/js.js:718 msgid "seconds ago" -msgstr "" +msgstr "sekund sidan" #: js/js.js:719 msgid "1 minute ago" -msgstr "" +msgstr "1 minutt sidan" #: js/js.js:720 msgid "{minutes} minutes ago" -msgstr "" +msgstr "{minutes} minutt sidan" #: js/js.js:721 msgid "1 hour ago" -msgstr "" +msgstr "1 time sidan" #: js/js.js:722 msgid "{hours} hours ago" -msgstr "" +msgstr "{hours} timar sidan" #: js/js.js:723 msgid "today" -msgstr "" +msgstr "i dag" #: js/js.js:724 msgid "yesterday" -msgstr "" +msgstr "i går" #: js/js.js:725 msgid "{days} days ago" -msgstr "" +msgstr "{days} dagar sidan" #: js/js.js:726 msgid "last month" -msgstr "" +msgstr "førre månad" #: js/js.js:727 msgid "{months} months ago" -msgstr "" +msgstr "{months) månader sidan" #: js/js.js:728 msgid "months ago" -msgstr "" +msgstr "månader sidan" #: js/js.js:729 msgid "last year" -msgstr "" +msgstr "i fjor" #: js/js.js:730 msgid "years ago" -msgstr "" +msgstr "år sidan" #: js/oc-dialogs.js:117 js/oc-dialogs.js:247 msgid "Ok" -msgstr "" +msgstr "Greitt" #: js/oc-dialogs.js:121 js/oc-dialogs.js:189 js/oc-dialogs.js:240 msgid "Cancel" -msgstr "Kanseller" +msgstr "Avbryt" #: js/oc-dialogs.js:185 msgid "Choose" -msgstr "" +msgstr "Vel" #: js/oc-dialogs.js:215 msgid "Yes" -msgstr "" +msgstr "Ja" #: js/oc-dialogs.js:222 msgid "No" -msgstr "" +msgstr "Nei" #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 msgid "The object type is not specified." -msgstr "" +msgstr "Objekttypen er ikkje spesifisert." #: js/oc-vcategories.js:14 js/oc-vcategories.js:80 js/oc-vcategories.js:95 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 @@ -248,51 +248,51 @@ msgstr "Feil" #: js/oc-vcategories.js:179 msgid "The app name is not specified." -msgstr "" +msgstr "App-namnet er ikkje spesifisert." #: js/oc-vcategories.js:194 msgid "The required file {file} is not installed!" -msgstr "" +msgstr "Den kravde fila {file} er ikkje installert!" #: js/share.js:30 js/share.js:45 js/share.js:87 msgid "Shared" -msgstr "" +msgstr "Delt" #: js/share.js:90 msgid "Share" -msgstr "" +msgstr "Del" #: js/share.js:125 js/share.js:617 msgid "Error while sharing" -msgstr "" +msgstr "Feil ved deling" #: js/share.js:136 msgid "Error while unsharing" -msgstr "" +msgstr "Feil ved udeling" #: js/share.js:143 msgid "Error while changing permissions" -msgstr "" +msgstr "Feil ved endring av tillatingar" #: js/share.js:152 msgid "Shared with you and the group {group} by {owner}" -msgstr "" +msgstr "Delt med deg og gruppa {group} av {owner}" #: js/share.js:154 msgid "Shared with you by {owner}" -msgstr "" +msgstr "Delt med deg av {owner}" #: js/share.js:159 msgid "Share with" -msgstr "" +msgstr "Del med" #: js/share.js:164 msgid "Share with link" -msgstr "" +msgstr "Del med lenkje" #: js/share.js:167 msgid "Password protect" -msgstr "" +msgstr "Passordvern" #: js/share.js:169 templates/installation.php:54 templates/login.php:26 msgid "Password" @@ -300,117 +300,117 @@ msgstr "Passord" #: js/share.js:173 msgid "Email link to person" -msgstr "" +msgstr "Send lenkja over e-post" #: js/share.js:174 msgid "Send" -msgstr "" +msgstr "Send" #: js/share.js:178 msgid "Set expiration date" -msgstr "" +msgstr "Set utlaupsdato" #: js/share.js:179 msgid "Expiration date" -msgstr "" +msgstr "Utlaupsdato" #: js/share.js:211 msgid "Share via email:" -msgstr "" +msgstr "Del over e-post:" #: js/share.js:213 msgid "No people found" -msgstr "" +msgstr "Fann ingen personar" #: js/share.js:251 msgid "Resharing is not allowed" -msgstr "" +msgstr "Vidaredeling er ikkje tillate" #: js/share.js:287 msgid "Shared in {item} with {user}" -msgstr "" +msgstr "Delt i {item} med {brukar}" #: js/share.js:308 msgid "Unshare" -msgstr "" +msgstr "Udel" #: js/share.js:320 msgid "can edit" -msgstr "" +msgstr "kan endra" #: js/share.js:322 msgid "access control" -msgstr "" +msgstr "tilgangskontroll" #: js/share.js:325 msgid "create" -msgstr "" +msgstr "lag" #: js/share.js:328 msgid "update" -msgstr "" +msgstr "oppdater" #: js/share.js:331 msgid "delete" -msgstr "" +msgstr "slett" #: js/share.js:334 msgid "share" -msgstr "" +msgstr "del" #: js/share.js:368 js/share.js:564 msgid "Password protected" -msgstr "" +msgstr "Passordverna" #: js/share.js:577 msgid "Error unsetting expiration date" -msgstr "" +msgstr "Klarte ikkje å fjerna utlaupsdato" #: js/share.js:589 msgid "Error setting expiration date" -msgstr "" +msgstr "Klarte ikkje å setja utlaupsdato" #: js/share.js:604 msgid "Sending ..." -msgstr "" +msgstr "Sender …" #: js/share.js:615 msgid "Email sent" -msgstr "" +msgstr "E-post sendt" #: js/update.js:14 msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "" +msgstr "Oppdateringa feila. Ver venleg og rapporter feilen til ownCloud-fellesskapet." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." -msgstr "" +msgstr "Oppdateringa er fullført. Sender deg vidare til ownCloud no." #: lostpassword/controller.php:48 msgid "ownCloud password reset" -msgstr "" +msgstr "Nullstilling av ownCloud-passord" #: lostpassword/templates/email.php:2 msgid "Use the following link to reset your password: {link}" -msgstr "Bruk føljane link til å tilbakestille passordet ditt: {link}" +msgstr "Klikk følgjande lenkje til å nullstilla passordet ditt: {link}" #: lostpassword/templates/lostpassword.php:4 msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Lenkja til å nullstilla passordet med er sendt til e-posten din.
Sjå i spam-/søppelmappa di viss du ikkje ser e-posten innan rimeleg tid.
Spør din lokale administrator viss han ikkje er der heller." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Førespurnaden feila!
Er du viss på at du skreiv inn rett e-post/brukarnamn?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." -msgstr "Du vil få ei lenkje for å nullstilla passordet via epost." +msgstr "Du vil få ein e-post med ei lenkje for å nullstilla passordet." #: lostpassword/templates/lostpassword.php:18 templates/installation.php:48 #: templates/login.php:19 @@ -427,7 +427,7 @@ msgstr "Passordet ditt er nullstilt" #: lostpassword/templates/resetpassword.php:5 msgid "To login page" -msgstr "Til innloggings sida" +msgstr "Til innloggingssida" #: lostpassword/templates/resetpassword.php:8 msgid "New password" @@ -451,7 +451,7 @@ msgstr "Applikasjonar" #: strings.php:8 msgid "Admin" -msgstr "Administrer" +msgstr "Admin" #: strings.php:9 msgid "Help" @@ -459,7 +459,7 @@ msgstr "Hjelp" #: templates/403.php:12 msgid "Access forbidden" -msgstr "" +msgstr "Tilgang forbudt" #: templates/404.php:12 msgid "Cloud not found" @@ -467,7 +467,7 @@ msgstr "Fann ikkje skyen" #: templates/edit_categories_dialog.php:4 msgid "Edit categories" -msgstr "" +msgstr "Endra kategoriar" #: templates/edit_categories_dialog.php:16 msgid "Add" @@ -476,40 +476,40 @@ msgstr "Legg til" #: templates/installation.php:24 templates/installation.php:31 #: templates/installation.php:38 msgid "Security Warning" -msgstr "" +msgstr "Tryggleiksåtvaring" #: templates/installation.php:25 msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" -msgstr "" +msgstr "PHP-utgåva di er sårbar for NULL-byteåtaket (CVE-2006-7243)" #: templates/installation.php:26 msgid "Please update your PHP installation to use ownCloud securely." -msgstr "" +msgstr "Ver venleg og oppdater PHP-installasjonen din så han køyrer ownCloud på ein trygg måte." #: templates/installation.php:32 msgid "" "No secure random number generator is available, please enable the PHP " "OpenSSL extension." -msgstr "Ingen tilgjengeleg tilfeldig nummer-generator, ver vennleg og aktiver OpenSSL-utvidinga i PHP." +msgstr "Ingen tilgjengeleg tilfeldig nummer-generator, ver venleg og aktiver OpenSSL-utvidinga i PHP." #: templates/installation.php:33 msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." -msgstr "" +msgstr "Utan ein trygg tilfeldig nummer-generator er det enklare for ein åtakar å gjetta seg fram til passordnullstillingskodar og dimed ta over kontoen din." #: templates/installation.php:39 msgid "" "Your data directory and files are probably accessible from the internet " "because the .htaccess file does not work." -msgstr "" +msgstr "Datamappa og filene dine er sannsynlegvis tilgjengelege frå Internett sidan .htaccess-fila ikkje fungerer." #: templates/installation.php:40 msgid "" "For information how to properly configure your server, please see the documentation." -msgstr "" +msgstr "Ver venleg og les dokumentasjonen for å læra korleis du set opp tenaren din på rett måte." #: templates/installation.php:44 msgid "Create an admin account" @@ -547,7 +547,7 @@ msgstr "Databasenamn" #: templates/installation.php:159 msgid "Database tablespace" -msgstr "" +msgstr "Tabellnamnrom for database" #: templates/installation.php:166 msgid "Database host" @@ -563,7 +563,7 @@ msgstr "Vevtenester under din kontroll" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 @@ -572,17 +572,17 @@ msgstr "Logg ut" #: templates/login.php:9 msgid "Automatic logon rejected!" -msgstr "" +msgstr "Automatisk innlogging avvist!" #: templates/login.php:10 msgid "" "If you did not change your password recently, your account may be " "compromised!" -msgstr "" +msgstr "Viss du ikkje endra passordet ditt nyleg, så kan kontoen din vera kompromittert!" #: templates/login.php:12 msgid "Please change your password to secure your account again." -msgstr "Ver vennleg og endra passordet for å gjera kontoen din trygg igjen." +msgstr "Ver venleg og endra passordet for å gjera kontoen din trygg igjen." #: templates/login.php:34 msgid "Lost your password?" @@ -598,7 +598,7 @@ msgstr "Logg inn" #: templates/login.php:47 msgid "Alternative Logins" -msgstr "" +msgstr "Alternative innloggingar" #: templates/part.pagenavi.php:3 msgid "prev" @@ -611,4 +611,4 @@ msgstr "neste" #: templates/update.php:3 #, php-format msgid "Updating ownCloud to version %s, this may take a while." -msgstr "" +msgstr "Oppdaterer ownCloud til utgåve %s, dette kan ta ei stund." diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index 975ecc34f7c..388d90f63a9 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 17:50+0000\n" +"Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,20 +21,20 @@ msgstr "" #: ajax/move.php:17 #, php-format msgid "Could not move %s - File with this name already exists" -msgstr "" +msgstr "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet" #: ajax/move.php:27 ajax/move.php:30 #, php-format msgid "Could not move %s" -msgstr "" +msgstr "Klarte ikkje å flytta %s" #: ajax/rename.php:22 ajax/rename.php:25 msgid "Unable to rename file" -msgstr "" +msgstr "Klarte ikkje å endra filnamnet" #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" -msgstr "" +msgstr "Ingen filer lasta opp. Ukjend feil" #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" @@ -42,7 +43,7 @@ msgstr "Ingen feil, fila vart lasta opp" #: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "" +msgstr "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: " #: ajax/upload.php:29 msgid "" @@ -64,15 +65,15 @@ msgstr "Manglar ei mellombels mappe" #: ajax/upload.php:33 msgid "Failed to write to disk" -msgstr "" +msgstr "Klarte ikkje å skriva til disk" #: ajax/upload.php:51 msgid "Not enough storage available" -msgstr "" +msgstr "Ikkje nok lagringsplass tilgjengeleg" #: ajax/upload.php:83 msgid "Invalid directory." -msgstr "" +msgstr "Ugyldig mappe." #: appinfo/app.php:12 msgid "Files" @@ -80,144 +81,144 @@ msgstr "Filer" #: js/fileactions.js:116 msgid "Share" -msgstr "" +msgstr "Del" #: js/fileactions.js:126 msgid "Delete permanently" -msgstr "" +msgstr "Slett for godt" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Slett" #: js/fileactions.js:194 msgid "Rename" -msgstr "" +msgstr "Endra namn" #: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 msgid "Pending" -msgstr "" +msgstr "Under vegs" #: js/filelist.js:252 js/filelist.js:254 msgid "{new_name} already exists" -msgstr "" +msgstr "{new_name} finst allereie" #: js/filelist.js:252 js/filelist.js:254 msgid "replace" -msgstr "" +msgstr "byt ut" #: js/filelist.js:252 msgid "suggest name" -msgstr "" +msgstr "føreslå namn" #: js/filelist.js:252 js/filelist.js:254 msgid "cancel" -msgstr "" +msgstr "avbryt" #: js/filelist.js:299 msgid "replaced {new_name} with {old_name}" -msgstr "" +msgstr "bytte ut {new_name} med {old_name}" #: js/filelist.js:299 msgid "undo" -msgstr "" +msgstr "angre" #: js/filelist.js:324 msgid "perform delete operation" -msgstr "" +msgstr "utfør sletting" #: js/filelist.js:406 msgid "1 file uploading" -msgstr "" +msgstr "1 fil lastar opp" #: js/filelist.js:409 js/filelist.js:463 msgid "files uploading" -msgstr "" +msgstr "filer lastar opp" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "" +msgstr "«.» er eit ugyldig filnamn." #: js/files.js:56 msgid "File name cannot be empty." -msgstr "" +msgstr "Filnamnet kan ikkje vera tomt." #: js/files.js:64 msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." -msgstr "" +msgstr "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate." #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "" +msgstr "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "" +msgstr "Lagringa di er nesten full ({usedSpacePercent} %)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "" +msgstr "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "" +msgstr "Klarte ikkje å lasta opp fila sidan ho er ei mappe eller er på 0 byte" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" -msgstr "" +msgstr "Ikkje nok lagringsplass tilgjengeleg" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." -msgstr "" +msgstr "Opplasting avbroten." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "" +msgstr "Fila lastar no opp. Viss du forlèt sida no vil opplastinga bli avbroten." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." -msgstr "" +msgstr "URL-en kan ikkje vera tom." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "" +msgstr "Ugyldig mappenamn. Mappa «Shared» er reservert av ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Feil" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Namn" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Storleik" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Endra" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" -msgstr "" +msgstr "1 mappe" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" -msgstr "" +msgstr "{count} mapper" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" -msgstr "" +msgstr "1 fil" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" -msgstr "" +msgstr "{count} filer" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" @@ -225,7 +226,7 @@ msgstr "Last opp" #: templates/admin.php:5 msgid "File handling" -msgstr "" +msgstr "Filhandtering" #: templates/admin.php:7 msgid "Maximum upload size" @@ -233,23 +234,23 @@ msgstr "Maksimal opplastingsstorleik" #: templates/admin.php:10 msgid "max. possible: " -msgstr "" +msgstr "maks. moglege:" #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." -msgstr "" +msgstr "Naudsynt for fleirfils- og mappenedlastingar." #: templates/admin.php:17 msgid "Enable ZIP-download" -msgstr "" +msgstr "Skru på ZIP-nedlasting" #: templates/admin.php:20 msgid "0 is unlimited" -msgstr "" +msgstr "0 er ubegrensa" #: templates/admin.php:22 msgid "Maximum input size for ZIP files" -msgstr "" +msgstr "Maksimal storleik for ZIP-filer" #: templates/admin.php:26 msgid "Save" @@ -269,50 +270,50 @@ msgstr "Mappe" #: templates/index.php:14 msgid "From link" -msgstr "" +msgstr "Frå lenkje" #: templates/index.php:42 msgid "Deleted files" -msgstr "" +msgstr "Sletta filer" #: templates/index.php:48 msgid "Cancel upload" -msgstr "" +msgstr "Avbryt opplasting" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." -msgstr "" +msgstr "Du har ikkje skriverettar her." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last noko opp!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Last ned" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" -msgstr "" +msgstr "Udel" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "For stor opplasting" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." -msgstr "" +msgstr "Skannar filer, ver venleg og vent." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" -msgstr "" +msgstr "Køyrande skanning" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "Oppgraderer mellomlageret av filsystemet …" diff --git a/l10n/nn_NO/files_trashbin.po b/l10n/nn_NO/files_trashbin.po index 588f67977a7..14a63b14629 100644 --- a/l10n/nn_NO/files_trashbin.po +++ b/l10n/nn_NO/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 14:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -41,7 +41,7 @@ msgstr "" #: js/trash.js:121 msgid "Delete permanently" -msgstr "" +msgstr "Slett for godt" #: js/trash.js:174 templates/index.php:17 msgid "Name" @@ -53,19 +53,19 @@ msgstr "" #: js/trash.js:184 msgid "1 folder" -msgstr "" +msgstr "1 mappe" #: js/trash.js:186 msgid "{count} folders" -msgstr "" +msgstr "{count} mapper" #: js/trash.js:194 msgid "1 file" -msgstr "" +msgstr "1 fil" #: js/trash.js:196 msgid "{count} files" -msgstr "" +msgstr "{count} filer" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" diff --git a/l10n/nn_NO/lib.po b/l10n/nn_NO/lib.po index 82db481dcd5..9521606544a 100644 --- a/l10n/nn_NO/lib.po +++ b/l10n/nn_NO/lib.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 22:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 17:40+0000\n" +"Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -176,20 +176,20 @@ msgstr "" msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." -msgstr "" +msgstr "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt." #: setup.php:859 #, php-format msgid "Please double check the installation guides." -msgstr "" +msgstr "Ver vennleg og dobbeltsjekk installasjonsrettleiinga." #: template.php:113 msgid "seconds ago" -msgstr "" +msgstr "sekund sidan" #: template.php:114 msgid "1 minute ago" -msgstr "" +msgstr "1 minutt sidan" #: template.php:115 #, php-format @@ -198,7 +198,7 @@ msgstr "" #: template.php:116 msgid "1 hour ago" -msgstr "" +msgstr "1 time sidan" #: template.php:117 #, php-format @@ -207,11 +207,11 @@ msgstr "" #: template.php:118 msgid "today" -msgstr "" +msgstr "i dag" #: template.php:119 msgid "yesterday" -msgstr "" +msgstr "i går" #: template.php:120 #, php-format @@ -220,7 +220,7 @@ msgstr "" #: template.php:121 msgid "last month" -msgstr "" +msgstr "førre månad" #: template.php:122 #, php-format @@ -229,11 +229,11 @@ msgstr "" #: template.php:123 msgid "last year" -msgstr "" +msgstr "i fjor" #: template.php:124 msgid "years ago" -msgstr "" +msgstr "år sidan" #: vcategories.php:188 vcategories.php:249 #, php-format diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po index 00b5185d128..ac35cb7aedc 100644 --- a/l10n/nn_NO/settings.po +++ b/l10n/nn_NO/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 22:10+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 17:40+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" -msgstr "Klarer ikkje å laste inn liste fra App Store" +msgstr "Klarer ikkje å lasta inn liste fra app-butikken" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/togglegroups.php:20 @@ -73,7 +73,7 @@ msgstr "Ugyldig førespurnad" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" -msgstr "Administratorar kan ikkje fjerna seg sjølv frå admin-gruppa" +msgstr "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa" #: ajax/togglegroups.php:30 #, php-format @@ -103,7 +103,7 @@ msgstr "Slå på" #: js/apps.js:55 msgid "Please wait...." -msgstr "Ver vennleg og vent …" +msgstr "Ver venleg og vent …" #: js/apps.js:59 js/apps.js:71 js/apps.js:80 js/apps.js:93 msgid "Error" @@ -111,31 +111,31 @@ msgstr "Feil" #: js/apps.js:90 msgid "Updating...." -msgstr "" +msgstr "Oppdaterer …" #: js/apps.js:93 msgid "Error while updating app" -msgstr "" +msgstr "Feil ved oppdatering av app" #: js/apps.js:96 msgid "Updated" -msgstr "" +msgstr "Oppdatert" #: js/personal.js:118 msgid "Saving..." -msgstr "" +msgstr "Lagrar …" #: js/users.js:43 msgid "deleted" -msgstr "" +msgstr "sletta" #: js/users.js:43 msgid "undo" -msgstr "" +msgstr "angra" #: js/users.js:75 msgid "Unable to remove user" -msgstr "" +msgstr "Klarte ikkje å fjerna brukaren" #: js/users.js:88 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 @@ -144,7 +144,7 @@ msgstr "Grupper" #: js/users.js:91 templates/users.php:80 templates/users.php:115 msgid "Group Admin" -msgstr "" +msgstr "Gruppestyrar" #: js/users.js:111 templates/users.php:155 msgid "Delete" @@ -152,19 +152,19 @@ msgstr "Slett" #: js/users.js:262 msgid "add group" -msgstr "" +msgstr "legg til gruppe" #: js/users.js:414 msgid "A valid username must be provided" -msgstr "" +msgstr "Du må oppgje eit gyldig brukarnamn" #: js/users.js:415 js/users.js:421 js/users.js:436 msgid "Error creating user" -msgstr "" +msgstr "Feil ved oppretting av brukar" #: js/users.js:420 msgid "A valid password must be provided" -msgstr "" +msgstr "Du må oppgje eit gyldig passord" #: personal.php:35 personal.php:36 msgid "__language_name__" @@ -172,7 +172,7 @@ msgstr "Nynorsk" #: templates/admin.php:15 msgid "Security Warning" -msgstr "" +msgstr "Tryggleiksåtvaring" #: templates/admin.php:18 msgid "" @@ -181,36 +181,36 @@ msgid "" "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." -msgstr "" +msgstr "Datamappa og filene dine er sannsynlegvis tilgjengelege frå Internett. Fila .htaccess som ownCloud tilbyr fungerer ikkje. Me rår sterkt til at du set opp tenaren din slik at datamappa ikkje lenger er tilgjengeleg, eller at du flyttar datamappa vekk frå dokumentrota til tenaren." #: templates/admin.php:29 msgid "Setup Warning" -msgstr "" +msgstr "Oppsettsåtvaring" #: templates/admin.php:32 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." -msgstr "" +msgstr "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt." #: templates/admin.php:33 #, php-format msgid "Please double check the installation guides." -msgstr "" +msgstr "Ver venleg og dobbeltsjekk installasjonsrettleiinga." #: templates/admin.php:44 msgid "Module 'fileinfo' missing" -msgstr "" +msgstr "Modulen «fileinfo» manglar" #: templates/admin.php:47 msgid "" "The PHP module 'fileinfo' is missing. We strongly recommend to enable this " "module to get best results with mime-type detection." -msgstr "" +msgstr "PHP-modulen «fileinfo» manglar. Me rår sterkt til å skru på denne modulen for å best mogleg oppdaga MIME-typar." #: templates/admin.php:58 msgid "Locale not working" -msgstr "" +msgstr "Regionaldata fungerer ikkje" #: templates/admin.php:63 #, php-format @@ -218,11 +218,11 @@ msgid "" "This ownCloud server can't set system locale to %s. 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 %s." -msgstr "" +msgstr "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som krevst for å støtta %s." #: templates/admin.php:75 msgid "Internet connection not working" -msgstr "" +msgstr "Nettilkoplinga fungerer ikkje" #: templates/admin.php:78 msgid "" @@ -232,86 +232,86 @@ msgid "" "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" " of ownCloud." -msgstr "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil bruka alle funksjonane til ownCloud." +msgstr "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud." #: templates/admin.php:92 msgid "Cron" -msgstr "" +msgstr "Cron" #: templates/admin.php:101 msgid "Execute one task with each page loaded" -msgstr "" +msgstr "Utfør éi oppgåve for kvar sidelasting" #: templates/admin.php:111 msgid "" "cron.php is registered at a webcron service. Call the cron.php page in the " "owncloud root once a minute over http." -msgstr "" +msgstr "cron.php er registrert ved ei webcron-teneste. Last sida cron.php i ownCloud-rota ein gong i minuttet over http." #: templates/admin.php:121 msgid "" "Use systems cron service. Call the cron.php file in the owncloud folder via " "a system cronjob once a minute." -msgstr "" +msgstr "Bruk cron-tenesta til systemet. Køyr fila cron.php i ownCloud-mappa frå ein cron-jobb på systemet ein gong i minuttet." #: templates/admin.php:128 msgid "Sharing" -msgstr "" +msgstr "Deling" #: templates/admin.php:134 msgid "Enable Share API" -msgstr "" +msgstr "Skru på API-et for deling" #: templates/admin.php:135 msgid "Allow apps to use the Share API" -msgstr "" +msgstr "La app-ar bruka API-et til deling" #: templates/admin.php:142 msgid "Allow links" -msgstr "" +msgstr "Tillat lenkjer" #: templates/admin.php:143 msgid "Allow users to share items to the public with links" -msgstr "" +msgstr "La brukarar dela ting offentleg med lenkjer" #: templates/admin.php:150 msgid "Allow resharing" -msgstr "" +msgstr "Tillat vidaredeling" #: templates/admin.php:151 msgid "Allow users to share items shared with them again" -msgstr "" +msgstr "La brukarar vidaredela delte ting" #: templates/admin.php:158 msgid "Allow users to share with anyone" -msgstr "" +msgstr "La brukarar dela med kven som helst" #: templates/admin.php:161 msgid "Allow users to only share with users in their groups" -msgstr "" +msgstr "La brukarar dela berre med brukarar i deira grupper" #: templates/admin.php:168 msgid "Security" -msgstr "" +msgstr "Tryggleik" #: templates/admin.php:181 msgid "Enforce HTTPS" -msgstr "" +msgstr "Krev HTTPS" #: templates/admin.php:182 msgid "" "Enforces the clients to connect to ownCloud via an encrypted connection." -msgstr "" +msgstr "Krev at klientar koplar til ownCloud med ei kryptert tilkopling." #: templates/admin.php:185 msgid "" "Please connect to this ownCloud instance via HTTPS to enable or disable the " "SSL enforcement." -msgstr "" +msgstr "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å skru av/på SSL-handhevinga." #: templates/admin.php:195 msgid "Log" -msgstr "" +msgstr "Logg" #: templates/admin.php:196 msgid "Log level" @@ -319,15 +319,15 @@ msgstr "Log nivå" #: templates/admin.php:227 msgid "More" -msgstr "" +msgstr "Meir" #: templates/admin.php:228 msgid "Less" -msgstr "" +msgstr "Mindre" #: templates/admin.php:235 templates/personal.php:105 msgid "Version" -msgstr "" +msgstr "Utgåve" #: templates/admin.php:237 templates/personal.php:108 msgid "" @@ -337,15 +337,15 @@ msgid "" "licensed under the AGPL." -msgstr "" +msgstr "Kjeldekoden, utvikla av ownCloud-fellesskapet, er lisensiert under AGPL." #: templates/apps.php:11 msgid "Add your App" -msgstr "" +msgstr "Legg til din app" #: templates/apps.php:12 msgid "More Apps" -msgstr "" +msgstr "Fleire app-ar" #: templates/apps.php:28 msgid "Select an App" @@ -353,11 +353,11 @@ msgstr "Vel ein applikasjon" #: templates/apps.php:34 msgid "See application page at apps.owncloud.com" -msgstr "" +msgstr "Sjå applikasjonssida på apps.owncloud.com" #: templates/apps.php:36 msgid "-licensed by " -msgstr "" +msgstr "Lisensiert under av " #: templates/apps.php:38 msgid "Update" @@ -365,40 +365,40 @@ msgstr "Oppdater" #: templates/help.php:4 msgid "User Documentation" -msgstr "" +msgstr "Brukardokumentasjon" #: templates/help.php:6 msgid "Administrator Documentation" -msgstr "" +msgstr "Administratordokumentasjon" #: templates/help.php:9 msgid "Online Documentation" -msgstr "" +msgstr "Dokumentasjon på nett" #: templates/help.php:11 msgid "Forum" -msgstr "" +msgstr "Forum" #: templates/help.php:14 msgid "Bugtracker" -msgstr "" +msgstr "Feilsporar" #: templates/help.php:17 msgid "Commercial Support" -msgstr "" +msgstr "Betalt brukarstøtte" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" -msgstr "" +msgstr "Du har brukt %s av dine tilgjengelege %s" #: templates/personal.php:15 msgid "Get the apps to sync your files" -msgstr "" +msgstr "Få app-ar som kan synkronisera filene dine" #: templates/personal.php:26 msgid "Show First Run Wizard again" -msgstr "" +msgstr "Vis Oppstartvegvisaren igjen" #: templates/personal.php:37 templates/users.php:23 templates/users.php:77 msgid "Password" @@ -406,7 +406,7 @@ msgstr "Passord" #: templates/personal.php:38 msgid "Your password was changed" -msgstr "" +msgstr "Passordet ditt er endra" #: templates/personal.php:39 msgid "Unable to change your password" @@ -426,7 +426,7 @@ msgstr "Endra passord" #: templates/personal.php:56 templates/users.php:76 msgid "Display Name" -msgstr "" +msgstr "Visningsnamn" #: templates/personal.php:68 msgid "Email" @@ -446,19 +446,19 @@ msgstr "Språk" #: templates/personal.php:89 msgid "Help translate" -msgstr "Hjelp oss å oversett" +msgstr "Hjelp oss å omsetja" #: templates/personal.php:94 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" #: templates/personal.php:96 msgid "Use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "Bruk denne adressa for å kopla til din ownCloud frå filhandsamaren din" #: templates/users.php:21 templates/users.php:75 msgid "Login Name" -msgstr "" +msgstr "Innloggingsnamn" #: templates/users.php:30 msgid "Create" @@ -466,11 +466,11 @@ msgstr "Lag" #: templates/users.php:33 msgid "Default Storage" -msgstr "" +msgstr "Standardlagring" #: templates/users.php:39 templates/users.php:133 msgid "Unlimited" -msgstr "" +msgstr "Ubegrensa" #: templates/users.php:57 templates/users.php:148 msgid "Other" @@ -478,16 +478,16 @@ msgstr "Anna" #: templates/users.php:82 msgid "Storage" -msgstr "" +msgstr "Lagring" #: templates/users.php:93 msgid "change display name" -msgstr "" +msgstr "endra visningsnamn" #: templates/users.php:97 msgid "set new password" -msgstr "" +msgstr "lag nytt passord" #: templates/users.php:128 msgid "Default" -msgstr "" +msgstr "Standard" diff --git a/l10n/oc/core.po b/l10n/oc/core.po index cfe04502c9d..7e55cfc6760 100644 --- a/l10n/oc/core.po +++ b/l10n/oc/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Services web jos ton contraròtle" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/pl/core.po b/l10n/pl/core.po index fdcebbcf3b3..ea1cd8ebbc9 100644 --- a/l10n/pl/core.po +++ b/l10n/pl/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Kontrolowane serwisy" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/pl_PL/core.po b/l10n/pl_PL/core.po index 594e91a9ef7..39727ca3bad 100644 --- a/l10n/pl_PL/core.po +++ b/l10n/pl_PL/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/pt_BR/core.po b/l10n/pt_BR/core.po index 9080566d6f5..663c38c70f9 100644 --- a/l10n/pt_BR/core.po +++ b/l10n/pt_BR/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 13:50+0000\n" -"Last-Translator: Flávio Veras \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "serviços web sob seu controle" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s está disponível. Click aqui para mais infoemações." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index 305f104efab..9fd8df290be 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "serviços web sob o seu controlo" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ro/core.po b/l10n/ro/core.po index f7aa13b05c8..a5db03c655c 100644 --- a/l10n/ro/core.po +++ b/l10n/ro/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -563,7 +563,7 @@ msgstr "servicii web controlate de tine" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ru/core.po b/l10n/ru/core.po index fb18d6e89c9..5cb4935c7fd 100644 --- a/l10n/ru/core.po +++ b/l10n/ru/core.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Vyacheslav Muranov , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Ссылка для сброса пароля была отправлена ​​по электронной почте.
Если вы не получите его в пределах одной двух минут, проверьте папку спам.
Если это не возможно, обратитесь к Вашему администратору." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Что-то не так. Вы уверены что Email / Имя пользователя указаны верно?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -562,7 +563,7 @@ msgstr "веб-сервисы под вашим управлением" #: templates/layout.user.php:36 #, php-format -msgid "%s is available.
Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ru_RU/core.po b/l10n/ru_RU/core.po index 2a928621eff..bfbe3274c45 100644 --- a/l10n/ru_RU/core.po +++ b/l10n/ru_RU/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/si_LK/core.po b/l10n/si_LK/core.po index b718aac8ac7..56ebb8d4052 100644 --- a/l10n/si_LK/core.po +++ b/l10n/si_LK/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "ඔබට පාලනය කළ හැකි වෙබ් සේවා #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sk/core.po b/l10n/sk/core.po index 25986ed8e27..267759adece 100644 --- a/l10n/sk/core.po +++ b/l10n/sk/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sk_SK/core.po b/l10n/sk_SK/core.po index 492549a35e8..bac1aabe45c 100644 --- a/l10n/sk_SK/core.po +++ b/l10n/sk_SK/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 18:50+0000\n" -"Last-Translator: mhh \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -563,8 +563,8 @@ msgstr "webové služby pod Vašou kontrolou" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." -msgstr "%s je dostupná. Pre viac informácií kliknite tu." +msgid "%s is available. Get more information on how to update." +msgstr "" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/sl/core.po b/l10n/sl/core.po index d1f51f0328a..c420c56eafc 100644 --- a/l10n/sl/core.po +++ b/l10n/sl/core.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mateju <>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Povezava za ponastavitev gesla je bila poslana na elektronski naslov.
V kolikor sporočila ne prejmete v doglednem času, preverite tudi mape vsiljene pošte.
Če ne bo niti tam, stopite v stik s skrbnikom." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Zahteva je spodletela!
Ali sta elektronski naslov oziroma uporabniško ime navedena pravilno?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -562,7 +563,7 @@ msgstr "spletne storitve pod vašim nadzorom" #: templates/layout.user.php:36 #, php-format -msgid "%s is available.
Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sl/files_external.po b/l10n/sl/files_external.po index 4219b03122d..9b471162289 100644 --- a/l10n/sl/files_external.po +++ b/l10n/sl/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mateju <>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 18:20+0000\n" +"Last-Translator: mateju <>\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -48,14 +49,14 @@ msgid "" "Warning: The FTP support in PHP is not enabled or installed. Mounting" " of FTP shares is not possible. Please ask your system administrator to " "install it." -msgstr "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ni mogoče." +msgstr "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ne bo mogoče." #: lib/config.php:437 msgid "" "Warning: The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "your system administrator to install it." -msgstr "" +msgstr "Opozorilo: podpora za Curl v PHP ni omogočena ali pa ni nameščena. Priklapljanje točke ownCloud / WebDAV ali GoogleDrive zato ne bo mogoče. Zahtevane pakete je treba pred uporabo namestiti." #: templates/settings.php:3 msgid "External Storage" @@ -108,7 +109,7 @@ msgstr "Izbriši" #: templates/settings.php:129 msgid "Enable User External Storage" -msgstr "Omogoči uporabniško zunanjo podatkovno shrambo" +msgstr "Omogoči zunanjo uporabniško podatkovno shrambo" #: templates/settings.php:130 msgid "Allow users to mount their own external storage" diff --git a/l10n/sl/lib.po b/l10n/sl/lib.po index f334cda7411..636c2a101d7 100644 --- a/l10n/sl/lib.po +++ b/l10n/sl/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 18:10+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/sl/settings.po b/l10n/sl/settings.po index 740ad3abb6f..65640901d20 100644 --- a/l10n/sl/settings.po +++ b/l10n/sl/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mateju <>, 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 18:10+0000\n" +"Last-Translator: mateju <>\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,16 +20,16 @@ msgstr "" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" -msgstr "Ni mogoče naložiti seznama iz središča App Store" +msgstr "Ni mogoče naložiti seznama iz programskega središča" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/togglegroups.php:20 msgid "Authentication error" -msgstr "Napaka pri overjanju" +msgstr "Napaka med overjanjem" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Prikazano ime je bilo spremenjeno." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -328,7 +329,7 @@ msgstr "Manj" msgid "Version" msgstr "Različica" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Lidhja për rivendosjen e kodit tuaj u dërgua tek email-i juaj.
Nëqoftëse nuk e merrni brenda një kohe të arsyeshme, kontrolloni dosjet e postës së padëshirueshme (spam).
Nëqoftëse nuk është as aty, pyesni administratorin tuaj lokal." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Kërkesa dështoi!
A u siguruat që email-i/përdoruesi juaj ishte i saktë?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -562,7 +563,7 @@ msgstr "shërbime web nën kontrollin tënd" #: templates/layout.user.php:36 #, php-format -msgid "%s is available.
Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sq/settings.po b/l10n/sq/settings.po index 6a58a4d818e..7ad44cb2f89 100644 --- a/l10n/sq/settings.po +++ b/l10n/sq/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 08:28+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 22:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" @@ -328,7 +328,7 @@ msgstr "" msgid "Version" msgstr "" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "веб сервиси под контролом" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sr@latin/core.po b/l10n/sr@latin/core.po index d66d1df95ef..555da08b9e8 100644 --- a/l10n/sr@latin/core.po +++ b/l10n/sr@latin/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sv/core.po b/l10n/sv/core.po index 3ee364159f8..800698a5ad1 100644 --- a/l10n/sv/core.po +++ b/l10n/sv/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "webbtjänster under din kontroll" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/sw_KE/core.po b/l10n/sw_KE/core.po index 5e07108b521..09988ffea27 100644 --- a/l10n/sw_KE/core.po +++ b/l10n/sw_KE/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ta_LK/core.po b/l10n/ta_LK/core.po index a0b6427fe4e..40d5b280c9b 100644 --- a/l10n/ta_LK/core.po +++ b/l10n/ta_LK/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "வலைய சேவைகள் உங்களுடைய கட் #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/te/core.po b/l10n/te/core.po index e4fb340b125..5e3424a27a1 100644 --- a/l10n/te/core.po +++ b/l10n/te/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 61c1dba6ce7..43806ecc132 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 9958d9a9a77..e4dcc585eec 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -86,7 +86,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -156,66 +156,66 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" @@ -279,37 +279,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 7b345c7edd5..0dbd3c7505f 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index f6af20af12e..99ed6fe07c3 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 485f516e155..d36a214d44f 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 60cd70dff4c..e8d8e484a42 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index a6be10135b8..63354ff4ad6 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index f78499f176c..84cafdb47bc 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 7694e52c0c9..2e98212a05c 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 9118466368c..a6a852ad6f4 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 44ef971c922..a6324aaed71 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/core.po b/l10n/th_TH/core.po index 3e95197c83d..daec53114a6 100644 --- a/l10n/th_TH/core.po +++ b/l10n/th_TH/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "เว็บเซอร์วิสที่คุณควบคุม #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/tr/core.po b/l10n/tr/core.po index 40034dc2d60..20f16df25d0 100644 --- a/l10n/tr/core.po +++ b/l10n/tr/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "Bilgileriniz güvenli ve şifreli" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/uk/core.po b/l10n/uk/core.po index 98111065759..8c37c907369 100644 --- a/l10n/uk/core.po +++ b/l10n/uk/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "підконтрольні Вам веб-сервіси" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/ur_PK/core.po b/l10n/ur_PK/core.po index ea5ffb43c17..dab44591bda 100644 --- a/l10n/ur_PK/core.po +++ b/l10n/ur_PK/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "آپ کے اختیار میں ویب سروسیز" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/vi/core.po b/l10n/vi/core.po index 4abdceb040c..d664c1fa066 100644 --- a/l10n/vi/core.po +++ b/l10n/vi/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "dịch vụ web dưới sự kiểm soát của bạn" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/zh_CN.GB2312/core.po b/l10n/zh_CN.GB2312/core.po index 9ce66c7899c..3722c01c658 100644 --- a/l10n/zh_CN.GB2312/core.po +++ b/l10n/zh_CN.GB2312/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "您控制的网络服务" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index 2a7d6a6846f..1b9c3c88568 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "您控制的web服务" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/zh_HK/core.po b/l10n/zh_HK/core.po index 2750308a1a2..524bd63e932 100644 --- a/l10n/zh_HK/core.po +++ b/l10n/zh_HK/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/l10n/zh_TW/core.po b/l10n/zh_TW/core.po index e558416dc1b..1191b8653f1 100644 --- a/l10n/zh_TW/core.po +++ b/l10n/zh_TW/core.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-04-30 01:57+0200\n" +"PO-Revision-Date: 2013-04-29 23:57+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -562,7 +562,7 @@ msgstr "由您控制的網路服務" #: templates/layout.user.php:36 #, php-format -msgid "%s is available. Click here to get more information." +msgid "%s is available. Get more information on how to update." msgstr "" #: templates/layout.user.php:61 diff --git a/lib/l10n/nn_NO.php b/lib/l10n/nn_NO.php index 6f7f8046e6e..f8f15c9fba6 100644 --- a/lib/l10n/nn_NO.php +++ b/lib/l10n/nn_NO.php @@ -7,5 +7,15 @@ "Admin" => "Administrer", "Authentication error" => "Feil i autentisering", "Files" => "Filer", -"Text" => "Tekst" +"Text" => "Tekst", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.", +"Please double check the installation guides." => "Ver vennleg og dobbeltsjekk installasjonsrettleiinga.", +"seconds ago" => "sekund sidan", +"1 minute ago" => "1 minutt sidan", +"1 hour ago" => "1 time sidan", +"today" => "i dag", +"yesterday" => "i går", +"last month" => "førre månad", +"last year" => "i fjor", +"years ago" => "år sidan" ); diff --git a/settings/l10n/es.php b/settings/l10n/es.php index b4bd555cb8e..3db3169ca87 100644 --- a/settings/l10n/es.php +++ b/settings/l10n/es.php @@ -104,7 +104,7 @@ "Default Storage" => "Almacenamiento Predeterminado", "Unlimited" => "Ilimitado", "Other" => "Otro", -"Storage" => "Alamacenamiento", +"Storage" => "Almacenamiento", "change display name" => "Cambiar nombre a mostrar", "set new password" => "Configurar nueva contraseña", "Default" => "Predeterminado" diff --git a/settings/l10n/nn_NO.php b/settings/l10n/nn_NO.php index 4f76253ff24..0e4d0a66a14 100644 --- a/settings/l10n/nn_NO.php +++ b/settings/l10n/nn_NO.php @@ -1,5 +1,5 @@ "Klarer ikkje å laste inn liste fra App Store", +"Unable to load list from App Store" => "Klarer ikkje å lasta inn liste fra app-butikken", "Authentication error" => "Autentiseringsfeil", "Your display name has been changed." => "Visningsnamnet ditt er endra.", "Unable to change display name" => "Klarte ikkje å endra visningsnamnet", @@ -12,32 +12,100 @@ "Unable to delete user" => "Klarte ikkje å sletta brukaren", "Language changed" => "Språk endra", "Invalid request" => "Ugyldig førespurnad", -"Admins can't remove themself from the admin group" => "Administratorar kan ikkje fjerna seg sjølv frå admin-gruppa", +"Admins can't remove themself from the admin group" => "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa", "Unable to add user to group %s" => "Klarte ikkje å leggja til brukaren til gruppa %s", "Unable to remove user from group %s" => "Klarte ikkje å fjerna brukaren frå gruppa %s", "Couldn't update app." => "Klarte ikkje å oppdatera app-en.", "Update to {appversion}" => "Oppdater til {appversion}", "Disable" => "Slå av", "Enable" => "Slå på", -"Please wait...." => "Ver vennleg og vent …", +"Please wait...." => "Ver venleg og vent …", "Error" => "Feil", +"Updating...." => "Oppdaterer …", +"Error while updating app" => "Feil ved oppdatering av app", +"Updated" => "Oppdatert", +"Saving..." => "Lagrar …", +"deleted" => "sletta", +"undo" => "angra", +"Unable to remove user" => "Klarte ikkje å fjerna brukaren", "Groups" => "Grupper", +"Group Admin" => "Gruppestyrar", "Delete" => "Slett", +"add group" => "legg til gruppe", +"A valid username must be provided" => "Du må oppgje eit gyldig brukarnamn", +"Error creating user" => "Feil ved oppretting av brukar", +"A valid password must be provided" => "Du må oppgje eit gyldig passord", "__language_name__" => "Nynorsk", -"This ownCloud 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 of ownCloud." => "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil bruka alle funksjonane til ownCloud.", +"Security Warning" => "Tryggleiksåtvaring", +"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides 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." => "Datamappa og filene dine er sannsynlegvis tilgjengelege frå Internett. Fila .htaccess som ownCloud tilbyr fungerer ikkje. Me rår sterkt til at du set opp tenaren din slik at datamappa ikkje lenger er tilgjengeleg, eller at du flyttar datamappa vekk frå dokumentrota til tenaren.", +"Setup Warning" => "Oppsettsåtvaring", +"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.", +"Please double check the installation guides." => "Ver venleg og dobbeltsjekk installasjonsrettleiinga.", +"Module 'fileinfo' missing" => "Modulen «fileinfo» manglar", +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP-modulen «fileinfo» manglar. Me rår sterkt til å skru på denne modulen for å best mogleg oppdaga MIME-typar.", +"Locale not working" => "Regionaldata fungerer ikkje", +"This ownCloud server can't set system locale to %s. 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 %s." => "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som krevst for å støtta %s.", +"Internet connection not working" => "Nettilkoplinga fungerer ikkje", +"This ownCloud 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 of ownCloud." => "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud.", +"Cron" => "Cron", +"Execute one task with each page loaded" => "Utfør éi oppgåve for kvar sidelasting", +"cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php er registrert ved ei webcron-teneste. Last sida cron.php i ownCloud-rota ein gong i minuttet over http.", +"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Bruk cron-tenesta til systemet. Køyr fila cron.php i ownCloud-mappa frå ein cron-jobb på systemet ein gong i minuttet.", +"Sharing" => "Deling", +"Enable Share API" => "Skru på API-et for deling", +"Allow apps to use the Share API" => "La app-ar bruka API-et til deling", +"Allow links" => "Tillat lenkjer", +"Allow users to share items to the public with links" => "La brukarar dela ting offentleg med lenkjer", +"Allow resharing" => "Tillat vidaredeling", +"Allow users to share items shared with them again" => "La brukarar vidaredela delte ting", +"Allow users to share with anyone" => "La brukarar dela med kven som helst", +"Allow users to only share with users in their groups" => "La brukarar dela berre med brukarar i deira grupper", +"Security" => "Tryggleik", +"Enforce HTTPS" => "Krev HTTPS", +"Enforces the clients to connect to ownCloud via an encrypted connection." => "Krev at klientar koplar til ownCloud med ei kryptert tilkopling.", +"Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å skru av/på SSL-handhevinga.", +"Log" => "Logg", "Log level" => "Log nivå", +"More" => "Meir", +"Less" => "Mindre", +"Version" => "Utgåve", +"Developed by the ownCloud community, the source code is licensed under the AGPL." => "Kjeldekoden, utvikla av ownCloud-fellesskapet, er lisensiert under AGPL.", +"Add your App" => "Legg til din app", +"More Apps" => "Fleire app-ar", "Select an App" => "Vel ein applikasjon", +"See application page at apps.owncloud.com" => "Sjå applikasjonssida på apps.owncloud.com", +"-licensed by " => "Lisensiert under av ", "Update" => "Oppdater", +"User Documentation" => "Brukardokumentasjon", +"Administrator Documentation" => "Administratordokumentasjon", +"Online Documentation" => "Dokumentasjon på nett", +"Forum" => "Forum", +"Bugtracker" => "Feilsporar", +"Commercial Support" => "Betalt brukarstøtte", +"You have used %s of the available %s" => "Du har brukt %s av dine tilgjengelege %s", +"Get the apps to sync your files" => "Få app-ar som kan synkronisera filene dine", +"Show First Run Wizard again" => "Vis Oppstartvegvisaren igjen", "Password" => "Passord", +"Your password was changed" => "Passordet ditt er endra", "Unable to change your password" => "Klarte ikkje å endra passordet", "Current password" => "Passord", "New password" => "Nytt passord", "Change password" => "Endra passord", +"Display Name" => "Visningsnamn", "Email" => "E-post", "Your email address" => "Di epost-adresse", "Fill in an email address to enable password recovery" => "Fyll inn e-postadressa di for å aktivera passordgjenoppretting", "Language" => "Språk", -"Help translate" => "Hjelp oss å oversett", +"Help translate" => "Hjelp oss å omsetja", +"WebDAV" => "WebDAV", +"Use this address to connect to your ownCloud in your file manager" => "Bruk denne adressa for å kopla til din ownCloud frå filhandsamaren din", +"Login Name" => "Innloggingsnamn", "Create" => "Lag", -"Other" => "Anna" +"Default Storage" => "Standardlagring", +"Unlimited" => "Ubegrensa", +"Other" => "Anna", +"Storage" => "Lagring", +"change display name" => "endra visningsnamn", +"set new password" => "lag nytt passord", +"Default" => "Standard" ); diff --git a/settings/l10n/sl.php b/settings/l10n/sl.php index af5b3f20d95..55d957cfa7d 100644 --- a/settings/l10n/sl.php +++ b/settings/l10n/sl.php @@ -1,6 +1,7 @@ "Ni mogoče naložiti seznama iz središča App Store", -"Authentication error" => "Napaka pri overjanju", +"Unable to load list from App Store" => "Ni mogoče naložiti seznama iz programskega središča", +"Authentication error" => "Napaka med overjanjem", +"Your display name has been changed." => "Prikazano ime je bilo spremenjeno.", "Unable to change display name" => "Prikazanega imena ni mogoče spremeniti.", "Group already exists" => "Skupina že obstaja", "Unable to add group" => "Skupine ni mogoče dodati", diff --git a/settings/l10n/sq.php b/settings/l10n/sq.php index 36ae95c8252..03db0cd8fcd 100644 --- a/settings/l10n/sq.php +++ b/settings/l10n/sq.php @@ -9,5 +9,6 @@ "Update" => "Azhurno", "Get the apps to sync your files" => "Merrni app-et për sinkronizimin e skedarëve tuaj", "Password" => "Kodi", -"New password" => "Kodi i ri" +"New password" => "Kodi i ri", +"Email" => "Email-i" ); -- GitLab From fbbc76f281f50afa3072d99e4e0d413df835b3d3 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 30 Apr 2013 20:44:42 +0200 Subject: [PATCH 178/454] fix for sharing files --- apps/files_encryption/lib/proxy.php | 33 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 23290b5b20b..50f30594b42 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -153,9 +153,9 @@ class Proxy extends \OC_FileProxy { $data = $encData; // Update the file cache with file info - \OC\Files\Filesystem::putFileInfo( $path, array( 'encrypted'=>true, 'size' => $size ), '' ); - - // Re-enable proxy - our work is done + \OC\Files\Filesystem::putFileInfo( $filePath, array( 'encrypted'=>true, 'size' => strlen($size), 'unencrypted_size' => $size), '' ); + + // Re-enable proxy - our work is done \OC_FileProxy::$enabled = $proxyStatus; } @@ -437,24 +437,25 @@ class Proxy extends \OC_FileProxy { $fileInfo = \OC\Files\Filesystem::getFileInfo($path_f); // if file is encrypted return real file size - if (is_array($fileInfo) && $fileInfo['encrypted'] == 1) { + if (is_array($fileInfo) && $fileInfo['encrypted'] === true) { $size = $fileInfo['unencrypted_size']; } else { // self healing if file was removed from file cache - $userId = \OCP\User::getUser(); - $util = new Util( $view, $userId ); - $fixSize = $util->getFileSize($path); - if($fixSize > 0) { - $size = $fixSize; - - $fileInfo['encrypted'] = 1; - $fileInfo['unencrypted_size'] = $size; - - // put file info - $view->putFileInfo( $path, $fileInfo ); + if(is_array($fileInfo)) { + $userId = \OCP\User::getUser(); + $util = new Util( $view, $userId ); + $fixSize = $util->getFileSize($path); + if($fixSize > 0) { + $size = $fixSize; + + $fileInfo['encrypted'] = 1; + $fileInfo['unencrypted_size'] = $size; + + // put file info + $view->putFileInfo( $path_f, $fileInfo ); + } } } - return $size; } -- GitLab From b08179d406cf5af76291bba2edf81b9563a46f44 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 30 Apr 2013 23:58:53 +0200 Subject: [PATCH 179/454] fixed tests after merge against master --- apps/files_encryption/tests/crypt.php | 9 ++++++--- apps/files_encryption/tests/keymanager.php | 7 +++++-- apps/files_encryption/tests/stream.php | 2 +- apps/files_encryption/tests/util.php | 9 +++++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 7f9572f4266..4a85048ba43 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -21,7 +21,6 @@ use OCA\Encryption; // This has to go here because otherwise session errors arise, and the private // encryption key needs to be saved in the session -\OC_User::login( 'admin', 'admin' ); /** * @note It would be better to use Mockery here for mocking out the session @@ -37,7 +36,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // reset backend \OC_User::useBackend('database'); - // set content for encrypting / decrypting in tests + // set content for encrypting / decrypting in tests $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); $this->dataShort = 'hats'; $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); @@ -60,13 +59,17 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init($this->userId, '/'); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + + $params['uid'] = $this->userId; + $params['password'] = $this->pass; + OCA\Encryption\Hooks::login($params); } function tearDown() { } - function testGenerateKey() { + function testGenerateKey() { # TODO: use more accurate (larger) string length for test confirmation diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 81034be54b1..33ca29997be 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -19,7 +19,7 @@ use OCA\Encryption; // This has to go here because otherwise session errors arise, and the private // encryption key needs to be saved in the session -\OC_User::login( 'admin', 'admin' ); +//\OC_User::login( 'admin', 'admin' ); class Test_Keymanager extends \PHPUnit_Framework_TestCase { @@ -52,7 +52,10 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init( $this->userId, '/' ); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); - + + $params['uid'] = $this->userId; + $params['password'] = $this->pass; + OCA\Encryption\Hooks::login($params); } function tearDown(){ diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php index ba82ac80eab..633cc9e4fce 100644 --- a/apps/files_encryption/tests/stream.php +++ b/apps/files_encryption/tests/stream.php @@ -1,4 +1,4 @@ -// // * This file is licensed under the Affero General Public License version 3 or diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 0659b468a37..e3ec0860fa5 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -24,8 +24,6 @@ $loader->register(); use \Mockery as m; use OCA\Encryption; -\OC_User::login( 'admin', 'admin' ); - class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function setUp() { @@ -62,6 +60,10 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init( $this->userId, '/' ); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + $params['uid'] = $this->userId; + $params['password'] = $this->pass; + OCA\Encryption\Hooks::login($params); + $mockView = m::mock('OC_FilesystemView'); $this->util = new Encryption\Util( $mockView, $this->userId ); @@ -75,6 +77,9 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { /** * @brief test that paths set during User construction are correct + * + * + * */ function testKeyPaths() { -- GitLab From 5deba29bdfedc3ee2babece9eafff0bb709cd90c Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 1 May 2013 00:09:55 +0200 Subject: [PATCH 180/454] fixed public-keys mount point error --- apps/files_encryption/hooks/hooks.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 25c2d091c4b..e27054f0ec8 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -45,7 +45,12 @@ class Hooks { $view = new \OC_FilesystemView( '/' ); - $util = new Util( $view, $params['uid'] ); + $userHome = \OC_User::getHome($params['uid']); + $dataDir = str_replace('/'.$params['uid'], '', $userHome); + + \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $dataDir .'/public-keys'), '/public-keys/' ); + + $util = new Util( $view, $params['uid'] ); // Check files_encryption infrastructure is ready for action if ( ! $util->ready() ) { -- GitLab From 4c980b1a14453d2732a432dbc6c14dd4ed1155fe Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 1 May 2013 00:24:34 +0200 Subject: [PATCH 181/454] Set storage id for openstack swift backend --- apps/files_external/lib/swift.php | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 68c4b48f17c..a9cfe5bd20f 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -287,6 +287,7 @@ class SWIFT extends \OC\Files\Storage\Common{ if ( ! $this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } + $this->id = 'swift:' . $this->host . ':'.$this->root . ':' . $this->user; } else { throw new \Exception(); } -- GitLab From d8e6db560877fc16d3eb0a825c94faa34179fb3a Mon Sep 17 00:00:00 2001 From: kondou Date: Wed, 1 May 2013 00:34:13 +0200 Subject: [PATCH 182/454] Sort priorized languages as defined in the array Also add russian and arabic to the common languages. --- settings/personal.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/settings/personal.php b/settings/personal.php index 57a7e4ee9cd..de029770d98 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -24,12 +24,13 @@ $languageCodes=OC_L10N::findAvailableLanguages(); // array of common languages $commonlangcodes = array( - 'en', 'es', 'fr', 'de', 'de_DE', 'ja_JP', 'nl', 'it', 'pt_BR', 'pt_PT', 'da', 'fi_FI', 'nb_NO', 'sv', 'zh_CN', 'ko' + 'en', 'es', 'fr', 'de', 'de_DE', 'ja_JP', 'ar', 'ru', 'nl', 'it', 'pt_BR', 'pt_PT', 'da', 'fi_FI', 'nb_NO', 'sv', 'zh_CN', 'ko' ); $languageNames=include 'languageCodes.php'; $languages=array(); -$commonlanguages = array(); +// Initialize array, so we can substitue later with our in $commonlangcodes specified order +$commonlanguages = array_fill(0, count($commonlangcodes), ""); foreach($languageCodes as $lang) { $l=OC_L10N::get('settings', $lang); if(substr($l->t('__language_name__'), 0, 1)!='_') {//first check if the language name is in the translation file @@ -45,7 +46,7 @@ foreach($languageCodes as $lang) { if ($lang === $userLang) { $userLang = $ln; } elseif (in_array($lang, $commonlangcodes)) { - $commonlanguages[]=$ln; + $commonlanguages[array_search($lang, $commonlangcodes)]=$ln; } else { $languages[]=$ln; } -- GitLab From 3c100af1329c1c101f38f23f2d74710954387fdf Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 1 May 2013 01:38:06 +0200 Subject: [PATCH 183/454] revert changes to fbbc76f281f50afa3072d99e4e0d413df835b3d3 because master is very unstable right now --- apps/files/js/files.js | 5 - apps/files/l10n/ar.php | 6 +- apps/files/l10n/bg_BG.php | 8 +- apps/files/l10n/bn_BD.php | 15 +- apps/files/l10n/ca.php | 16 +- apps/files/l10n/cs_CZ.php | 8 +- apps/files/l10n/da.php | 17 +- apps/files/l10n/de.php | 21 +- apps/files/l10n/de_DE.php | 11 +- apps/files/l10n/el.php | 6 +- apps/files/l10n/eo.php | 11 +- apps/files/l10n/es.php | 18 +- apps/files/l10n/es_AR.php | 14 +- apps/files/l10n/et_EE.php | 6 +- apps/files/l10n/eu.php | 13 +- apps/files/l10n/fa.php | 23 +- apps/files/l10n/fi_FI.php | 10 +- apps/files/l10n/fr.php | 16 +- apps/files/l10n/gl.php | 10 +- apps/files/l10n/he.php | 10 +- apps/files/l10n/hr.php | 22 +- apps/files/l10n/hu_HU.php | 4 +- apps/files/l10n/ia.php | 2 +- apps/files/l10n/id.php | 6 +- apps/files/l10n/it.php | 12 +- apps/files/l10n/ja_JP.php | 14 +- apps/files/l10n/ka_GE.php | 2 +- apps/files/l10n/ko.php | 18 +- apps/files/l10n/lb.php | 4 +- apps/files/l10n/lt_LT.php | 8 +- apps/files/l10n/lv.php | 4 +- apps/files/l10n/mk.php | 10 +- apps/files/l10n/ms_MY.php | 17 +- apps/files/l10n/nb_NO.php | 13 +- apps/files/l10n/nl.php | 28 +- apps/files/l10n/nn_NO.php | 53 +-- apps/files/l10n/oc.php | 3 +- apps/files/l10n/pl.php | 14 +- apps/files/l10n/pt_BR.php | 14 +- apps/files/l10n/pt_PT.php | 20 +- apps/files/l10n/ro.php | 24 +- apps/files/l10n/ru.php | 19 +- apps/files/l10n/si_LK.php | 13 +- apps/files/l10n/sk_SK.php | 24 +- apps/files/l10n/sl.php | 17 +- apps/files/l10n/sr.php | 2 +- apps/files/l10n/sv.php | 11 +- apps/files/l10n/ta_LK.php | 5 +- apps/files/l10n/th_TH.php | 17 +- apps/files/l10n/tr.php | 14 +- apps/files/l10n/uk.php | 4 +- apps/files/l10n/ur_PK.php | 3 +- apps/files/l10n/vi.php | 15 +- apps/files/l10n/zh_CN.GB2312.php | 21 +- apps/files/l10n/zh_CN.php | 14 +- apps/files/templates/index.php | 3 +- apps/files_encryption/hooks/hooks.php | 7 +- apps/files_encryption/l10n/ca.php | 2 +- apps/files_encryption/l10n/de.php | 2 +- apps/files_encryption/l10n/de_DE.php | 2 +- apps/files_encryption/l10n/el.php | 2 +- apps/files_encryption/l10n/eu.php | 2 +- apps/files_encryption/l10n/it.php | 2 +- apps/files_encryption/l10n/pl.php | 2 +- apps/files_encryption/l10n/pt_BR.php | 2 +- apps/files_encryption/l10n/ru.php | 2 +- apps/files_encryption/l10n/sk_SK.php | 2 +- apps/files_encryption/l10n/th_TH.php | 2 +- apps/files_encryption/l10n/vi.php | 2 +- apps/files_encryption/tests/crypt.php | 9 +- apps/files_encryption/tests/keymanager.php | 7 +- apps/files_encryption/tests/stream.php | 2 +- apps/files_encryption/tests/util.php | 9 +- apps/files_external/l10n/ar.php | 2 +- apps/files_external/l10n/bn_BD.php | 2 +- apps/files_external/l10n/ca.php | 2 +- apps/files_external/l10n/de.php | 1 - apps/files_external/l10n/de_DE.php | 1 - apps/files_external/l10n/el.php | 1 - apps/files_external/l10n/es.php | 2 +- apps/files_external/l10n/et_EE.php | 3 +- apps/files_external/l10n/fr.php | 1 - apps/files_external/l10n/lb.php | 1 - apps/files_external/l10n/nl.php | 1 - apps/files_external/l10n/pt_BR.php | 3 +- apps/files_external/l10n/ro.php | 3 - apps/files_external/l10n/ru.php | 1 - apps/files_external/l10n/sk_SK.php | 3 +- apps/files_external/l10n/sl.php | 5 +- apps/files_external/l10n/zh_TW.php | 20 +- apps/files_sharing/l10n/bn_BD.php | 2 +- apps/files_sharing/l10n/de_DE.php | 4 +- apps/files_sharing/l10n/he.php | 2 +- apps/files_sharing/l10n/hi.php | 3 - apps/files_sharing/l10n/hr.php | 6 - apps/files_sharing/l10n/hy.php | 4 - apps/files_sharing/l10n/ia.php | 6 - apps/files_sharing/l10n/ku_IQ.php | 2 +- apps/files_sharing/l10n/lb.php | 5 +- apps/files_sharing/l10n/lt_LT.php | 8 +- apps/files_sharing/l10n/lv.php | 2 +- apps/files_sharing/l10n/ms_MY.php | 6 - apps/files_sharing/l10n/nn_NO.php | 6 - apps/files_sharing/l10n/oc.php | 6 - apps/files_sharing/l10n/pt_BR.php | 2 +- apps/files_sharing/l10n/si_LK.php | 4 +- apps/files_sharing/l10n/sk_SK.php | 2 +- apps/files_sharing/l10n/sr.php | 3 +- apps/files_sharing/l10n/sr@latin.php | 5 - apps/files_sharing/l10n/tr.php | 2 +- apps/files_sharing/l10n/uk.php | 2 +- apps/files_sharing/l10n/zh_TW.php | 6 +- apps/files_sharing/lib/cache.php | 2 +- apps/files_sharing/lib/sharedstorage.php | 2 +- apps/files_trashbin/l10n/id.php | 8 +- apps/files_trashbin/l10n/nn_NO.php | 5 - apps/files_trashbin/l10n/pl.php | 4 +- apps/files_trashbin/l10n/pt_PT.php | 2 +- apps/files_trashbin/l10n/ro.php | 1 - apps/files_trashbin/l10n/sk_SK.php | 2 +- apps/files_trashbin/lib/trash.php | 395 ++++------------- apps/files_versions/l10n/et_EE.php | 2 +- apps/files_versions/l10n/he.php | 4 +- apps/files_versions/l10n/ku_IQ.php | 4 +- apps/files_versions/l10n/nb_NO.php | 4 +- apps/files_versions/l10n/ro.php | 12 +- apps/files_versions/l10n/si_LK.php | 4 +- apps/files_versions/l10n/ta_LK.php | 4 +- apps/files_versions/l10n/th_TH.php | 4 +- apps/files_versions/l10n/vi.php | 1 - apps/user_ldap/l10n/ca.php | 2 +- apps/user_ldap/l10n/fa.php | 2 +- apps/user_ldap/l10n/gl.php | 2 +- apps/user_ldap/l10n/hi.php | 1 - apps/user_ldap/l10n/hr.php | 1 - apps/user_ldap/l10n/ia.php | 1 - apps/user_ldap/l10n/id.php | 8 +- apps/user_ldap/l10n/ku_IQ.php | 1 - apps/user_ldap/l10n/ms_MY.php | 1 - apps/user_ldap/l10n/nn_NO.php | 1 - apps/user_ldap/l10n/oc.php | 1 - apps/user_ldap/l10n/pl.php | 2 +- apps/user_ldap/l10n/pt_PT.php | 2 +- apps/user_ldap/l10n/sr@latin.php | 1 - apps/user_ldap/l10n/tr.php | 21 - core/css/styles.css | 6 +- core/js/jquery-showpassword.js | 14 +- core/l10n/ar.php | 20 +- core/l10n/bg_BG.php | 51 +-- core/l10n/bn_BD.php | 16 +- core/l10n/ca.php | 6 +- core/l10n/cs_CZ.php | 6 +- core/l10n/cy_GB.php | 2 + core/l10n/da.php | 6 +- core/l10n/de.php | 10 +- core/l10n/de_DE.php | 12 +- core/l10n/el.php | 8 +- core/l10n/eo.php | 3 +- core/l10n/es.php | 12 +- core/l10n/es_AR.php | 40 +- core/l10n/et_EE.php | 13 +- core/l10n/eu.php | 4 +- core/l10n/fa.php | 18 +- core/l10n/fi_FI.php | 45 +- core/l10n/fr.php | 10 +- core/l10n/gl.php | 14 +- core/l10n/he.php | 8 +- core/l10n/hr.php | 6 +- core/l10n/hu_HU.php | 8 +- core/l10n/hy.php | 21 - core/l10n/id.php | 10 +- core/l10n/is.php | 14 +- core/l10n/it.php | 12 +- core/l10n/ja_JP.php | 10 +- core/l10n/ka_GE.php | 14 +- core/l10n/ko.php | 14 +- core/l10n/lb.php | 2 +- core/l10n/lt_LT.php | 2 +- core/l10n/lv.php | 8 +- core/l10n/mk.php | 6 +- core/l10n/ms_MY.php | 4 +- core/l10n/nb_NO.php | 2 +- core/l10n/nl.php | 12 +- core/l10n/nn_NO.php | 96 +--- core/l10n/oc.php | 28 +- core/l10n/pl.php | 4 +- core/l10n/pt_BR.php | 12 +- core/l10n/pt_PT.php | 14 +- core/l10n/ro.php | 23 +- core/l10n/ru.php | 14 +- core/l10n/ru_RU.php | 136 +++++- core/l10n/si_LK.php | 13 +- core/l10n/sk_SK.php | 14 +- core/l10n/sl.php | 10 +- core/l10n/sq.php | 6 +- core/l10n/sr.php | 14 +- core/l10n/sr@latin.php | 2 +- core/l10n/sv.php | 6 +- core/l10n/ta_LK.php | 16 +- core/l10n/th_TH.php | 10 +- core/l10n/tr.php | 6 +- core/l10n/uk.php | 8 +- core/l10n/vi.php | 14 +- core/l10n/zh_CN.GB2312.php | 14 +- core/l10n/zh_CN.php | 12 +- core/l10n/zh_HK.php | 2 + core/l10n/zh_TW.php | 8 +- core/lostpassword/templates/lostpassword.php | 31 +- core/templates/layout.user.php | 3 - l10n/.tx/config | 3 - l10n/af_ZA/core.po | 73 ++- l10n/af_ZA/files.po | 14 +- l10n/af_ZA/files_encryption.po | 4 +- l10n/af_ZA/files_external.po | 15 +- l10n/af_ZA/files_sharing.po | 4 +- l10n/af_ZA/files_trashbin.po | 4 +- l10n/af_ZA/files_versions.po | 4 +- l10n/af_ZA/lib.po | 55 ++- l10n/af_ZA/settings.po | 80 ++-- l10n/af_ZA/user_ldap.po | 4 +- l10n/ar/core.po | 96 ++-- l10n/ar/files.po | 22 +- l10n/ar/files_encryption.po | 6 +- l10n/ar/files_external.po | 17 +- l10n/ar/files_sharing.po | 5 +- l10n/ar/files_trashbin.po | 5 +- l10n/ar/files_versions.po | 5 +- l10n/ar/lib.po | 58 ++- l10n/ar/settings.po | 95 ++-- l10n/ar/user_ldap.po | 4 +- l10n/be/core.po | 69 ++- l10n/be/files.po | 14 +- l10n/be/files_encryption.po | 4 +- l10n/be/files_external.po | 15 +- l10n/be/files_sharing.po | 4 +- l10n/be/files_trashbin.po | 4 +- l10n/be/files_versions.po | 4 +- l10n/be/lib.po | 55 ++- l10n/be/settings.po | 78 ++-- l10n/be/user_ldap.po | 4 +- l10n/bg_BG/core.po | 170 ++++--- l10n/bg_BG/files.po | 28 +- l10n/bg_BG/files_encryption.po | 5 +- l10n/bg_BG/files_external.po | 18 +- l10n/bg_BG/files_sharing.po | 5 +- l10n/bg_BG/files_trashbin.po | 8 +- l10n/bg_BG/files_versions.po | 9 +- l10n/bg_BG/lib.po | 57 ++- l10n/bg_BG/settings.po | 97 ++-- l10n/bg_BG/user_ldap.po | 4 +- l10n/bn_BD/core.po | 90 ++-- l10n/bn_BD/files.po | 29 +- l10n/bn_BD/files_encryption.po | 4 +- l10n/bn_BD/files_external.po | 17 +- l10n/bn_BD/files_sharing.po | 6 +- l10n/bn_BD/files_trashbin.po | 4 +- l10n/bn_BD/files_versions.po | 4 +- l10n/bn_BD/lib.po | 61 ++- l10n/bn_BD/settings.po | 87 ++-- l10n/bn_BD/user_ldap.po | 4 +- l10n/ca/core.po | 82 ++-- l10n/ca/files.po | 37 +- l10n/ca/files_encryption.po | 8 +- l10n/ca/files_external.po | 19 +- l10n/ca/files_sharing.po | 5 +- l10n/ca/files_trashbin.po | 5 +- l10n/ca/files_versions.po | 7 +- l10n/ca/lib.po | 59 ++- l10n/ca/settings.po | 94 ++-- l10n/ca/user_ldap.po | 8 +- l10n/cs_CZ/core.po | 49 +- l10n/cs_CZ/files.po | 25 +- l10n/cs_CZ/files_encryption.po | 6 +- l10n/cs_CZ/files_external.po | 19 +- l10n/cs_CZ/files_sharing.po | 7 +- l10n/cs_CZ/files_trashbin.po | 5 +- l10n/cs_CZ/files_versions.po | 6 +- l10n/cs_CZ/lib.po | 63 ++- l10n/cs_CZ/settings.po | 88 ++-- l10n/cs_CZ/user_ldap.po | 6 +- l10n/cy_GB/core.po | 57 ++- l10n/cy_GB/files.po | 17 +- l10n/cy_GB/files_encryption.po | 4 +- l10n/cy_GB/files_external.po | 15 +- l10n/cy_GB/files_sharing.po | 7 +- l10n/cy_GB/files_trashbin.po | 7 +- l10n/cy_GB/files_versions.po | 4 +- l10n/cy_GB/lib.po | 58 ++- l10n/cy_GB/settings.po | 78 ++-- l10n/cy_GB/user_ldap.po | 4 +- l10n/da/core.po | 89 ++-- l10n/da/files.po | 42 +- l10n/da/files_encryption.po | 7 +- l10n/da/files_external.po | 19 +- l10n/da/files_sharing.po | 6 +- l10n/da/files_trashbin.po | 6 +- l10n/da/files_versions.po | 8 +- l10n/da/lib.po | 70 +-- l10n/da/settings.po | 98 ++-- l10n/da/user_ldap.po | 9 +- l10n/de/core.po | 81 ++-- l10n/de/files.po | 58 ++- l10n/de/files_encryption.po | 8 +- l10n/de/files_external.po | 24 +- l10n/de/files_sharing.po | 9 +- l10n/de/files_trashbin.po | 10 +- l10n/de/files_versions.po | 11 +- l10n/de/lib.po | 73 +-- l10n/de/settings.po | 101 +++-- l10n/de/user_ldap.po | 14 +- l10n/de_DE/core.po | 87 ++-- l10n/de_DE/files.po | 99 +++-- l10n/de_DE/files_encryption.po | 12 +- l10n/de_DE/files_external.po | 24 +- l10n/de_DE/files_sharing.po | 13 +- l10n/de_DE/files_trashbin.po | 11 +- l10n/de_DE/files_versions.po | 16 +- l10n/de_DE/lib.po | 70 ++- l10n/de_DE/settings.po | 110 +++-- l10n/de_DE/user_ldap.po | 18 +- l10n/el/core.po | 90 ++-- l10n/el/files.po | 30 +- l10n/el/files_encryption.po | 9 +- l10n/el/files_external.po | 25 +- l10n/el/files_sharing.po | 7 +- l10n/el/files_trashbin.po | 5 +- l10n/el/files_versions.po | 8 +- l10n/el/lib.po | 66 ++- l10n/el/settings.po | 103 +++-- l10n/el/user_ldap.po | 11 +- l10n/eo/core.po | 77 ++-- l10n/eo/files.po | 29 +- l10n/eo/files_encryption.po | 5 +- l10n/eo/files_external.po | 16 +- l10n/eo/files_sharing.po | 5 +- l10n/eo/files_trashbin.po | 4 +- l10n/eo/files_versions.po | 6 +- l10n/eo/lib.po | 64 +-- l10n/eo/settings.po | 107 +++-- l10n/eo/user_ldap.po | 6 +- l10n/es/core.po | 59 +-- l10n/es/files.po | 46 +- l10n/es/files_encryption.po | 8 +- l10n/es/files_external.po | 22 +- l10n/es/files_sharing.po | 7 +- l10n/es/files_trashbin.po | 6 +- l10n/es/files_versions.po | 10 +- l10n/es/lib.po | 67 ++- l10n/es/settings.po | 111 +++-- l10n/es/user_ldap.po | 12 +- l10n/es_AR/core.po | 115 +++-- l10n/es_AR/files.po | 34 +- l10n/es_AR/files_encryption.po | 6 +- l10n/es_AR/files_external.po | 18 +- l10n/es_AR/files_sharing.po | 5 +- l10n/es_AR/files_trashbin.po | 5 +- l10n/es_AR/files_versions.po | 7 +- l10n/es_AR/lib.po | 71 +-- l10n/es_AR/settings.po | 90 ++-- l10n/es_AR/user_ldap.po | 7 +- l10n/et_EE/core.po | 87 ++-- l10n/et_EE/files.po | 23 +- l10n/et_EE/files_encryption.po | 7 +- l10n/et_EE/files_external.po | 22 +- l10n/et_EE/files_sharing.po | 7 +- l10n/et_EE/files_trashbin.po | 8 +- l10n/et_EE/files_versions.po | 11 +- l10n/et_EE/lib.po | 64 +-- l10n/et_EE/settings.po | 85 ++-- l10n/et_EE/user_ldap.po | 6 +- l10n/et_EE/user_webdavauth.po | 10 +- l10n/eu/core.po | 80 ++-- l10n/eu/files.po | 32 +- l10n/eu/files_encryption.po | 8 +- l10n/eu/files_external.po | 17 +- l10n/eu/files_sharing.po | 5 +- l10n/eu/files_trashbin.po | 5 +- l10n/eu/files_versions.po | 6 +- l10n/eu/lib.po | 67 +-- l10n/eu/settings.po | 90 ++-- l10n/eu/user_ldap.po | 6 +- l10n/fa/core.po | 92 ++-- l10n/fa/files.po | 40 +- l10n/fa/files_encryption.po | 7 +- l10n/fa/files_external.po | 16 +- l10n/fa/files_sharing.po | 6 +- l10n/fa/files_trashbin.po | 5 +- l10n/fa/files_versions.po | 7 +- l10n/fa/lib.po | 58 ++- l10n/fa/settings.po | 98 ++-- l10n/fa/user_ldap.po | 9 +- l10n/fi/core.po | 68 ++- l10n/fi/files.po | 16 +- l10n/fi/lib.po | 55 ++- l10n/fi_FI/core.po | 126 +++--- l10n/fi_FI/files.po | 29 +- l10n/fi_FI/files_encryption.po | 5 +- l10n/fi_FI/files_external.po | 18 +- l10n/fi_FI/files_sharing.po | 6 +- l10n/fi_FI/files_trashbin.po | 5 +- l10n/fi_FI/files_versions.po | 5 +- l10n/fi_FI/lib.po | 58 ++- l10n/fi_FI/settings.po | 90 ++-- l10n/fi_FI/user_ldap.po | 7 +- l10n/fr/core.po | 95 ++-- l10n/fr/files.po | 47 +- l10n/fr/files_encryption.po | 5 +- l10n/fr/files_external.po | 18 +- l10n/fr/files_sharing.po | 9 +- l10n/fr/files_trashbin.po | 6 +- l10n/fr/files_versions.po | 6 +- l10n/fr/lib.po | 63 ++- l10n/fr/settings.po | 106 +++-- l10n/fr/user_ldap.po | 12 +- l10n/gl/core.po | 89 ++-- l10n/gl/files.po | 29 +- l10n/gl/files_encryption.po | 6 +- l10n/gl/files_external.po | 18 +- l10n/gl/files_sharing.po | 6 +- l10n/gl/files_trashbin.po | 5 +- l10n/gl/files_versions.po | 8 +- l10n/gl/lib.po | 63 ++- l10n/gl/settings.po | 89 ++-- l10n/gl/user_ldap.po | 11 +- l10n/he/core.po | 85 ++-- l10n/he/files.po | 28 +- l10n/he/files_encryption.po | 5 +- l10n/he/files_external.po | 17 +- l10n/he/files_sharing.po | 7 +- l10n/he/files_trashbin.po | 5 +- l10n/he/files_versions.po | 8 +- l10n/he/lib.po | 57 ++- l10n/he/settings.po | 94 ++-- l10n/he/user_ldap.po | 5 +- l10n/hi/core.po | 74 ++-- l10n/hi/files.po | 14 +- l10n/hi/files_encryption.po | 4 +- l10n/hi/files_external.po | 15 +- l10n/hi/files_sharing.po | 6 +- l10n/hi/files_trashbin.po | 4 +- l10n/hi/files_versions.po | 4 +- l10n/hi/lib.po | 55 ++- l10n/hi/settings.po | 80 ++-- l10n/hi/user_ldap.po | 6 +- l10n/hr/core.po | 82 ++-- l10n/hr/files.po | 39 +- l10n/hr/files_encryption.po | 4 +- l10n/hr/files_external.po | 15 +- l10n/hr/files_sharing.po | 12 +- l10n/hr/files_trashbin.po | 4 +- l10n/hr/files_versions.po | 4 +- l10n/hr/lib.po | 57 ++- l10n/hr/settings.po | 89 ++-- l10n/hr/user_ldap.po | 6 +- l10n/hu_HU/core.po | 85 ++-- l10n/hu_HU/files.po | 25 +- l10n/hu_HU/files_encryption.po | 8 +- l10n/hu_HU/files_external.po | 16 +- l10n/hu_HU/files_sharing.po | 5 +- l10n/hu_HU/files_trashbin.po | 6 +- l10n/hu_HU/files_versions.po | 5 +- l10n/hu_HU/lib.po | 64 ++- l10n/hu_HU/settings.po | 86 ++-- l10n/hu_HU/user_ldap.po | 6 +- l10n/hy/core.po | 442 ++++++------------- l10n/hy/files.po | 16 +- l10n/hy/files_external.po | 17 +- l10n/hy/files_sharing.po | 22 +- l10n/hy/files_trashbin.po | 6 +- l10n/hy/settings.po | 82 ++-- l10n/ia/core.po | 69 ++- l10n/ia/files.po | 18 +- l10n/ia/files_encryption.po | 4 +- l10n/ia/files_external.po | 15 +- l10n/ia/files_sharing.po | 12 +- l10n/ia/files_trashbin.po | 4 +- l10n/ia/files_versions.po | 4 +- l10n/ia/lib.po | 57 ++- l10n/ia/settings.po | 86 ++-- l10n/ia/user_ldap.po | 6 +- l10n/id/core.po | 89 ++-- l10n/id/files.po | 25 +- l10n/id/files_encryption.po | 6 +- l10n/id/files_external.po | 18 +- l10n/id/files_sharing.po | 6 +- l10n/id/files_trashbin.po | 14 +- l10n/id/files_versions.po | 7 +- l10n/id/lib.po | 58 ++- l10n/id/settings.po | 92 ++-- l10n/id/user_ldap.po | 15 +- l10n/is/core.po | 88 ++-- l10n/is/files.po | 15 +- l10n/is/files_encryption.po | 5 +- l10n/is/files_external.po | 16 +- l10n/is/files_sharing.po | 5 +- l10n/is/files_trashbin.po | 4 +- l10n/is/files_versions.po | 5 +- l10n/is/lib.po | 56 ++- l10n/is/settings.po | 81 ++-- l10n/is/user_ldap.po | 5 +- l10n/it/core.po | 89 ++-- l10n/it/files.po | 30 +- l10n/it/files_encryption.po | 7 +- l10n/it/files_external.po | 17 +- l10n/it/files_sharing.po | 5 +- l10n/it/files_trashbin.po | 5 +- l10n/it/files_versions.po | 5 +- l10n/it/lib.po | 62 ++- l10n/it/settings.po | 89 ++-- l10n/it/user_ldap.po | 6 +- l10n/ja_JP/core.po | 86 ++-- l10n/ja_JP/files.po | 33 +- l10n/ja_JP/files_encryption.po | 6 +- l10n/ja_JP/files_external.po | 18 +- l10n/ja_JP/files_sharing.po | 6 +- l10n/ja_JP/files_trashbin.po | 5 +- l10n/ja_JP/files_versions.po | 8 +- l10n/ja_JP/lib.po | 68 +-- l10n/ja_JP/settings.po | 93 ++-- l10n/ja_JP/user_ldap.po | 8 +- l10n/ka/core.po | 68 ++- l10n/ka/files.po | 14 +- l10n/ka/files_encryption.po | 4 +- l10n/ka/files_external.po | 15 +- l10n/ka/files_sharing.po | 5 +- l10n/ka/files_trashbin.po | 4 +- l10n/ka/files_versions.po | 4 +- l10n/ka/lib.po | 56 ++- l10n/ka/settings.po | 80 ++-- l10n/ka/user_ldap.po | 4 +- l10n/ka_GE/core.po | 68 ++- l10n/ka_GE/files.po | 20 +- l10n/ka_GE/files_encryption.po | 7 +- l10n/ka_GE/files_external.po | 18 +- l10n/ka_GE/files_sharing.po | 8 +- l10n/ka_GE/files_trashbin.po | 7 +- l10n/ka_GE/files_versions.po | 7 +- l10n/ka_GE/lib.po | 57 ++- l10n/ka_GE/settings.po | 83 ++-- l10n/ka_GE/user_ldap.po | 7 +- l10n/kn/core.po | 68 ++- l10n/kn/files.po | 14 +- l10n/kn/files_encryption.po | 4 +- l10n/kn/files_external.po | 15 +- l10n/kn/files_sharing.po | 4 +- l10n/kn/files_trashbin.po | 4 +- l10n/kn/files_versions.po | 4 +- l10n/kn/lib.po | 55 ++- l10n/kn/settings.po | 78 ++-- l10n/kn/user_ldap.po | 4 +- l10n/ko/core.po | 98 ++-- l10n/ko/files.po | 38 +- l10n/ko/files_encryption.po | 6 +- l10n/ko/files_external.po | 19 +- l10n/ko/files_sharing.po | 7 +- l10n/ko/files_trashbin.po | 4 +- l10n/ko/files_versions.po | 7 +- l10n/ko/lib.po | 58 ++- l10n/ko/settings.po | 93 ++-- l10n/ko/user_ldap.po | 8 +- l10n/ku_IQ/core.po | 69 ++- l10n/ku_IQ/files.po | 14 +- l10n/ku_IQ/files_encryption.po | 5 +- l10n/ku_IQ/files_external.po | 15 +- l10n/ku_IQ/files_sharing.po | 7 +- l10n/ku_IQ/files_trashbin.po | 4 +- l10n/ku_IQ/files_versions.po | 7 +- l10n/ku_IQ/lib.po | 57 ++- l10n/ku_IQ/settings.po | 80 ++-- l10n/ku_IQ/user_ldap.po | 6 +- l10n/lb/core.po | 76 ++-- l10n/lb/files.po | 19 +- l10n/lb/files_encryption.po | 4 +- l10n/lb/files_external.po | 17 +- l10n/lb/files_sharing.po | 10 +- l10n/lb/files_trashbin.po | 4 +- l10n/lb/files_versions.po | 5 +- l10n/lb/lib.po | 59 ++- l10n/lb/settings.po | 99 +++-- l10n/lb/user_ldap.po | 4 +- l10n/lt_LT/core.po | 76 ++-- l10n/lt_LT/files.po | 25 +- l10n/lt_LT/files_encryption.po | 5 +- l10n/lt_LT/files_external.po | 18 +- l10n/lt_LT/files_sharing.po | 13 +- l10n/lt_LT/files_trashbin.po | 4 +- l10n/lt_LT/files_versions.po | 7 +- l10n/lt_LT/lib.po | 65 +-- l10n/lt_LT/settings.po | 94 ++-- l10n/lt_LT/user_ldap.po | 5 +- l10n/lv/core.po | 82 ++-- l10n/lv/files.po | 21 +- l10n/lv/files_encryption.po | 5 +- l10n/lv/files_external.po | 16 +- l10n/lv/files_sharing.po | 7 +- l10n/lv/files_trashbin.po | 5 +- l10n/lv/files_versions.po | 5 +- l10n/lv/lib.po | 56 ++- l10n/lv/settings.po | 85 ++-- l10n/lv/user_ldap.po | 5 +- l10n/mk/core.po | 81 ++-- l10n/mk/files.po | 27 +- l10n/mk/files_encryption.po | 5 +- l10n/mk/files_external.po | 16 +- l10n/mk/files_sharing.po | 5 +- l10n/mk/files_trashbin.po | 4 +- l10n/mk/files_versions.po | 5 +- l10n/mk/lib.po | 58 ++- l10n/mk/settings.po | 89 ++-- l10n/mk/user_ldap.po | 5 +- l10n/ms_MY/core.po | 79 ++-- l10n/ms_MY/files.po | 34 +- l10n/ms_MY/files_encryption.po | 4 +- l10n/ms_MY/files_external.po | 15 +- l10n/ms_MY/files_sharing.po | 12 +- l10n/ms_MY/files_trashbin.po | 4 +- l10n/ms_MY/files_versions.po | 4 +- l10n/ms_MY/lib.po | 57 ++- l10n/ms_MY/settings.po | 94 ++-- l10n/ms_MY/user_ldap.po | 6 +- l10n/my_MM/core.po | 73 ++- l10n/my_MM/files.po | 14 +- l10n/my_MM/files_encryption.po | 4 +- l10n/my_MM/files_external.po | 15 +- l10n/my_MM/files_sharing.po | 4 +- l10n/my_MM/files_trashbin.po | 4 +- l10n/my_MM/files_versions.po | 4 +- l10n/my_MM/lib.po | 56 ++- l10n/my_MM/settings.po | 80 ++-- l10n/my_MM/user_ldap.po | 4 +- l10n/nb_NO/core.po | 81 ++-- l10n/nb_NO/files.po | 37 +- l10n/nb_NO/files_encryption.po | 6 +- l10n/nb_NO/files_external.po | 17 +- l10n/nb_NO/files_sharing.po | 6 +- l10n/nb_NO/files_trashbin.po | 5 +- l10n/nb_NO/files_versions.po | 8 +- l10n/nb_NO/lib.po | 64 ++- l10n/nb_NO/settings.po | 110 +++-- l10n/nb_NO/user_ldap.po | 6 +- l10n/ne/core.po | 68 ++- l10n/ne/files.po | 14 +- l10n/ne/files_encryption.po | 4 +- l10n/ne/files_external.po | 15 +- l10n/ne/files_sharing.po | 4 +- l10n/ne/files_trashbin.po | 4 +- l10n/ne/files_versions.po | 4 +- l10n/ne/lib.po | 55 ++- l10n/ne/settings.po | 78 ++-- l10n/ne/user_ldap.po | 4 +- l10n/nl/core.po | 97 ++-- l10n/nl/files.po | 54 ++- l10n/nl/files_encryption.po | 7 +- l10n/nl/files_external.po | 20 +- l10n/nl/files_sharing.po | 6 +- l10n/nl/files_trashbin.po | 5 +- l10n/nl/files_versions.po | 6 +- l10n/nl/lib.po | 59 ++- l10n/nl/settings.po | 109 +++-- l10n/nl/user_ldap.po | 7 +- l10n/nn_NO/core.po | 247 +++++------ l10n/nn_NO/files.po | 165 ++++--- l10n/nn_NO/files_encryption.po | 4 +- l10n/nn_NO/files_external.po | 15 +- l10n/nn_NO/files_sharing.po | 12 +- l10n/nn_NO/files_trashbin.po | 14 +- l10n/nn_NO/files_versions.po | 4 +- l10n/nn_NO/lib.po | 79 ++-- l10n/nn_NO/settings.po | 261 +++++------ l10n/nn_NO/user_ldap.po | 6 +- l10n/oc/core.po | 101 ++--- l10n/oc/files.po | 19 +- l10n/oc/files_encryption.po | 4 +- l10n/oc/files_external.po | 15 +- l10n/oc/files_sharing.po | 12 +- l10n/oc/files_trashbin.po | 4 +- l10n/oc/files_versions.po | 4 +- l10n/oc/lib.po | 56 ++- l10n/oc/settings.po | 95 ++-- l10n/oc/user_ldap.po | 6 +- l10n/pl/core.po | 89 ++-- l10n/pl/files.po | 38 +- l10n/pl/files_encryption.po | 8 +- l10n/pl/files_external.po | 19 +- l10n/pl/files_sharing.po | 7 +- l10n/pl/files_trashbin.po | 9 +- l10n/pl/files_versions.po | 8 +- l10n/pl/lib.po | 71 +-- l10n/pl/settings.po | 98 ++-- l10n/pl/user_ldap.po | 11 +- l10n/pl_PL/core.po | 70 ++- l10n/pl_PL/files.po | 18 +- l10n/pl_PL/lib.po | 57 ++- l10n/pl_PL/settings.po | 84 ++-- l10n/pt_BR/core.po | 95 ++-- l10n/pt_BR/files.po | 40 +- l10n/pt_BR/files_encryption.po | 8 +- l10n/pt_BR/files_external.po | 23 +- l10n/pt_BR/files_sharing.po | 7 +- l10n/pt_BR/files_trashbin.po | 5 +- l10n/pt_BR/files_versions.po | 8 +- l10n/pt_BR/lib.po | 60 ++- l10n/pt_BR/settings.po | 106 +++-- l10n/pt_BR/user_ldap.po | 9 +- l10n/pt_PT/core.po | 94 ++-- l10n/pt_PT/files.po | 42 +- l10n/pt_PT/files_encryption.po | 6 +- l10n/pt_PT/files_external.po | 18 +- l10n/pt_PT/files_sharing.po | 6 +- l10n/pt_PT/files_trashbin.po | 8 +- l10n/pt_PT/files_versions.po | 7 +- l10n/pt_PT/lib.po | 67 +-- l10n/pt_PT/settings.po | 98 ++-- l10n/pt_PT/user_ldap.po | 11 +- l10n/ro/core.po | 109 +++-- l10n/ro/files.po | 53 +-- l10n/ro/files_encryption.po | 6 +- l10n/ro/files_external.po | 21 +- l10n/ro/files_sharing.po | 5 +- l10n/ro/files_trashbin.po | 6 +- l10n/ro/files_versions.po | 23 +- l10n/ro/lib.po | 58 ++- l10n/ro/settings.po | 125 +++--- l10n/ro/user_ldap.po | 7 +- l10n/ru/core.po | 97 ++-- l10n/ru/files.po | 48 +- l10n/ru/files_encryption.po | 8 +- l10n/ru/files_external.po | 19 +- l10n/ru/files_sharing.po | 8 +- l10n/ru/files_trashbin.po | 5 +- l10n/ru/files_versions.po | 8 +- l10n/ru/lib.po | 69 ++- l10n/ru/settings.po | 106 +++-- l10n/ru/user_ldap.po | 9 +- l10n/ru_RU/core.po | 341 +++++++------- l10n/ru_RU/files.po | 22 +- l10n/ru_RU/lib.po | 122 ++--- l10n/ru_RU/settings.po | 214 ++++----- l10n/si_LK/core.po | 87 ++-- l10n/si_LK/files.po | 28 +- l10n/si_LK/files_encryption.po | 5 +- l10n/si_LK/files_external.po | 16 +- l10n/si_LK/files_sharing.po | 9 +- l10n/si_LK/files_trashbin.po | 4 +- l10n/si_LK/files_versions.po | 7 +- l10n/si_LK/lib.po | 59 ++- l10n/si_LK/settings.po | 107 +++-- l10n/si_LK/user_ldap.po | 5 +- l10n/sk/core.po | 68 ++- l10n/sk/files.po | 14 +- l10n/sk/files_encryption.po | 4 +- l10n/sk/files_external.po | 15 +- l10n/sk/files_sharing.po | 4 +- l10n/sk/files_trashbin.po | 4 +- l10n/sk/files_versions.po | 4 +- l10n/sk/lib.po | 55 ++- l10n/sk/settings.po | 78 ++-- l10n/sk/user_ldap.po | 4 +- l10n/sk_SK/core.po | 92 ++-- l10n/sk_SK/files.po | 45 +- l10n/sk_SK/files_encryption.po | 9 +- l10n/sk_SK/files_external.po | 23 +- l10n/sk_SK/files_sharing.po | 8 +- l10n/sk_SK/files_trashbin.po | 8 +- l10n/sk_SK/files_versions.po | 7 +- l10n/sk_SK/lib.po | 61 ++- l10n/sk_SK/settings.po | 95 ++-- l10n/sk_SK/user_ldap.po | 6 +- l10n/sl/core.po | 65 ++- l10n/sl/files.po | 35 +- l10n/sl/files_encryption.po | 7 +- l10n/sl/files_external.po | 25 +- l10n/sl/files_sharing.po | 6 +- l10n/sl/files_trashbin.po | 8 +- l10n/sl/files_versions.po | 7 +- l10n/sl/lib.po | 64 ++- l10n/sl/settings.po | 95 ++-- l10n/sl/user_ldap.po | 7 +- l10n/sq/core.po | 78 ++-- l10n/sq/files.po | 15 +- l10n/sq/files_encryption.po | 4 +- l10n/sq/files_external.po | 15 +- l10n/sq/files_sharing.po | 5 +- l10n/sq/files_trashbin.po | 5 +- l10n/sq/files_versions.po | 4 +- l10n/sq/lib.po | 58 ++- l10n/sq/settings.po | 83 ++-- l10n/sq/user_ldap.po | 4 +- l10n/sr/core.po | 89 ++-- l10n/sr/files.po | 20 +- l10n/sr/files_encryption.po | 6 +- l10n/sr/files_external.po | 15 +- l10n/sr/files_sharing.po | 6 +- l10n/sr/files_trashbin.po | 5 +- l10n/sr/files_versions.po | 5 +- l10n/sr/lib.po | 60 ++- l10n/sr/settings.po | 87 ++-- l10n/sr/user_ldap.po | 5 +- l10n/sr@latin/core.po | 75 ++-- l10n/sr@latin/files.po | 15 +- l10n/sr@latin/files_encryption.po | 4 +- l10n/sr@latin/files_external.po | 15 +- l10n/sr@latin/files_sharing.po | 10 +- l10n/sr@latin/files_trashbin.po | 4 +- l10n/sr@latin/files_versions.po | 4 +- l10n/sr@latin/lib.po | 57 ++- l10n/sr@latin/settings.po | 81 ++-- l10n/sr@latin/user_ldap.po | 6 +- l10n/sv/core.po | 85 ++-- l10n/sv/files.po | 33 +- l10n/sv/files_encryption.po | 6 +- l10n/sv/files_external.po | 17 +- l10n/sv/files_sharing.po | 5 +- l10n/sv/files_trashbin.po | 6 +- l10n/sv/files_versions.po | 5 +- l10n/sv/lib.po | 61 ++- l10n/sv/settings.po | 107 +++-- l10n/sv/user_ldap.po | 7 +- l10n/sw_KE/core.po | 68 ++- l10n/sw_KE/files.po | 14 +- l10n/sw_KE/files_encryption.po | 4 +- l10n/sw_KE/files_external.po | 15 +- l10n/sw_KE/files_sharing.po | 4 +- l10n/sw_KE/files_trashbin.po | 4 +- l10n/sw_KE/files_versions.po | 4 +- l10n/sw_KE/lib.po | 55 ++- l10n/sw_KE/settings.po | 78 ++-- l10n/sw_KE/user_ldap.po | 4 +- l10n/ta_LK/core.po | 90 ++-- l10n/ta_LK/files.po | 19 +- l10n/ta_LK/files_encryption.po | 5 +- l10n/ta_LK/files_external.po | 16 +- l10n/ta_LK/files_sharing.po | 5 +- l10n/ta_LK/files_trashbin.po | 4 +- l10n/ta_LK/files_versions.po | 7 +- l10n/ta_LK/lib.po | 58 ++- l10n/ta_LK/settings.po | 87 ++-- l10n/ta_LK/user_ldap.po | 5 +- l10n/te/core.po | 69 ++- l10n/te/files.po | 15 +- l10n/te/files_encryption.po | 4 +- l10n/te/files_external.po | 15 +- l10n/te/files_sharing.po | 4 +- l10n/te/files_trashbin.po | 4 +- l10n/te/files_versions.po | 4 +- l10n/te/lib.po | 55 ++- l10n/te/settings.po | 81 ++-- l10n/te/user_ldap.po | 4 +- l10n/templates/core.pot | 28 +- l10n/templates/files.pot | 58 ++- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 13 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 19 +- l10n/templates/settings.pot | 74 ++-- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/th_TH/core.po | 84 ++-- l10n/th_TH/files.po | 34 +- l10n/th_TH/files_encryption.po | 7 +- l10n/th_TH/files_external.po | 16 +- l10n/th_TH/files_sharing.po | 5 +- l10n/th_TH/files_trashbin.po | 5 +- l10n/th_TH/files_versions.po | 7 +- l10n/th_TH/lib.po | 62 ++- l10n/th_TH/settings.po | 119 ++--- l10n/th_TH/user_ldap.po | 5 +- l10n/tr/core.po | 50 +-- l10n/tr/files.po | 35 +- l10n/tr/files_encryption.po | 6 +- l10n/tr/files_external.po | 21 +- l10n/tr/files_sharing.po | 7 +- l10n/tr/files_trashbin.po | 6 +- l10n/tr/files_versions.po | 7 +- l10n/tr/lib.po | 28 +- l10n/tr/settings.po | 93 ++-- l10n/tr/user_ldap.po | 48 +- l10n/uk/core.po | 86 ++-- l10n/uk/files.po | 22 +- l10n/uk/files_encryption.po | 6 +- l10n/uk/files_external.po | 18 +- l10n/uk/files_sharing.po | 8 +- l10n/uk/files_trashbin.po | 5 +- l10n/uk/files_versions.po | 6 +- l10n/uk/lib.po | 60 ++- l10n/uk/settings.po | 86 ++-- l10n/uk/user_ldap.po | 7 +- l10n/ur_PK/core.po | 73 ++- l10n/ur_PK/files.po | 16 +- l10n/ur_PK/files_encryption.po | 4 +- l10n/ur_PK/files_external.po | 15 +- l10n/ur_PK/files_sharing.po | 4 +- l10n/ur_PK/files_trashbin.po | 4 +- l10n/ur_PK/files_versions.po | 4 +- l10n/ur_PK/lib.po | 55 ++- l10n/ur_PK/settings.po | 80 ++-- l10n/ur_PK/user_ldap.po | 4 +- l10n/vi/core.po | 92 ++-- l10n/vi/files.po | 35 +- l10n/vi/files_encryption.po | 8 +- l10n/vi/files_external.po | 18 +- l10n/vi/files_sharing.po | 6 +- l10n/vi/files_trashbin.po | 5 +- l10n/vi/files_versions.po | 9 +- l10n/vi/lib.po | 63 ++- l10n/vi/settings.po | 119 ++--- l10n/vi/user_ldap.po | 7 +- l10n/zh_CN.GB2312/core.po | 89 ++-- l10n/zh_CN.GB2312/files.po | 38 +- l10n/zh_CN.GB2312/files_encryption.po | 5 +- l10n/zh_CN.GB2312/files_external.po | 17 +- l10n/zh_CN.GB2312/files_sharing.po | 5 +- l10n/zh_CN.GB2312/files_trashbin.po | 4 +- l10n/zh_CN.GB2312/files_versions.po | 6 +- l10n/zh_CN.GB2312/lib.po | 56 ++- l10n/zh_CN.GB2312/settings.po | 101 +++-- l10n/zh_CN.GB2312/user_ldap.po | 5 +- l10n/zh_CN/core.po | 97 ++-- l10n/zh_CN/files.po | 37 +- l10n/zh_CN/files_encryption.po | 6 +- l10n/zh_CN/files_external.po | 18 +- l10n/zh_CN/files_sharing.po | 5 +- l10n/zh_CN/files_trashbin.po | 5 +- l10n/zh_CN/files_versions.po | 6 +- l10n/zh_CN/lib.po | 64 ++- l10n/zh_CN/settings.po | 96 ++-- l10n/zh_CN/user_ldap.po | 6 +- l10n/zh_HK/core.po | 76 ++-- l10n/zh_HK/files.po | 15 +- l10n/zh_HK/files_encryption.po | 5 +- l10n/zh_HK/files_external.po | 15 +- l10n/zh_HK/files_sharing.po | 4 +- l10n/zh_HK/files_trashbin.po | 4 +- l10n/zh_HK/files_versions.po | 5 +- l10n/zh_HK/lib.po | 55 ++- l10n/zh_HK/settings.po | 80 ++-- l10n/zh_HK/user_ldap.po | 4 +- l10n/zh_TW/core.po | 69 ++- l10n/zh_TW/files.po | 25 +- l10n/zh_TW/files_encryption.po | 7 +- l10n/zh_TW/files_external.po | 48 +- l10n/zh_TW/files_sharing.po | 16 +- l10n/zh_TW/files_trashbin.po | 8 +- l10n/zh_TW/files_versions.po | 6 +- l10n/zh_TW/lib.po | 62 ++- l10n/zh_TW/settings.po | 94 ++-- l10n/zh_TW/user_ldap.po | 5 +- lib/api.php | 6 +- lib/base.php | 26 +- lib/files/cache/cache.php | 49 +- lib/files/cache/scanner.php | 2 +- lib/files/cache/storage.php | 59 --- lib/files/filesystem.php | 39 +- lib/files/{mount => }/mount.php | 106 ++++- lib/files/mount/manager.php | 120 ----- lib/files/storage/common.php | 10 +- lib/files/storage/local.php | 437 +++++++++--------- lib/files/storage/storage.php | 5 - lib/files/view.php | 2 +- lib/l10n/ar.php | 5 +- lib/l10n/bg_BG.php | 3 + lib/l10n/bn_BD.php | 10 +- lib/l10n/ca.php | 5 +- lib/l10n/cs_CZ.php | 9 +- lib/l10n/cy_GB.php | 3 + lib/l10n/da.php | 13 +- lib/l10n/de.php | 11 +- lib/l10n/de_DE.php | 7 +- lib/l10n/el.php | 9 +- lib/l10n/eo.php | 11 +- lib/l10n/es.php | 7 +- lib/l10n/es_AR.php | 15 +- lib/l10n/et_EE.php | 9 +- lib/l10n/eu.php | 13 +- lib/l10n/fi_FI.php | 5 +- lib/l10n/fr.php | 7 +- lib/l10n/gl.php | 7 +- lib/l10n/he.php | 3 + lib/l10n/hr.php | 1 - lib/l10n/hu_HU.php | 9 +- lib/l10n/ia.php | 1 - lib/l10n/id.php | 3 + lib/l10n/is.php | 3 + lib/l10n/it.php | 9 +- lib/l10n/ja_JP.php | 13 +- lib/l10n/ka_GE.php | 3 + lib/l10n/ko.php | 3 + lib/l10n/ku_IQ.php | 1 - lib/l10n/lb.php | 2 - lib/l10n/lt_LT.php | 13 +- lib/l10n/lv.php | 3 + lib/l10n/mk.php | 5 +- lib/l10n/ms_MY.php | 1 - lib/l10n/my_MM.php | 3 + lib/l10n/nb_NO.php | 7 +- lib/l10n/nl.php | 3 + lib/l10n/nn_NO.php | 13 +- lib/l10n/oc.php | 4 +- lib/l10n/pl.php | 15 +- lib/l10n/pt_BR.php | 3 + lib/l10n/pt_PT.php | 11 +- lib/l10n/ro.php | 3 + lib/l10n/ru.php | 9 +- lib/l10n/ru_RU.php | 36 +- lib/l10n/si_LK.php | 7 +- lib/l10n/sk_SK.php | 5 +- lib/l10n/sl.php | 9 +- lib/l10n/sq.php | 5 +- lib/l10n/sr.php | 5 +- lib/l10n/sr@latin.php | 1 - lib/l10n/sv.php | 7 +- lib/l10n/ta_LK.php | 5 +- lib/l10n/th_TH.php | 9 +- lib/l10n/tr.php | 5 +- lib/l10n/uk.php | 3 + lib/l10n/vi.php | 7 +- lib/l10n/zh_CN.GB2312.php | 5 +- lib/l10n/zh_CN.php | 9 +- lib/l10n/zh_TW.php | 3 + lib/public/share.php | 2 +- lib/request.php | 13 +- lib/templatelayout.php | 73 +-- lib/updater.php | 46 +- lib/user.php | 2 +- lib/util.php | 32 +- ocs/routes.php | 74 +--- settings/js/personal.js | 3 - settings/l10n/ar.php | 13 +- settings/l10n/bg_BG.php | 1 - settings/l10n/bn_BD.php | 6 +- settings/l10n/ca.php | 11 +- settings/l10n/cs_CZ.php | 6 +- settings/l10n/da.php | 9 +- settings/l10n/de.php | 6 +- settings/l10n/de_DE.php | 10 +- settings/l10n/el.php | 10 +- settings/l10n/eo.php | 12 - settings/l10n/es.php | 14 +- settings/l10n/es_AR.php | 9 +- settings/l10n/et_EE.php | 6 +- settings/l10n/eu.php | 9 +- settings/l10n/fa.php | 14 +- settings/l10n/fi_FI.php | 8 +- settings/l10n/fr.php | 8 +- settings/l10n/gl.php | 4 +- settings/l10n/he.php | 9 +- settings/l10n/hr.php | 3 - settings/l10n/hu_HU.php | 5 +- settings/l10n/ia.php | 2 - settings/l10n/id.php | 9 +- settings/l10n/it.php | 6 +- settings/l10n/ja_JP.php | 13 +- settings/l10n/ka_GE.php | 8 +- settings/l10n/ko.php | 5 +- settings/l10n/lb.php | 9 - settings/l10n/lt_LT.php | 8 +- settings/l10n/lv.php | 5 +- settings/l10n/mk.php | 4 +- settings/l10n/ms_MY.php | 7 +- settings/l10n/nb_NO.php | 13 +- settings/l10n/nl.php | 18 +- settings/l10n/nn_NO.php | 97 +--- settings/l10n/oc.php | 7 - settings/l10n/pl.php | 7 +- settings/l10n/pt_BR.php | 16 +- settings/l10n/pt_PT.php | 13 +- settings/l10n/ro.php | 22 +- settings/l10n/ru.php | 12 +- settings/l10n/ru_RU.php | 67 ++- settings/l10n/si_LK.php | 17 +- settings/l10n/sk_SK.php | 10 +- settings/l10n/sl.php | 10 +- settings/l10n/sq.php | 3 +- settings/l10n/sr.php | 7 +- settings/l10n/sv.php | 13 +- settings/l10n/ta_LK.php | 6 +- settings/l10n/th_TH.php | 21 +- settings/l10n/tr.php | 7 +- settings/l10n/uk.php | 5 +- settings/l10n/vi.php | 21 +- settings/l10n/zh_CN.GB2312.php | 16 +- settings/l10n/zh_CN.php | 11 +- settings/l10n/zh_TW.php | 9 +- settings/personal.php | 15 +- settings/templates/admin.php | 3 +- settings/templates/personal.php | 7 +- tests/lib/files/mount.php | 58 +++ tests/lib/files/mount/manager.php | 67 --- tests/lib/streamwrappers.php | 4 +- 1091 files changed, 15371 insertions(+), 14109 deletions(-) delete mode 100644 apps/files_sharing/l10n/hi.php delete mode 100644 apps/files_sharing/l10n/hr.php delete mode 100644 apps/files_sharing/l10n/hy.php delete mode 100644 apps/files_sharing/l10n/ia.php delete mode 100644 apps/files_sharing/l10n/ms_MY.php delete mode 100644 apps/files_sharing/l10n/nn_NO.php delete mode 100644 apps/files_sharing/l10n/oc.php delete mode 100644 apps/files_sharing/l10n/sr@latin.php delete mode 100644 core/l10n/hy.php delete mode 100644 lib/files/cache/storage.php rename lib/files/{mount => }/mount.php (54%) delete mode 100644 lib/files/mount/manager.php create mode 100644 tests/lib/files/mount.php delete mode 100644 tests/lib/files/mount/manager.php diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 296e54e3568..a2d17fae7d2 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -115,11 +115,6 @@ $(document).ready(function() { return false; }); - // Trigger cancelling of file upload - $('#uploadprogresswrapper .stop').on('click', function() { - Files.cancelUploads(); - }); - // Show trash bin $('#trash a').live('click', function() { window.location=OC.filePath('files_trashbin', '', 'index.php'); diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php index a84adc3bb04..41e6a225a2b 100644 --- a/apps/files/l10n/ar.php +++ b/apps/files/l10n/ar.php @@ -14,7 +14,7 @@ "Invalid directory." => "مسار غير صحيح.", "Files" => "الملفات", "Delete permanently" => "حذف بشكل دائم", -"Delete" => "إلغاء", +"Delete" => "محذوف", "Rename" => "إعادة تسميه", "Pending" => "قيد الانتظار", "{new_name} already exists" => "{new_name} موجود مسبقا", @@ -37,14 +37,14 @@ "URL cannot be empty." => "عنوان ال URL لا يجوز أن يكون فارغا.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "إسم مجلد غير صحيح. استخدام مصطلح \"Shared\" محجوز للنظام", "Error" => "خطأ", -"Name" => "اسم", +"Name" => "الاسم", "Size" => "حجم", "Modified" => "معدل", "1 folder" => "مجلد عدد 1", "{count} folders" => "{count} مجلدات", "1 file" => "ملف واحد", "{count} files" => "{count} ملفات", -"Upload" => "رفع", +"Upload" => "إرفع", "File handling" => "التعامل مع الملف", "Maximum upload size" => "الحد الأقصى لحجم الملفات التي يمكن رفعها", "max. possible: " => "الحد الأقصى المسموح به", diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php index 09e01745a4f..c4bbca36f47 100644 --- a/apps/files/l10n/bg_BG.php +++ b/apps/files/l10n/bg_BG.php @@ -1,8 +1,4 @@ "Файлът е качен успешно", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Файлът който се опитвате да качите надвишава стойностите в MAX_FILE_SIZE в HTML формата.", -"The uploaded file was only partially uploaded" => "Файлът е качен частично", -"No file was uploaded" => "Фахлът не бе качен", "Missing a temporary folder" => "Липсва временна папка", "Failed to write to disk" => "Възникна проблем при запис в диска", "Invalid directory." => "Невалидна директория.", @@ -33,7 +29,5 @@ "Cancel upload" => "Спри качването", "Nothing in here. Upload something!" => "Няма нищо тук. Качете нещо.", "Download" => "Изтегляне", -"Upload too large" => "Файлът който сте избрали за качване е прекалено голям", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файловете които се опитвате да качите са по-големи от позволеното за сървъра.", -"Files are being scanned, please wait." => "Файловете се претърсват, изчакайте." +"Upload too large" => "Файлът който сте избрали за качване е прекалено голям" ); diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php index 42c78ab3470..640430716fe 100644 --- a/apps/files/l10n/bn_BD.php +++ b/apps/files/l10n/bn_BD.php @@ -2,18 +2,17 @@ "Could not move %s - File with this name already exists" => "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", "Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", "Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না", -"No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।", -"There is no error, the file uploaded with success" => "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।", +"No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।", +"There is no error, the file uploaded with success" => "কোন সমস্যা নেই, ফাইল আপলোড সুসম্পন্ন হয়েছে", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "আপলোড করা ফাইলটি HTML ফর্মে নির্ধারিত MAX_FILE_SIZE নির্দেশিত সর্বোচ্চ আকার অতিক্রম করেছে ", "The uploaded file was only partially uploaded" => "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে", "No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি", -"Missing a temporary folder" => "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে", +"Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে", "Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ", "Invalid directory." => "ভুল ডিরেক্টরি", "Files" => "ফাইল", -"Share" => "ভাগাভাগি কর", -"Delete" => "মুছে", +"Delete" => "মুছে ফেল", "Rename" => "পূনঃনামকরণ", "Pending" => "মুলতুবি", "{new_name} already exists" => "{new_name} টি বিদ্যমান", @@ -33,7 +32,7 @@ "URL cannot be empty." => "URL ফাঁকা রাখা যাবে না।", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।", "Error" => "সমস্যা", -"Name" => "রাম", +"Name" => "নাম", "Size" => "আকার", "Modified" => "পরিবর্তিত", "1 folder" => "১টি ফোল্ডার", @@ -48,7 +47,7 @@ "Enable ZIP-download" => "ZIP ডাউনলোড সক্রিয় কর", "0 is unlimited" => "০ এর অর্থ অসীম", "Maximum input size for ZIP files" => "ZIP ফাইলের ইনপুটের সর্বোচ্চ আকার", -"Save" => "সংরক্ষণ", +"Save" => "সংরক্ষন কর", "New" => "নতুন", "Text file" => "টেক্সট ফাইল", "Folder" => "ফোল্ডার", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index a294fbdce47..d92dbeef67c 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -3,20 +3,20 @@ "Could not move %s" => " No s'ha pogut moure %s", "Unable to rename file" => "No es pot canviar el nom del fitxer", "No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut", -"There is no error, the file uploaded with success" => "No hi ha errors, el fitxer s'ha carregat correctament", +"There is no error, the file uploaded with success" => "El fitxer s'ha pujat correctament", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El fitxer carregat supera la directiva MAX_FILE_SIZE especificada al formulari HTML", -"The uploaded file was only partially uploaded" => "El fitxer només s'ha carregat parcialment", -"No file was uploaded" => "No s'ha carregat cap fitxer", -"Missing a temporary folder" => "Falta un fitxer temporal", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El fitxer de pujada excedeix la directiva MAX_FILE_SIZE especificada al formulari HTML", +"The uploaded file was only partially uploaded" => "El fitxer només s'ha pujat parcialment", +"No file was uploaded" => "El fitxer no s'ha pujat", +"Missing a temporary folder" => "S'ha perdut un fitxer temporal", "Failed to write to disk" => "Ha fallat en escriure al disc", "Not enough storage available" => "No hi ha prou espai disponible", "Invalid directory." => "Directori no vàlid.", "Files" => "Fitxers", "Delete permanently" => "Esborra permanentment", -"Delete" => "Esborra", +"Delete" => "Suprimeix", "Rename" => "Reanomena", -"Pending" => "Pendent", +"Pending" => "Pendents", "{new_name} already exists" => "{new_name} ja existeix", "replace" => "substitueix", "suggest name" => "sugereix un nom", @@ -55,7 +55,7 @@ "0 is unlimited" => "0 és sense límit", "Maximum input size for ZIP files" => "Mida màxima d'entrada per fitxers ZIP", "Save" => "Desa", -"New" => "Nova", +"New" => "Nou", "Text file" => "Fitxer de text", "Folder" => "Carpeta", "From link" => "Des d'enllaç", diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index b434da7f280..66c748fbaa0 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -16,7 +16,7 @@ "Delete permanently" => "Trvale odstranit", "Delete" => "Smazat", "Rename" => "Přejmenovat", -"Pending" => "Nevyřízené", +"Pending" => "Čekající", "{new_name} already exists" => "{new_name} již existuje", "replace" => "nahradit", "suggest name" => "navrhnout název", @@ -32,7 +32,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.", "Your storage is almost full ({usedSpacePercent}%)" => "Vaše úložiště je téměř plné ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Vaše soubory ke stažení se připravují. Pokud jsou velké může to chvíli trvat.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář, nebo je jeho velikost 0 bajtů", +"Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů", "Not enough space available" => "Nedostatek dostupného místa", "Upload cancelled." => "Odesílání zrušeno.", "File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání.", @@ -41,7 +41,7 @@ "Error" => "Chyba", "Name" => "Název", "Size" => "Velikost", -"Modified" => "Upraveno", +"Modified" => "Změněno", "1 folder" => "1 složka", "{count} folders" => "{count} složky", "1 file" => "1 soubor", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.", "Download" => "Stáhnout", "Unshare" => "Zrušit sdílení", -"Upload too large" => "Odesílaný soubor je příliš velký", +"Upload too large" => "Odeslaný soubor je příliš velký", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", "Files are being scanned, please wait." => "Soubory se prohledávají, prosím čekejte.", "Current scanning" => "Aktuální prohledávání", diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index ff590aa9a3a..7c065952aea 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -3,17 +3,16 @@ "Could not move %s" => "Kunne ikke flytte %s", "Unable to rename file" => "Kunne ikke omdøbe fil", "No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", -"There is no error, the file uploaded with success" => "Der skete ingen fejl, filen blev succesfuldt uploadet", +"There is no error, the file uploaded with success" => "Der er ingen fejl, filen blev uploadet med success", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", -"The uploaded file was only partially uploaded" => "Filen blev kun delvist uploadet.", -"No file was uploaded" => "Ingen fil uploadet", -"Missing a temporary folder" => "Manglende midlertidig mappe.", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uploadede fil overskrider MAX_FILE_SIZE -direktivet som er specificeret i HTML-formularen", +"The uploaded file was only partially uploaded" => "Den uploadede file blev kun delvist uploadet", +"No file was uploaded" => "Ingen fil blev uploadet", +"Missing a temporary folder" => "Mangler en midlertidig mappe", "Failed to write to disk" => "Fejl ved skrivning til disk.", "Not enough storage available" => "Der er ikke nok plads til rådlighed", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", -"Share" => "Del", "Delete permanently" => "Slet permanent", "Delete" => "Slet", "Rename" => "Omdøb", @@ -26,15 +25,13 @@ "undo" => "fortryd", "perform delete operation" => "udfør slet operation", "1 file uploading" => "1 fil uploades", -"files uploading" => "uploader filer", "'.' is an invalid file name." => "'.' er et ugyldigt filnavn.", "File name cannot be empty." => "Filnavnet kan ikke stå tomt.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.", "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!", "Your storage is almost full ({usedSpacePercent}%)" => "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Dit download forberedes. Dette kan tage lidt tid ved større filer.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke uploade din fil - det er enten en mappe eller en fil med et indhold på 0 bytes.", -"Not enough space available" => "ikke nok tilgængelig ledig plads ", +"Unable to upload your file as it is a directory or has 0 bytes" => "Kunne ikke uploade din fil, da det enten er en mappe eller er tom", "Upload cancelled." => "Upload afbrudt.", "File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", "URL cannot be empty." => "URLen kan ikke være tom.", @@ -66,7 +63,7 @@ "Nothing in here. Upload something!" => "Her er tomt. Upload noget!", "Download" => "Download", "Unshare" => "Fjern deling", -"Upload too large" => "Upload er for stor", +"Upload too large" => "Upload for stor", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.", "Files are being scanned, please wait." => "Filerne bliver indlæst, vent venligst.", "Current scanning" => "Indlæser", diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index f8ad5993af6..34f02334866 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -3,18 +3,17 @@ "Could not move %s" => "%s konnte nicht verschoben werden", "Unable to rename file" => "Die Datei konnte nicht umbenannt werden", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich übertragen.", +"There is no error, the file uploaded with success" => "Datei fehlerfrei hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", -"The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", -"No file was uploaded" => "Keine Datei konnte übertragen werden.", -"Missing a temporary folder" => "Kein temporärer Ordner vorhanden", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde", +"The uploaded file was only partially uploaded" => "Die Datei wurde nur teilweise hochgeladen.", +"No file was uploaded" => "Es wurde keine Datei hochgeladen.", +"Missing a temporary folder" => "Temporärer Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Not enough storage available" => "Nicht genug Speicherplatz verfügbar", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", -"Share" => "Teilen", -"Delete permanently" => "Endgültig löschen", +"Delete permanently" => "Permanent löschen", "Delete" => "Löschen", "Rename" => "Umbenennen", "Pending" => "Ausstehend", @@ -42,7 +41,7 @@ "Error" => "Fehler", "Name" => "Name", "Size" => "Größe", -"Modified" => "Geändert", +"Modified" => "Bearbeitet", "1 folder" => "1 Ordner", "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", @@ -64,9 +63,9 @@ "Cancel upload" => "Upload abbrechen", "You don’t have write permissions here." => "Du besitzt hier keine Schreib-Berechtigung.", "Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", -"Download" => "Download", -"Unshare" => "Freigabe aufheben", -"Upload too large" => "Der Upload ist zu groß", +"Download" => "Herunterladen", +"Unshare" => "Nicht mehr freigeben", +"Upload too large" => "Upload zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", "Current scanning" => "Scanne", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 8a977710a2a..8fc1c106d01 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -5,16 +5,15 @@ "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in der php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", -"The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", -"No file was uploaded" => "Keine Datei konnte übertragen werden.", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde", +"The uploaded file was only partially uploaded" => "Die Datei wurde nur teilweise hochgeladen.", +"No file was uploaded" => "Es wurde keine Datei hochgeladen.", "Missing a temporary folder" => "Der temporäre Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Not enough storage available" => "Nicht genug Speicher vorhanden.", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", -"Share" => "Teilen", -"Delete permanently" => "Endgültig löschen", +"Delete permanently" => "Entgültig löschen", "Delete" => "Löschen", "Rename" => "Umbenennen", "Pending" => "Ausstehend", @@ -33,7 +32,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicher ist fast voll ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.", "Not enough space available" => "Nicht genügend Speicherplatz verfügbar", "Upload cancelled." => "Upload abgebrochen.", "File upload is in progress. Leaving the page now will cancel the upload." => "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index 8ecb84eb3c4..60d63c41429 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -5,7 +5,7 @@ "No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", "There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Το ανεβασμένο αρχείο υπερβαίνει το MAX_FILE_SIZE που ορίζεται στην HTML φόρμα", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Το αρχείο υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"MAX_FILE_SIZE\" που έχει οριστεί στην HTML φόρμα", "The uploaded file was only partially uploaded" => "Το αρχείο εστάλει μόνο εν μέρει", "No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε", "Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος", @@ -46,7 +46,7 @@ "{count} folders" => "{count} φάκελοι", "1 file" => "1 αρχείο", "{count} files" => "{count} αρχεία", -"Upload" => "Μεταφόρτωση", +"Upload" => "Αποστολή", "File handling" => "Διαχείριση αρχείων", "Maximum upload size" => "Μέγιστο μέγεθος αποστολής", "max. possible: " => "μέγιστο δυνατό:", @@ -64,7 +64,7 @@ "You don’t have write permissions here." => "Δεν έχετε δικαιώματα εγγραφής εδώ.", "Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!", "Download" => "Λήψη", -"Unshare" => "Σταμάτημα διαμοιρασμού", +"Unshare" => "Διακοπή κοινής χρήσης", "Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", "Files are being scanned, please wait." => "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε.", diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index 35683a35f18..3435f430597 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -3,12 +3,12 @@ "Could not move %s" => "Ne eblis movi %s", "Unable to rename file" => "Ne eblis alinomigi dosieron", "No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.", -"There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese.", +"There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo", -"The uploaded file was only partially uploaded" => "la alŝutita dosiero nur parte alŝutiĝis", -"No file was uploaded" => "Neniu dosiero alŝutiĝis.", -"Missing a temporary folder" => "Mankas provizora dosierujo.", +"The uploaded file was only partially uploaded" => "La alŝutita dosiero nur parte alŝutiĝis", +"No file was uploaded" => "Neniu dosiero estas alŝutita", +"Missing a temporary folder" => "Mankas tempa dosierujo", "Failed to write to disk" => "Malsukcesis skribo al disko", "Invalid directory." => "Nevalida dosierujo.", "Files" => "Dosieroj", @@ -22,7 +22,6 @@ "replaced {new_name} with {old_name}" => "anstataŭiĝis {new_name} per {old_name}", "undo" => "malfari", "1 file uploading" => "1 dosiero estas alŝutata", -"files uploading" => "dosieroj estas alŝutataj", "'.' is an invalid file name." => "'.' ne estas valida dosiernomo.", "File name cannot be empty." => "Dosiernomo devas ne malpleni.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nevalida nomo: “\\”, “/”, “<”, “>”, “:”, “\"”, “|”, “?” kaj “*” ne permesatas.", @@ -58,7 +57,7 @@ "Nothing in here. Upload something!" => "Nenio estas ĉi tie. Alŝutu ion!", "Download" => "Elŝuti", "Unshare" => "Malkunhavigi", -"Upload too large" => "Alŝuto tro larĝa", +"Upload too large" => "Elŝuto tro larĝa", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.", "Files are being scanned, please wait." => "Dosieroj estas skanataj, bonvolu atendi.", "Current scanning" => "Nuna skano" diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index ff782d0c640..e231abe4290 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -2,13 +2,13 @@ "Could not move %s - File with this name already exists" => "No se puede mover %s - Ya existe un archivo con ese nombre", "Could not move %s" => "No se puede mover %s", "Unable to rename file" => "No se puede renombrar el archivo", -"No file was uploaded. Unknown error" => "No se subió ningún archivo. Error desconocido", -"There is no error, the file uploaded with success" => "No hay ningún error, el archivo se ha subido con éxito", +"No file was uploaded. Unknown error" => "Fallo no se subió el fichero", +"There is no error, the file uploaded with success" => "No se ha producido ningún error, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentas subir sobrepasa el tamaño definido por la variable upload_max_filesize en php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa la directiva MAX_FILE_SIZE especificada en el formulario HTML", -"The uploaded file was only partially uploaded" => "El archivo se ha subido parcialmente", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo que intentas subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML", +"The uploaded file was only partially uploaded" => "El archivo que intentas subir solo se subió parcialmente", "No file was uploaded" => "No se ha subido ningún archivo", -"Missing a temporary folder" => "Falta la carpeta temporal", +"Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "La escritura en disco ha fallado", "Not enough storage available" => "No hay suficiente espacio disponible", "Invalid directory." => "Directorio invalido.", @@ -16,7 +16,7 @@ "Delete permanently" => "Eliminar permanentemente", "Delete" => "Eliminar", "Rename" => "Renombrar", -"Pending" => "Pendientes", +"Pending" => "Pendiente", "{new_name} already exists" => "{new_name} ya existe", "replace" => "reemplazar", "suggest name" => "sugerir nombre", @@ -32,7 +32,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizados o sincronizados!", "Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento esta lleno en un ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Imposible subir su archivo, es un directorio o tiene 0 bytes", +"Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes", "Not enough space available" => "No hay suficiente espacio disponible", "Upload cancelled." => "Subida cancelada.", "File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida.", @@ -64,8 +64,8 @@ "You don’t have write permissions here." => "No tienes permisos para escribir aquí.", "Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!", "Download" => "Descargar", -"Unshare" => "No compartir", -"Upload too large" => "bida demasido grande", +"Unshare" => "Dejar de compartir", +"Upload too large" => "El archivo es demasiado grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.", "Current scanning" => "Ahora escaneando", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index 3248c241dbf..25c2f4ff699 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -3,12 +3,12 @@ "Could not move %s" => "No se pudo mover %s ", "Unable to rename file" => "No fue posible cambiar el nombre al archivo", "No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido", -"There is no error, the file uploaded with success" => "No hay errores, el archivo fue subido con éxito", +"There is no error, the file uploaded with success" => "No se han producido errores, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML", -"The uploaded file was only partially uploaded" => "El archivo fue subido parcialmente", -"No file was uploaded" => "No se subió ningún archivo ", -"Missing a temporary folder" => "Error en la carpera temporal", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo que intentás subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML", +"The uploaded file was only partially uploaded" => "El archivo que intentás subir solo se subió parcialmente", +"No file was uploaded" => "El archivo no fue subido", +"Missing a temporary folder" => "Falta un directorio temporal", "Failed to write to disk" => "Error al escribir en el disco", "Not enough storage available" => "No hay suficiente capacidad de almacenamiento", "Invalid directory." => "Directorio invalido.", @@ -16,7 +16,7 @@ "Delete permanently" => "Borrar de manera permanente", "Delete" => "Borrar", "Rename" => "Cambiar nombre", -"Pending" => "Pendientes", +"Pending" => "Pendiente", "{new_name} already exists" => "{new_name} ya existe", "replace" => "reemplazar", "suggest name" => "sugerir nombre", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!", "Download" => "Descargar", "Unshare" => "Dejar de compartir", -"Upload too large" => "El tamaño del archivo que querés subir es demasiado grande", +"Upload too large" => "El archivo es demasiado grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá.", "Current scanning" => "Escaneo actual", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index fa48cb2cc44..64a2f71b271 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -3,9 +3,9 @@ "Could not move %s" => "%s liigutamine ebaõnnestus", "Unable to rename file" => "Faili ümbernimetamine ebaõnnestus", "No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga", -"There is no error, the file uploaded with success" => "Ühtegi tõrget polnud, fail on üles laetud", +"There is no error, the file uploaded with success" => "Ühtegi viga pole, fail on üles laetud", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üles laetud faili suurus ületab HTML vormis määratud upload_max_filesize suuruse", "The uploaded file was only partially uploaded" => "Fail laeti üles ainult osaliselt", "No file was uploaded" => "Ühtegi faili ei laetud üles", "Missing a temporary folder" => "Ajutiste failide kaust puudub", @@ -32,7 +32,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Sinu andmemaht on täis! Faile ei uuendata ja sünkroniseerimist ei toimu!", "Your storage is almost full ({usedSpacePercent}%)" => "Su andmemaht on peaaegu täis ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Valmistatakse allalaadimist. See võib võtta veidi aega kui on tegu suurte failidega. ", -"Unable to upload your file as it is a directory or has 0 bytes" => "Faili ei saa üles laadida, kuna see on kaust või selle suurus on 0 baiti", +"Unable to upload your file as it is a directory or has 0 bytes" => "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti", "Not enough space available" => "Pole piisavalt ruumi", "Upload cancelled." => "Üleslaadimine tühistati.", "File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 7d938cffd26..8c244babf08 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -3,12 +3,12 @@ "Could not move %s" => "Ezin dira fitxategiak mugitu %s", "Unable to rename file" => "Ezin izan da fitxategia berrizendatu", "No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna", -"There is no error, the file uploaded with success" => "Ez da errorerik egon, fitxategia ongi igo da", +"There is no error, the file uploaded with success" => "Ez da arazorik izan, fitxategia ongi igo da", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Igotako fitxategia HTML formularioan zehaztutako MAX_FILE_SIZE direktiba baino handidagoa da.", -"The uploaded file was only partially uploaded" => "Igotako fitxategiaren zati bat bakarrik igo da", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Igotako fitxategiaren tamaina HTML inprimakiko MAX_FILESIZE direktiban adierazitakoa baino handiagoa da", +"The uploaded file was only partially uploaded" => "Igotako fitxategiaren zati bat baino gehiago ez da igo", "No file was uploaded" => "Ez da fitxategirik igo", -"Missing a temporary folder" => "Aldi bateko karpeta falta da", +"Missing a temporary folder" => "Aldi baterako karpeta falta da", "Failed to write to disk" => "Errore bat izan da diskoan idazterakoan", "Not enough storage available" => "Ez dago behar aina leku erabilgarri,", "Invalid directory." => "Baliogabeko karpeta.", @@ -25,14 +25,13 @@ "undo" => "desegin", "perform delete operation" => "Ezabatu", "1 file uploading" => "fitxategi 1 igotzen", -"files uploading" => "fitxategiak igotzen", "'.' is an invalid file name." => "'.' ez da fitxategi izen baliogarria.", "File name cannot be empty." => "Fitxategi izena ezin da hutsa izan.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "IZen aliogabea, '\\', '/', '<', '>', ':', '\"', '|', '?' eta '*' ez daude baimenduta.", "Your storage is full, files can not be updated or synced anymore!" => "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik igo edo sinkronizatu!", "Your storage is almost full ({usedSpacePercent}%)" => "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})", "Your download is being prepared. This might take some time if the files are big." => "Zure deskarga prestatu egin behar da. Denbora bat har lezake fitxategiak handiak badira. ", -"Unable to upload your file as it is a directory or has 0 bytes" => "Ezin izan da zure fitxategia igo karpeta bat delako edo 0 byte dituelako", +"Unable to upload your file as it is a directory or has 0 bytes" => "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu", "Not enough space available" => "Ez dago leku nahikorik.", "Upload cancelled." => "Igoera ezeztatuta", "File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.", @@ -65,7 +64,7 @@ "Nothing in here. Upload something!" => "Ez dago ezer. Igo zerbait!", "Download" => "Deskargatu", "Unshare" => "Ez elkarbanatu", -"Upload too large" => "Igoera handiegia da", +"Upload too large" => "Igotakoa handiegia da", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira.", "Files are being scanned, please wait." => "Fitxategiak eskaneatzen ari da, itxoin mezedez.", "Current scanning" => "Orain eskaneatzen ari da", diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php index 10132fdf9e3..13ef465199d 100644 --- a/apps/files/l10n/fa.php +++ b/apps/files/l10n/fa.php @@ -3,19 +3,18 @@ "Could not move %s" => "%s نمی تواند حرکت کند ", "Unable to rename file" => "قادر به تغییر نام پرونده نیست.", "No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس", -"There is no error, the file uploaded with success" => "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود", +"There is no error, the file uploaded with success" => "هیچ خطایی وجود ندارد فایل با موفقیت بار گذاری شد", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "حداکثر حجم قابل بار گذاری از طریق HTML MAX_FILE_SIZE است", -"The uploaded file was only partially uploaded" => "پرونده بارگذاری شده فقط تاحدودی بارگذاری شده", -"No file was uploaded" => "هیچ پروندهای بارگذاری نشده", -"Missing a temporary folder" => "یک پوشه موقت گم شده", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "حداکثر حجم مجاز برای بارگذاری از طریق HTML \nMAX_FILE_SIZE", +"The uploaded file was only partially uploaded" => "مقدار کمی از فایل بارگذاری شده", +"No file was uploaded" => "هیچ فایلی بارگذاری نشده", +"Missing a temporary folder" => "یک پوشه موقت گم شده است", "Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود", "Not enough storage available" => "فضای کافی در دسترس نیست", "Invalid directory." => "فهرست راهنما نامعتبر می باشد.", -"Files" => "پرونده‌ها", -"Share" => "اشتراک‌گذاری", +"Files" => "فایل ها", "Delete permanently" => "حذف قطعی", -"Delete" => "حذف", +"Delete" => "پاک کردن", "Rename" => "تغییرنام", "Pending" => "در انتظار", "{new_name} already exists" => "{نام _جدید} در حال حاضر وجود دارد.", @@ -42,12 +41,12 @@ "Error" => "خطا", "Name" => "نام", "Size" => "اندازه", -"Modified" => "تاریخ", +"Modified" => "تغییر یافته", "1 folder" => "1 پوشه", "{count} folders" => "{ شمار} پوشه ها", "1 file" => "1 پرونده", "{count} files" => "{ شمار } فایل ها", -"Upload" => "بارگزاری", +"Upload" => "بارگذاری", "File handling" => "اداره پرونده ها", "Maximum upload size" => "حداکثر اندازه بارگزاری", "max. possible: " => "حداکثرمقدارممکن:", @@ -64,9 +63,9 @@ "Cancel upload" => "متوقف کردن بار گذاری", "You don’t have write permissions here." => "شما اجازه ی نوشتن در اینجا را ندارید", "Nothing in here. Upload something!" => "اینجا هیچ چیز نیست.", -"Download" => "دانلود", +"Download" => "بارگیری", "Unshare" => "لغو اشتراک", -"Upload too large" => "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)", +"Upload too large" => "حجم بارگذاری بسیار زیاد است", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد", "Files are being scanned, please wait." => "پرونده ها در حال بازرسی هستند لطفا صبر کنید", "Current scanning" => "بازرسی کنونی", diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index 08a07183238..b797273d514 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -4,16 +4,14 @@ "Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut", "No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe", "There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Ladattavan tiedoston maksimikoko ylittää MAX_FILE_SIZE dirketiivin, joka on määritelty HTML-lomakkeessa", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lähetetty tiedosto ylittää HTML-lomakkeessa määritetyn MAX_FILE_SIZE-arvon ylärajan", "The uploaded file was only partially uploaded" => "Tiedoston lähetys onnistui vain osittain", "No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty", -"Missing a temporary folder" => "Tilapäiskansio puuttuu", +"Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa", "Failed to write to disk" => "Levylle kirjoitus epäonnistui", "Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä", "Invalid directory." => "Virheellinen kansio.", "Files" => "Tiedostot", -"Share" => "Jaa", "Delete permanently" => "Poista pysyvästi", "Delete" => "Poista", "Rename" => "Nimeä uudelleen", @@ -30,7 +28,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", "Your storage is almost full ({usedSpacePercent}%)" => "Tallennustila on melkein loppu ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio", "Not enough space available" => "Tilaa ei ole riittävästi", "Upload cancelled." => "Lähetys peruttu.", "File upload is in progress. Leaving the page now will cancel the upload." => "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.", @@ -38,7 +36,7 @@ "Error" => "Virhe", "Name" => "Nimi", "Size" => "Koko", -"Modified" => "Muokattu", +"Modified" => "Muutettu", "1 folder" => "1 kansio", "{count} folders" => "{count} kansiota", "1 file" => "1 tiedosto", diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index f901e6c2f79..093a0b891ce 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -3,12 +3,12 @@ "Could not move %s" => "Impossible de déplacer %s", "Unable to rename file" => "Impossible de renommer le fichier", "No file was uploaded. Unknown error" => "Aucun fichier n'a été chargé. Erreur inconnue", -"There is no error, the file uploaded with success" => "Il n'y a pas d'erreur, le fichier a été envoyé avec succes.", +"There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été téléversé avec succès", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Le fichier envoyé dépasse la directive MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", -"The uploaded file was only partially uploaded" => "Le fichier envoyé n'a été que partiellement envoyé.", -"No file was uploaded" => "Pas de fichier envoyé.", -"Missing a temporary folder" => "Absence de dossier temporaire.", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Le fichier téléversé excède la valeur de MAX_FILE_SIZE spécifiée dans le formulaire HTML", +"The uploaded file was only partially uploaded" => "Le fichier n'a été que partiellement téléversé", +"No file was uploaded" => "Aucun fichier n'a été téléversé", +"Missing a temporary folder" => "Il manque un répertoire temporaire", "Failed to write to disk" => "Erreur d'écriture sur le disque", "Not enough storage available" => "Plus assez d'espace de stockage disponible", "Invalid directory." => "Dossier invalide.", @@ -16,7 +16,7 @@ "Delete permanently" => "Supprimer de façon définitive", "Delete" => "Supprimer", "Rename" => "Renommer", -"Pending" => "En attente", +"Pending" => "En cours", "{new_name} already exists" => "{new_name} existe déjà", "replace" => "remplacer", "suggest name" => "Suggérer un nom", @@ -32,7 +32,7 @@ "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 !", "Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de téléverser votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle", +"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet.", "Not enough space available" => "Espace disponible insuffisant", "Upload cancelled." => "Chargement annulé.", "File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)", "Download" => "Télécharger", "Unshare" => "Ne plus partager", -"Upload too large" => "Téléversement trop volumineux", +"Upload too large" => "Fichier trop volumineux", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.", "Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.", "Current scanning" => "Analyse en cours", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index c3716843137..14992f58385 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -2,13 +2,13 @@ "Could not move %s - File with this name already exists" => "Non se moveu %s - Xa existe un ficheiro con ese nome.", "Could not move %s" => "Non foi posíbel mover %s", "Unable to rename file" => "Non é posíbel renomear o ficheiro", -"No file was uploaded. Unknown error" => "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.", -"There is no error, the file uploaded with success" => "Non houbo erros, o ficheiro enviouse correctamente", +"No file was uploaded. Unknown error" => "Non foi enviado ningún ficheiro. Produciuse un erro descoñecido.", +"There is no error, the file uploaded with success" => "Non se produciu ningún erro. O ficheiro enviouse correctamente", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede da directiva MAX_FILE_SIZE especificada no formulario HTML", -"The uploaded file was only partially uploaded" => "O ficheiro so foi parcialmente enviado", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede a directiva MAX_FILE_SIZE que foi indicada no formulario HTML", +"The uploaded file was only partially uploaded" => "O ficheiro enviado foi só parcialmente enviado", "No file was uploaded" => "Non se enviou ningún ficheiro", -"Missing a temporary folder" => "Falta o cartafol temporal", +"Missing a temporary folder" => "Falta un cartafol temporal", "Failed to write to disk" => "Produciuse un erro ao escribir no disco", "Not enough storage available" => "Non hai espazo de almacenamento abondo", "Invalid directory." => "O directorio é incorrecto.", diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php index 3facc4f8597..36ba7cc5de2 100644 --- a/apps/files/l10n/he.php +++ b/apps/files/l10n/he.php @@ -1,11 +1,11 @@ "לא הועלה קובץ. טעות בלתי מזוהה.", -"There is no error, the file uploaded with success" => "לא התרחשה שגיאה, הקובץ הועלה בהצלחה", +"There is no error, the file uploaded with success" => "לא אירעה תקלה, הקבצים הועלו בהצלחה", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "הקובץ שהועלה גדוך מהערך MAX_FILE_SIZE שהוגדר בתופס HTML", -"The uploaded file was only partially uploaded" => "הקובץ הועלה באופן חלקי בלבד", -"No file was uploaded" => "שום קובץ לא הועלה", -"Missing a temporary folder" => "תקיה זמנית חסרה", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "הקובץ שהועלה חרג מההנחיה MAX_FILE_SIZE שצוינה בטופס ה־HTML", +"The uploaded file was only partially uploaded" => "הקובץ שהועלה הועלה בצורה חלקית", +"No file was uploaded" => "לא הועלו קבצים", +"Missing a temporary folder" => "תיקייה זמנית חסרה", "Failed to write to disk" => "הכתיבה לכונן נכשלה", "Files" => "קבצים", "Delete permanently" => "מחק לצמיתות", diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php index d634faee753..a6b83b3d67c 100644 --- a/apps/files/l10n/hr.php +++ b/apps/files/l10n/hr.php @@ -1,13 +1,12 @@ "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", +"There is no error, the file uploaded with success" => "Datoteka je poslana uspješno i bez pogrešaka", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslana datoteka izlazi iz okvira MAX_FILE_SIZE direktive postavljene u HTML obrascu", +"The uploaded file was only partially uploaded" => "Datoteka je poslana samo djelomično", +"No file was uploaded" => "Ni jedna datoteka nije poslana", +"Missing a temporary folder" => "Nedostaje privremena mapa", "Failed to write to disk" => "Neuspjelo pisanje na disk", "Files" => "Datoteke", -"Share" => "Podijeli", -"Delete" => "Obriši", +"Delete" => "Briši", "Rename" => "Promjeni ime", "Pending" => "U tijeku", "replace" => "zamjeni", @@ -15,15 +14,14 @@ "cancel" => "odustani", "undo" => "vrati", "1 file uploading" => "1 datoteka se učitava", -"files uploading" => "datoteke se učitavaju", "Unable to upload your file as it is a directory or has 0 bytes" => "Nemoguće poslati datoteku jer je prazna ili je direktorij", "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.", "Error" => "Greška", -"Name" => "Ime", +"Name" => "Naziv", "Size" => "Veličina", "Modified" => "Zadnja promjena", -"Upload" => "Učitaj", +"Upload" => "Pošalji", "File handling" => "datoteka za rukovanje", "Maximum upload size" => "Maksimalna veličina prijenosa", "max. possible: " => "maksimalna moguća: ", @@ -37,8 +35,8 @@ "Folder" => "mapa", "Cancel upload" => "Prekini upload", "Nothing in here. Upload something!" => "Nema ničega u ovoj mapi. Pošalji nešto!", -"Download" => "Preuzimanje", -"Unshare" => "Makni djeljenje", +"Download" => "Preuzmi", +"Unshare" => "Prekini djeljenje", "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.", diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index 9a4e5199692..103523b65f4 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -7,7 +7,7 @@ "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra.", "The uploaded file was only partially uploaded" => "Az eredeti fájlt csak részben sikerült feltölteni.", -"No file was uploaded" => "Nem töltődött fel állomány", +"No file was uploaded" => "Nem töltődött fel semmi", "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Failed to write to disk" => "Nem sikerült a lemezre történő írás", "Not enough storage available" => "Nincs elég szabad hely.", @@ -64,7 +64,7 @@ "You don’t have write permissions here." => "Itt nincs írásjoga.", "Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!", "Download" => "Letöltés", -"Unshare" => "A megosztás visszavonása", +"Unshare" => "Megosztás visszavonása", "Upload too large" => "A feltöltés túl nagy", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.", "Files are being scanned, please wait." => "A fájllista ellenőrzése zajlik, kis türelmet!", diff --git a/apps/files/l10n/ia.php b/apps/files/l10n/ia.php index 457f771e460..b3233cc37d0 100644 --- a/apps/files/l10n/ia.php +++ b/apps/files/l10n/ia.php @@ -1,6 +1,6 @@ "Le file incargate solmente esseva incargate partialmente", -"No file was uploaded" => "Nulle file esseva incargate.", +"No file was uploaded" => "Nulle file esseva incargate", "Missing a temporary folder" => "Manca un dossier temporari", "Files" => "Files", "Delete" => "Deler", diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php index 187ccfc67f8..3894ce0de9c 100644 --- a/apps/files/l10n/id.php +++ b/apps/files/l10n/id.php @@ -2,7 +2,7 @@ "Could not move %s - File with this name already exists" => "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada", "Could not move %s" => "Tidak dapat memindahkan %s", "Unable to rename file" => "Tidak dapat mengubah nama berkas", -"No file was uploaded. Unknown error" => "Tidak ada berkas yang diunggah. Galat tidak dikenal.", +"No file was uploaded. Unknown error" => "Tidak ada berkas yang diunggah. Galat tidak dikenal", "There is no error, the file uploaded with success" => "Tidak ada galat, berkas sukses diunggah", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.", @@ -32,7 +32,7 @@ "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}%)", "Your download is being prepared. This might take some time if the files are big." => "Unduhan Anda sedang disiapkan. Prosesnya dapat berlangsung agak lama jika ukuran berkasnya besar.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Gagal mengunggah berkas Anda karena berupa direktori atau mempunyai ukuran 0 byte", +"Unable to upload your file as it is a directory or has 0 bytes" => "Gagal mengunggah berkas Anda karena berupa direktori atau ukurannya 0 byte", "Not enough space available" => "Ruang penyimpanan tidak mencukupi", "Upload cancelled." => "Pengunggahan dibatalkan.", "File upload is in progress. Leaving the page now will cancel the upload." => "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses.", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!", "Download" => "Unduh", "Unshare" => "Batalkan berbagi", -"Upload too large" => "Yang diunggah terlalu besar", +"Upload too large" => "Unggahan terlalu besar", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.", "Files are being scanned, please wait." => "Berkas sedang dipindai, silakan tunggu.", "Current scanning" => "Yang sedang dipindai", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index 9f54b2efb94..20819e25640 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -3,12 +3,12 @@ "Could not move %s" => "Impossibile spostare %s", "Unable to rename file" => "Impossibile rinominare il file", "No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto", -"There is no error, the file uploaded with success" => "Non ci sono errori, il file è stato caricato correttamente", +"There is no error, the file uploaded with success" => "Non ci sono errori, file caricato con successo", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Il file inviato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", -"The uploaded file was only partially uploaded" => "Il file è stato caricato solo parzialmente", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Il file caricato supera il valore MAX_FILE_SIZE definito nel form HTML", +"The uploaded file was only partially uploaded" => "Il file è stato parzialmente caricato", "No file was uploaded" => "Nessun file è stato caricato", -"Missing a temporary folder" => "Manca una cartella temporanea", +"Missing a temporary folder" => "Cartella temporanea mancante", "Failed to write to disk" => "Scrittura su disco non riuscita", "Not enough storage available" => "Spazio di archiviazione insufficiente", "Invalid directory." => "Cartella non valida.", @@ -32,7 +32,7 @@ "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!", "Your storage is almost full ({usedSpacePercent}%)" => "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Il tuo scaricamento è in fase di preparazione. Ciò potrebbe richiedere del tempo se i file sono grandi.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile caricare il file poiché è una cartella o ha una dimensione di 0 byte", +"Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte", "Not enough space available" => "Spazio disponibile insufficiente", "Upload cancelled." => "Invio annullato", "File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!", "Download" => "Scarica", "Unshare" => "Rimuovi condivisione", -"Upload too large" => "Caricamento troppo grande", +"Upload too large" => "Il file caricato è troppo grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", "Files are being scanned, please wait." => "Scansione dei file in corso, attendi", "Current scanning" => "Scansione corrente", diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index afc2f54b6d2..402a9f33b39 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -5,10 +5,10 @@ "No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー", "There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "アップロードファイルはHTMLフォームで指定された MAX_FILE_SIZE の制限を超えています", -"The uploaded file was only partially uploaded" => "アップロードファイルは一部分だけアップロードされました", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "アップロードされたファイルはHTMLのフォームに設定されたMAX_FILE_SIZEに設定されたサイズを超えています", +"The uploaded file was only partially uploaded" => "ファイルは一部分しかアップロードされませんでした", "No file was uploaded" => "ファイルはアップロードされませんでした", -"Missing a temporary folder" => "一時保存フォルダが見つかりません", +"Missing a temporary folder" => "テンポラリフォルダが見つかりません", "Failed to write to disk" => "ディスクへの書き込みに失敗しました", "Not enough storage available" => "ストレージに十分な空き容量がありません", "Invalid directory." => "無効なディレクトリです。", @@ -16,7 +16,7 @@ "Delete permanently" => "完全に削除する", "Delete" => "削除", "Rename" => "名前の変更", -"Pending" => "中断", +"Pending" => "保留", "{new_name} already exists" => "{new_name} はすでに存在しています", "replace" => "置き換え", "suggest name" => "推奨名称", @@ -41,7 +41,7 @@ "Error" => "エラー", "Name" => "名前", "Size" => "サイズ", -"Modified" => "変更", +"Modified" => "更新日時", "1 folder" => "1 フォルダ", "{count} folders" => "{count} フォルダ", "1 file" => "1 ファイル", @@ -64,8 +64,8 @@ "You don’t have write permissions here." => "あなたには書き込み権限がありません。", "Nothing in here. Upload something!" => "ここには何もありません。何かアップロードしてください。", "Download" => "ダウンロード", -"Unshare" => "共有解除", -"Upload too large" => "アップロードには大きすぎます。", +"Unshare" => "共有しない", +"Upload too large" => "ファイルサイズが大きすぎます", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。", "Files are being scanned, please wait." => "ファイルをスキャンしています、しばらくお待ちください。", "Current scanning" => "スキャン中", diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php index 82b9c5df934..6ea75a2ea92 100644 --- a/apps/files/l10n/ka_GE.php +++ b/apps/files/l10n/ka_GE.php @@ -64,7 +64,7 @@ "You don’t have write permissions here." => "თქვენ არ გაქვთ ჩაწერის უფლება აქ.", "Nothing in here. Upload something!" => "აქ არაფერი არ არის. ატვირთე რამე!", "Download" => "ჩამოტვირთვა", -"Unshare" => "გაუზიარებადი", +"Unshare" => "გაზიარების მოხსნა", "Upload too large" => "ასატვირთი ფაილი ძალიან დიდია", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", "Files are being scanned, please wait." => "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ.", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index c35bdd115ed..88378bb486f 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -3,24 +3,24 @@ "Could not move %s" => "%s 항목을 이딩시키지 못하였음", "Unable to rename file" => "파일 이름바꾸기 할 수 없음", "No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다", -"There is no error, the file uploaded with success" => "파일 업로드에 성공하였습니다.", +"There is no error, the file uploaded with success" => "업로드에 성공하였습니다.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일 크기가 HTML 폼의 MAX_FILE_SIZE보다 큼", -"The uploaded file was only partially uploaded" => "파일의 일부분만 업로드됨", -"No file was uploaded" => "파일이 업로드되지 않았음", -"Missing a temporary folder" => "임시 폴더가 없음", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일이 HTML 문서에 지정한 MAX_FILE_SIZE보다 더 큼", +"The uploaded file was only partially uploaded" => "파일이 부분적으로 업로드됨", +"No file was uploaded" => "업로드된 파일 없음", +"Missing a temporary folder" => "임시 폴더가 사라짐", "Failed to write to disk" => "디스크에 쓰지 못했습니다", "Invalid directory." => "올바르지 않은 디렉터리입니다.", "Files" => "파일", "Delete" => "삭제", "Rename" => "이름 바꾸기", -"Pending" => "대기 중", +"Pending" => "보류 중", "{new_name} already exists" => "{new_name}이(가) 이미 존재함", "replace" => "바꾸기", "suggest name" => "이름 제안", "cancel" => "취소", "replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨", -"undo" => "되돌리기", +"undo" => "실행 취소", "1 file uploading" => "파일 1개 업로드 중", "'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름 입니다.", "File name cannot be empty." => "파일 이름이 비어 있을 수 없습니다.", @@ -28,7 +28,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!", "Your storage is almost full ({usedSpacePercent}%)" => "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다.", -"Unable to upload your file as it is a directory or has 0 bytes" => "디렉터리 및 빈 파일은 업로드할 수 없습니다", +"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다", "Not enough space available" => "여유 공간이 부족합니다", "Upload cancelled." => "업로드가 취소되었습니다.", "File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", @@ -59,7 +59,7 @@ "Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!", "Download" => "다운로드", "Unshare" => "공유 해제", -"Upload too large" => "업로드한 파일이 너무 큼", +"Upload too large" => "업로드 용량 초과", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", "Files are being scanned, please wait." => "파일을 검색하고 있습니다. 기다려 주십시오.", "Current scanning" => "현재 검색", diff --git a/apps/files/l10n/lb.php b/apps/files/l10n/lb.php index 948a114acc5..6533a123083 100644 --- a/apps/files/l10n/lb.php +++ b/apps/files/l10n/lb.php @@ -2,7 +2,7 @@ "There is no error, the file uploaded with success" => "Keen Feeler, Datei ass komplett ropgelueden ginn", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Déi ropgelueden Datei ass méi grouss wei d'MAX_FILE_SIZE Eegenschaft déi an der HTML form uginn ass", "The uploaded file was only partially uploaded" => "Déi ropgelueden Datei ass nëmmen hallef ropgelueden ginn", -"No file was uploaded" => "Et ass kee Fichier ropgeluede ginn", +"No file was uploaded" => "Et ass keng Datei ropgelueden ginn", "Missing a temporary folder" => "Et feelt en temporären Dossier", "Failed to write to disk" => "Konnt net op den Disk schreiwen", "Files" => "Dateien", @@ -31,7 +31,7 @@ "Folder" => "Dossier", "Cancel upload" => "Upload ofbriechen", "Nothing in here. Upload something!" => "Hei ass näischt. Lued eppes rop!", -"Download" => "Download", +"Download" => "Eroflueden", "Unshare" => "Net méi deelen", "Upload too large" => "Upload ze grouss", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.", diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php index 199b6978ce2..750500a3d54 100644 --- a/apps/files/l10n/lt_LT.php +++ b/apps/files/l10n/lt_LT.php @@ -1,8 +1,8 @@ "Failas įkeltas sėkmingai, be klaidų", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.", +"There is no error, the file uploaded with success" => "Klaidų nėra, failas įkeltas sėkmingai", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Įkeliamo failo dydis viršija MAX_FILE_SIZE parametrą, kuris yra nustatytas HTML formoje", "The uploaded file was only partially uploaded" => "Failas buvo įkeltas tik dalinai", -"No file was uploaded" => "Nebuvo įkeltas joks failas", +"No file was uploaded" => "Nebuvo įkeltas nė vienas failas", "Missing a temporary folder" => "Nėra laikinojo katalogo", "Failed to write to disk" => "Nepavyko įrašyti į diską", "Files" => "Failai", @@ -44,7 +44,7 @@ "Download" => "Atsisiųsti", "Unshare" => "Nebesidalinti", "Upload too large" => "Įkėlimui failas per didelis", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų leidžiamą šiame serveryje", "Files are being scanned, please wait." => "Skenuojami failai, prašome palaukti.", "Current scanning" => "Šiuo metu skenuojama" ); diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php index 99304be9e0e..1292514547b 100644 --- a/apps/files/l10n/lv.php +++ b/apps/files/l10n/lv.php @@ -3,7 +3,7 @@ "Could not move %s" => "Nevarēja pārvietot %s", "Unable to rename file" => "Nevarēja pārsaukt datni", "No file was uploaded. Unknown error" => "Netika augšupielādēta neviena datne. Nezināma kļūda", -"There is no error, the file uploaded with success" => "Viss kārtībā, datne augšupielādēta veiksmīga", +"There is no error, the file uploaded with success" => "Augšupielāde pabeigta bez kļūdām", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā", "The uploaded file was only partially uploaded" => "Augšupielādētā datne ir tikai daļēji augšupielādēta", @@ -31,7 +31,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!", "Your storage is almost full ({usedSpacePercent}%)" => "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tā ir 0 baitu liela", +"Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tās izmērs ir 0 baiti", "Not enough space available" => "Nepietiek brīvas vietas", "Upload cancelled." => "Augšupielāde ir atcelta.", "File upload is in progress. Leaving the page now will cancel the upload." => "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.", diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php index 32e7eadb936..78fed25cf92 100644 --- a/apps/files/l10n/mk.php +++ b/apps/files/l10n/mk.php @@ -1,11 +1,11 @@ "Ниту еден фајл не се вчита. Непозната грешка", -"There is no error, the file uploaded with success" => "Датотеката беше успешно подигната.", +"There is no error, the file uploaded with success" => "Нема грешка, датотеката беше подигната успешно", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Подигнатата датотеката ја надминува MAX_FILE_SIZE директивата која беше поставена во HTML формата", "The uploaded file was only partially uploaded" => "Датотеката беше само делумно подигната.", -"No file was uploaded" => "Не беше подигната датотека.", -"Missing a temporary folder" => "Недостасува привремена папка", +"No file was uploaded" => "Не беше подигната датотека", +"Missing a temporary folder" => "Не постои привремена папка", "Failed to write to disk" => "Неуспеав да запишам на диск", "Files" => "Датотеки", "Delete" => "Избриши", @@ -48,7 +48,7 @@ "Nothing in here. Upload something!" => "Тука нема ништо. Снимете нешто!", "Download" => "Преземи", "Unshare" => "Не споделувај", -"Upload too large" => "Фајлот кој се вчитува е преголем", +"Upload too large" => "Датотеката е премногу голема", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.", "Files are being scanned, please wait." => "Се скенираат датотеки, ве молам почекајте.", "Current scanning" => "Моментално скенирам" diff --git a/apps/files/l10n/ms_MY.php b/apps/files/l10n/ms_MY.php index 2ce4f163328..a390288b365 100644 --- a/apps/files/l10n/ms_MY.php +++ b/apps/files/l10n/ms_MY.php @@ -1,13 +1,12 @@ "Tiada fail dimuatnaik. Ralat tidak diketahui.", -"There is no error, the file uploaded with success" => "Tiada ralat berlaku, fail berjaya dimuatnaik", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML", -"The uploaded file was only partially uploaded" => "Fail yang dimuatnaik tidak lengkap", -"No file was uploaded" => "Tiada fail dimuatnaik", -"Missing a temporary folder" => "Direktori sementara hilang", +"There is no error, the file uploaded with success" => "Tiada ralat, fail berjaya dimuat naik.", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Fail yang dimuat naik melebihi MAX_FILE_SIZE yang dinyatakan dalam form HTML ", +"The uploaded file was only partially uploaded" => "Sebahagian daripada fail telah dimuat naik. ", +"No file was uploaded" => "Tiada fail yang dimuat naik", +"Missing a temporary folder" => "Folder sementara hilang", "Failed to write to disk" => "Gagal untuk disimpan", -"Files" => "Fail-fail", -"Share" => "Kongsi", +"Files" => "fail", "Delete" => "Padam", "Pending" => "Dalam proses", "replace" => "ganti", @@ -15,7 +14,7 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Tidak boleh memuatnaik fail anda kerana mungkin ianya direktori atau saiz fail 0 bytes", "Upload cancelled." => "Muatnaik dibatalkan.", "Error" => "Ralat", -"Name" => "Nama", +"Name" => "Nama ", "Size" => "Saiz", "Modified" => "Dimodifikasi", "Upload" => "Muat naik", @@ -33,7 +32,7 @@ "Cancel upload" => "Batal muat naik", "Nothing in here. Upload something!" => "Tiada apa-apa di sini. Muat naik sesuatu!", "Download" => "Muat turun", -"Upload too large" => "Muatnaik terlalu besar", +"Upload too large" => "Muat naik terlalu besar", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server", "Files are being scanned, please wait." => "Fail sedang diimbas, harap bersabar.", "Current scanning" => "Imbasan semasa" diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php index 98f91b3eb54..54042c91243 100644 --- a/apps/files/l10n/nb_NO.php +++ b/apps/files/l10n/nb_NO.php @@ -1,10 +1,10 @@ "Ingen filer ble lastet opp. Ukjent feil.", -"There is no error, the file uploaded with success" => "Pust ut, ingen feil. Filen ble lastet opp problemfritt", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Filen du prøvde å laste opp var større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet.", -"The uploaded file was only partially uploaded" => "Filen du prøvde å laste opp ble kun delvis lastet opp", -"No file was uploaded" => "Ingen filer ble lastet opp", -"Missing a temporary folder" => "Mangler midlertidig mappe", +"There is no error, the file uploaded with success" => "Det er ingen feil. Filen ble lastet opp.", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Filstørrelsen overskrider maksgrensen på MAX_FILE_SIZE som ble oppgitt i HTML-skjemaet", +"The uploaded file was only partially uploaded" => "Filopplastningen ble bare delvis gjennomført", +"No file was uploaded" => "Ingen fil ble lastet opp", +"Missing a temporary folder" => "Mangler en midlertidig mappe", "Failed to write to disk" => "Klarte ikke å skrive til disk", "Files" => "Filer", "Delete permanently" => "Slett permanent", @@ -18,7 +18,6 @@ "replaced {new_name} with {old_name}" => "erstatt {new_name} med {old_name}", "undo" => "angre", "1 file uploading" => "1 fil lastes opp", -"files uploading" => "filer lastes opp", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.", "Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes", "Upload cancelled." => "Opplasting avbrutt.", @@ -49,7 +48,7 @@ "Nothing in here. Upload something!" => "Ingenting her. Last opp noe!", "Download" => "Last ned", "Unshare" => "Avslutt deling", -"Upload too large" => "Filen er for stor", +"Upload too large" => "Opplasting for stor", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er for store for å laste opp til denne serveren.", "Files are being scanned, please wait." => "Skanner etter filer, vennligst vent.", "Current scanning" => "Pågående skanning" diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index b9a05fdf23a..38b55d34d95 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -3,12 +3,12 @@ "Could not move %s" => "Kon %s niet verplaatsen", "Unable to rename file" => "Kan bestand niet hernoemen", "No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout", -"There is no error, the file uploaded with success" => "De upload van het bestand is goedgegaan.", +"There is no error, the file uploaded with success" => "Geen fout opgetreden, bestand successvol geupload.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Het bestand overschrijdt de MAX_FILE_SIZE instelling dat is opgegeven in het HTML formulier", -"The uploaded file was only partially uploaded" => "Het bestand is gedeeltelijk geüpload", -"No file was uploaded" => "Er is geen bestand geüpload", -"Missing a temporary folder" => "Er ontbreekt een tijdelijke map", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Het geüploade bestand is groter dan de MAX_FILE_SIZE richtlijn die is opgegeven in de HTML-formulier", +"The uploaded file was only partially uploaded" => "Het bestand is slechts gedeeltelijk geupload", +"No file was uploaded" => "Geen bestand geüpload", +"Missing a temporary folder" => "Een tijdelijke map mist", "Failed to write to disk" => "Schrijven naar schijf mislukt", "Not enough storage available" => "Niet genoeg opslagruimte beschikbaar", "Invalid directory." => "Ongeldige directory.", @@ -16,7 +16,7 @@ "Delete permanently" => "Verwijder definitief", "Delete" => "Verwijder", "Rename" => "Hernoem", -"Pending" => "In behandeling", +"Pending" => "Wachten", "{new_name} already exists" => "{new_name} bestaat al", "replace" => "vervang", "suggest name" => "Stel een naam voor", @@ -32,7 +32,7 @@ "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!", "Your storage is almost full ({usedSpacePercent}%)" => "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Het lukt niet om uw bestand te uploaded, omdat het een folder of 0 bytes is", +"Unable to upload your file as it is a directory or has 0 bytes" => "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes", "Not enough space available" => "Niet genoeg ruimte beschikbaar", "Upload cancelled." => "Uploaden geannuleerd.", "File upload is in progress. Leaving the page now will cancel the upload." => "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.", @@ -40,13 +40,13 @@ "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ongeldige mapnaam. Gebruik van'Gedeeld' is voorbehouden aan Owncloud", "Error" => "Fout", "Name" => "Naam", -"Size" => "Grootte", -"Modified" => "Aangepast", +"Size" => "Bestandsgrootte", +"Modified" => "Laatst aangepast", "1 folder" => "1 map", "{count} folders" => "{count} mappen", "1 file" => "1 bestand", "{count} files" => "{count} bestanden", -"Upload" => "Uploaden", +"Upload" => "Upload", "File handling" => "Bestand", "Maximum upload size" => "Maximale bestandsgrootte voor uploads", "max. possible: " => "max. mogelijk: ", @@ -54,7 +54,7 @@ "Enable ZIP-download" => "Zet ZIP-download aan", "0 is unlimited" => "0 is ongelimiteerd", "Maximum input size for ZIP files" => "Maximale grootte voor ZIP bestanden", -"Save" => "Bewaren", +"Save" => "Opslaan", "New" => "Nieuw", "Text file" => "Tekstbestand", "Folder" => "Map", @@ -63,9 +63,9 @@ "Cancel upload" => "Upload afbreken", "You don’t have write permissions here." => "U hebt hier geen schrijfpermissies.", "Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!", -"Download" => "Downloaden", -"Unshare" => "Stop met delen", -"Upload too large" => "Upload is te groot", +"Download" => "Download", +"Unshare" => "Stop delen", +"Upload too large" => "Bestanden te groot", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.", "Files are being scanned, please wait." => "Bestanden worden gescand, even wachten.", "Current scanning" => "Er wordt gescand", diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php index 2042e7bf8ad..8f32dc012e3 100644 --- a/apps/files/l10n/nn_NO.php +++ b/apps/files/l10n/nn_NO.php @@ -1,74 +1,23 @@ "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet", -"Could not move %s" => "Klarte ikkje å flytta %s", -"Unable to rename file" => "Klarte ikkje å endra filnamnet", -"No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil", "There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet", "The uploaded file was only partially uploaded" => "Fila vart berre delvis lasta opp", "No file was uploaded" => "Ingen filer vart lasta opp", "Missing a temporary folder" => "Manglar ei mellombels mappe", -"Failed to write to disk" => "Klarte ikkje å skriva til disk", -"Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg", -"Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", -"Share" => "Del", -"Delete permanently" => "Slett for godt", "Delete" => "Slett", -"Rename" => "Endra namn", -"Pending" => "Under vegs", -"{new_name} already exists" => "{new_name} finst allereie", -"replace" => "byt ut", -"suggest name" => "føreslå namn", -"cancel" => "avbryt", -"replaced {new_name} with {old_name}" => "bytte ut {new_name} med {old_name}", -"undo" => "angre", -"perform delete operation" => "utfør sletting", -"1 file uploading" => "1 fil lastar opp", -"files uploading" => "filer lastar opp", -"'.' is an invalid file name." => "«.» er eit ugyldig filnamn.", -"File name cannot be empty." => "Filnamnet kan ikkje vera tomt.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.", -"Your storage is full, files can not be updated or synced anymore!" => "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", -"Your storage is almost full ({usedSpacePercent}%)" => "Lagringa di er nesten full ({usedSpacePercent} %)", -"Your download is being prepared. This might take some time if the files are big." => "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje å lasta opp fila sidan ho er ei mappe eller er på 0 byte", -"Not enough space available" => "Ikkje nok lagringsplass tilgjengeleg", -"Upload cancelled." => "Opplasting avbroten.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fila lastar no opp. Viss du forlèt sida no vil opplastinga bli avbroten.", -"URL cannot be empty." => "URL-en kan ikkje vera tom.", -"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ugyldig mappenamn. Mappa «Shared» er reservert av ownCloud", "Error" => "Feil", "Name" => "Namn", "Size" => "Storleik", "Modified" => "Endra", -"1 folder" => "1 mappe", -"{count} folders" => "{count} mapper", -"1 file" => "1 fil", -"{count} files" => "{count} filer", "Upload" => "Last opp", -"File handling" => "Filhandtering", "Maximum upload size" => "Maksimal opplastingsstorleik", -"max. possible: " => "maks. moglege:", -"Needed for multi-file and folder downloads." => "Naudsynt for fleirfils- og mappenedlastingar.", -"Enable ZIP-download" => "Skru på ZIP-nedlasting", -"0 is unlimited" => "0 er ubegrensa", -"Maximum input size for ZIP files" => "Maksimal storleik for ZIP-filer", "Save" => "Lagre", "New" => "Ny", "Text file" => "Tekst fil", "Folder" => "Mappe", -"From link" => "Frå lenkje", -"Deleted files" => "Sletta filer", -"Cancel upload" => "Avbryt opplasting", -"You don’t have write permissions here." => "Du har ikkje skriverettar her.", "Nothing in here. Upload something!" => "Ingenting her. Last noko opp!", "Download" => "Last ned", -"Unshare" => "Udel", "Upload too large" => "For stor opplasting", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren.", -"Files are being scanned, please wait." => "Skannar filer, ver venleg og vent.", -"Current scanning" => "Køyrande skanning", -"Upgrading filesystem cache..." => "Oppgraderer mellomlageret av filsystemet …" +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren." ); diff --git a/apps/files/l10n/oc.php b/apps/files/l10n/oc.php index 03b46444b64..b1ef6216585 100644 --- a/apps/files/l10n/oc.php +++ b/apps/files/l10n/oc.php @@ -14,7 +14,6 @@ "cancel" => "anulla", "undo" => "defar", "1 file uploading" => "1 fichièr al amontcargar", -"files uploading" => "fichièrs al amontcargar", "Unable to upload your file as it is a directory or has 0 bytes" => "Impossible d'amontcargar lo teu fichièr qu'es un repertòri o que ten pas que 0 octet.", "Upload cancelled." => "Amontcargar anullat.", "File upload is in progress. Leaving the page now will cancel the upload." => "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ", @@ -37,7 +36,7 @@ "Cancel upload" => " Anulla l'amontcargar", "Nothing in here. Upload something!" => "Pas res dedins. Amontcarga qualquaren", "Download" => "Avalcarga", -"Unshare" => "Pas partejador", +"Unshare" => "Non parteja", "Upload too large" => "Amontcargament tròp gròs", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.", "Files are being scanned, please wait." => "Los fiichièrs son a èsser explorats, ", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index 8b7f665ceed..e9a78e2f442 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -3,12 +3,12 @@ "Could not move %s" => "Nie można było przenieść %s", "Unable to rename file" => "Nie można zmienić nazwy pliku", "No file was uploaded. Unknown error" => "Żaden plik nie został załadowany. Nieznany błąd", -"There is no error, the file uploaded with success" => "Nie było błędów, plik wysłano poprawnie.", +"There is no error, the file uploaded with success" => "Przesłano plik", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", "The uploaded file was only partially uploaded" => "Załadowany plik został wysłany tylko częściowo.", -"No file was uploaded" => "Nie wysłano żadnego pliku", -"Missing a temporary folder" => "Brak folderu tymczasowego", +"No file was uploaded" => "Nie przesłano żadnego pliku", +"Missing a temporary folder" => "Brak katalogu tymczasowego", "Failed to write to disk" => "Błąd zapisu na dysk", "Not enough storage available" => "Za mało dostępnego miejsca", "Invalid directory." => "Zła ścieżka.", @@ -46,7 +46,7 @@ "{count} folders" => "Ilość folderów: {count}", "1 file" => "1 plik", "{count} files" => "Ilość plików: {count}", -"Upload" => "Wyślij", +"Upload" => "Prześlij", "File handling" => "Zarządzanie plikami", "Maximum upload size" => "Maksymalny rozmiar wysyłanego pliku", "max. possible: " => "maks. możliwy:", @@ -57,15 +57,15 @@ "Save" => "Zapisz", "New" => "Nowy", "Text file" => "Plik tekstowy", -"Folder" => "Folder", +"Folder" => "Katalog", "From link" => "Z odnośnika", "Deleted files" => "Pliki usunięte", "Cancel upload" => "Anuluj wysyłanie", "You don’t have write permissions here." => "Nie masz uprawnień do zapisu w tym miejscu.", "Nothing in here. Upload something!" => "Pusto. Wyślij coś!", "Download" => "Pobierz", -"Unshare" => "Zatrzymaj współdzielenie", -"Upload too large" => "Ładowany plik jest za duży", +"Unshare" => "Nie udostępniaj", +"Upload too large" => "Wysyłany plik ma za duży rozmiar", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.", "Files are being scanned, please wait." => "Skanowanie plików, proszę czekać.", "Current scanning" => "Aktualnie skanowane", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index bd038806d25..ad8f37c24f6 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -3,11 +3,11 @@ "Could not move %s" => "Impossível mover %s", "Unable to rename file" => "Impossível renomear arquivo", "No file was uploaded. Unknown error" => "Nenhum arquivo foi enviado. Erro desconhecido", -"There is no error, the file uploaded with success" => "Sem erros, o arquivo foi enviado com sucesso", +"There is no error, the file uploaded with success" => "Não houve nenhum erro, o arquivo foi transferido com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O arquivo carregado excede o argumento MAX_FILE_SIZE especificado no formulário HTML", -"The uploaded file was only partially uploaded" => "O arquivo foi parcialmente enviado", -"No file was uploaded" => "Nenhum arquivo enviado", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O arquivo carregado excede o MAX_FILE_SIZE que foi especificado no formulário HTML", +"The uploaded file was only partially uploaded" => "O arquivo foi transferido parcialmente", +"No file was uploaded" => "Nenhum arquivo foi transferido", "Missing a temporary folder" => "Pasta temporária não encontrada", "Failed to write to disk" => "Falha ao escrever no disco", "Not enough storage available" => "Espaço de armazenamento insuficiente", @@ -46,7 +46,7 @@ "{count} folders" => "{count} pastas", "1 file" => "1 arquivo", "{count} files" => "{count} arquivos", -"Upload" => "Upload", +"Upload" => "Carregar", "File handling" => "Tratamento de Arquivo", "Maximum upload size" => "Tamanho máximo para carregar", "max. possible: " => "max. possível:", @@ -54,7 +54,7 @@ "Enable ZIP-download" => "Habilitar ZIP-download", "0 is unlimited" => "0 para ilimitado", "Maximum input size for ZIP files" => "Tamanho máximo para arquivo ZIP", -"Save" => "Guardar", +"Save" => "Salvar", "New" => "Novo", "Text file" => "Arquivo texto", "Folder" => "Pasta", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Nada aqui.Carrege alguma coisa!", "Download" => "Baixar", "Unshare" => "Descompartilhar", -"Upload too large" => "Upload muito grande", +"Upload too large" => "Arquivo muito grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor.", "Files are being scanned, please wait." => "Arquivos sendo escaneados, por favor aguarde.", "Current scanning" => "Scanning atual", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index b799a4b81ae..c06108cf2b3 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -3,18 +3,18 @@ "Could not move %s" => "Não foi possível move o ficheiro %s", "Unable to rename file" => "Não foi possível renomear o ficheiro", "No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido", -"There is no error, the file uploaded with success" => "Não ocorreram erros, o ficheiro foi submetido com sucesso", +"There is no error, the file uploaded with success" => "Sem erro, ficheiro enviado com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O tamanho do ficheiro carregado ultrapassa o valor MAX_FILE_SIZE definido no formulário HTML", -"The uploaded file was only partially uploaded" => "O ficheiro seleccionado foi apenas carregado parcialmente", -"No file was uploaded" => "Nenhum ficheiro foi submetido", -"Missing a temporary folder" => "Está a faltar a pasta temporária", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede o diretivo MAX_FILE_SIZE especificado no formulário HTML", +"The uploaded file was only partially uploaded" => "O ficheiro enviado só foi enviado parcialmente", +"No file was uploaded" => "Não foi enviado nenhum ficheiro", +"Missing a temporary folder" => "Falta uma pasta temporária", "Failed to write to disk" => "Falhou a escrita no disco", "Not enough storage available" => "Não há espaço suficiente em disco", "Invalid directory." => "Directório Inválido", "Files" => "Ficheiros", "Delete permanently" => "Eliminar permanentemente", -"Delete" => "Eliminar", +"Delete" => "Apagar", "Rename" => "Renomear", "Pending" => "Pendente", "{new_name} already exists" => "O nome {new_name} já existe", @@ -46,11 +46,11 @@ "{count} folders" => "{count} pastas", "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", -"Upload" => "Carregar", +"Upload" => "Enviar", "File handling" => "Manuseamento de ficheiros", "Maximum upload size" => "Tamanho máximo de envio", "max. possible: " => "max. possivel: ", -"Needed for multi-file and folder downloads." => "Necessário para multi download de ficheiros e pastas", +"Needed for multi-file and folder downloads." => "Necessário para descarregamento múltiplo de ficheiros e pastas", "Enable ZIP-download" => "Permitir descarregar em ficheiro ZIP", "0 is unlimited" => "0 é ilimitado", "Maximum input size for ZIP files" => "Tamanho máximo para ficheiros ZIP", @@ -65,8 +65,8 @@ "Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", "Download" => "Transferir", "Unshare" => "Deixar de partilhar", -"Upload too large" => "Upload muito grande", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.", +"Upload too large" => "Envio muito grande", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que está a tentar enviar excedem o tamanho máximo de envio permitido neste servidor.", "Files are being scanned, please wait." => "Os ficheiros estão a ser analisados, por favor aguarde.", "Current scanning" => "Análise actual", "Upgrading filesystem cache..." => "Atualizar cache do sistema de ficheiros..." diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index b2b6ee4963f..e3cab80fbc2 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -3,18 +3,15 @@ "Could not move %s" => "Nu s-a putut muta %s", "Unable to rename file" => "Nu s-a putut redenumi fișierul", "No file was uploaded. Unknown error" => "Nici un fișier nu a fost încărcat. Eroare necunoscută", -"There is no error, the file uploaded with success" => "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", +"There is no error, the file uploaded with success" => "Nicio eroare, fișierul a fost încărcat cu succes", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste upload_max_filesize permisi in php.ini: ", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Fișierul are o dimensiune mai mare decât variabile MAX_FILE_SIZE specificată în formularul HTML", "The uploaded file was only partially uploaded" => "Fișierul a fost încărcat doar parțial", -"No file was uploaded" => "Nu a fost încărcat nici un fișier", -"Missing a temporary folder" => "Lipsește un director temporar", +"No file was uploaded" => "Niciun fișier încărcat", +"Missing a temporary folder" => "Lipsește un dosar temporar", "Failed to write to disk" => "Eroare la scriere pe disc", -"Not enough storage available" => "Nu este suficient spațiu disponibil", "Invalid directory." => "Director invalid.", "Files" => "Fișiere", -"Share" => "Partajează", -"Delete permanently" => "Stergere permanenta", "Delete" => "Șterge", "Rename" => "Redenumire", "Pending" => "În așteptare", @@ -24,14 +21,10 @@ "cancel" => "anulare", "replaced {new_name} with {old_name}" => "{new_name} inlocuit cu {old_name}", "undo" => "Anulează ultima acțiune", -"perform delete operation" => "efectueaza operatiunea de stergere", "1 file uploading" => "un fișier se încarcă", -"files uploading" => "fișiere se încarcă", "'.' is an invalid file name." => "'.' este un nume invalid de fișier.", "File name cannot be empty." => "Numele fișierului nu poate rămâne gol.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume invalid, '\\', '/', '<', '>', ':', '\"', '|', '?' si '*' nu sunt permise.", -"Your storage is full, files can not be updated or synced anymore!" => "Spatiul de stocare este plin, nu mai puteti incarca s-au sincroniza alte fisiere.", -"Your storage is almost full ({usedSpacePercent}%)" => "Spatiul de stocare este aproape plin ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari.", "Unable to upload your file as it is a directory or has 0 bytes" => "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes.", "Not enough space available" => "Nu este suficient spațiu disponibil", @@ -47,7 +40,7 @@ "{count} folders" => "{count} foldare", "1 file" => "1 fisier", "{count} files" => "{count} fisiere", -"Upload" => "Încărcare", +"Upload" => "Încarcă", "File handling" => "Manipulare fișiere", "Maximum upload size" => "Dimensiune maximă admisă la încărcare", "max. possible: " => "max. posibil:", @@ -55,20 +48,17 @@ "Enable ZIP-download" => "Activează descărcare fișiere compresate", "0 is unlimited" => "0 e nelimitat", "Maximum input size for ZIP files" => "Dimensiunea maximă de intrare pentru fișiere compresate", -"Save" => "Salvează", +"Save" => "Salvare", "New" => "Nou", "Text file" => "Fișier text", "Folder" => "Dosar", "From link" => "de la adresa", -"Deleted files" => "Sterge fisierele", "Cancel upload" => "Anulează încărcarea", -"You don’t have write permissions here." => "Nu ai permisiunea de a sterge fisiere aici.", "Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!", "Download" => "Descarcă", -"Unshare" => "Anulare partajare", +"Unshare" => "Anulează partajarea", "Upload too large" => "Fișierul încărcat este prea mare", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server.", "Files are being scanned, please wait." => "Fișierele sunt scanate, te rog așteptă.", -"Current scanning" => "În curs de scanare", -"Upgrading filesystem cache..." => "Modernizare fisiere de sistem cache.." +"Current scanning" => "În curs de scanare" ); diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index 1bf3b174b83..37f2e083c4c 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -3,12 +3,12 @@ "Could not move %s" => "Невозможно переместить %s", "Unable to rename file" => "Невозможно переименовать файл", "No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", -"There is no error, the file uploaded with success" => "Файл загружен успешно.", +"There is no error, the file uploaded with success" => "Файл успешно загружен", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер установленный upload_max_filesize в php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Загружаемый файл превосходит значение переменной MAX_FILE_SIZE, указанной в форме HTML", -"The uploaded file was only partially uploaded" => "Файл загружен частично", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Файл превышает размер MAX_FILE_SIZE, указаный в HTML-форме", +"The uploaded file was only partially uploaded" => "Файл был загружен не полностью", "No file was uploaded" => "Файл не был загружен", -"Missing a temporary folder" => "Отсутствует временная папка", +"Missing a temporary folder" => "Невозможно найти временную папку", "Failed to write to disk" => "Ошибка записи на диск", "Not enough storage available" => "Недостаточно доступного места в хранилище", "Invalid directory." => "Неправильный каталог.", @@ -25,28 +25,27 @@ "undo" => "отмена", "perform delete operation" => "выполняется операция удаления", "1 file uploading" => "загружается 1 файл", -"files uploading" => "файлы загружаются", "'.' is an invalid file name." => "'.' - неправильное имя файла.", "File name cannot be empty." => "Имя файла не может быть пустым.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", "Your storage is full, files can not be updated or synced anymore!" => "Ваше дисковое пространство полностью заполнено, произведите очистку перед загрузкой новых файлов.", "Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Загрузка началась. Это может потребовать много времени, если файл большого размера.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Файл не был загружен: его размер 0 байт либо это не файл, а директория.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог", "Not enough space available" => "Недостаточно свободного места", "Upload cancelled." => "Загрузка отменена.", "File upload is in progress. Leaving the page now will cancel the upload." => "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку.", "URL cannot be empty." => "Ссылка не может быть пустой.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Неправильное имя каталога. Имя 'Shared' зарезервировано.", "Error" => "Ошибка", -"Name" => "Имя", +"Name" => "Название", "Size" => "Размер", "Modified" => "Изменён", "1 folder" => "1 папка", "{count} folders" => "{count} папок", "1 file" => "1 файл", "{count} files" => "{count} файлов", -"Upload" => "Загрузка", +"Upload" => "Загрузить", "File handling" => "Управление файлами", "Maximum upload size" => "Максимальный размер загружаемого файла", "max. possible: " => "макс. возможно: ", @@ -64,8 +63,8 @@ "You don’t have write permissions here." => "У вас нет разрешений на запись здесь.", "Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!", "Download" => "Скачать", -"Unshare" => "Закрыть общий доступ", -"Upload too large" => "Файл слишком велик", +"Unshare" => "Отменить публикацию", +"Upload too large" => "Файл слишком большой", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.", "Files are being scanned, please wait." => "Подождите, файлы сканируются.", "Current scanning" => "Текущее сканирование", diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php index 351021a9f8b..dfcca6f689b 100644 --- a/apps/files/l10n/si_LK.php +++ b/apps/files/l10n/si_LK.php @@ -1,14 +1,13 @@ "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්", -"There is no error, the file uploaded with success" => "දෝෂයක් නොමැත. සාර්ථකව ගොනුව උඩුගත කෙරුණි", +"There is no error, the file uploaded with success" => "නිවැරදි ව ගොනුව උඩුගත කෙරිනි", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය", "The uploaded file was only partially uploaded" => "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය", -"No file was uploaded" => "ගොනුවක් උඩුගත නොවුණි", -"Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්", +"No file was uploaded" => "කිසිදු ගොනවක් උඩුගත නොවිනි", +"Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් සොයාගත නොහැක", "Failed to write to disk" => "තැටිගත කිරීම අසාර්ථකයි", "Files" => "ගොනු", -"Share" => "බෙදා හදා ගන්න", -"Delete" => "මකා දමන්න", +"Delete" => "මකන්න", "Rename" => "නැවත නම් කරන්න", "replace" => "ප්‍රතිස්ථාපනය කරන්න", "suggest name" => "නමක් යෝජනා කරන්න", @@ -24,7 +23,7 @@ "Modified" => "වෙනස් කළ", "1 folder" => "1 ෆොල්ඩරයක්", "1 file" => "1 ගොනුවක්", -"Upload" => "උඩුගත කරන්න", +"Upload" => "උඩුගත කිරීම", "File handling" => "ගොනු පරිහරණය", "Maximum upload size" => "උඩුගත කිරීමක උපරිම ප්‍රමාණය", "max. possible: " => "හැකි උපරිමය:", @@ -39,7 +38,7 @@ "From link" => "යොමුවෙන්", "Cancel upload" => "උඩුගත කිරීම අත් හරින්න", "Nothing in here. Upload something!" => "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න", -"Download" => "බාන්න", +"Download" => "බාගත කිරීම", "Unshare" => "නොබෙදු", "Upload too large" => "උඩුගත කිරීම විශාල වැඩිය", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index 42eb3b12383..ee89a4c7d63 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -5,18 +5,18 @@ "No file was uploaded. Unknown error" => "Žiaden súbor nebol odoslaný. Neznáma chyba", "There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Ukladaný súbor prekračuje nastavenie MAX_FILE_SIZE z volieb HTML formulára.", -"The uploaded file was only partially uploaded" => "Ukladaný súbor sa nahral len čiastočne", -"No file was uploaded" => "Žiadny súbor nebol uložený", -"Missing a temporary folder" => "Chýba dočasný priečinok", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Nahrávaný súbor presiahol MAX_FILE_SIZE direktívu, ktorá bola špecifikovaná v HTML formulári", +"The uploaded file was only partially uploaded" => "Nahrávaný súbor bol iba čiastočne nahraný", +"No file was uploaded" => "Žiaden súbor nebol nahraný", +"Missing a temporary folder" => "Chýbajúci dočasný priečinok", "Failed to write to disk" => "Zápis na disk sa nepodaril", "Not enough storage available" => "Nedostatok dostupného úložného priestoru", "Invalid directory." => "Neplatný priečinok", "Files" => "Súbory", "Delete permanently" => "Zmazať trvalo", -"Delete" => "Zmazať", +"Delete" => "Odstrániť", "Rename" => "Premenovať", -"Pending" => "Prebieha", +"Pending" => "Čaká sa", "{new_name} already exists" => "{new_name} už existuje", "replace" => "nahradiť", "suggest name" => "pomôcť s menom", @@ -32,14 +32,14 @@ "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ť!", "Your storage is almost full ({usedSpacePercent}%)" => "Vaše úložisko je takmer plné ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Vaše sťahovanie sa pripravuje. Ak sú sťahované súbory veľké, môže to chvíľu trvať.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Nedá sa odoslať Váš súbor, pretože je to priečinok, alebo je jeho veľkosť 0 bajtov", +"Unable to upload your file as it is a directory or has 0 bytes" => "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov.", "Not enough space available" => "Nie je k dispozícii dostatok miesta", "Upload cancelled." => "Odosielanie zrušené", "File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", "URL cannot be empty." => "URL nemôže byť prázdne", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatné meno priečinka. Používanie mena 'Shared' je vyhradené len pre Owncloud", "Error" => "Chyba", -"Name" => "Názov", +"Name" => "Meno", "Size" => "Veľkosť", "Modified" => "Upravené", "1 folder" => "1 priečinok", @@ -55,7 +55,7 @@ "0 is unlimited" => "0 znamená neobmedzené", "Maximum input size for ZIP files" => "Najväčšia veľkosť ZIP súborov", "Save" => "Uložiť", -"New" => "Nová", +"New" => "Nový", "Text file" => "Textový súbor", "Folder" => "Priečinok", "From link" => "Z odkazu", @@ -63,9 +63,9 @@ "Cancel upload" => "Zrušiť odosielanie", "You don’t have write permissions here." => "Nemáte oprávnenie na zápis.", "Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!", -"Download" => "Sťahovanie", -"Unshare" => "Zrušiť zdieľanie", -"Upload too large" => "Nahrávanie je príliš veľké", +"Download" => "Stiahnuť", +"Unshare" => "Nezdielať", +"Upload too large" => "Odosielaný súbor je príliš veľký", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.", "Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.", "Current scanning" => "Práve prezerané", diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index 44c33d62fbe..65d463e13d4 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -2,19 +2,18 @@ "Could not move %s - File with this name already exists" => "Ni mogoče premakniti %s - datoteka s tem imenom že obstaja", "Could not move %s" => "Ni mogoče premakniti %s", "Unable to rename file" => "Ni mogoče preimenovati datoteke", -"No file was uploaded. Unknown error" => "Ni poslane datoteke. Neznana napaka.", -"There is no error, the file uploaded with success" => "Datoteka je uspešno naložena.", +"No file was uploaded. Unknown error" => "Ni poslane nobene datoteke. Neznana napaka.", +"There is no error, the file uploaded with success" => "Datoteka je uspešno poslana.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Poslana datoteka presega velikost, ki jo določa parameter največje dovoljene velikosti v obrazcu HTML.", -"The uploaded file was only partially uploaded" => "Poslan je le del datoteke.", -"No file was uploaded" => "Ni poslane datoteke", +"The uploaded file was only partially uploaded" => "Datoteka je le delno naložena", +"No file was uploaded" => "Nobena datoteka ni bila naložena", "Missing a temporary folder" => "Manjka začasna mapa", "Failed to write to disk" => "Pisanje na disk je spodletelo", "Not enough storage available" => "Na voljo ni dovolj prostora", "Invalid directory." => "Neveljavna mapa.", "Files" => "Datoteke", -"Share" => "Souporaba", -"Delete permanently" => "Izbriši dokončno", +"Delete permanently" => "Izbriši trajno", "Delete" => "Izbriši", "Rename" => "Preimenuj", "Pending" => "V čakanju ...", @@ -33,7 +32,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!", "Your storage is almost full ({usedSpacePercent}%)" => "Mesto za shranjevanje je skoraj polno ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Postopek priprave datoteke za prejem je lahko dolgotrajen, če je datoteka zelo velika.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanja ni mogoče izvesti, saj gre za mapo oziroma datoteko velikosti 0 bajtov.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov.", "Not enough space available" => "Na voljo ni dovolj prostora.", "Upload cancelled." => "Pošiljanje je preklicano.", "File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.", @@ -56,7 +55,7 @@ "0 is unlimited" => "0 predstavlja neomejeno vrednost", "Maximum input size for ZIP files" => "Največja vhodna velikost za datoteke ZIP", "Save" => "Shrani", -"New" => "Novo", +"New" => "Nova", "Text file" => "Besedilna datoteka", "Folder" => "Mapa", "From link" => "Iz povezave", @@ -65,7 +64,7 @@ "You don’t have write permissions here." => "Za to mesto ni ustreznih dovoljenj za pisanje.", "Nothing in here. Upload something!" => "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!", "Download" => "Prejmi", -"Unshare" => "Prekliči souporabo", +"Unshare" => "Odstrani iz souporabe", "Upload too large" => "Prekoračenje omejitve velikosti", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.", "Files are being scanned, please wait." => "Poteka preučevanje datotek, počakajte ...", diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php index 9c7e4e1fc0e..50d587ebb26 100644 --- a/apps/files/l10n/sr.php +++ b/apps/files/l10n/sr.php @@ -39,7 +39,7 @@ "URL cannot be empty." => "Адреса не може бити празна.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Неисправно име фасцикле. Фасцикла „Shared“ је резервисана за ownCloud.", "Error" => "Грешка", -"Name" => "Име", +"Name" => "Назив", "Size" => "Величина", "Modified" => "Измењено", "1 folder" => "1 фасцикла", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index 54e4275ebbc..125788ad13d 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -3,12 +3,12 @@ "Could not move %s" => "Kan inte flytta %s", "Unable to rename file" => "Kan inte byta namn på filen", "No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel", -"There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem.", +"There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uppladdade filen överskrider MAX_FILE_SIZE direktivet som har angetts i HTML formuläret", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uppladdade filen överstiger MAX_FILE_SIZE direktivet som anges i HTML-formulär", "The uploaded file was only partially uploaded" => "Den uppladdade filen var endast delvis uppladdad", -"No file was uploaded" => "Ingen fil laddades upp", -"Missing a temporary folder" => "En temporär mapp saknas", +"No file was uploaded" => "Ingen fil blev uppladdad", +"Missing a temporary folder" => "Saknar en tillfällig mapp", "Failed to write to disk" => "Misslyckades spara till disk", "Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt", "Invalid directory." => "Felaktig mapp.", @@ -25,14 +25,13 @@ "undo" => "ångra", "perform delete operation" => "utför raderingen", "1 file uploading" => "1 filuppladdning", -"files uploading" => "filer laddas upp", "'.' is an invalid file name." => "'.' är ett ogiltigt filnamn.", "File name cannot be empty." => "Filnamn kan inte vara tomt.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.", "Your storage is full, files can not be updated or synced anymore!" => "Ditt lagringsutrymme är fullt, filer kan ej längre laddas upp eller synkas!", "Your storage is almost full ({usedSpacePercent}%)" => "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Din nedladdning förbereds. Det kan ta tid om det är stora filer.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Kan inte ladda upp din fil eftersom det är en katalog eller har 0 bytes", +"Unable to upload your file as it is a directory or has 0 bytes" => "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes.", "Not enough space available" => "Inte tillräckligt med utrymme tillgängligt", "Upload cancelled." => "Uppladdning avbruten.", "File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.", diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php index e5f7bbdf9bb..b88379043d0 100644 --- a/apps/files/l10n/ta_LK.php +++ b/apps/files/l10n/ta_LK.php @@ -7,8 +7,7 @@ "Missing a temporary folder" => "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை", "Failed to write to disk" => "வட்டில் எழுத முடியவில்லை", "Files" => "கோப்புகள்", -"Share" => "பகிர்வு", -"Delete" => "நீக்குக", +"Delete" => "அழிக்க", "Rename" => "பெயர்மாற்றம்", "Pending" => "நிலுவையிலுள்ள", "{new_name} already exists" => "{new_name} ஏற்கனவே உள்ளது", @@ -39,7 +38,7 @@ "Enable ZIP-download" => "ZIP பதிவிறக்கலை இயலுமைப்படுத்துக", "0 is unlimited" => "0 ஆனது எல்லையற்றது", "Maximum input size for ZIP files" => "ZIP கோப்புகளுக்கான ஆகக்கூடிய உள்ளீட்டு அளவு", -"Save" => "சேமிக்க ", +"Save" => "சேமிக்க", "New" => "புதிய", "Text file" => "கோப்பு உரை", "Folder" => "கோப்புறை", diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php index a879dba85a0..0e7d32bf12d 100644 --- a/apps/files/l10n/th_TH.php +++ b/apps/files/l10n/th_TH.php @@ -3,12 +3,12 @@ "Could not move %s" => "ไม่สามารถย้าย %s ได้", "Unable to rename file" => "ไม่สามารถเปลี่ยนชื่อไฟล์ได้", "No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", -"There is no error, the file uploaded with success" => "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", +"There is no error, the file uploaded with success" => "ไม่มีข้อผิดพลาดใดๆ ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "ไฟล์ที่อัพโหลดมีขนาดไฟล์ใหญ่เกินจำนวนที่กำหนดไว้ในคำสั่ง MAX_FILE_SIZE ที่ถูกระบุไว้ในรูปแบบของ HTML", -"The uploaded file was only partially uploaded" => "ไฟล์ถูกอัพโหลดได้เพียงบางส่วนเท่านั้น", -"No file was uploaded" => "ไม่มีไฟล์ที่ถูกอัพโหลด", -"Missing a temporary folder" => "โฟลเดอร์ชั่วคราวเกิดการสูญหาย", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "ไฟล์ที่อัพโหลดมีขนาดเกินคำสั่ง MAX_FILE_SIZE ที่ระบุเอาไว้ในรูปแบบคำสั่งในภาษา HTML", +"The uploaded file was only partially uploaded" => "ไฟล์ที่อัพโหลดยังไม่ได้ถูกอัพโหลดอย่างสมบูรณ์", +"No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด", +"Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย", "Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว", "Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน", "Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง", @@ -24,14 +24,13 @@ "undo" => "เลิกทำ", "perform delete operation" => "ดำเนินการตามคำสั่งลบ", "1 file uploading" => "กำลังอัพโหลดไฟล์ 1 ไฟล์", -"files uploading" => "การอัพโหลดไฟล์", "'.' is an invalid file name." => "'.' เป็นชื่อไฟล์ที่ไม่ถูกต้อง", "File name cannot be empty." => "ชื่อไฟล์ไม่สามารถเว้นว่างได้", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "ชื่อที่ใช้ไม่ถูกต้อง, '\\', '/', '<', '>', ':', '\"', '|', '?' และ '*' ไม่ได้รับอนุญาตให้ใช้งานได้", "Your storage is full, files can not be updated or synced anymore!" => "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป", "Your storage is almost full ({usedSpacePercent}%)" => "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "กำลังเตรียมดาวน์โหลดข้อมูล หากไฟล์มีขนาดใหญ่ อาจใช้เวลาสักครู่", -"Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่ หรือ มีขนาดไฟล์ 0 ไบต์", +"Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่หรือมีขนาด 0 ไบต์", "Not enough space available" => "มีพื้นที่เหลือไม่เพียงพอ", "Upload cancelled." => "การอัพโหลดถูกยกเลิก", "File upload is in progress. Leaving the page now will cancel the upload." => "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก", @@ -40,7 +39,7 @@ "Error" => "ข้อผิดพลาด", "Name" => "ชื่อ", "Size" => "ขนาด", -"Modified" => "แก้ไขแล้ว", +"Modified" => "ปรับปรุงล่าสุด", "1 folder" => "1 โฟลเดอร์", "{count} folders" => "{count} โฟลเดอร์", "1 file" => "1 ไฟล์", @@ -61,7 +60,7 @@ "Cancel upload" => "ยกเลิกการอัพโหลด", "Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!", "Download" => "ดาวน์โหลด", -"Unshare" => "ยกเลิกการแชร์", +"Unshare" => "ยกเลิกการแชร์ข้อมูล", "Upload too large" => "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้", "Files are being scanned, please wait." => "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่.", diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index 17275e4753c..84da59cee08 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -3,12 +3,12 @@ "Could not move %s" => "%s taşınamadı", "Unable to rename file" => "Dosya adı değiştirilemedi", "No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata", -"There is no error, the file uploaded with success" => "Dosya başarıyla yüklendi, hata oluşmadı", +"There is no error, the file uploaded with success" => "Bir hata yok, dosya başarıyla yüklendi", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı.", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Yüklenecek dosyanın boyutu HTML formunda belirtilen MAX_FILE_SIZE limitini aşıyor", -"The uploaded file was only partially uploaded" => "Dosya kısmen karşıya yüklenebildi", -"No file was uploaded" => "Hiç dosya gönderilmedi", -"Missing a temporary folder" => "Geçici dizin eksik", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Yüklenen dosya HTML formundaki MAX_FILE_SIZE sınırını aşıyor", +"The uploaded file was only partially uploaded" => "Yüklenen dosyanın sadece bir kısmı yüklendi", +"No file was uploaded" => "Hiç dosya yüklenmedi", +"Missing a temporary folder" => "Geçici bir klasör eksik", "Failed to write to disk" => "Diske yazılamadı", "Not enough storage available" => "Yeterli disk alanı yok", "Invalid directory." => "Geçersiz dizin.", @@ -39,7 +39,7 @@ "URL cannot be empty." => "URL boş olamaz.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Geçersiz dizin adı. Shared isminin kullanımı Owncloud tarafından rezerver edilmiştir.", "Error" => "Hata", -"Name" => "İsim", +"Name" => "Ad", "Size" => "Boyut", "Modified" => "Değiştirilme", "1 folder" => "1 dizin", @@ -65,7 +65,7 @@ "Nothing in here. Upload something!" => "Burada hiçbir şey yok. Birşeyler yükleyin!", "Download" => "İndir", "Unshare" => "Paylaşılmayan", -"Upload too large" => "Yükleme çok büyük", +"Upload too large" => "Yüklemeniz çok büyük", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Yüklemeye çalıştığınız dosyalar bu sunucudaki maksimum yükleme boyutunu aşıyor.", "Files are being scanned, please wait." => "Dosyalar taranıyor, lütfen bekleyin.", "Current scanning" => "Güncel tarama", diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index db3120645f1..65b4ec1433c 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -46,7 +46,7 @@ "{count} folders" => "{count} папок", "1 file" => "1 файл", "{count} files" => "{count} файлів", -"Upload" => "Вивантажити", +"Upload" => "Відвантажити", "File handling" => "Робота з файлами", "Maximum upload size" => "Максимальний розмір відвантажень", "max. possible: " => "макс.можливе:", @@ -64,7 +64,7 @@ "You don’t have write permissions here." => "У вас тут немає прав на запис.", "Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!", "Download" => "Завантажити", -"Unshare" => "Закрити доступ", +"Unshare" => "Заборонити доступ", "Upload too large" => "Файл занадто великий", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.", "Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.", diff --git a/apps/files/l10n/ur_PK.php b/apps/files/l10n/ur_PK.php index aa87eeda385..e13a623fecc 100644 --- a/apps/files/l10n/ur_PK.php +++ b/apps/files/l10n/ur_PK.php @@ -1,4 +1,3 @@ "ایرر", -"Unshare" => "شئیرنگ ختم کریں" +"Error" => "ایرر" ); diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index 7a67f66b30d..73cf1544924 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -5,9 +5,9 @@ "No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định", "There is no error, the file uploaded with success" => "Không có lỗi, các tập tin đã được tải lên thành công", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Tập tin được tải lên vượt quá MAX_FILE_SIZE được quy định trong mẫu HTML", -"The uploaded file was only partially uploaded" => "Các tập tin được tải lên chỉ tải lên được một phần", -"No file was uploaded" => "Chưa có file nào được tải lên", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Kích thước những tập tin tải lên vượt quá MAX_FILE_SIZE đã được quy định", +"The uploaded file was only partially uploaded" => "Tập tin tải lên mới chỉ tải lên được một phần", +"No file was uploaded" => "Không có tập tin nào được tải lên", "Missing a temporary folder" => "Không tìm thấy thư mục tạm", "Failed to write to disk" => "Không thể ghi ", "Not enough storage available" => "Không đủ không gian lưu trữ", @@ -16,7 +16,7 @@ "Delete permanently" => "Xóa vĩnh vễn", "Delete" => "Xóa", "Rename" => "Sửa tên", -"Pending" => "Đang chờ", +"Pending" => "Chờ", "{new_name} already exists" => "{new_name} đã tồn tại", "replace" => "thay thế", "suggest name" => "tên gợi ý", @@ -25,14 +25,13 @@ "undo" => "lùi lại", "perform delete operation" => "thực hiện việc xóa", "1 file uploading" => "1 tệp tin đang được tải lên", -"files uploading" => "tệp tin đang được tải lên", "'.' is an invalid file name." => "'.' là một tên file không hợp lệ", "File name cannot be empty." => "Tên file không được rỗng", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Tên không hợp lệ, '\\', '/', '<', '>', ':', '\"', '|', '?' và '*' thì không được phép dùng.", "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}%)", "Your download is being prepared. This might take some time if the files are big." => "Your download is being prepared. This might take some time if the files are big.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin của bạn ,nó như là một thư mục hoặc có 0 byte", +"Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte", "Upload cancelled." => "Hủy tải lên", "File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", "URL cannot be empty." => "URL không được để trống.", @@ -61,8 +60,8 @@ "Deleted files" => "File đã bị xóa", "Cancel upload" => "Hủy upload", "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ề", -"Unshare" => "Bỏ chia sẻ", +"Download" => "Tải xuống", +"Unshare" => "Không chia sẽ", "Upload too large" => "Tập tin tải lên quá lớn", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", "Files are being scanned, please wait." => "Tập tin đang được quét ,vui lòng chờ.", diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php index f0de736e7ab..33e21e544cd 100644 --- a/apps/files/l10n/zh_CN.GB2312.php +++ b/apps/files/l10n/zh_CN.GB2312.php @@ -1,15 +1,15 @@ "没有上传文件。未知错误", -"There is no error, the file uploaded with success" => "文件上传成功", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件超过了 HTML 表格中指定的 MAX_FILE_SIZE 选项", -"The uploaded file was only partially uploaded" => "文件部分上传", -"No file was uploaded" => "没有上传文件", -"Missing a temporary folder" => "缺失临时文件夹", +"There is no error, the file uploaded with success" => "没有任何错误,文件上传成功了", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件超过了HTML表单指定的MAX_FILE_SIZE", +"The uploaded file was only partially uploaded" => "文件只有部分被上传", +"No file was uploaded" => "没有上传完成的文件", +"Missing a temporary folder" => "丢失了一个临时文件夹", "Failed to write to disk" => "写磁盘失败", "Files" => "文件", "Delete" => "删除", "Rename" => "重命名", -"Pending" => "等待中", +"Pending" => "Pending", "{new_name} already exists" => "{new_name} 已存在", "replace" => "替换", "suggest name" => "推荐名称", @@ -17,13 +17,12 @@ "replaced {new_name} with {old_name}" => "已用 {old_name} 替换 {new_name}", "undo" => "撤销", "1 file uploading" => "1 个文件正在上传", -"files uploading" => "个文件正在上传", -"Unable to upload your file as it is a directory or has 0 bytes" => "不能上传您的文件,由于它是文件夹或者为空文件", +"Unable to upload your file as it is a directory or has 0 bytes" => "不能上传你指定的文件,可能因为它是个文件夹或者大小为0", "Upload cancelled." => "上传取消了", "File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传。关闭页面会取消上传。", "URL cannot be empty." => "网址不能为空。", "Error" => "出错", -"Name" => "名称", +"Name" => "名字", "Size" => "大小", "Modified" => "修改日期", "1 folder" => "1 个文件夹", @@ -46,8 +45,8 @@ "Cancel upload" => "取消上传", "Nothing in here. Upload something!" => "这里没有东西.上传点什么!", "Download" => "下载", -"Unshare" => "取消分享", -"Upload too large" => "上传过大", +"Unshare" => "取消共享", +"Upload too large" => "上传的文件太大了", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "你正在试图上传的文件超过了此服务器支持的最大的文件大小.", "Files are being scanned, please wait." => "正在扫描文件,请稍候.", "Current scanning" => "正在扫描" diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 3ba7a780079..8740298c622 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -3,11 +3,11 @@ "Could not move %s" => "无法移动 %s", "Unable to rename file" => "无法重命名文件", "No file was uploaded. Unknown error" => "没有文件被上传。未知错误", -"There is no error, the file uploaded with success" => "文件上传成功,没有错误发生", +"There is no error, the file uploaded with success" => "没有发生错误,文件上传成功。", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件长度超出了 HTML 表单中 MAX_FILE_SIZE 的限制", -"The uploaded file was only partially uploaded" => "已上传文件只上传了部分(不完整)", -"No file was uploaded" => "没有文件被上传", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件超过了在HTML 表单中指定的MAX_FILE_SIZE", +"The uploaded file was only partially uploaded" => "只上传了文件的一部分", +"No file was uploaded" => "文件没有上传", "Missing a temporary folder" => "缺少临时目录", "Failed to write to disk" => "写入磁盘失败", "Not enough storage available" => "没有足够的存储空间", @@ -16,7 +16,7 @@ "Delete permanently" => "永久删除", "Delete" => "删除", "Rename" => "重命名", -"Pending" => "等待", +"Pending" => "操作等待中", "{new_name} already exists" => "{new_name} 已存在", "replace" => "替换", "suggest name" => "建议名称", @@ -31,7 +31,7 @@ "Your storage is full, files can not be updated or synced anymore!" => "您的存储空间已满,文件将无法更新或同步!", "Your storage is almost full ({usedSpacePercent}%)" => "您的存储空间即将用完 ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "下载正在准备中。如果文件较大可能会花费一些时间。", -"Unable to upload your file as it is a directory or has 0 bytes" => "无法上传您的文件,文件夹或者空文件", +"Unable to upload your file as it is a directory or has 0 bytes" => "无法上传文件,因为它是一个目录或者大小为 0 字节", "Not enough space available" => "没有足够可用空间", "Upload cancelled." => "上传已取消", "File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。", @@ -63,7 +63,7 @@ "You don’t have write permissions here." => "您没有写权限", "Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!", "Download" => "下载", -"Unshare" => "取消共享", +"Unshare" => "取消分享", "Upload too large" => "上传文件过大", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "您正尝试上传的文件超过了此服务器可以上传的最大容量限制", "Files are being scanned, please wait." => "文件正在被扫描,请稍候。", diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index b576253f4f0..69fcb94e681 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -34,7 +34,7 @@ value="(max )"> - + @@ -46,6 +46,7 @@
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e27054f0ec8..25c2d091c4b 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -45,12 +45,7 @@ class Hooks { $view = new \OC_FilesystemView( '/' ); - $userHome = \OC_User::getHome($params['uid']); - $dataDir = str_replace('/'.$params['uid'], '', $userHome); - - \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $dataDir .'/public-keys'), '/public-keys/' ); - - $util = new Util( $view, $params['uid'] ); + $util = new Util( $view, $params['uid'] ); // Check files_encryption infrastructure is ready for action if ( ! $util->ready() ) { diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php index ce9fe38996b..0c661353a77 100644 --- a/apps/files_encryption/l10n/ca.php +++ b/apps/files_encryption/l10n/ca.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "L'encriptació de fitxers està activada.", "The following file types will not be encrypted:" => "Els tipus de fitxers següents no s'encriptaran:", "Exclude the following file types from encryption:" => "Exclou els tipus de fitxers següents de l'encriptatge:", -"None" => "cap" +"None" => "Cap" ); diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php index bcf0ca5ad63..cdcd8a40b23 100644 --- a/apps/files_encryption/l10n/de.php +++ b/apps/files_encryption/l10n/de.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Dateiverschlüsselung ist aktiviert", "The following file types will not be encrypted:" => "Die folgenden Dateitypen werden nicht verschlüsselt:", "Exclude the following file types from encryption:" => "Schließe die folgenden Dateitypen von der Verschlüsselung aus:", -"None" => "Nichts" +"None" => "Keine" ); diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php index 71fd7d96711..4f08b98eb29 100644 --- a/apps/files_encryption/l10n/de_DE.php +++ b/apps/files_encryption/l10n/de_DE.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Datei-Verschlüsselung ist aktiviert", "The following file types will not be encrypted:" => "Die folgenden Dateitypen werden nicht verschlüsselt:", "Exclude the following file types from encryption:" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen:", -"None" => "Nichts" +"None" => "Keine" ); diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php index 82a4c92ec28..0031a731944 100644 --- a/apps/files_encryption/l10n/el.php +++ b/apps/files_encryption/l10n/el.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Η κρυπτογράφηση αρχείων είναι ενεργή.", "The following file types will not be encrypted:" => "Οι παρακάτω τύποι αρχείων δεν θα κρυπτογραφηθούν:", "Exclude the following file types from encryption:" => "Εξαίρεση των παρακάτω τύπων αρχείων από την κρυπτογράφηση:", -"None" => "Τίποτα" +"None" => "Καμία" ); diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php index 7e3b7611ff2..5a22b65728e 100644 --- a/apps/files_encryption/l10n/eu.php +++ b/apps/files_encryption/l10n/eu.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Fitxategien enkriptazioa gaituta dago.", "The following file types will not be encrypted:" => "Hurrengo fitxategi motak ez dira enkriptatuko:", "Exclude the following file types from encryption:" => "Baztertu hurrengo fitxategi motak enkriptatzetik:", -"None" => "Ezer" +"None" => "Bat ere ez" ); diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php index c7171345269..9ab9bc492a0 100644 --- a/apps/files_encryption/l10n/it.php +++ b/apps/files_encryption/l10n/it.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "La cifratura dei file è abilitata.", "The following file types will not be encrypted:" => "I seguenti tipi di file non saranno cifrati:", "Exclude the following file types from encryption:" => "Escludi i seguenti tipi di file dalla cifratura:", -"None" => "Nessuno" +"None" => "Nessuna" ); diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php index 836f5453596..2fa86f454f9 100644 --- a/apps/files_encryption/l10n/pl.php +++ b/apps/files_encryption/l10n/pl.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Szyfrowanie plików jest włączone", "The following file types will not be encrypted:" => "Poniższe typy plików nie będą szyfrowane:", "Exclude the following file types from encryption:" => "Wyłącz poniższe typy plików z szyfrowania:", -"None" => "Nic" +"None" => "Brak" ); diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php index b41c6ed3153..28807db72ce 100644 --- a/apps/files_encryption/l10n/pt_BR.php +++ b/apps/files_encryption/l10n/pt_BR.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "A criptografia de arquivos está ativada.", "The following file types will not be encrypted:" => "Os seguintes tipos de arquivo não serão criptografados:", "Exclude the following file types from encryption:" => "Excluir os seguintes tipos de arquivo da criptografia:", -"None" => "Nada" +"None" => "Nenhuma" ); diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php index f07dec621d7..22c1e3da374 100644 --- a/apps/files_encryption/l10n/ru.php +++ b/apps/files_encryption/l10n/ru.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Шифрование файла включено.", "The following file types will not be encrypted:" => "Следующие типы файлов не будут зашифрованы:", "Exclude the following file types from encryption:" => "Исключить следующие типы файлов из шифрованных:", -"None" => "Нет новостей" +"None" => "Ничего" ); diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php index aaea9da21b4..bebb6234710 100644 --- a/apps/files_encryption/l10n/sk_SK.php +++ b/apps/files_encryption/l10n/sk_SK.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Šifrovanie súborov nastavené.", "The following file types will not be encrypted:" => "Uvedené typy súborov nebudú šifrované:", "Exclude the following file types from encryption:" => "Nešifrovať uvedené typy súborov", -"None" => "Žiadny" +"None" => "Žiadne" ); diff --git a/apps/files_encryption/l10n/th_TH.php b/apps/files_encryption/l10n/th_TH.php index 30c0324a988..e46d2491186 100644 --- a/apps/files_encryption/l10n/th_TH.php +++ b/apps/files_encryption/l10n/th_TH.php @@ -1,4 +1,4 @@ "การเข้ารหัส", -"None" => "ไม่มี" +"None" => "ไม่ต้อง" ); diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php index 40d4b1d0fec..0a88d1b2db6 100644 --- a/apps/files_encryption/l10n/vi.php +++ b/apps/files_encryption/l10n/vi.php @@ -3,5 +3,5 @@ "File encryption is enabled." => "Mã hóa file đã mở", "The following file types will not be encrypted:" => "Loại file sau sẽ không được mã hóa", "Exclude the following file types from encryption:" => "Việc mã hóa không bao gồm loại file sau", -"None" => "Không gì cả" +"None" => "Không có gì hết" ); diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 4a85048ba43..7f9572f4266 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -21,6 +21,7 @@ use OCA\Encryption; // This has to go here because otherwise session errors arise, and the private // encryption key needs to be saved in the session +\OC_User::login( 'admin', 'admin' ); /** * @note It would be better to use Mockery here for mocking out the session @@ -36,7 +37,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // reset backend \OC_User::useBackend('database'); - // set content for encrypting / decrypting in tests + // set content for encrypting / decrypting in tests $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); $this->dataShort = 'hats'; $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); @@ -59,17 +60,13 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init($this->userId, '/'); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); - - $params['uid'] = $this->userId; - $params['password'] = $this->pass; - OCA\Encryption\Hooks::login($params); } function tearDown() { } - function testGenerateKey() { + function testGenerateKey() { # TODO: use more accurate (larger) string length for test confirmation diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 33ca29997be..81034be54b1 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -19,7 +19,7 @@ use OCA\Encryption; // This has to go here because otherwise session errors arise, and the private // encryption key needs to be saved in the session -//\OC_User::login( 'admin', 'admin' ); +\OC_User::login( 'admin', 'admin' ); class Test_Keymanager extends \PHPUnit_Framework_TestCase { @@ -52,10 +52,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init( $this->userId, '/' ); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); - - $params['uid'] = $this->userId; - $params['password'] = $this->pass; - OCA\Encryption\Hooks::login($params); + } function tearDown(){ diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php index 633cc9e4fce..ba82ac80eab 100644 --- a/apps/files_encryption/tests/stream.php +++ b/apps/files_encryption/tests/stream.php @@ -1,4 +1,4 @@ - // * This file is licensed under the Affero General Public License version 3 or diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index e3ec0860fa5..0659b468a37 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -24,6 +24,8 @@ $loader->register(); use \Mockery as m; use OCA\Encryption; +\OC_User::login( 'admin', 'admin' ); + class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function setUp() { @@ -60,10 +62,6 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::init( $this->userId, '/' ); \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); - $params['uid'] = $this->userId; - $params['password'] = $this->pass; - OCA\Encryption\Hooks::login($params); - $mockView = m::mock('OC_FilesystemView'); $this->util = new Encryption\Util( $mockView, $this->userId ); @@ -77,9 +75,6 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { /** * @brief test that paths set during User construction are correct - * - * - * */ function testKeyPaths() { diff --git a/apps/files_external/l10n/ar.php b/apps/files_external/l10n/ar.php index a53bfe48bc3..06837d5085c 100644 --- a/apps/files_external/l10n/ar.php +++ b/apps/files_external/l10n/ar.php @@ -1,5 +1,5 @@ "مجموعات", "Users" => "المستخدمين", -"Delete" => "إلغاء" +"Delete" => "حذف" ); diff --git a/apps/files_external/l10n/bn_BD.php b/apps/files_external/l10n/bn_BD.php index 0f032df9f05..07ccd500746 100644 --- a/apps/files_external/l10n/bn_BD.php +++ b/apps/files_external/l10n/bn_BD.php @@ -12,7 +12,7 @@ "All Users" => "সমস্ত ব্যবহারকারী", "Groups" => "গোষ্ঠীসমূহ", "Users" => "ব্যবহারকারী", -"Delete" => "মুছে", +"Delete" => "মুছে ফেল", "Enable User External Storage" => "ব্যবহারকারীর বাহ্যিক সংরক্ষণাগার সক্রিয় কর", "Allow users to mount their own external storage" => "ব্যবহারকারীদেরকে তাদের নিজস্ব বাহ্যিক সংরক্ষনাগার সাউন্ট করতে অনুমোদন দাও", "SSL root certificates" => "SSL রুট সনদপত্র", diff --git a/apps/files_external/l10n/ca.php b/apps/files_external/l10n/ca.php index e3b245babfe..aa9304d3301 100644 --- a/apps/files_external/l10n/ca.php +++ b/apps/files_external/l10n/ca.php @@ -17,7 +17,7 @@ "All Users" => "Tots els usuaris", "Groups" => "Grups", "Users" => "Usuaris", -"Delete" => "Esborra", +"Delete" => "Elimina", "Enable User External Storage" => "Habilita l'emmagatzemament extern d'usuari", "Allow users to mount their own external storage" => "Permet als usuaris muntar el seu emmagatzemament extern propi", "SSL root certificates" => "Certificats SSL root", diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php index 8dfa0eafbb4..24183772217 100644 --- a/apps/files_external/l10n/de.php +++ b/apps/files_external/l10n/de.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Warnung: \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitte Deinen System-Administrator, dies zu installieren.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Warnung:: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Bitte wende Dich an Deinen Systemadministrator.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Warnung: Die Curl-Unterstützung in PHP ist nicht aktiviert oder installiert. Das Einbinden von ownCloud / WebDav der GoogleDrive-Freigaben ist nicht möglich. Bitte Deinen Systemadminstrator um die Installation. ", "External Storage" => "Externer Speicher", "Folder name" => "Ordnername", "External storage" => "Externer Speicher", diff --git a/apps/files_external/l10n/de_DE.php b/apps/files_external/l10n/de_DE.php index 8a8ae37ffd2..d55c0c6909d 100644 --- a/apps/files_external/l10n/de_DE.php +++ b/apps/files_external/l10n/de_DE.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Warnung: \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitten Sie Ihren Systemadministrator, dies zu installieren.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Warnung:: Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Bitte wenden Sie sich an Ihren Systemadministrator.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Achtung: Die Curl-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Laden von ownCloud / WebDAV oder GoogleDrive Freigaben ist nicht möglich. Bitte Sie Ihren Systemadministrator, das Modul zu installieren.", "External Storage" => "Externer Speicher", "Folder name" => "Ordnername", "External storage" => "Externer Speicher", diff --git a/apps/files_external/l10n/el.php b/apps/files_external/l10n/el.php index 62703b08fbc..6c519a1b413 100644 --- a/apps/files_external/l10n/el.php +++ b/apps/files_external/l10n/el.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Προσοχή: Ο \"smbclient\" δεν εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση CIFS/SMB. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Προσοχή: Η υποστήριξη FTP στην PHP δεν ενεργοποιήθηκε ή εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση FTP. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<Προειδοποίηση
Η υποστήριξη του συστήματος Curl στο PHP δεν είναι ενεργοποιημένη ή εγκαταστημένη. Η αναπαραγωγή του ownCloud/WebDAV ή GoogleDrive δεν είναι δυνατή. Παρακαλώ ρωτήστε τον διαχειριστλη του συστήματος για την εγκατάσταση. ", "External Storage" => "Εξωτερικό Αποθηκευτικό Μέσο", "Folder name" => "Όνομα φακέλου", "External storage" => "Εξωτερική αποθήκευση", diff --git a/apps/files_external/l10n/es.php b/apps/files_external/l10n/es.php index 5c332690bfb..da22f410320 100644 --- a/apps/files_external/l10n/es.php +++ b/apps/files_external/l10n/es.php @@ -17,7 +17,7 @@ "All Users" => "Todos los usuarios", "Groups" => "Grupos", "Users" => "Usuarios", -"Delete" => "Eliminar", +"Delete" => "Eliiminar", "Enable User External Storage" => "Habilitar almacenamiento de usuario externo", "Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo", "SSL root certificates" => "Raíz de certificados SSL ", diff --git a/apps/files_external/l10n/et_EE.php b/apps/files_external/l10n/et_EE.php index 465201df4dd..5d1eb0887ba 100644 --- a/apps/files_external/l10n/et_EE.php +++ b/apps/files_external/l10n/et_EE.php @@ -5,8 +5,7 @@ "Please provide a valid Dropbox app key and secret." => "Palun sisesta korrektne Dropboxi rakenduse võti ja salasõna.", "Error configuring Google Drive storage" => "Viga Google Drive'i salvestusruumi seadistamisel", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Hoiatus: \"smbclient\" pole paigaldatud. Jagatud CIFS/SMB hoidlate ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata SAMBA tugi.", -"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Hoiatus: PHP-s puudub FTP tugi. Jagatud FTP hoidlate ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Hoiatus: PHP-s puudub Curl tugi. Jagatud ownCloud / WebDAV või GoogleDrive ühendamine pole võimalik. Palu oma süsteemihalduril see paigaldada.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Hoiatus: FTP tugi puudub PHP paigalduses. Jagatud FTP hoidlate ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.", "External Storage" => "Väline salvestuskoht", "Folder name" => "Kausta nimi", "External storage" => "Väline andmehoidla", diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php index 5006133a7b6..c42c89f8572 100644 --- a/apps/files_external/l10n/fr.php +++ b/apps/files_external/l10n/fr.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Attention : \"smbclient\" n'est pas installé. Le montage des partages CIFS/SMB n'est pas disponible. Contactez votre administrateur système pour l'installer.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Attention : Le support FTP de PHP n'est pas activé ou installé. Le montage des partages FTP n'est pas disponible. Contactez votre administrateur système pour l'installer.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Attention : Le support de Curl n'est pas activé ou installé dans PHP. Le montage de ownCloud / WebDAV ou GoogleDrive n'est pas possible. Contactez votre administrateur système pour l'installer.", "External Storage" => "Stockage externe", "Folder name" => "Nom du dossier", "External storage" => "Stockage externe", diff --git a/apps/files_external/l10n/lb.php b/apps/files_external/l10n/lb.php index 4e78227ec48..2a62cad3fe9 100644 --- a/apps/files_external/l10n/lb.php +++ b/apps/files_external/l10n/lb.php @@ -1,6 +1,5 @@ "Dossiers Numm:", "Groups" => "Gruppen", -"Users" => "Benotzer", "Delete" => "Läschen" ); diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php index ded5a861a8b..ad3eda9747f 100644 --- a/apps/files_external/l10n/nl.php +++ b/apps/files_external/l10n/nl.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Waarschuwing: \"smbclient\" is niet geïnstalleerd. Mounten van CIFS/SMB shares is niet mogelijk. Vraag uw beheerder om smbclient te installeren.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Waarschuwing: FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van FTP shares is niet mogelijk. Vraag uw beheerder FTP ondersteuning te installeren.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Waarschuwing: Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van ownCloud / WebDAV of GoogleDrive is niet mogelijk. Vraag uw systeembeheerder dit te installeren.", "External Storage" => "Externe opslag", "Folder name" => "Mapnaam", "External storage" => "Externe opslag", diff --git a/apps/files_external/l10n/pt_BR.php b/apps/files_external/l10n/pt_BR.php index bc3c356a517..a358d569139 100644 --- a/apps/files_external/l10n/pt_BR.php +++ b/apps/files_external/l10n/pt_BR.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Erro ao configurar armazenamento do Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Aviso: \"smbclient\" não está instalado. Impossível montar compartilhamentos de CIFS/SMB. Por favor, peça ao seu administrador do sistema para instalá-lo.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Aviso: O suporte para FTP do PHP não está ativado ou instalado. Impossível montar compartilhamentos FTP. Por favor, peça ao seu administrador do sistema para instalá-lo.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => " Aviso: O suport a Curl em PHP não está habilitado ou instalado. A montagem do ownCloud / WebDAV ou GoogleDrive não é possível. Por favor, solicite ao seu administrador do sistema instalá-lo.", "External Storage" => "Armazenamento Externo", "Folder name" => "Nome da pasta", "External storage" => "Armazenamento Externo", @@ -18,7 +17,7 @@ "All Users" => "Todos os Usuários", "Groups" => "Grupos", "Users" => "Usuários", -"Delete" => "Excluir", +"Delete" => "Remover", "Enable User External Storage" => "Habilitar Armazenamento Externo do Usuário", "Allow users to mount their own external storage" => "Permitir usuários a montar seus próprios armazenamentos externos", "SSL root certificates" => "Certificados SSL raíz", diff --git a/apps/files_external/l10n/ro.php b/apps/files_external/l10n/ro.php index ed23b4cca8f..5747205dc05 100644 --- a/apps/files_external/l10n/ro.php +++ b/apps/files_external/l10n/ro.php @@ -6,14 +6,11 @@ "Error configuring Google Drive storage" => "Eroare la configurarea mediului de stocare Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Atenție: \"smbclient\" nu este instalat. Montarea mediilor CIFS/SMB partajate nu este posibilă. Solicită administratorului sistemului tău să îl instaleaze.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Atenție: suportul pentru FTP în PHP nu este activat sau instalat. Montarea mediilor FPT partajate nu este posibilă. Solicită administratorului sistemului tău să îl instaleze.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Atentie: Suportul Curl nu este pornit / instalat in configuratia PHP! Montarea ownCloud / WebDAV / GoogleDrive nu este posibila! Intrebati administratorul sistemului despre aceasta problema!", "External Storage" => "Stocare externă", "Folder name" => "Denumire director", -"External storage" => "Stocare externă", "Configuration" => "Configurație", "Options" => "Opțiuni", "Applicable" => "Aplicabil", -"Add storage" => "Adauga stocare", "None set" => "Niciunul", "All Users" => "Toți utilizatorii", "Groups" => "Grupuri", diff --git a/apps/files_external/l10n/ru.php b/apps/files_external/l10n/ru.php index d2c5292bac4..46b73a67f04 100644 --- a/apps/files_external/l10n/ru.php +++ b/apps/files_external/l10n/ru.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Внимание: \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Внимание: Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Внимание: Поддержка Curl в PHP не включена или не установлена. Подключение ownCloud / WebDAV или GoogleDrive невозможно. Попросите вашего системного администратора установить его.", "External Storage" => "Внешний носитель", "Folder name" => "Имя папки", "External storage" => "Внешний носитель данных", diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index 33edcb9d4c8..af6b7b4ae6e 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -6,7 +6,6 @@ "Error configuring Google Drive storage" => "Chyba pri konfigurácii úložiska Google drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Upozornenie: \"smbclient\" nie je nainštalovaný. Nie je možné pripojenie oddielov CIFS/SMB. Požiadajte administrátora systému, nech ho nainštaluje.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Upozornenie: Podpora FTP v PHP nie je povolená alebo nainštalovaná. Nie je možné pripojenie oddielov FTP. Požiadajte administrátora systému, nech ho nainštaluje.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Varovanie: nie je nainštalovaná, alebo povolená, podpora Curl v PHP. Nie je možné pripojenie oddielov ownCloud, WebDAV, či GoogleDrive. Prosím požiadajte svojho administrátora systému, nech ju nainštaluje.", "External Storage" => "Externé úložisko", "Folder name" => "Meno priečinka", "External storage" => "Externé úložisko", @@ -18,7 +17,7 @@ "All Users" => "Všetci používatelia", "Groups" => "Skupiny", "Users" => "Používatelia", -"Delete" => "Zmazať", +"Delete" => "Odstrániť", "Enable User External Storage" => "Povoliť externé úložisko", "Allow users to mount their own external storage" => "Povoliť používateľom pripojiť ich vlastné externé úložisko", "SSL root certificates" => "Koreňové SSL certifikáty", diff --git a/apps/files_external/l10n/sl.php b/apps/files_external/l10n/sl.php index 09b91b913e9..4ff2eed3bf0 100644 --- a/apps/files_external/l10n/sl.php +++ b/apps/files_external/l10n/sl.php @@ -5,8 +5,7 @@ "Please provide a valid Dropbox app key and secret." => "Vpisati je treba veljaven ključ programa in kodo za Dropbox", "Error configuring Google Drive storage" => "Napaka nastavljanja shrambe Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Opozorilo: paket \"smbclient\" ni nameščen. Priklapljanje pogonov CIFS/SMB ne bo mogoče.", -"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ne bo mogoče.", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora za Curl v PHP ni omogočena ali pa ni nameščena. Priklapljanje točke ownCloud / WebDAV ali GoogleDrive zato ne bo mogoče. Zahtevane pakete je treba pred uporabo namestiti.", +"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Opozorilo: podpora FTP v PHP ni omogočena ali pa ni nameščena. Priklapljanje pogonov FTP zato ni mogoče.", "External Storage" => "Zunanja podatkovna shramba", "Folder name" => "Ime mape", "External storage" => "Zunanja shramba", @@ -19,7 +18,7 @@ "Groups" => "Skupine", "Users" => "Uporabniki", "Delete" => "Izbriši", -"Enable User External Storage" => "Omogoči zunanjo uporabniško podatkovno shrambo", +"Enable User External Storage" => "Omogoči uporabniško zunanjo podatkovno shrambo", "Allow users to mount their own external storage" => "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe", "SSL root certificates" => "Korenska potrdila SSL", "Import Root Certificate" => "Uvozi korensko potrdilo" diff --git a/apps/files_external/l10n/zh_TW.php b/apps/files_external/l10n/zh_TW.php index a8314dcef03..873b555348e 100644 --- a/apps/files_external/l10n/zh_TW.php +++ b/apps/files_external/l10n/zh_TW.php @@ -1,26 +1,16 @@ "允許存取", -"Error configuring Dropbox storage" => "設定 Dropbox 儲存時發生錯誤", -"Grant access" => "允許存取", -"Please provide a valid Dropbox app key and secret." => "請提供有效的 Dropbox app key 和 app secret 。", -"Error configuring Google Drive storage" => "設定 Google Drive 儲存時發生錯誤", -"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "警告:未安裝 \"smbclient\" ,因此無法掛載 CIFS/SMB 分享,請洽您的系統管理員將其安裝。", -"Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "警告:PHP 並未啓用 FTP 的支援,因此無法掛載 FTP 分享,請洽您的系統管理員將其安裝並啓用。", -"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "警告:PHP 並未啓用 Curl 的支援,因此無法掛載 ownCloud/WebDAV 或 Google Drive 分享,請洽您的系統管理員將其安裝並啓用。", -"External Storage" => "外部儲存", +"Access granted" => "訪問權已被准許", +"Grant access" => "准許訪問權", +"External Storage" => "外部儲存裝置", "Folder name" => "資料夾名稱", -"External storage" => "外部儲存", +"External storage" => "外部儲存裝置", "Configuration" => "設定", "Options" => "選項", -"Applicable" => "可用的", -"Add storage" => "增加儲存區", +"Add storage" => "添加儲存區", "None set" => "尚未設定", "All Users" => "所有使用者", "Groups" => "群組", "Users" => "使用者", "Delete" => "刪除", -"Enable User External Storage" => "啓用使用者外部儲存", -"Allow users to mount their own external storage" => "允許使用者自行掛載他們的外部儲存", -"SSL root certificates" => "SSL 根憑證", "Import Root Certificate" => "匯入根憑證" ); diff --git a/apps/files_sharing/l10n/bn_BD.php b/apps/files_sharing/l10n/bn_BD.php index 5fdf6de50c0..c3af434ee29 100644 --- a/apps/files_sharing/l10n/bn_BD.php +++ b/apps/files_sharing/l10n/bn_BD.php @@ -1,6 +1,6 @@ "কূটশব্দ", -"Submit" => "জমা দিন", +"Submit" => "জমা দাও", "%s shared the folder %s with you" => "%s আপনার সাথে %s ফোল্ডারটি ভাগাভাগি করেছেন", "%s shared the file %s with you" => "%s আপনার সাথে %s ফাইলটি ভাগাভাগি করেছেন", "Download" => "ডাউনলোড", diff --git a/apps/files_sharing/l10n/de_DE.php b/apps/files_sharing/l10n/de_DE.php index ab81589b0eb..b92d6d478c9 100644 --- a/apps/files_sharing/l10n/de_DE.php +++ b/apps/files_sharing/l10n/de_DE.php @@ -1,9 +1,9 @@ "Passwort", -"Submit" => "Bestätigen", +"Submit" => "Absenden", "%s shared the folder %s with you" => "%s hat den Ordner %s mit Ihnen geteilt", "%s shared the file %s with you" => "%s hat die Datei %s mit Ihnen geteilt", -"Download" => "Herunterladen", +"Download" => "Download", "No preview available for" => "Es ist keine Vorschau verfügbar für", "web services under your control" => "Web-Services unter Ihrer Kontrolle" ); diff --git a/apps/files_sharing/l10n/he.php b/apps/files_sharing/l10n/he.php index 2ea5ba76ab1..ff7be88af87 100644 --- a/apps/files_sharing/l10n/he.php +++ b/apps/files_sharing/l10n/he.php @@ -1,5 +1,5 @@ "סיסמא", +"Password" => "ססמה", "Submit" => "שליחה", "%s shared the folder %s with you" => "%s שיתף עמך את התיקייה %s", "%s shared the file %s with you" => "%s שיתף עמך את הקובץ %s", diff --git a/apps/files_sharing/l10n/hi.php b/apps/files_sharing/l10n/hi.php deleted file mode 100644 index 560df54fc94..00000000000 --- a/apps/files_sharing/l10n/hi.php +++ /dev/null @@ -1,3 +0,0 @@ - "पासवर्ड" -); diff --git a/apps/files_sharing/l10n/hr.php b/apps/files_sharing/l10n/hr.php deleted file mode 100644 index b2dca866bbd..00000000000 --- a/apps/files_sharing/l10n/hr.php +++ /dev/null @@ -1,6 +0,0 @@ - "Lozinka", -"Submit" => "Pošalji", -"Download" => "Preuzimanje", -"web services under your control" => "web usluge pod vašom kontrolom" -); diff --git a/apps/files_sharing/l10n/hy.php b/apps/files_sharing/l10n/hy.php deleted file mode 100644 index 438e8a7433c..00000000000 --- a/apps/files_sharing/l10n/hy.php +++ /dev/null @@ -1,4 +0,0 @@ - "Հաստատել", -"Download" => "Բեռնել" -); diff --git a/apps/files_sharing/l10n/ia.php b/apps/files_sharing/l10n/ia.php deleted file mode 100644 index d229135a71d..00000000000 --- a/apps/files_sharing/l10n/ia.php +++ /dev/null @@ -1,6 +0,0 @@ - "Contrasigno", -"Submit" => "Submitter", -"Download" => "Discargar", -"web services under your control" => "servicios web sub tu controlo" -); diff --git a/apps/files_sharing/l10n/ku_IQ.php b/apps/files_sharing/l10n/ku_IQ.php index 675fc372e15..f139b0a0643 100644 --- a/apps/files_sharing/l10n/ku_IQ.php +++ b/apps/files_sharing/l10n/ku_IQ.php @@ -1,5 +1,5 @@ "وشەی تێپەربو", +"Password" => "تێپه‌ڕه‌وشه", "Submit" => "ناردن", "%s shared the folder %s with you" => "%s دابه‌شی کردووه‌ بوخچه‌ی %s له‌گه‌ڵ تۆ", "%s shared the file %s with you" => "%s دابه‌شی کردووه‌ په‌ڕگه‌یی %s له‌گه‌ڵ تۆ", diff --git a/apps/files_sharing/l10n/lb.php b/apps/files_sharing/l10n/lb.php index 630866ab4c5..8aba5806aa0 100644 --- a/apps/files_sharing/l10n/lb.php +++ b/apps/files_sharing/l10n/lb.php @@ -1,6 +1,3 @@ "Passwuert", -"Submit" => "Fortschécken", -"Download" => "Download", -"web services under your control" => "Web Servicer ënnert denger Kontroll" +"Password" => "Passwuert" ); diff --git a/apps/files_sharing/l10n/lt_LT.php b/apps/files_sharing/l10n/lt_LT.php index 96ab48cd2c5..d21a3c14f40 100644 --- a/apps/files_sharing/l10n/lt_LT.php +++ b/apps/files_sharing/l10n/lt_LT.php @@ -1,6 +1,6 @@ "Slaptažodis", -"Submit" => "Išsaugoti", -"Download" => "Atsisiųsti", -"web services under your control" => "jūsų valdomos web paslaugos" +"Size" => "Dydis", +"Modified" => "Pakeista", +"Delete all" => "Ištrinti viską", +"Delete" => "Ištrinti" ); diff --git a/apps/files_sharing/l10n/lv.php b/apps/files_sharing/l10n/lv.php index 88faeaf9f11..0b224867089 100644 --- a/apps/files_sharing/l10n/lv.php +++ b/apps/files_sharing/l10n/lv.php @@ -5,5 +5,5 @@ "%s shared the file %s with you" => "%s ar jums dalījās ar datni %s", "Download" => "Lejupielādēt", "No preview available for" => "Nav pieejams priekšskatījums priekš", -"web services under your control" => "tīmekļa servisi tavā varā" +"web services under your control" => "jūsu vadībā esošie tīmekļa servisi" ); diff --git a/apps/files_sharing/l10n/ms_MY.php b/apps/files_sharing/l10n/ms_MY.php deleted file mode 100644 index 879524afce3..00000000000 --- a/apps/files_sharing/l10n/ms_MY.php +++ /dev/null @@ -1,6 +0,0 @@ - "Kata laluan", -"Submit" => "Hantar", -"Download" => "Muat turun", -"web services under your control" => "Perkhidmatan web di bawah kawalan anda" -); diff --git a/apps/files_sharing/l10n/nn_NO.php b/apps/files_sharing/l10n/nn_NO.php deleted file mode 100644 index abd1ee394bc..00000000000 --- a/apps/files_sharing/l10n/nn_NO.php +++ /dev/null @@ -1,6 +0,0 @@ - "Passord", -"Submit" => "Send", -"Download" => "Last ned", -"web services under your control" => "Vev tjenester under din kontroll" -); diff --git a/apps/files_sharing/l10n/oc.php b/apps/files_sharing/l10n/oc.php deleted file mode 100644 index 07bc26ecdd4..00000000000 --- a/apps/files_sharing/l10n/oc.php +++ /dev/null @@ -1,6 +0,0 @@ - "Senhal", -"Submit" => "Sosmetre", -"Download" => "Avalcarga", -"web services under your control" => "Services web jos ton contraròtle" -); diff --git a/apps/files_sharing/l10n/pt_BR.php b/apps/files_sharing/l10n/pt_BR.php index ce4c28ddcb5..4dde4bb5ad5 100644 --- a/apps/files_sharing/l10n/pt_BR.php +++ b/apps/files_sharing/l10n/pt_BR.php @@ -5,5 +5,5 @@ "%s shared the file %s with you" => "%s compartilhou o arquivo %s com você", "Download" => "Baixar", "No preview available for" => "Nenhuma visualização disponível para", -"web services under your control" => "serviços web sob seu controle" +"web services under your control" => "web services sob seu controle" ); diff --git a/apps/files_sharing/l10n/si_LK.php b/apps/files_sharing/l10n/si_LK.php index 580f7b1990a..1c69c608178 100644 --- a/apps/files_sharing/l10n/si_LK.php +++ b/apps/files_sharing/l10n/si_LK.php @@ -1,9 +1,9 @@ "මුර පදය", +"Password" => "මුරපදය", "Submit" => "යොමු කරන්න", "%s shared the folder %s with you" => "%s ඔබව %s ෆෝල්ඩරයට හවුල් කරගත්තේය", "%s shared the file %s with you" => "%s ඔබ සමඟ %s ගොනුව බෙදාහදාගත්තේය", -"Download" => "බාන්න", +"Download" => "භාගත කරන්න", "No preview available for" => "පූර්වදර්ශනයක් නොමැත", "web services under your control" => "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්" ); diff --git a/apps/files_sharing/l10n/sk_SK.php b/apps/files_sharing/l10n/sk_SK.php index 14124eeb874..2e781f76f38 100644 --- a/apps/files_sharing/l10n/sk_SK.php +++ b/apps/files_sharing/l10n/sk_SK.php @@ -3,7 +3,7 @@ "Submit" => "Odoslať", "%s shared the folder %s with you" => "%s zdieľa s vami priečinok %s", "%s shared the file %s with you" => "%s zdieľa s vami súbor %s", -"Download" => "Sťahovanie", +"Download" => "Stiahnuť", "No preview available for" => "Žiaden náhľad k dispozícii pre", "web services under your control" => "webové služby pod Vašou kontrolou" ); diff --git a/apps/files_sharing/l10n/sr.php b/apps/files_sharing/l10n/sr.php index be24c06e465..6e277f67711 100644 --- a/apps/files_sharing/l10n/sr.php +++ b/apps/files_sharing/l10n/sr.php @@ -1,6 +1,5 @@ "Лозинка", "Submit" => "Пошаљи", -"Download" => "Преузми", -"web services under your control" => "веб сервиси под контролом" +"Download" => "Преузми" ); diff --git a/apps/files_sharing/l10n/sr@latin.php b/apps/files_sharing/l10n/sr@latin.php deleted file mode 100644 index cce6bd1f771..00000000000 --- a/apps/files_sharing/l10n/sr@latin.php +++ /dev/null @@ -1,5 +0,0 @@ - "Lozinka", -"Submit" => "Pošalji", -"Download" => "Preuzmi" -); diff --git a/apps/files_sharing/l10n/tr.php b/apps/files_sharing/l10n/tr.php index 42dfec8cc6f..f2e6e5697d6 100644 --- a/apps/files_sharing/l10n/tr.php +++ b/apps/files_sharing/l10n/tr.php @@ -1,5 +1,5 @@ "Parola", +"Password" => "Şifre", "Submit" => "Gönder", "%s shared the folder %s with you" => "%s sizinle paylaşılan %s klasör", "%s shared the file %s with you" => "%s sizinle paylaşılan %s klasör", diff --git a/apps/files_sharing/l10n/uk.php b/apps/files_sharing/l10n/uk.php index 8e1fa4bc980..cdc103ad465 100644 --- a/apps/files_sharing/l10n/uk.php +++ b/apps/files_sharing/l10n/uk.php @@ -1,6 +1,6 @@ "Пароль", -"Submit" => "Передати", +"Submit" => "Submit", "%s shared the folder %s with you" => "%s опублікував каталог %s для Вас", "%s shared the file %s with you" => "%s опублікував файл %s для Вас", "Download" => "Завантажити", diff --git a/apps/files_sharing/l10n/zh_TW.php b/apps/files_sharing/l10n/zh_TW.php index 14e4466ecb6..f1d28731a7f 100644 --- a/apps/files_sharing/l10n/zh_TW.php +++ b/apps/files_sharing/l10n/zh_TW.php @@ -1,9 +1,9 @@ "密碼", "Submit" => "送出", -"%s shared the folder %s with you" => "%s 和您分享了資料夾 %s ", -"%s shared the file %s with you" => "%s 和您分享了檔案 %s", +"%s shared the folder %s with you" => "%s 分享了資料夾 %s 給您", +"%s shared the file %s with you" => "%s 分享了檔案 %s 給您", "Download" => "下載", "No preview available for" => "無法預覽", -"web services under your control" => "由您控制的網路服務" +"web services under your control" => "在您掌控之下的網路服務" ); diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 733b7838760..9fccd0b46f3 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -44,7 +44,7 @@ class Shared_Cache extends Cache { $source = \OC_Share_Backend_File::getSource($target); if (isset($source['path']) && isset($source['fileOwner'])) { \OC\Files\Filesystem::initMountPoints($source['fileOwner']); - $mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']); + $mount = \OC\Files\Mount::findByNumericId($source['storage']); if ($mount) { $fullPath = $mount->getMountPoint().$source['path']; list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($fullPath); diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 2facad0f7e2..ffd4e5ced22 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -71,7 +71,7 @@ class Shared extends \OC\Files\Storage\Common { if ($source) { if (!isset($source['fullPath'])) { \OC\Files\Filesystem::initMountPoints($source['fileOwner']); - $mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']); + $mount = \OC\Files\Mount::findByNumericId($source['storage']); if ($mount) { $this->files[$target]['fullPath'] = $mount->getMountPoint().$source['path']; } else { diff --git a/apps/files_trashbin/l10n/id.php b/apps/files_trashbin/l10n/id.php index 62a63d515a3..e06c66784f2 100644 --- a/apps/files_trashbin/l10n/id.php +++ b/apps/files_trashbin/l10n/id.php @@ -2,13 +2,13 @@ "Couldn't delete %s permanently" => "Tidak dapat menghapus permanen %s", "Couldn't restore %s" => "Tidak dapat memulihkan %s", "perform restore operation" => "jalankan operasi pemulihan", -"Error" => "Galat", +"Error" => "kesalahan", "delete file permanently" => "hapus berkas secara permanen", -"Delete permanently" => "Hapus secara permanen", +"Delete permanently" => "hapus secara permanen", "Name" => "Nama", "Deleted" => "Dihapus", -"1 folder" => "1 folder", -"{count} folders" => "{count} folder", +"1 folder" => "1 map", +"{count} folders" => "{count} map", "1 file" => "1 berkas", "{count} files" => "{count} berkas", "Nothing in here. Your trash bin is empty!" => "Tempat sampah anda kosong!", diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php index 8166a024e58..14345ddcc4d 100644 --- a/apps/files_trashbin/l10n/nn_NO.php +++ b/apps/files_trashbin/l10n/nn_NO.php @@ -1,10 +1,5 @@ "Feil", -"Delete permanently" => "Slett for godt", "Name" => "Namn", -"1 folder" => "1 mappe", -"{count} folders" => "{count} mapper", -"1 file" => "1 fil", -"{count} files" => "{count} filer", "Delete" => "Slett" ); diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php index 5c9f558f11f..7fd1ab21ecd 100644 --- a/apps/files_trashbin/l10n/pl.php +++ b/apps/files_trashbin/l10n/pl.php @@ -8,9 +8,9 @@ "Name" => "Nazwa", "Deleted" => "Usunięte", "1 folder" => "1 folder", -"{count} folders" => "Ilość folderów: {count}", +"{count} folders" => "{count} foldery", "1 file" => "1 plik", -"{count} files" => "Ilość plików: {count}", +"{count} files" => "{count} pliki", "Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!", "Restore" => "Przywróć", "Delete" => "Usuń", diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php index ba85158b70e..7dfe610466b 100644 --- a/apps/files_trashbin/l10n/pt_PT.php +++ b/apps/files_trashbin/l10n/pt_PT.php @@ -13,6 +13,6 @@ "{count} files" => "{count} ficheiros", "Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!", "Restore" => "Restaurar", -"Delete" => "Eliminar", +"Delete" => "Apagar", "Deleted Files" => "Ficheiros Apagados" ); diff --git a/apps/files_trashbin/l10n/ro.php b/apps/files_trashbin/l10n/ro.php index 3af21b7e3f3..c03ef600f35 100644 --- a/apps/files_trashbin/l10n/ro.php +++ b/apps/files_trashbin/l10n/ro.php @@ -1,6 +1,5 @@ "Eroare", -"Delete permanently" => "Stergere permanenta", "Name" => "Nume", "1 folder" => "1 folder", "{count} folders" => "{count} foldare", diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php index 7cef36ef1c0..7203f4c75fc 100644 --- a/apps/files_trashbin/l10n/sk_SK.php +++ b/apps/files_trashbin/l10n/sk_SK.php @@ -5,7 +5,7 @@ "Error" => "Chyba", "delete file permanently" => "trvalo zmazať súbor", "Delete permanently" => "Zmazať trvalo", -"Name" => "Názov", +"Name" => "Meno", "Deleted" => "Zmazané", "1 folder" => "1 priečinok", "{count} folders" => "{count} priečinkov", diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index 88c71a75ab0..f0b56eef014 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -39,15 +39,14 @@ class Trashbin { $view = new \OC\Files\View('/'. $user); if (!$view->is_dir('files_trashbin')) { $view->mkdir('files_trashbin'); - $view->mkdir('files_trashbin/files'); - $view->mkdir('files_trashbin/versions'); - $view->mkdir('files_trashbin/keyfiles'); - $view->mkdir('files_trashbin/share-keys'); + $view->mkdir("files_trashbin/files"); + $view->mkdir("files_trashbin/versions"); + $view->mkdir("files_trashbin/keyfiles"); } $path_parts = pathinfo($file_path); - $filename = $path_parts['basename']; + $deleted = $path_parts['basename']; $location = $path_parts['dirname']; $timestamp = time(); $mime = $view->getMimeType('files'.$file_path); @@ -63,24 +62,45 @@ class Trashbin { $trashbinSize = self::calculateSize(new \OC\Files\View('/'. $user.'/files_trashbin')); } - $sizeOfAddedFiles = self::copy_recursive($file_path, 'files_trashbin/files/'.$filename.'.d'.$timestamp, $view); - - if ( $view->file_exists('files_trashbin/files/'.$filename.'.d'.$timestamp) ) { + $sizeOfAddedFiles = self::copy_recursive($file_path, 'files_trashbin/files/'.$deleted.'.d'.$timestamp, $view); + + if ( $view->file_exists('files_trashbin/files/'.$deleted.'.d'.$timestamp) ) { $trashbinSize += $sizeOfAddedFiles; $query = \OC_DB::prepare("INSERT INTO `*PREFIX*files_trash` (`id`,`timestamp`,`location`,`type`,`mime`,`user`) VALUES (?,?,?,?,?,?)"); - $result = $query->execute(array($filename, $timestamp, $location, $type, $mime, $user)); + $result = $query->execute(array($deleted, $timestamp, $location, $type, $mime, $user)); if ( !$result ) { // if file couldn't be added to the database than also don't store it in the trash bin. - $view->deleteAll('files_trashbin/files/'.$filename.'.d'.$timestamp); + $view->deleteAll('files_trashbin/files/'.$deleted.'.d'.$timestamp); \OC_Log::write('files_trashbin', 'trash bin database couldn\'t be updated', \OC_log::ERROR); return; } \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_moveToTrash', array('filePath' => \OC\Files\Filesystem::normalizePath($file_path), - 'trashPath' => \OC\Files\Filesystem::normalizePath($filename.'.d'.$timestamp))); - - $trashbinSize += self::retainVersions($view, $file_path, $filename, $timestamp); - $trashbinSize += self::retainEncryptionKeys($view, $file_path, $filename, $timestamp); - + 'trashPath' => \OC\Files\Filesystem::normalizePath($deleted.'.d'.$timestamp))); + + // Take care of file versions + if ( \OCP\App::isEnabled('files_versions') ) { + if ( $view->is_dir('files_versions/'.$file_path) ) { + $trashbinSize += self::calculateSize(new \OC\Files\View('/'. $user.'/files_versions/'.$file_path)); + $view->rename('files_versions/'.$file_path, 'files_trashbin/versions'. $deleted.'.d'.$timestamp); + } else if ( $versions = \OCA\Files_Versions\Storage::getVersions($user, $file_path) ) { + foreach ($versions as $v) { + $trashbinSize += $view->filesize('files_versions'.$v['path'].'.v'.$v['version']); + $view->rename('files_versions'.$v['path'].'.v'.$v['version'], 'files_trashbin/versions/'. $deleted.'.v'.$v['version'].'.d'.$timestamp); + } + } + } + + // Take care of encryption keys + $keyfile = \OC\Files\Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path); + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile.'.key') ) { + if ( $view->is_dir('files'.$file_path) ) { + $trashbinSize += self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile)); + $view->rename($keyfile, 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp); + } else { + $trashbinSize += $view->filesize($keyfile.'.key'); + $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.key.d'.$timestamp); + } + } } else { \OC_Log::write('files_trashbin', 'Couldn\'t move '.$file_path.' to the trash bin', \OC_log::ERROR); } @@ -91,134 +111,15 @@ class Trashbin { } - /** - * Move file versions to trash so that they can be restored later - * - * @param \OC\Files\View $view - * @param $file_path path to original file - * @param $filename of deleted file - * @param $timestamp when the file was deleted - * - * @return size of stored versions - */ - private static function retainVersions($view, $file_path, $filename, $timestamp) { - $size = 0; - if (\OCP\App::isEnabled('files_versions')) { - - // disable proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $user = \OCP\User::getUser(); - if ($view->is_dir('files_versions/' . $file_path)) { - $size += self::calculateSize(new \OC\Files\View('/' . $user . '/files_versions/' . $file_path)); - $view->rename('files_versions/' . $file_path, 'files_trashbin/versions/' . $filename . '.d' . $timestamp); - } else if ($versions = \OCA\Files_Versions\Storage::getVersions($user, $file_path)) { - foreach ($versions as $v) { - $size += $view->filesize('files_versions' . $v['path'] . '.v' . $v['version']); - $view->rename('files_versions' . $v['path'] . '.v' . $v['version'], 'files_trashbin/versions/' . $filename . '.v' . $v['version'] . '.d' . $timestamp); - } - } - - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - } - - return $size; - } - - /** - * Move encryption keys to trash so that they can be restored later - * - * @param \OC\Files\View $view - * @param $file_path path to original file - * @param $filename of deleted file - * @param $timestamp when the file was deleted - * - * @return size of encryption keys - */ - private static function retainEncryptionKeys($view, $file_path, $filename, $timestamp) { - $size = 0; - - if (\OCP\App::isEnabled('files_encryption')) { - - $user = \OCP\User::getUser(); - - // disable proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // retain key files - $keyfile = \OC\Files\Filesystem::normalizePath('files_encryption/keyfiles/' . $file_path); - - if ($view->is_dir($keyfile) || $view->file_exists($keyfile . '.key')) { - $user = \OCP\User::getUser(); - // move keyfiles - if ($view->is_dir($keyfile)) { - $size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . $keyfile)); - $view->rename($keyfile, 'files_trashbin/keyfiles/' . $filename . '.d' . $timestamp); - } else { - $size += $view->filesize($keyfile . '.key'); - $view->rename($keyfile . '.key', 'files_trashbin/keyfiles/' . $filename . '.key.d' . $timestamp); - } - } - - // retain share keys - $sharekeys = \OC\Files\Filesystem::normalizePath('files_encryption/share-keys/' . $file_path); - - if ($view->is_dir($sharekeys)) { - $size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . $sharekeys)); - $view->rename($sharekeys, 'files_trashbin/share-keys/' . $filename . '.d' . $timestamp); - } else { - // get local path to share-keys - $localShareKeysPath = $view->getLocalFile($sharekeys); - - // handle share-keys - $matches = glob(preg_quote($localShareKeysPath).'*.shareKey'); - foreach ($matches as $src) { - // get source file parts - $pathinfo = pathinfo($src); - - // we only want to keep the owners key so we can access the private key - $ownerShareKey = $filename . '.' . $user. '.shareKey'; - - // if we found the share-key for the owner, we need to move it to files_trashbin - if($pathinfo['basename'] == $ownerShareKey) { - - // calculate size - $size += $view->filesize($sharekeys. '.' . $user. '.shareKey'); - - // move file - $view->rename($sharekeys. '.' . $user. '.shareKey', 'files_trashbin/share-keys/' . $ownerShareKey . '.d' . $timestamp); - } else { - - // calculate size - $size += filesize($src); - - // don't keep other share-keys - unlink($src); - } - } - - } - - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - } - return $size; - } /** * restore files from trash bin * @param $file path to the deleted file * @param $filename name of the file * @param $timestamp time when the file was deleted - * - * @return bool - */ + */ public static function restore($file, $filename, $timestamp) { - - $user = \OCP\User::getUser(); + $user = \OCP\User::getUser(); $view = new \OC\Files\View('/'.$user); $trashbinSize = self::getTrashbinSize($user); @@ -256,17 +157,8 @@ class Trashbin { // we need a extension in case a file/dir with the same name already exists $ext = self::getUniqueExtension($location, $filename, $view); $mtime = $view->filemtime($source); - - // disable proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - // restore file - $restoreResult = $view->rename($source, $target.$ext); - - // handle the restore result - if( $restoreResult ) { - $view->touch($target.$ext, $mtime); + if( $view->rename($source, $target.$ext) ) { + $view->touch($target.$ext, $mtime); \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', array('filePath' => \OC\Files\Filesystem::normalizePath('/'.$location.'/'.$filename.$ext), 'trashPath' => \OC\Files\Filesystem::normalizePath($file))); @@ -275,183 +167,68 @@ class Trashbin { } else { $trashbinSize -= $view->filesize($target.$ext); } - - $trashbinSize -= self::restoreVersions($view, $file, $filename, $ext, $location, $timestamp); - $trashbinSize -= self::restoreEncryptionKeys($view, $file, $filename, $ext, $location, $timestamp); - + // if versioning app is enabled, copy versions from the trash bin back to the original location + if ( \OCP\App::isEnabled('files_versions') ) { + if ($timestamp ) { + $versionedFile = $filename; + } else { + $versionedFile = $file; + } + if ( $result[0]['type'] === 'dir' ) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/'.$user.'/'.'files_trashbin/versions/'. $file)); + $view->rename(\OC\Files\Filesystem::normalizePath('files_trashbin/versions/'. $file), \OC\Files\Filesystem::normalizePath('files_versions/'.$location.'/'.$filename.$ext)); + } else if ( $versions = self::getVersionsFromTrash($versionedFile, $timestamp) ) { + foreach ($versions as $v) { + if ($timestamp ) { + $trashbinSize -= $view->filesize('files_trashbin/versions/'.$versionedFile.'.v'.$v.'.d'.$timestamp); + $view->rename('files_trashbin/versions/'.$versionedFile.'.v'.$v.'.d'.$timestamp, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + } else { + $trashbinSize -= $view->filesize('files_trashbin/versions/'.$versionedFile.'.v'.$v); + $view->rename('files_trashbin/versions/'.$versionedFile.'.v'.$v, 'files_versions/'.$location.'/'.$filename.$ext.'.v'.$v); + } + } + } + } + + // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!) + $parts = pathinfo($file); + if ( $result[0]['type'] === 'dir' ) { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename); + } else { + $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename.'.key'); + } + if ($timestamp) { + $keyfile .= '.d'.$timestamp; + } + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { + if ( $result[0]['type'] === 'dir' ) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/'.$user.'/'.$keyfile)); + $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename); + } else { + $trashbinSize -= $view->filesize($keyfile); + $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename.'.key'); + } + } + if ( $timestamp ) { $query = \OC_DB::prepare('DELETE FROM `*PREFIX*files_trash` WHERE `user`=? AND `id`=? AND `timestamp`=?'); $query->execute(array($user,$filename,$timestamp)); } self::setTrashbinSize($user, $trashbinSize); - - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - + return true; + } else { + \OC_Log::write('files_trashbin', 'Couldn\'t restore file from trash bin, '.$filename, \OC_log::ERROR); } - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - return false; } - /** - * @brief restore versions from trash bin - * - * @param \OC\Files\View $view file view - * @param $file complete path to file - * @param $filename name of file - * @param $ext file extension in case a file with the same $filename already exists - * @param $location location if file - * @param $timestamp deleteion time - * - * @return size of restored versions - */ - private static function restoreVersions($view, $file, $filename, $ext, $location, $timestamp) { - $size = 0; - if (\OCP\App::isEnabled('files_versions')) { - // disable proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $user = \OCP\User::getUser(); - if ($timestamp) { - $versionedFile = $filename; - } else { - $versionedFile = $file; - } - - if ($view->is_dir('/files_trashbin/versions/'.$file)) { - $size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . 'files_trashbin/versions/' . $file)); - $view->rename(\OC\Files\Filesystem::normalizePath('files_trashbin/versions/' . $file), \OC\Files\Filesystem::normalizePath('files_versions/' . $location . '/' . $filename . $ext)); - } else if ($versions = self::getVersionsFromTrash($versionedFile, $timestamp)) { - foreach ($versions as $v) { - if ($timestamp) { - $size += $view->filesize('files_trashbin/versions/' . $versionedFile . '.v' . $v . '.d' . $timestamp); - $view->rename('files_trashbin/versions/' . $versionedFile . '.v' . $v . '.d' . $timestamp, 'files_versions/' . $location . '/' . $filename . $ext . '.v' . $v); - } else { - $size += $view->filesize('files_trashbin/versions/' . $versionedFile . '.v' . $v); - $view->rename('files_trashbin/versions/' . $versionedFile . '.v' . $v, 'files_versions/' . $location . '/' . $filename . $ext . '.v' . $v); - } - } - } - - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - } - return $size; - } - - - /** - * @brief restore encryption keys from trash bin - * - * @param \OC\Files\View $view - * @param $file complete path to file - * @param $filename name of file - * @param $ext file extension in case a file with the same $filename already exists - * @param $location location if file - * @param $timestamp deleteion time - * - * @return size of restored encrypted file - */ - private static function restoreEncryptionKeys($view, $file, $filename, $ext, $location, $timestamp) { - // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!) - $size = 0; - if (\OCP\App::isEnabled('files_encryption')) { - $user = \OCP\User::getUser(); - - $path_parts = pathinfo($file); - $source_location = $path_parts['dirname']; - - if ($view->is_dir('/files_trashbin/keyfiles/'.$file)) { - if($source_location != '.') { - $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/' . $source_location . '/' . $filename); - $sharekey = \OC\Files\Filesystem::normalizePath('files_trashbin/share-keys/' . $source_location . '/' . $filename); - } else { - $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/' . $filename); - $sharekey = \OC\Files\Filesystem::normalizePath('files_trashbin/share-keys/' . $filename); - } - } else { - $keyfile = \OC\Files\Filesystem::normalizePath('files_trashbin/keyfiles/' . $source_location . '/' . $filename . '.key'); - } - - if ($timestamp) { - $keyfile .= '.d' . $timestamp; - } - - // disable proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - if ($view->file_exists($keyfile)) { - // handle directory - if ($view->is_dir($keyfile)) { - - // handle keyfiles - $size += self::calculateSize(new \OC\Files\View('/' . $user . '/' . $keyfile)); - $view->rename($keyfile, 'files_encryption/keyfiles/' . $location . '/' . $filename . $ext); - - // handle share-keys - if ($timestamp) { - $sharekey .= '.d' . $timestamp; - } - $view->rename($sharekey, 'files_encryption/share-keys/' . $location . '/' . $filename . $ext); - - } else { - // handle keyfiles - $size += $view->filesize($keyfile); - $view->rename($keyfile, 'files_encryption/keyfiles/' . $location . '/' . $filename . $ext . '.key'); - - // handle share-keys - $ownerShareKey = \OC\Files\Filesystem::normalizePath('files_trashbin/share-keys/' . $source_location . '/' . $filename . '.' . $user. '.shareKey'); - if ($timestamp) { - $ownerShareKey .= '.d' . $timestamp; - } - - $size += $view->filesize($ownerShareKey); - - // move only owners key - $view->rename($ownerShareKey, 'files_encryption/share-keys/' . $location . '/' . $filename . $ext . '.' . $user. '.shareKey'); - - // try to re-share if file is shared - $filesystemView = new \OC_FilesystemView('/'); - $session = new \OCA\Encryption\Session($filesystemView); - $util = new \OCA\Encryption\Util($filesystemView, $user); - - // fix the file size - $absolutePath = \OC\Files\Filesystem::normalizePath('/' . $user . '/files/'. $location. '/' .$filename); - $util->fixFileSize($absolutePath); - - // get current sharing state - $sharingEnabled = \OCP\Share::isEnabled(); - - // get the final filename - $target = \OC\Files\Filesystem::normalizePath($location.'/'.$filename); - - // get users sharing this file - $usersSharing = $util->getSharingUsersArray($sharingEnabled, $target.$ext, $user); - - // Attempt to set shareKey - $util->setSharedFileKeyfiles($session, $usersSharing, $target.$ext); - } - } - - // enable proxy - \OC_FileProxy::$enabled = $proxyStatus; - } - return $size; - } - /** - * @brief delete file from trash bin permanently - * + * delete file from trash bin permanently * @param $filename path to the file * @param $timestamp of deletion time - * * @return size of deleted files */ public static function delete($filename, $timestamp=null) { diff --git a/apps/files_versions/l10n/et_EE.php b/apps/files_versions/l10n/et_EE.php index c8d2f7cfacd..930cfbc33a7 100644 --- a/apps/files_versions/l10n/et_EE.php +++ b/apps/files_versions/l10n/et_EE.php @@ -7,5 +7,5 @@ "No old versions available" => "Vanu versioone pole saadaval", "No path specified" => "Asukohta pole määratud", "Versions" => "Versioonid", -"Revert a file to a previous version by clicking on its revert button" => "Taasta fail varasemale versioonile klikkides nupule \"Taasta\"" +"Revert a file to a previous version by clicking on its revert button" => "Taasta fail varasemale versioonile klikkides \"Revert\" nupule" ); diff --git a/apps/files_versions/l10n/he.php b/apps/files_versions/l10n/he.php index ad2e261d539..9eb4df64857 100644 --- a/apps/files_versions/l10n/he.php +++ b/apps/files_versions/l10n/he.php @@ -1,3 +1,5 @@ "גרסאות" +"History" => "היסטוריה", +"Files Versioning" => "שמירת הבדלי גרסאות של קבצים", +"Enable" => "הפעלה" ); diff --git a/apps/files_versions/l10n/ku_IQ.php b/apps/files_versions/l10n/ku_IQ.php index 9132caf75e3..db5dbad49fc 100644 --- a/apps/files_versions/l10n/ku_IQ.php +++ b/apps/files_versions/l10n/ku_IQ.php @@ -1,3 +1,5 @@ "وه‌شان" +"History" => "مێژوو", +"Files Versioning" => "وه‌شانی په‌ڕگه", +"Enable" => "چالاککردن" ); diff --git a/apps/files_versions/l10n/nb_NO.php b/apps/files_versions/l10n/nb_NO.php index df59dfe4c8c..18c72506102 100644 --- a/apps/files_versions/l10n/nb_NO.php +++ b/apps/files_versions/l10n/nb_NO.php @@ -1,3 +1,5 @@ "Versjoner" +"History" => "Historie", +"Files Versioning" => "Fil versjonering", +"Enable" => "Aktiver" ); diff --git a/apps/files_versions/l10n/ro.php b/apps/files_versions/l10n/ro.php index cd9fc89dcc6..7dfaee3672b 100644 --- a/apps/files_versions/l10n/ro.php +++ b/apps/files_versions/l10n/ro.php @@ -1,11 +1,5 @@ "Nu a putut reveni: %s", -"success" => "success", -"File %s was reverted to version %s" => "Fisierul %s a revenit la versiunea %s", -"failure" => "eșec", -"File %s could not be reverted to version %s" => "Fisierele %s nu au putut reveni la versiunea %s", -"No old versions available" => "Versiunile vechi nu sunt disponibile", -"No path specified" => "Nici un dosar specificat", -"Versions" => "Versiuni", -"Revert a file to a previous version by clicking on its revert button" => "Readuceti un fișier la o versiune anterioară, făcând clic pe butonul revenire" +"History" => "Istoric", +"Files Versioning" => "Versionare fișiere", +"Enable" => "Activare" ); diff --git a/apps/files_versions/l10n/si_LK.php b/apps/files_versions/l10n/si_LK.php index c7ee63d8ef6..37debf869bc 100644 --- a/apps/files_versions/l10n/si_LK.php +++ b/apps/files_versions/l10n/si_LK.php @@ -1,3 +1,5 @@ "අනුවාද" +"History" => "ඉතිහාසය", +"Files Versioning" => "ගොනු අනුවාදයන්", +"Enable" => "සක්‍රිය කරන්න" ); diff --git a/apps/files_versions/l10n/ta_LK.php b/apps/files_versions/l10n/ta_LK.php index 61a47e42f0a..aca76dcc262 100644 --- a/apps/files_versions/l10n/ta_LK.php +++ b/apps/files_versions/l10n/ta_LK.php @@ -1,3 +1,5 @@ "பதிப்புகள்" +"History" => "வரலாறு", +"Files Versioning" => "கோப்பு பதிப்புகள்", +"Enable" => "இயலுமைப்படுத்துக" ); diff --git a/apps/files_versions/l10n/th_TH.php b/apps/files_versions/l10n/th_TH.php index 2998f748389..e1e996903ae 100644 --- a/apps/files_versions/l10n/th_TH.php +++ b/apps/files_versions/l10n/th_TH.php @@ -1,3 +1,5 @@ "รุ่น" +"History" => "ประวัติ", +"Files Versioning" => "การกำหนดเวอร์ชั่นของไฟล์", +"Enable" => "เปิดใช้งาน" ); diff --git a/apps/files_versions/l10n/vi.php b/apps/files_versions/l10n/vi.php index 33b045f2e3e..f2499e7bf35 100644 --- a/apps/files_versions/l10n/vi.php +++ b/apps/files_versions/l10n/vi.php @@ -6,6 +6,5 @@ "File %s could not be reverted to version %s" => "File %s không thể khôi phục về phiên bản %s", "No old versions available" => "Không có phiên bản cũ nào", "No path specified" => "Không chỉ ra đường dẫn rõ ràng", -"Versions" => "Phiên bản", "Revert a file to a previous version by clicking on its revert button" => "Khôi phục một file về phiên bản trước đó bằng cách click vào nút Khôi phục tương ứng" ); diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php index 8f2799b6e68..abdecb164e8 100644 --- a/apps/user_ldap/l10n/ca.php +++ b/apps/user_ldap/l10n/ca.php @@ -15,7 +15,7 @@ "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Avís: El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.", "Server configuration" => "Configuració del servidor", "Add Server Configuration" => "Afegeix la configuració del servidor", -"Host" => "Equip remot", +"Host" => "Màquina", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", "Base DN" => "DN Base", "One Base DN per line" => "Una DN Base per línia", diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php index 89fc40af4f1..9a01a67703d 100644 --- a/apps/user_ldap/l10n/fa.php +++ b/apps/user_ldap/l10n/fa.php @@ -10,7 +10,7 @@ "Server configuration" => "پیکربندی سرور", "Add Server Configuration" => "افزودن پیکربندی سرور", "Host" => "میزبانی", -"Password" => "گذرواژه", +"Password" => "رمز عبور", "Group Filter" => "فیلتر گروه", "Port" => "درگاه", "in bytes" => "در بایت", diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php index 215d518e7a5..deb6dbb5553 100644 --- a/apps/user_ldap/l10n/gl.php +++ b/apps/user_ldap/l10n/gl.php @@ -3,7 +3,7 @@ "The configuration is valid and the connection could be established!" => "A configuración é correcta e pode estabelecerse a conexión.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais.", "The configuration is invalid. Please look in the ownCloud log for further details." => "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", -"Deletion failed" => "Produciuse un fallo ao eliminar", +"Deletion failed" => "Fallou o borrado", "Take over settings from recent server configuration?" => "Tomar os recentes axustes de configuración do servidor?", "Keep settings?" => "Manter os axustes?", "Cannot add server configuration" => "Non é posíbel engadir a configuración do servidor", diff --git a/apps/user_ldap/l10n/hi.php b/apps/user_ldap/l10n/hi.php index 45166eb0e3e..60d4ea98e84 100644 --- a/apps/user_ldap/l10n/hi.php +++ b/apps/user_ldap/l10n/hi.php @@ -1,4 +1,3 @@ "पासवर्ड", "Help" => "सहयोग" ); diff --git a/apps/user_ldap/l10n/hr.php b/apps/user_ldap/l10n/hr.php index 005a76d4bbc..91503315066 100644 --- a/apps/user_ldap/l10n/hr.php +++ b/apps/user_ldap/l10n/hr.php @@ -1,4 +1,3 @@ "Lozinka", "Help" => "Pomoć" ); diff --git a/apps/user_ldap/l10n/ia.php b/apps/user_ldap/l10n/ia.php index 38374abda7f..3586bf5a2e7 100644 --- a/apps/user_ldap/l10n/ia.php +++ b/apps/user_ldap/l10n/ia.php @@ -1,4 +1,3 @@ "Contrasigno", "Help" => "Adjuta" ); diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php index 5f76d6b99fb..1f6d8fcffe3 100644 --- a/apps/user_ldap/l10n/id.php +++ b/apps/user_ldap/l10n/id.php @@ -3,7 +3,7 @@ "The configuration is valid and the connection could be established!" => "Konfigurasi valid dan koneksi dapat dilakukan!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasi valid, tetapi Bind gagal. Silakan cek pengaturan server dan keamanan.", "The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurasi salah. Silakan lihat log ownCloud untuk lengkapnya.", -"Deletion failed" => "Penghapusan gagal", +"Deletion failed" => "penghapusan gagal", "Take over settings from recent server configuration?" => "Ambil alih pengaturan dari konfigurasi server saat ini?", "Keep settings?" => "Biarkan pengaturan?", "Cannot add server configuration" => "Gagal menambah konfigurasi server", @@ -15,14 +15,14 @@ "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Peringatan: Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya.", "Server configuration" => "Konfigurasi server", "Add Server Configuration" => "Tambah Konfigurasi Server", -"Host" => "Host", +"Host" => "host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol dapat tidak ditulis, kecuali anda menggunakan SSL. Lalu jalankan dengan ldaps://", "Base DN" => "Base DN", "One Base DN per line" => "Satu Base DN per baris", "You can specify Base DN for users and groups in the Advanced tab" => "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan", "User DN" => "User DN", "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." => "DN dari klien pengguna yang dengannya tautan akan diterapkan, mis. uid=agen,dc=contoh,dc=com. Untuk akses anonim, biarkan DN dan kata sandi kosong.", -"Password" => "Sandi", +"Password" => "kata kunci", "For anonymous access, leave DN and Password empty." => "Untuk akses anonim, biarkan DN dan Kata sandi kosong.", "User Login Filter" => "gunakan saringan login", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definisikan filter untuk diterapkan, saat login dilakukan. %%uid menggantikan username saat login.", @@ -71,5 +71,5 @@ "User Home Folder Naming Rule" => "Aturan Penamaan Folder Home Pengguna", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD.", "Test Configuration" => "Uji Konfigurasi", -"Help" => "Bantuan" +"Help" => "bantuan" ); diff --git a/apps/user_ldap/l10n/ku_IQ.php b/apps/user_ldap/l10n/ku_IQ.php index f8f893834b1..1ae808ddd91 100644 --- a/apps/user_ldap/l10n/ku_IQ.php +++ b/apps/user_ldap/l10n/ku_IQ.php @@ -1,4 +1,3 @@ "وشەی تێپەربو", "Help" => "یارمەتی" ); diff --git a/apps/user_ldap/l10n/ms_MY.php b/apps/user_ldap/l10n/ms_MY.php index 88ed18346ca..17a6cbe2cb6 100644 --- a/apps/user_ldap/l10n/ms_MY.php +++ b/apps/user_ldap/l10n/ms_MY.php @@ -1,5 +1,4 @@ "Pemadaman gagal", -"Password" => "Kata laluan", "Help" => "Bantuan" ); diff --git a/apps/user_ldap/l10n/nn_NO.php b/apps/user_ldap/l10n/nn_NO.php index 1adac1b1023..54d1f158f65 100644 --- a/apps/user_ldap/l10n/nn_NO.php +++ b/apps/user_ldap/l10n/nn_NO.php @@ -1,4 +1,3 @@ "Passord", "Help" => "Hjelp" ); diff --git a/apps/user_ldap/l10n/oc.php b/apps/user_ldap/l10n/oc.php index 49b6c5970cc..a128638172a 100644 --- a/apps/user_ldap/l10n/oc.php +++ b/apps/user_ldap/l10n/oc.php @@ -1,5 +1,4 @@ "Fracàs d'escafatge", -"Password" => "Senhal", "Help" => "Ajuda" ); diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php index a5b620e48ba..776aa445e4e 100644 --- a/apps/user_ldap/l10n/pl.php +++ b/apps/user_ldap/l10n/pl.php @@ -3,7 +3,7 @@ "The configuration is valid and the connection could be established!" => "Konfiguracja jest prawidłowa i można ustanowić połączenie!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfiguracja jest prawidłowa, ale Bind nie. Sprawdź ustawienia serwera i poświadczenia.", "The configuration is invalid. Please look in the ownCloud log for further details." => "Konfiguracja jest nieprawidłowa. Proszę przejrzeć logi dziennika ownCloud ", -"Deletion failed" => "Usunięcie nie powiodło się", +"Deletion failed" => "Skasowanie nie powiodło się", "Take over settings from recent server configuration?" => "Przejmij ustawienia z ostatnich konfiguracji serwera?", "Keep settings?" => "Zachować ustawienia?", "Cannot add server configuration" => "Nie można dodać konfiguracji serwera", diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php index 02b03d5a752..3092d061437 100644 --- a/apps/user_ldap/l10n/pt_PT.php +++ b/apps/user_ldap/l10n/pt_PT.php @@ -22,7 +22,7 @@ "You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar o ND Base para utilizadores e grupos no separador Avançado", "User DN" => "DN do utilizador", "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." => "O DN to cliente ", -"Password" => "Password", +"Password" => "Palavra-passe", "For anonymous access, leave DN and Password empty." => "Para acesso anónimo, deixe DN e a Palavra-passe vazios.", "User Login Filter" => "Filtro de login de utilizador", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Define o filtro a aplicar, para aquando de uma tentativa de login. %%uid substitui o nome de utilizador utilizado.", diff --git a/apps/user_ldap/l10n/sr@latin.php b/apps/user_ldap/l10n/sr@latin.php index 005a76d4bbc..91503315066 100644 --- a/apps/user_ldap/l10n/sr@latin.php +++ b/apps/user_ldap/l10n/sr@latin.php @@ -1,4 +1,3 @@ "Lozinka", "Help" => "Pomoć" ); diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php index e6d450301e5..7bcabb0448a 100644 --- a/apps/user_ldap/l10n/tr.php +++ b/apps/user_ldap/l10n/tr.php @@ -1,49 +1,28 @@ "Uyunlama mantikli ve baglama yerlestirmek edebilmi.", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Uyunlama gecerli, fakat Baglama yapamadi. Lutfen kontrol yapmak, eger bu iyi yerlertirdi. ", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Uyunma mantikli degil. Lutfen log daha kontrol yapmak. ", "Deletion failed" => "Silme başarısız oldu", -"Take over settings from recent server configuration?" => "Parametri sonadan uyunlama cikarmak mi?", "Keep settings?" => "Ayarları kalsınmı?", -"Cannot add server configuration" => "Sunucu uyunlama birlemek edemen. ", "Connection test succeeded" => "Bağlantı testi başarılı oldu", "Connection test failed" => "Bağlantı testi başarısız oldu", -"Do you really want to delete the current Server Configuration?" => "Hakikatten, Sonuncu Funksyon durmak istiyor mi?", "Confirm Deletion" => "Silmeyi onayla", -"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Uyari Apps kullanici_Idap ve user_webdavauth uyunmayan. Bu belki sik degil. Lutfen sistem yonetici sormak on aktif yapmaya. ", -"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Ihbar Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin.", "Host" => "Sunucu", -"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol atlamak edesin, sadece SSL istiyorsaniz. O zaman, idapsile baslamak. ", "Base DN" => "Ana DN", -"One Base DN per line" => "Bir Tabani DN herbir dizi. ", -"You can specify Base DN for users and groups in the Advanced tab" => "Base DN kullanicileri ve kaynaklari icin tablosu Advanced tayin etmek ederiz. ", "User DN" => "Kullanıcı DN", -"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." => "DN musterinin, kimle baglamaya yapacagiz,meselâ uid=agent.dc mesela, dc=com Gecinme adisiz ici, DN ve Parola bos birakmak. ", "Password" => "Parola", "For anonymous access, leave DN and Password empty." => "Anonim erişim için DN ve Parola alanlarını boş bırakın.", "User Login Filter" => "Kullanıcı Oturum Filtresi", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Filter uyunlamak icin tayin ediyor, ne zaman girişmek isteminiz. % % uid adi kullanici girismeye karsi koymacak. ", "use %%uid placeholder, e.g. \"uid=%%uid\"" => "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"", "User List Filter" => "Kullanıcı Liste Filtresi", -"Defines the filter to apply, when retrieving users." => "Filter uyunmak icin tayin ediyor, ne zaman adi kullanici geri aliyor. ", "without any placeholder, e.g. \"objectClass=person\"." => "bir yer tutucusu olmadan, örneğin \"objectClass=person\"", "Group Filter" => "Grup Süzgeci", -"Defines the filter to apply, when retrieving groups." => "Filter uyunmak icin tayin ediyor, ne zaman grubalari tekrar aliyor. ", -"without any placeholder, e.g. \"objectClass=posixGroup\"." => "siz bir yer tutucu, mes. 'objectClass=posixGroup ('posixGrubu''. ", "Connection Settings" => "Bağlantı ayarları", "Port" => "Port", "Disable Main Server" => "Ana sunucuyu devredışı birak", "Use TLS" => "TLS kullan", "Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.", -"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Bagladiginda, bunla secene sadece calisiyor, sunucu LDAP SSL sunucun ithal etemek, dneyme sizine sunucu ownClouden. ", "Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.", "in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.", -"User Display Name Field" => "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)", "Base User Tree" => "Temel Kullanıcı Ağacı", -"Group Display Name Field" => "Grub Ekrane Alani Adi", -"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP kullamayin grub adi ownCloud uremek icin. ", "Base Group Tree" => "Temel Grup Ağacı", -"One Group Base DN per line" => "Bir Grubu Tabani DN her dizgi. ", "Group-Member association" => "Grup-Üye işbirliği", "in bytes" => "byte cinsinden", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ", diff --git a/core/css/styles.css b/core/css/styles.css index 93f2cecbfe9..4dfa3f64a37 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -220,8 +220,6 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; } } #login #databaseField .infield { padding-left:0; } #login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; } -#login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; } -#login .success { background:#d7fed7; border:1px solid #0f0; width: 35%; margin: 30px auto; padding:1em; text-align: center;} /* Show password toggle */ #show, #dbpassword { position:absolute; right:1em; top:.8em; float:right; } @@ -344,8 +342,8 @@ li.update, li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; bac .center { text-align:center; } #notification-container { position: fixed; top: 0px; width: 100%; text-align: center; z-index: 101; line-height: 1.2;} -#notification, #update-notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } -#notification span, #update-notification span { cursor:pointer; font-weight:bold; margin-left:1em; } +#notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } +#notification span { cursor:pointer; font-weight:bold; margin-left:1em; } tr .action:not(.permanent), .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; } tr:hover .action, tr .action.permanent, .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); opacity:.5; } diff --git a/core/js/jquery-showpassword.js b/core/js/jquery-showpassword.js index e1737643b48..0f4678327a3 100644 --- a/core/js/jquery-showpassword.js +++ b/core/js/jquery-showpassword.js @@ -35,8 +35,7 @@ 'style' : $element.attr('style'), 'size' : $element.attr('size'), 'name' : $element.attr('name')+'-clone', - 'tabindex' : $element.attr('tabindex'), - 'autocomplete' : 'off' + 'tabindex' : $element.attr('tabindex') }); return $clone; @@ -103,16 +102,7 @@ $clone.bind('blur', function() { $input.trigger('focusout'); }); setState( $checkbox, $input, $clone ); - - // set type of password field clone (type=text) to password right on submit - // to prevent browser save the value of this field - $clone.closest('form').submit(function(e) { - // .prop has to be used, because .attr throws - // an error while changing a type of an input - // element - $clone.prop('type', 'password'); - }); - + if( callback.fn ){ callback.fn( callback.args ); } diff --git a/core/l10n/ar.php b/core/l10n/ar.php index 587e59695ca..4d413715de3 100644 --- a/core/l10n/ar.php +++ b/core/l10n/ar.php @@ -30,7 +30,7 @@ "October" => "تشرين الاول", "November" => "تشرين الثاني", "December" => "كانون الاول", -"Settings" => "إعدادات", +"Settings" => "تعديلات", "seconds ago" => "منذ ثواني", "1 minute ago" => "منذ دقيقة", "{minutes} minutes ago" => "{minutes} منذ دقائق", @@ -63,7 +63,7 @@ "Share with" => "شارك مع", "Share with link" => "شارك مع رابط", "Password protect" => "حماية كلمة السر", -"Password" => "كلمة المرور", +"Password" => "كلمة السر", "Email link to person" => "ارسل الرابط بالبريد الى صديق", "Send" => "أرسل", "Set expiration date" => "تعيين تاريخ إنتهاء الصلاحية", @@ -89,21 +89,23 @@ "ownCloud password reset" => "إعادة تعيين كلمة سر ownCloud", "Use the following link to reset your password: {link}" => "استخدم هذه الوصلة لاسترجاع كلمة السر: {link}", "You will receive a link to reset your password via Email." => "سوف نرسل لك بريد يحتوي على وصلة لتجديد كلمة السر.", +"Reset email send." => "إعادة إرسال البريد الإلكتروني.", +"Request failed!" => "فشل الطلب", "Username" => "إسم المستخدم", "Request reset" => "طلب تعديل", "Your password was reset" => "لقد تم تعديل كلمة السر", "To login page" => "الى صفحة الدخول", -"New password" => "كلمات سر جديدة", +"New password" => "كلمة سر جديدة", "Reset password" => "تعديل كلمة السر", -"Personal" => "شخصي", -"Users" => "المستخدمين", +"Personal" => "خصوصيات", +"Users" => "المستخدم", "Apps" => "التطبيقات", -"Admin" => "المدير", +"Admin" => "مستخدم رئيسي", "Help" => "المساعدة", "Access forbidden" => "التوصّل محظور", "Cloud not found" => "لم يتم إيجاد", "Edit categories" => "عدل الفئات", -"Add" => "اضف", +"Add" => "أدخل", "Security Warning" => "تحذير أمان", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)", "Please update your PHP installation to use ownCloud securely." => "Please update your PHP installation to use ownCloud securely.", @@ -112,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "مجلدات البيانات والملفات الخاصة قد تكون قابلة للوصول اليها عن طريق شبكة الانترنت وذلك بسبب ان ملف .htaccess لا يعمل بشكل صحيح.", "For information how to properly configure your server, please see the documentation." => "للحصول على معلومات عن كيفية اعداد الخادم الخاص بك , يرجى زيارة الرابط التالي documentation.", "Create an admin account" => "أضف مستخدم رئيسي ", -"Advanced" => "تعديلات متقدمه", +"Advanced" => "خيارات متقدمة", "Data folder" => "مجلد المعلومات", "Configure the database" => "أسس قاعدة البيانات", "will be used" => "سيتم استخدمه", @@ -122,7 +124,7 @@ "Database tablespace" => "مساحة جدول قاعدة البيانات", "Database host" => "خادم قاعدة البيانات", "Finish setup" => "انهاء التعديلات", -"web services under your control" => "خدمات الشبكة تحت سيطرتك", +"web services under your control" => "خدمات الوب تحت تصرفك", "Log out" => "الخروج", "Automatic logon rejected!" => "تم رفض تسجيل الدخول التلقائي!", "If you did not change your password recently, your account may be compromised!" => "قد يكون حسابك في خطر إن لم تقم بإعادة تعيين كلمة السر حديثاً", diff --git a/core/l10n/bg_BG.php b/core/l10n/bg_BG.php index 74e28bf2900..dadb570d93e 100644 --- a/core/l10n/bg_BG.php +++ b/core/l10n/bg_BG.php @@ -1,24 +1,4 @@ "Няма избрани категории за изтриване", -"Sunday" => "Неделя", -"Monday" => "Понеделник", -"Tuesday" => "Вторник", -"Wednesday" => "Сряда", -"Thursday" => "Четвъртък", -"Friday" => "Петък", -"Saturday" => "Събота", -"January" => "Януари", -"February" => "Февруари", -"March" => "Март", -"April" => "Април", -"May" => "Май", -"June" => "Юни", -"July" => "Юли", -"August" => "Август", -"September" => "Септември", -"October" => "Октомври", -"November" => "Ноември", -"December" => "Декември", "Settings" => "Настройки", "seconds ago" => "преди секунди", "1 minute ago" => "преди 1 минута", @@ -28,45 +8,16 @@ "last month" => "последният месец", "last year" => "последната година", "years ago" => "последните години", -"Ok" => "Добре", "Cancel" => "Отказ", -"Yes" => "Да", -"No" => "Не", "Error" => "Грешка", "Share" => "Споделяне", -"Share with" => "Споделено с", "Password" => "Парола", -"create" => "създаване", -"You will receive a link to reset your password via Email." => "Ще получите връзка за нулиране на паролата Ви.", -"Username" => "Потребител", -"Request reset" => "Нулиране на заявка", -"Your password was reset" => "Вашата парола е нулирана", "New password" => "Нова парола", -"Reset password" => "Нулиране на парола", "Personal" => "Лични", "Users" => "Потребители", "Apps" => "Приложения", "Admin" => "Админ", "Help" => "Помощ", -"Access forbidden" => "Достъпът е забранен", -"Cloud not found" => "облакът не намерен", -"Edit categories" => "Редактиране на категориите", "Add" => "Добавяне", -"Create an admin account" => "Създаване на админ профил", -"Advanced" => "Разширено", -"Data folder" => "Директория за данни", -"Configure the database" => "Конфигуриране на базата", -"will be used" => "ще се ползва", -"Database user" => "Потребител за базата", -"Database password" => "Парола за базата", -"Database name" => "Име на базата", -"Database host" => "Хост за базата", -"Finish setup" => "Завършване на настройките", -"web services under your control" => "уеб услуги под Ваш контрол", -"Log out" => "Изход", -"Lost your password?" => "Забравена парола?", -"remember" => "запомни", -"Log in" => "Вход", -"prev" => "пред.", -"next" => "следващо" +"web services under your control" => "уеб услуги под Ваш контрол" ); diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php index 63a80edad38..1b18b6ae3e4 100644 --- a/core/l10n/bn_BD.php +++ b/core/l10n/bn_BD.php @@ -8,13 +8,13 @@ "Object type not provided." => "অবজেক্টের ধরণটি প্রদান করা হয় নি।", "%s ID not provided." => "%s ID প্রদান করা হয় নি।", "Error adding %s to favorites." => "প্রিয়তে %s যোগ করতে সমস্যা দেখা দিয়েছে।", -"No categories selected for deletion." => "মুছে ফেলার জন্য কনো ক্যাটেগরি নির্বাচন করা হয় নি।", +"No categories selected for deletion." => "মুছে ফেলার জন্য কোন ক্যাটেগরি নির্বাচন করা হয় নি ।", "Error removing %s from favorites." => "প্রিয় থেকে %s সরিয়ে ফেলতে সমস্যা দেখা দিয়েছে।", "Sunday" => "রবিবার", "Monday" => "সোমবার", "Tuesday" => "মঙ্গলবার", "Wednesday" => "বুধবার", -"Thursday" => "বৃহস্পতিবার", +"Thursday" => "বৃহষ্পতিবার", "Friday" => "শুক্রবার", "Saturday" => "শনিবার", "January" => "জানুয়ারি", @@ -31,14 +31,14 @@ "December" => "ডিসেম্বর", "Settings" => "নিয়ামকসমূহ", "seconds ago" => "সেকেন্ড পূর্বে", -"1 minute ago" => "১ মিনিট পূর্বে", +"1 minute ago" => "1 মিনিট পূর্বে", "{minutes} minutes ago" => "{minutes} মিনিট পূর্বে", "1 hour ago" => "1 ঘন্টা পূর্বে", "{hours} hours ago" => "{hours} ঘন্টা পূর্বে", "today" => "আজ", "yesterday" => "গতকাল", "{days} days ago" => "{days} দিন পূর্বে", -"last month" => "গত মাস", +"last month" => "গতমাস", "{months} months ago" => "{months} মাস পূর্বে", "months ago" => "মাস পূর্বে", "last year" => "গত বছর", @@ -71,7 +71,7 @@ "No people found" => "কোন ব্যক্তি খুঁজে পাওয়া গেল না", "Resharing is not allowed" => "পূনঃরায় ভাগাভাগি অনুমোদিত নয়", "Shared in {item} with {user}" => "{user} এর সাথে {item} ভাগাভাগি করা হয়েছে", -"Unshare" => "ভাগাভাগি বাতিল ", +"Unshare" => "ভাগাভাগি বাতিল কর", "can edit" => "সম্পাদনা করতে পারবেন", "access control" => "অধিগম্যতা নিয়ন্ত্রণ", "create" => "তৈরী করুন", @@ -86,6 +86,8 @@ "ownCloud password reset" => "ownCloud কূটশব্দ পূনঃনির্ধারণ", "Use the following link to reset your password: {link}" => "আপনার কূটশব্দটি পূনঃনির্ধারণ করার জন্য নিম্নোক্ত লিংকটি ব্যবহার করুনঃ {link}", "You will receive a link to reset your password via Email." => "কূটশব্দ পূনঃনির্ধারণের জন্য একটি টূনঃনির্ধারণ লিংকটি আপনাকে ই-মেইলে পাঠানো হয়েছে ।", +"Reset email send." => "পূনঃনির্ধারণ ই-মেইল পাঠানো হয়েছে।", +"Request failed!" => "অনুরোধ ব্যর্থ !", "Username" => "ব্যবহারকারী", "Request reset" => "অনুরোধ পূনঃনির্ধারণ", "Your password was reset" => "আপনার কূটশব্দটি পূনঃনির্ধারণ করা হয়েছে", @@ -94,7 +96,7 @@ "Reset password" => "কূটশব্দ পূনঃনির্ধারণ কর", "Personal" => "ব্যক্তিগত", "Users" => "ব্যবহারকারী", -"Apps" => "অ্যাপ", +"Apps" => "অ্যাপস", "Admin" => "প্রশাসন", "Help" => "সহায়িকা", "Access forbidden" => "অধিগমনের অনুমতি নেই", @@ -113,7 +115,7 @@ "Database tablespace" => "ডাটাবেজ টেবলস্পেস", "Database host" => "ডাটাবেজ হোস্ট", "Finish setup" => "সেটআপ সুসম্পন্ন কর", -"web services under your control" => "ওয়েব সার্ভিস আপনার হাতের মুঠোয়", +"web services under your control" => "ওয়েব সার্ভিসের নিয়ন্ত্রণ আপনার হাতের মুঠোয়", "Log out" => "প্রস্থান", "Lost your password?" => "কূটশব্দ হারিয়েছেন?", "remember" => "মনে রাখ", diff --git a/core/l10n/ca.php b/core/l10n/ca.php index 818c5b20b93..91b51d1b31d 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -30,7 +30,7 @@ "October" => "Octubre", "November" => "Novembre", "December" => "Desembre", -"Settings" => "Configuració", +"Settings" => "Arranjament", "seconds ago" => "segons enrere", "1 minute ago" => "fa 1 minut", "{minutes} minutes ago" => "fa {minutes} minuts", @@ -89,6 +89,8 @@ "ownCloud password reset" => "estableix de nou la contrasenya Owncloud", "Use the following link to reset your password: {link}" => "Useu l'enllaç següent per restablir la contrasenya: {link}", "You will receive a link to reset your password via Email." => "Rebreu un enllaç al correu electrònic per reiniciar la contrasenya.", +"Reset email send." => "S'ha enviat el correu reinicialització", +"Request failed!" => "El requeriment ha fallat!", "Username" => "Nom d'usuari", "Request reset" => "Sol·licita reinicialització", "Your password was reset" => "La vostra contrasenya s'ha reinicialitzat", @@ -98,7 +100,7 @@ "Personal" => "Personal", "Users" => "Usuaris", "Apps" => "Aplicacions", -"Admin" => "Administració", +"Admin" => "Administrador", "Help" => "Ajuda", "Access forbidden" => "Accés prohibit", "Cloud not found" => "No s'ha trobat el núvol", diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php index 47206be6188..15c89106e5d 100644 --- a/core/l10n/cs_CZ.php +++ b/core/l10n/cs_CZ.php @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "Aktualizace byla úspěšná. Přesměrovávám na ownCloud.", "ownCloud password reset" => "Obnovení hesla pro ownCloud", "Use the following link to reset your password: {link}" => "Heslo obnovíte použitím následujícího odkazu: {link}", -"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.
If it is not there ask your local administrator ." => "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu.
Pokud jej v krátké době neobdržíte, zkontrolujte váš koš a složku spam.
Pokud jej nenaleznete, kontaktujte svého správce.", -"Request failed!
Did you make sure your email/username was right?" => "Požadavek selhal.
Ujistili jste se, že vaše uživatelské jméno a e-mail jsou správně?", "You will receive a link to reset your password via Email." => "Bude Vám e-mailem zaslán odkaz pro obnovu hesla.", +"Reset email send." => "Obnovovací e-mail odeslán.", +"Request failed!" => "Požadavek selhal.", "Username" => "Uživatelské jméno", "Request reset" => "Vyžádat obnovu", "Your password was reset" => "Vaše heslo bylo obnoveno", @@ -124,7 +124,7 @@ "Database tablespace" => "Tabulkový prostor databáze", "Database host" => "Hostitel databáze", "Finish setup" => "Dokončit nastavení", -"web services under your control" => "služby webu pod Vaší kontrolou", +"web services under your control" => "webové služby pod Vaší kontrolou", "Log out" => "Odhlásit se", "Automatic logon rejected!" => "Automatické přihlášení odmítnuto.", "If you did not change your password recently, your account may be compromised!" => "V nedávné době jste nezměnili své heslo, Váš účet může být kompromitován.", diff --git a/core/l10n/cy_GB.php b/core/l10n/cy_GB.php index d614797eb67..4d28ae29a98 100644 --- a/core/l10n/cy_GB.php +++ b/core/l10n/cy_GB.php @@ -89,6 +89,8 @@ "ownCloud password reset" => "ailosod cyfrinair ownCloud", "Use the following link to reset your password: {link}" => "Defnyddiwch y ddolen hon i ailosod eich cyfrinair: {link}", "You will receive a link to reset your password via Email." => "Byddwch yn derbyn dolen drwy e-bost i ailosod eich cyfrinair.", +"Reset email send." => "Ailosod anfon e-bost.", +"Request failed!" => "Methodd y cais!", "Username" => "Enw defnyddiwr", "Request reset" => "Gwneud cais i ailosod", "Your password was reset" => "Ailosodwyd eich cyfrinair", diff --git a/core/l10n/da.php b/core/l10n/da.php index 43b2f4f840a..286f524b678 100644 --- a/core/l10n/da.php +++ b/core/l10n/da.php @@ -45,7 +45,7 @@ "last year" => "sidste år", "years ago" => "år siden", "Ok" => "OK", -"Cancel" => "Annuller", +"Cancel" => "Fortryd", "Choose" => "Vælg", "Yes" => "Ja", "No" => "Nej", @@ -89,13 +89,15 @@ "ownCloud password reset" => "Nulstil ownCloud kodeord", "Use the following link to reset your password: {link}" => "Anvend følgende link til at nulstille din adgangskode: {link}", "You will receive a link to reset your password via Email." => "Du vil modtage et link til at nulstille dit kodeord via email.", +"Reset email send." => "Reset-mail afsendt.", +"Request failed!" => "Anmodningen mislykkedes!", "Username" => "Brugernavn", "Request reset" => "Anmod om nulstilling", "Your password was reset" => "Dit kodeord blev nulstillet", "To login page" => "Til login-side", "New password" => "Nyt kodeord", "Reset password" => "Nulstil kodeord", -"Personal" => "Personligt", +"Personal" => "Personlig", "Users" => "Brugere", "Apps" => "Apps", "Admin" => "Admin", diff --git a/core/l10n/de.php b/core/l10n/de.php index c173e56c1f7..3af653b9ac9 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutze den nachfolgenden Link, um Dein Passwort zurückzusetzen: {link}", -"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.
If it is not there ask your local administrator ." => "Der Link zum Rücksetzen Deines Passwort ist an Deine E-Mail-Adresse geschickt worden.
Wenn Du ihn nicht innerhalb einer vernünftigen Zeit empfängst prüfe Deine Spam-Verzeichnisse.
Wenn er nicht dort ist frage Deinen lokalen Administrator.", -"Request failed!
Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen!
Hast Du darauf geachtet, dass Deine E-Mail/Dein Benutzername korrekt war?", "You will receive a link to reset your password via Email." => "Du erhältst einen Link per E-Mail, um Dein Passwort zurückzusetzen.", +"Reset email send." => "Die E-Mail zum Zurücksetzen wurde versendet.", +"Request failed!" => "Die Anfrage schlug fehl!", "Username" => "Benutzername", "Request reset" => "Beantrage Zurücksetzung", "Your password was reset" => "Dein Passwort wurde zurückgesetzt.", @@ -99,8 +99,8 @@ "Reset password" => "Passwort zurücksetzen", "Personal" => "Persönlich", "Users" => "Benutzer", -"Apps" => "Apps", -"Admin" => "Administration", +"Apps" => "Anwendungen", +"Admin" => "Admin", "Help" => "Hilfe", "Access forbidden" => "Zugriff verboten", "Cloud not found" => "Cloud nicht gefunden", @@ -124,7 +124,7 @@ "Database tablespace" => "Datenbank-Tablespace", "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", -"web services under your control" => "Web-Services unter Deiner Kontrolle", +"web services under your control" => "Web-Services unter Ihrer Kontrolle", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatischer Login zurückgewiesen!", "If you did not change your password recently, your account may be compromised!" => "Wenn Du Dein Passwort nicht vor kurzem geändert hast, könnte Dein\nAccount kompromittiert sein!", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index b69868e5e5a..4065f2484f5 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -43,7 +43,7 @@ "{months} months ago" => "Vor {months} Monaten", "months ago" => "Vor Monaten", "last year" => "Letztes Jahr", -"years ago" => "Vor Jahren", +"years ago" => "Vor Jahren", "Ok" => "OK", "Cancel" => "Abbrechen", "Choose" => "Auswählen", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutzen Sie den nachfolgenden Link, um Ihr Passwort zurückzusetzen: {link}", -"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.
If it is not there ask your local administrator ." => "Der Link zum Rücksetzen Ihres Passworts ist an Ihre E-Mail-Adresse gesendet worde.
Wenn Sie ihn nicht innerhalb einer sinnvollen Zeitspanne erhalten prüfen Sie bitte Ihre Spam-Verzeichnisse.
Wenn er nicht dort ist fragen Sie Ihren lokalen Administrator.", -"Request failed!
Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen!
Haben Sie darauf geachtet, dass E-Mail-Adresse/Nutzername korrekt waren?", "You will receive a link to reset your password via Email." => "Sie erhalten einen Link per E-Mail, um Ihr Passwort zurückzusetzen.", +"Reset email send." => "Eine E-Mail zum Zurücksetzen des Passworts wurde gesendet.", +"Request failed!" => "Die Anfrage schlug fehl!", "Username" => "Benutzername", "Request reset" => "Zurücksetzung beantragen", "Your password was reset" => "Ihr Passwort wurde zurückgesetzt.", @@ -99,12 +99,12 @@ "Reset password" => "Passwort zurücksetzen", "Personal" => "Persönlich", "Users" => "Benutzer", -"Apps" => "Apps", -"Admin" => "Administrator", +"Apps" => "Anwendungen", +"Admin" => "Admin", "Help" => "Hilfe", "Access forbidden" => "Zugriff verboten", "Cloud not found" => "Cloud wurde nicht gefunden", -"Edit categories" => "Kategorien ändern", +"Edit categories" => "Kategorien bearbeiten", "Add" => "Hinzufügen", "Security Warning" => "Sicherheitshinweis", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Ihre PHP Version ist durch die NULL Byte Attacke (CVE-2006-7243) angreifbar", diff --git a/core/l10n/el.php b/core/l10n/el.php index dbe0d0ee3d6..4fc5b4aa86e 100644 --- a/core/l10n/el.php +++ b/core/l10n/el.php @@ -88,10 +88,10 @@ "The update was successful. Redirecting you to ownCloud now." => "Η ενημέρωση ήταν επιτυχής. Μετάβαση στο ownCloud.", "ownCloud password reset" => "Επαναφορά συνθηματικού ownCloud", "Use the following link to reset your password: {link}" => "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επανεκδόσετε τον κωδικό: {link}", -"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.
If it is not there ask your local administrator ." => "Ο σύνδεσμος για να επανακτήσετε τον κωδικό σας έχει σταλεί στο email
αν δεν το λάβετε μέσα σε ορισμένο διάστημα, ελέγξετε τους φακελλους σας spam/junk
αν δεν είναι εκεί ρωτήστε τον τοπικό σας διαχειριστή ", -"Request failed!
Did you make sure your email/username was right?" => "Η αίτηση απέτυχε! Βεβαιωθηκατε ότι το email σας / username ειναι σωστο? ", "You will receive a link to reset your password via Email." => "Θα λάβετε ένα σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασής σας μέσω ηλεκτρονικού ταχυδρομείου.", -"Username" => "Όνομα χρήστη", +"Reset email send." => "Η επαναφορά του email στάλθηκε.", +"Request failed!" => "Η αίτηση απέτυχε!", +"Username" => "Όνομα Χρήστη", "Request reset" => "Επαναφορά αίτησης", "Your password was reset" => "Ο κωδικός πρόσβασής σας επαναφέρθηκε", "To login page" => "Σελίδα εισόδου", @@ -124,7 +124,7 @@ "Database tablespace" => "Κενά Πινάκων Βάσης Δεδομένων", "Database host" => "Διακομιστής βάσης δεδομένων", "Finish setup" => "Ολοκλήρωση εγκατάστασης", -"web services under your control" => "υπηρεσίες δικτύου υπό τον έλεγχό σας", +"web services under your control" => "Υπηρεσίες web υπό τον έλεγχό σας", "Log out" => "Αποσύνδεση", "Automatic logon rejected!" => "Απορρίφθηκε η αυτόματη σύνδεση!", "If you did not change your password recently, your account may be compromised!" => "Εάν δεν αλλάξατε το συνθηματικό σας προσφάτως, ο λογαριασμός μπορεί να έχει διαρρεύσει!", diff --git a/core/l10n/eo.php b/core/l10n/eo.php index 1889de1ea23..5c8fe340317 100644 --- a/core/l10n/eo.php +++ b/core/l10n/eo.php @@ -85,6 +85,7 @@ "ownCloud password reset" => "La pasvorto de ownCloud restariĝis.", "Use the following link to reset your password: {link}" => "Uzu la jenan ligilon por restarigi vian pasvorton: {link}", "You will receive a link to reset your password via Email." => "Vi ricevos ligilon retpoŝte por rekomencigi vian pasvorton.", +"Request failed!" => "Peto malsukcesis!", "Username" => "Uzantonomo", "Request reset" => "Peti rekomencigon", "Your password was reset" => "Via pasvorto rekomencis", @@ -113,7 +114,7 @@ "Database tablespace" => "Datumbaza tabelospaco", "Database host" => "Datumbaza gastigo", "Finish setup" => "Fini la instalon", -"web services under your control" => "TTT-servoj regataj de vi", +"web services under your control" => "TTT-servoj sub via kontrolo", "Log out" => "Elsaluti", "If you did not change your password recently, your account may be compromised!" => "Se vi ne ŝanĝis vian pasvorton lastatempe, via konto eble kompromitas!", "Please change your password to secure your account again." => "Bonvolu ŝanĝi vian pasvorton por sekurigi vian konton ree.", diff --git a/core/l10n/es.php b/core/l10n/es.php index 8a3ab44e85d..543563bed11 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -50,7 +50,7 @@ "Yes" => "Sí", "No" => "No", "The object type is not specified." => "El tipo de objeto no se ha especificado.", -"Error" => "Error", +"Error" => "Fallo", "The app name is not specified." => "El nombre de la app no se ha especificado.", "The required file {file} is not installed!" => "El fichero {file} requerido, no está instalado.", "Shared" => "Compartido", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado correctamente. Redireccionando a ownCloud ahora.", "ownCloud password reset" => "Reiniciar contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Utiliza el siguiente enlace para restablecer tu contraseña: {link}", -"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.
If it is not there ask your local administrator ." => "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su spam / carpetas no deseados.
Si no está allí pregunte a su administrador local.", -"Request failed!
Did you make sure your email/username was right?" => "Petición ha fallado!
¿Usted asegúrese que su dirección de correo electrónico / nombre de usuario estaba justo?", "You will receive a link to reset your password via Email." => "Recibirás un enlace por correo electrónico para restablecer tu contraseña", +"Reset email send." => "Email de reconfiguración enviado.", +"Request failed!" => "Pedido fallado!", "Username" => "Nombre de usuario", "Request reset" => "Solicitar restablecimiento", "Your password was reset" => "Tu contraseña se ha restablecido", @@ -100,12 +100,12 @@ "Personal" => "Personal", "Users" => "Usuarios", "Apps" => "Aplicaciones", -"Admin" => "Administración", +"Admin" => "Administrador", "Help" => "Ayuda", "Access forbidden" => "Acceso denegado", "Cloud not found" => "No se ha encontrado la nube", "Edit categories" => "Editar categorías", -"Add" => "Agregar", +"Add" => "Añadir", "Security Warning" => "Advertencia de seguridad", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "La versión de PHP es vulnerable al ataque de Byte NULL (CVE-2006-7243)", "Please update your PHP installation to use ownCloud securely." => "Por favor, actualice su instalación de PHP para utilizar ownCloud en forma segura.", @@ -124,7 +124,7 @@ "Database tablespace" => "Espacio de tablas de la base de datos", "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", -"web services under your control" => "Servicios web bajo su control", +"web services under your control" => "servicios web bajo tu control", "Log out" => "Salir", "Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!", "If you did not change your password recently, your account may be compromised!" => "Si usted no ha cambiado su contraseña recientemente, ¡puede que su cuenta esté comprometida!", diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index 8f778437087..748de3ddd13 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -9,7 +9,7 @@ "Object type not provided." => "Tipo de objeto no provisto. ", "%s ID not provided." => "%s ID no provista. ", "Error adding %s to favorites." => "Error al agregar %s a favoritos. ", -"No categories selected for deletion." => "No se seleccionaron categorías para borrar.", +"No categories selected for deletion." => "No hay categorías seleccionadas para borrar.", "Error removing %s from favorites." => "Error al remover %s de favoritos. ", "Sunday" => "Domingo", "Monday" => "Lunes", @@ -18,23 +18,23 @@ "Thursday" => "Jueves", "Friday" => "Viernes", "Saturday" => "Sábado", -"January" => "enero", -"February" => "febrero", -"March" => "marzo", -"April" => "abril", -"May" => "mayo", -"June" => "junio", -"July" => "julio", -"August" => "agosto", -"September" => "septiembre", -"October" => "octubre", -"November" => "noviembre", -"December" => "diciembre", -"Settings" => "Configuración", +"January" => "Enero", +"February" => "Febrero", +"March" => "Marzo", +"April" => "Abril", +"May" => "Mayo", +"June" => "Junio", +"July" => "Julio", +"August" => "Agosto", +"September" => "Septiembre", +"October" => "Octubre", +"November" => "Noviembre", +"December" => "Diciembre", +"Settings" => "Ajustes", "seconds ago" => "segundos atrás", "1 minute ago" => "hace 1 minuto", "{minutes} minutes ago" => "hace {minutes} minutos", -"1 hour ago" => "1 hora atrás", +"1 hour ago" => "Hace 1 hora", "{hours} hours ago" => "{hours} horas atrás", "today" => "hoy", "yesterday" => "ayer", @@ -72,7 +72,7 @@ "No people found" => "No se encontraron usuarios", "Resharing is not allowed" => "No se permite volver a compartir", "Shared in {item} with {user}" => "Compartido en {item} con {user}", -"Unshare" => "Dejar de compartir", +"Unshare" => "Remover compartir", "can edit" => "puede editar", "access control" => "control de acceso", "create" => "crear", @@ -89,16 +89,18 @@ "ownCloud password reset" => "Restablecer contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Usá este enlace para restablecer tu contraseña: {link}", "You will receive a link to reset your password via Email." => "Vas a recibir un enlace por e-mail para restablecer tu contraseña", +"Reset email send." => "Reiniciar envío de email.", +"Request failed!" => "Error en el pedido!", "Username" => "Nombre de usuario", "Request reset" => "Solicitar restablecimiento", "Your password was reset" => "Tu contraseña fue restablecida", "To login page" => "A la página de inicio de sesión", -"New password" => "Nueva contraseña:", +"New password" => "Nueva contraseña", "Reset password" => "Restablecer contraseña", "Personal" => "Personal", "Users" => "Usuarios", "Apps" => "Aplicaciones", -"Admin" => "Administración", +"Admin" => "Administrador", "Help" => "Ayuda", "Access forbidden" => "Acceso denegado", "Cloud not found" => "No se encontró ownCloud", @@ -122,7 +124,7 @@ "Database tablespace" => "Espacio de tablas de la base de datos", "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", -"web services under your control" => "servicios web controlados por vos", +"web services under your control" => "servicios web sobre los que tenés control", "Log out" => "Cerrar la sesión", "Automatic logon rejected!" => "¡El inicio de sesión automático fue rechazado!", "If you did not change your password recently, your account may be compromised!" => "¡Si no cambiaste tu contraseña recientemente, puede ser que tu cuenta esté comprometida!", diff --git a/core/l10n/et_EE.php b/core/l10n/et_EE.php index aac3898fbb3..b6b6d4c9d94 100644 --- a/core/l10n/et_EE.php +++ b/core/l10n/et_EE.php @@ -88,22 +88,23 @@ "The update was successful. Redirecting you to ownCloud now." => "Uuendus oli edukas. Kohe suunatakse Sind ownCloudi.", "ownCloud password reset" => "ownCloud parooli taastamine", "Use the following link to reset your password: {link}" => "Kasuta järgnevat linki oma parooli taastamiseks: {link}", -"Request failed!
Did you make sure your email/username was right?" => "Päring ebaõnnestus!
Oled sa veendunud, et e-post/kasutajanimi on õiged?", "You will receive a link to reset your password via Email." => "Sinu parooli taastamise link saadetakse sulle e-postile.", +"Reset email send." => "Taastamise e-kiri on saadetud.", +"Request failed!" => "Päring ebaõnnestus!", "Username" => "Kasutajanimi", "Request reset" => "Päringu taastamine", "Your password was reset" => "Sinu parool on taastatud", "To login page" => "Sisselogimise lehele", "New password" => "Uus parool", "Reset password" => "Nulli parool", -"Personal" => "Isiklik", +"Personal" => "isiklik", "Users" => "Kasutajad", -"Apps" => "Rakendused", +"Apps" => "Programmid", "Admin" => "Admin", "Help" => "Abiinfo", "Access forbidden" => "Ligipääs on keelatud", "Cloud not found" => "Pilve ei leitud", -"Edit categories" => "Muuda kategooriat", +"Edit categories" => "Muuda kategooriaid", "Add" => "Lisa", "Security Warning" => "Turvahoiatus", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Sinu PHP versioon on haavatav NULL Baidi (CVE-2006-7243) rünnakuga.", @@ -113,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Su andmete kataloog ja failid on tõenäoliselt internetist vabalt saadaval kuna .htaccess fail ei toimi.", "For information how to properly configure your server, please see the documentation." => "Serveri korrektseks seadistuseks palun tutvu dokumentatsiooniga.", "Create an admin account" => "Loo admini konto", -"Advanced" => "Täpsem", +"Advanced" => "Lisavalikud", "Data folder" => "Andmete kaust", "Configure the database" => "Seadista andmebaasi", "will be used" => "kasutatakse", @@ -123,7 +124,7 @@ "Database tablespace" => "Andmebaasi tabeliruum", "Database host" => "Andmebaasi host", "Finish setup" => "Lõpeta seadistamine", -"web services under your control" => "veebitenused sinu kontrolli all", +"web services under your control" => "veebiteenused sinu kontrolli all", "Log out" => "Logi välja", "Automatic logon rejected!" => "Automaatne sisselogimine lükati tagasi!", "If you did not change your password recently, your account may be compromised!" => "Kui sa ei muutnud oma parooli hiljut, siis võib su kasutajakonto olla ohustatud!", diff --git a/core/l10n/eu.php b/core/l10n/eu.php index 9c9d28133cf..76e38a92d1f 100644 --- a/core/l10n/eu.php +++ b/core/l10n/eu.php @@ -89,6 +89,8 @@ "ownCloud password reset" => "ownCloud-en pasahitza berrezarri", "Use the following link to reset your password: {link}" => "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}", "You will receive a link to reset your password via Email." => "Zure pashitza berrezartzeko lotura bat jasoko duzu Epostaren bidez.", +"Reset email send." => "Berrezartzeko eposta bidali da.", +"Request failed!" => "Eskariak huts egin du!", "Username" => "Erabiltzaile izena", "Request reset" => "Eskaera berrezarri da", "Your password was reset" => "Zure pasahitza berrezarri da", @@ -98,7 +100,7 @@ "Personal" => "Pertsonala", "Users" => "Erabiltzaileak", "Apps" => "Aplikazioak", -"Admin" => "Admin", +"Admin" => "Kudeatzailea", "Help" => "Laguntza", "Access forbidden" => "Sarrera debekatuta", "Cloud not found" => "Ez da hodeia aurkitu", diff --git a/core/l10n/fa.php b/core/l10n/fa.php index ff73e804483..e6f5aaac0cb 100644 --- a/core/l10n/fa.php +++ b/core/l10n/fa.php @@ -54,7 +54,7 @@ "The app name is not specified." => "نام برنامه تعیین نشده است.", "The required file {file} is not installed!" => "پرونده { پرونده} درخواست شده نصب نشده است !", "Shared" => "اشتراک گذاشته شده", -"Share" => "اشتراک‌گذاری", +"Share" => "اشتراک‌گزاری", "Error while sharing" => "خطا درحال به اشتراک گذاشتن", "Error while unsharing" => "خطا درحال لغو اشتراک", "Error while changing permissions" => "خطا در حال تغییر مجوز", @@ -89,20 +89,22 @@ "ownCloud password reset" => "پسورد ابرهای شما تغییرکرد", "Use the following link to reset your password: {link}" => "از لینک زیر جهت دوباره سازی پسورد استفاده کنید :\n{link}", "You will receive a link to reset your password via Email." => "شما یک نامه الکترونیکی حاوی یک لینک جهت بازسازی گذرواژه دریافت خواهید کرد.", -"Username" => "نام کاربری", +"Reset email send." => "تنظیم مجدد ایمیل را بفرستید.", +"Request failed!" => "درخواست رد شده است !", +"Username" => "شناسه", "Request reset" => "درخواست دوباره سازی", "Your password was reset" => "گذرواژه شما تغییرکرد", "To login page" => "به صفحه ورود", "New password" => "گذرواژه جدید", "Reset password" => "دوباره سازی گذرواژه", "Personal" => "شخصی", -"Users" => "کاربران", -"Apps" => " برنامه ها", +"Users" => "کاربر ها", +"Apps" => "برنامه", "Admin" => "مدیر", -"Help" => "راه‌نما", +"Help" => "کمک", "Access forbidden" => "اجازه دسترسی به مناطق ممنوعه را ندارید", "Cloud not found" => "پیدا نشد", -"Edit categories" => "ویرایش گروه", +"Edit categories" => "ویرایش گروه ها", "Add" => "افزودن", "Security Warning" => "اخطار امنیتی", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "نسخه ی PHP شما در برابر حملات NULL Byte آسیب پذیر است.(CVE-2006-7243)", @@ -112,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "فایلها و فهرست های داده های شما قابل از اینترنت قابل دسترسی هستند، چونکه فایل htacces. کار نمی کند.", "For information how to properly configure your server, please see the documentation." => "برای مطلع شدن از چگونگی تنظیم سرورتان،لطفا این را ببینید.", "Create an admin account" => "لطفا یک شناسه برای مدیر بسازید", -"Advanced" => "پیشرفته", +"Advanced" => "حرفه ای", "Data folder" => "پوشه اطلاعاتی", "Configure the database" => "پایگاه داده برنامه ریزی شدند", "will be used" => "استفاده خواهد شد", @@ -122,7 +124,7 @@ "Database tablespace" => "جدول پایگاه داده", "Database host" => "هاست پایگاه داده", "Finish setup" => "اتمام نصب", -"web services under your control" => "سرویس های تحت وب در کنترل شما", +"web services under your control" => "سرویس وب تحت کنترل شما", "Log out" => "خروج", "Automatic logon rejected!" => "ورود به سیستم اتوماتیک ردشد!", "If you did not change your password recently, your account may be compromised!" => "اگر شما اخیرا رمزعبور را تغییر نداده اید، حساب شما در معرض خطر می باشد !", diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php index 3f50e814845..ec79d031227 100644 --- a/core/l10n/fi_FI.php +++ b/core/l10n/fi_FI.php @@ -9,25 +9,25 @@ "Error adding %s to favorites." => "Virhe lisätessä kohdetta %s suosikkeihin.", "No categories selected for deletion." => "Luokkia ei valittu poistettavaksi.", "Error removing %s from favorites." => "Virhe poistaessa kohdetta %s suosikeista.", -"Sunday" => "sunnuntai", -"Monday" => "maanantai", -"Tuesday" => "tiistai", -"Wednesday" => "keskiviikko", -"Thursday" => "torstai", -"Friday" => "perjantai", -"Saturday" => "lauantai", -"January" => "tammikuu", -"February" => "helmikuu", -"March" => "maaliskuu", -"April" => "huhtikuu", -"May" => "toukokuu", -"June" => "kesäkuu", -"July" => "heinäkuu", -"August" => "elokuu", -"September" => "syyskuu", -"October" => "lokakuu", -"November" => "marraskuu", -"December" => "joulukuu", +"Sunday" => "Sunnuntai", +"Monday" => "Maanantai", +"Tuesday" => "Tiistai", +"Wednesday" => "Keskiviikko", +"Thursday" => "Torstai", +"Friday" => "Perjantai", +"Saturday" => "Lauantai", +"January" => "Tammikuu", +"February" => "Helmikuu", +"March" => "Maaliskuu", +"April" => "Huhtikuu", +"May" => "Toukokuu", +"June" => "Kesäkuu", +"July" => "Heinäkuu", +"August" => "Elokuu", +"September" => "Syyskuu", +"October" => "Lokakuu", +"November" => "Marraskuu", +"December" => "Joulukuu", "Settings" => "Asetukset", "seconds ago" => "sekuntia sitten", "1 minute ago" => "1 minuutti sitten", @@ -85,16 +85,18 @@ "ownCloud password reset" => "ownCloud-salasanan nollaus", "Use the following link to reset your password: {link}" => "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "You will receive a link to reset your password via Email." => "Saat sähköpostitse linkin nollataksesi salasanan.", +"Reset email send." => "Salasanan nollausviesti lähetetty.", +"Request failed!" => "Pyyntö epäonnistui!", "Username" => "Käyttäjätunnus", "Request reset" => "Tilaus lähetetty", "Your password was reset" => "Salasanasi nollattiin", "To login page" => "Kirjautumissivulle", "New password" => "Uusi salasana", "Reset password" => "Palauta salasana", -"Personal" => "Henkilökohtainen", +"Personal" => "Henkilökohtaiset", "Users" => "Käyttäjät", "Apps" => "Sovellukset", -"Admin" => "Ylläpitäjä", +"Admin" => "Hallinta", "Help" => "Ohje", "Access forbidden" => "Pääsy estetty", "Cloud not found" => "Pilveä ei löydy", @@ -103,7 +105,6 @@ "Security Warning" => "Turvallisuusvaroitus", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP-asennuksesi on haavoittuvainen NULL Byte -hyökkäykselle (CVE-2006-7243)", "Please update your PHP installation to use ownCloud securely." => "Päivitä PHP-asennuksesi käyttääksesi ownCloudia turvallisesti.", -"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Turvallista satunnaislukugeneraattoria ei ole käytettävissä, ota käyttöön PHP:n OpenSSL-laajennus", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Datakansiosi ja tiedostosi ovat mitä luultavimmin muiden saavutettavissa internetistä, koska .htaccess-tiedosto ei toimi.", "For information how to properly configure your server, please see the documentation." => "Katso palvelimen asetuksien määrittämiseen liittyvät ohjeet dokumentaatiosta.", "Create an admin account" => "Luo ylläpitäjän tunnus", diff --git a/core/l10n/fr.php b/core/l10n/fr.php index c8f60a678f9..3b89d69b3b9 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -9,7 +9,7 @@ "Object type not provided." => "Type d'objet non spécifié.", "%s ID not provided." => "L'identifiant de %s n'est pas spécifié.", "Error adding %s to favorites." => "Erreur lors de l'ajout de %s aux favoris.", -"No categories selected for deletion." => "Pas de catégorie sélectionnée pour la suppression.", +"No categories selected for deletion." => "Aucune catégorie sélectionnée pour suppression", "Error removing %s from favorites." => "Erreur lors de la suppression de %s des favoris.", "Sunday" => "Dimanche", "Monday" => "Lundi", @@ -88,23 +88,23 @@ "The update was successful. Redirecting you to ownCloud now." => "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud.", "ownCloud password reset" => "Réinitialisation de votre mot de passe Owncloud", "Use the following link to reset your password: {link}" => "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}", -"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.
If it is not there ask your local administrator ." => "Le lien permettant de réinitialiser votre mot de passe vous a été transmis.
Si vous ne le recevez pas dans un délai raisonnable, vérifier votre boîte de pourriels.
Au besoin, contactez votre administrateur local.", -"Request failed!
Did you make sure your email/username was right?" => "Requête en échec!
Avez-vous vérifié vos courriel/nom d'utilisateur?", "You will receive a link to reset your password via Email." => "Vous allez recevoir un e-mail contenant un lien pour réinitialiser votre mot de passe.", +"Reset email send." => "Mail de réinitialisation envoyé.", +"Request failed!" => "La requête a échoué !", "Username" => "Nom d'utilisateur", "Request reset" => "Demander la réinitialisation", "Your password was reset" => "Votre mot de passe a été réinitialisé", "To login page" => "Retour à la page d'authentification", "New password" => "Nouveau mot de passe", "Reset password" => "Réinitialiser le mot de passe", -"Personal" => "Personnel", +"Personal" => "Personnels", "Users" => "Utilisateurs", "Apps" => "Applications", "Admin" => "Administration", "Help" => "Aide", "Access forbidden" => "Accès interdit", "Cloud not found" => "Introuvable", -"Edit categories" => "Editer les catégories", +"Edit categories" => "Modifier les catégories", "Add" => "Ajouter", "Security Warning" => "Avertissement de sécurité", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Votre version de PHP est vulnérable à l'attaque par caractère NULL (CVE-2006-7243)", diff --git a/core/l10n/gl.php b/core/l10n/gl.php index f6c36d6ac62..fd237a39c86 100644 --- a/core/l10n/gl.php +++ b/core/l10n/gl.php @@ -9,7 +9,7 @@ "Object type not provided." => "Non se forneceu o tipo de obxecto.", "%s ID not provided." => "Non se forneceu o ID %s.", "Error adding %s to favorites." => "Produciuse un erro ao engadir %s aos favoritos.", -"No categories selected for deletion." => "Non se seleccionaron categorías para eliminación.", +"No categories selected for deletion." => "Non hai categorías seleccionadas para eliminar.", "Error removing %s from favorites." => "Produciuse un erro ao eliminar %s dos favoritos.", "Sunday" => "Domingo", "Monday" => "Luns", @@ -30,11 +30,11 @@ "October" => "outubro", "November" => "novembro", "December" => "decembro", -"Settings" => "Axustes", +"Settings" => "Configuracións", "seconds ago" => "segundos atrás", "1 minute ago" => "hai 1 minuto", "{minutes} minutes ago" => "hai {minutes} minutos", -"1 hour ago" => "Vai 1 hora", +"1 hour ago" => "hai 1 hora", "{hours} hours ago" => "hai {hours} horas", "today" => "hoxe", "yesterday" => "onte", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "A actualización realizouse correctamente. Redirixíndoo agora á ownCloud.", "ownCloud password reset" => "Restabelecer o contrasinal de ownCloud", "Use the following link to reset your password: {link}" => "Usa a seguinte ligazón para restabelecer o contrasinal: {link}", -"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.
If it is not there ask your local administrator ." => "Envióuselle ao seu correo unha ligazón para restabelecer o seu contrasinal.
Se non o recibe nun prazo razoábel de tempo, revise o seu cartafol de correo lixo ou de non desexados.
Se non o atopa aí pregúntelle ao seu administrador local..", -"Request failed!
Did you make sure your email/username was right?" => "Non foi posíbel facer a petición!
Asegúrese de que o seu enderezo de correo ou nome de usuario é correcto.", "You will receive a link to reset your password via Email." => "Recibirá unha ligazón por correo para restabelecer o contrasinal", +"Reset email send." => "Restabelecer o envío por correo.", +"Request failed!" => "Non foi posíbel facer a petición", "Username" => "Nome de usuario", "Request reset" => "Petición de restabelecemento", "Your password was reset" => "O contrasinal foi restabelecido", @@ -100,11 +100,11 @@ "Personal" => "Persoal", "Users" => "Usuarios", "Apps" => "Aplicativos", -"Admin" => "Administración", +"Admin" => "Admin", "Help" => "Axuda", "Access forbidden" => "Acceso denegado", "Cloud not found" => "Nube non atopada", -"Edit categories" => "Editar as categorías", +"Edit categories" => "Editar categorías", "Add" => "Engadir", "Security Warning" => "Aviso de seguranza", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "A súa versión de PHP é vulnerábel a un ataque de byte nulo (CVE-2006-7243)", diff --git a/core/l10n/he.php b/core/l10n/he.php index f161c356cae..56f273e95de 100644 --- a/core/l10n/he.php +++ b/core/l10n/he.php @@ -63,7 +63,7 @@ "Share with" => "שיתוף עם", "Share with link" => "שיתוף עם קישור", "Password protect" => "הגנה בססמה", -"Password" => "סיסמא", +"Password" => "ססמה", "Email link to person" => "שליחת קישור בדוא״ל למשתמש", "Send" => "שליחה", "Set expiration date" => "הגדרת תאריך תפוגה", @@ -89,6 +89,8 @@ "ownCloud password reset" => "איפוס הססמה של ownCloud", "Use the following link to reset your password: {link}" => "יש להשתמש בקישור הבא כדי לאפס את הססמה שלך: {link}", "You will receive a link to reset your password via Email." => "יישלח לתיבת הדוא״ל שלך קישור לאיפוס הססמה.", +"Reset email send." => "איפוס שליחת דוא״ל.", +"Request failed!" => "הבקשה נכשלה!", "Username" => "שם משתמש", "Request reset" => "בקשת איפוס", "Your password was reset" => "הססמה שלך אופסה", @@ -102,7 +104,7 @@ "Help" => "עזרה", "Access forbidden" => "הגישה נחסמה", "Cloud not found" => "ענן לא נמצא", -"Edit categories" => "ערוך קטגוריות", +"Edit categories" => "עריכת הקטגוריות", "Add" => "הוספה", "Security Warning" => "אזהרת אבטחה", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "אין מחולל מספרים אקראיים מאובטח, נא להפעיל את ההרחבה OpenSSL ב־PHP.", @@ -120,7 +122,7 @@ "Database tablespace" => "מרחב הכתובות של מסד הנתונים", "Database host" => "שרת בסיס נתונים", "Finish setup" => "סיום התקנה", -"web services under your control" => "שירותי רשת תחת השליטה שלך", +"web services under your control" => "שירותי רשת בשליטתך", "Log out" => "התנתקות", "Automatic logon rejected!" => "בקשת הכניסה האוטומטית נדחתה!", "If you did not change your password recently, your account may be compromised!" => "אם לא שינית את ססמתך לאחרונה, יתכן שחשבונך נפגע!", diff --git a/core/l10n/hr.php b/core/l10n/hr.php index e79e71d4b2d..d32d8d4b227 100644 --- a/core/l10n/hr.php +++ b/core/l10n/hr.php @@ -1,6 +1,6 @@ "Nemate kategorija koje možete dodati?", -"No categories selected for deletion." => "Niti jedna kategorija nije odabrana za brisanje.", +"No categories selected for deletion." => "Nema odabranih kategorija za brisanje.", "Sunday" => "nedelja", "Monday" => "ponedeljak", "Tuesday" => "utorak", @@ -33,7 +33,7 @@ "Choose" => "Izaberi", "Yes" => "Da", "No" => "Ne", -"Error" => "Greška", +"Error" => "Pogreška", "Share" => "Podijeli", "Error while sharing" => "Greška prilikom djeljenja", "Error while unsharing" => "Greška prilikom isključivanja djeljenja", @@ -76,7 +76,7 @@ "Edit categories" => "Uredi kategorije", "Add" => "Dodaj", "Create an admin account" => "Stvori administratorski račun", -"Advanced" => "Napredno", +"Advanced" => "Dodatno", "Data folder" => "Mapa baze podataka", "Configure the database" => "Konfiguriraj bazu podataka", "will be used" => "će se koristiti", diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php index 013d68dff53..eb0a3d1a91d 100644 --- a/core/l10n/hu_HU.php +++ b/core/l10n/hu_HU.php @@ -45,7 +45,7 @@ "last year" => "tavaly", "years ago" => "több éve", "Ok" => "Ok", -"Cancel" => "Mégsem", +"Cancel" => "Mégse", "Choose" => "Válasszon", "Yes" => "Igen", "No" => "Nem", @@ -89,16 +89,18 @@ "ownCloud password reset" => "ownCloud jelszó-visszaállítás", "Use the following link to reset your password: {link}" => "Használja ezt a linket a jelszó ismételt beállításához: {link}", "You will receive a link to reset your password via Email." => "Egy emailben fog értesítést kapni a jelszóbeállítás módjáról.", +"Reset email send." => "Elküldtük az emailt a jelszó ismételt beállításához.", +"Request failed!" => "Nem sikerült a kérést teljesíteni!", "Username" => "Felhasználónév", "Request reset" => "Visszaállítás igénylése", "Your password was reset" => "Jelszó megváltoztatva", "To login page" => "A bejelentkező ablakhoz", -"New password" => "Az új jelszó", +"New password" => "Új jelszó", "Reset password" => "Jelszó-visszaállítás", "Personal" => "Személyes", "Users" => "Felhasználók", "Apps" => "Alkalmazások", -"Admin" => "Adminsztráció", +"Admin" => "Adminisztráció", "Help" => "Súgó", "Access forbidden" => "A hozzáférés nem engedélyezett", "Cloud not found" => "A felhő nem található", diff --git a/core/l10n/hy.php b/core/l10n/hy.php deleted file mode 100644 index de0c725c73b..00000000000 --- a/core/l10n/hy.php +++ /dev/null @@ -1,21 +0,0 @@ - "Կիրակի", -"Monday" => "Երկուշաբթի", -"Tuesday" => "Երեքշաբթի", -"Wednesday" => "Չորեքշաբթի", -"Thursday" => "Հինգշաբթի", -"Friday" => "Ուրբաթ", -"Saturday" => "Շաբաթ", -"January" => "Հունվար", -"February" => "Փետրվար", -"March" => "Մարտ", -"April" => "Ապրիլ", -"May" => "Մայիս", -"June" => "Հունիս", -"July" => "Հուլիս", -"August" => "Օգոստոս", -"September" => "Սեպտեմբեր", -"October" => "Հոկտեմբեր", -"November" => "Նոյեմբեր", -"December" => "Դեկտեմբեր" -); diff --git a/core/l10n/id.php b/core/l10n/id.php index 984822af1e3..9eeaba34543 100644 --- a/core/l10n/id.php +++ b/core/l10n/id.php @@ -45,7 +45,7 @@ "last year" => "tahun kemarin", "years ago" => "beberapa tahun lalu", "Ok" => "Oke", -"Cancel" => "Batal", +"Cancel" => "Batalkan", "Choose" => "Pilih", "Yes" => "Ya", "No" => "Tidak", @@ -89,7 +89,9 @@ "ownCloud password reset" => "Setel ulang sandi ownCloud", "Use the following link to reset your password: {link}" => "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}", "You will receive a link to reset your password via Email." => "Anda akan menerima tautan penyetelan ulang sandi lewat Email.", -"Username" => "Nama pengguna", +"Reset email send." => "Email penyetelan ulang dikirim.", +"Request failed!" => "Permintaan gagal!", +"Username" => "Nama Pengguna", "Request reset" => "Ajukan penyetelan ulang", "Your password was reset" => "Sandi Anda telah disetel ulang", "To login page" => "Ke halaman masuk", @@ -103,7 +105,7 @@ "Access forbidden" => "Akses ditolak", "Cloud not found" => "Cloud tidak ditemukan", "Edit categories" => "Edit kategori", -"Add" => "Tambah", +"Add" => "Tambahkan", "Security Warning" => "Peringatan Keamanan", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Versi PHP Anda rentan terhadap serangan NULL Byte (CVE-2006-7243)", "Please update your PHP installation to use ownCloud securely." => "Silakan perbarui instalasi PHP untuk dapat menggunakan ownCloud secara aman.", @@ -112,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Kemungkinan direktori data dan berkas Anda dapat diakses dari internet karena berkas .htaccess tidak berfungsi.", "For information how to properly configure your server, please see the documentation." => "Untuk informasi lebih lanjut tentang pengaturan server yang benar, silakan lihat dokumentasi.", "Create an admin account" => "Buat sebuah akun admin", -"Advanced" => "Lanjutan", +"Advanced" => "Tingkat Lanjut", "Data folder" => "Folder data", "Configure the database" => "Konfigurasikan basis data", "will be used" => "akan digunakan", diff --git a/core/l10n/is.php b/core/l10n/is.php index d30d8bca11b..c6b7a6df325 100644 --- a/core/l10n/is.php +++ b/core/l10n/is.php @@ -30,8 +30,8 @@ "November" => "Nóvember", "December" => "Desember", "Settings" => "Stillingar", -"seconds ago" => "sek.", -"1 minute ago" => "Fyrir 1 mínútu", +"seconds ago" => "sek síðan", +"1 minute ago" => "1 min síðan", "{minutes} minutes ago" => "{minutes} min síðan", "1 hour ago" => "Fyrir 1 klst.", "{hours} hours ago" => "fyrir {hours} klst.", @@ -42,7 +42,7 @@ "{months} months ago" => "fyrir {months} mánuðum", "months ago" => "mánuðir síðan", "last year" => "síðasta ári", -"years ago" => "einhverjum árum", +"years ago" => "árum síðan", "Ok" => "Í lagi", "Cancel" => "Hætta við", "Choose" => "Veldu", @@ -85,21 +85,23 @@ "ownCloud password reset" => "endursetja ownCloud lykilorð", "Use the following link to reset your password: {link}" => "Notað eftirfarandi veftengil til að endursetja lykilorðið þitt: {link}", "You will receive a link to reset your password via Email." => "Þú munt fá veftengil í tölvupósti til að endursetja lykilorðið.", +"Reset email send." => "Beiðni um endursetningu send.", +"Request failed!" => "Beiðni mistókst!", "Username" => "Notendanafn", "Request reset" => "Endursetja lykilorð", "Your password was reset" => "Lykilorðið þitt hefur verið endursett.", "To login page" => "Fara á innskráningarsíðu", "New password" => "Nýtt lykilorð", "Reset password" => "Endursetja lykilorð", -"Personal" => "Um mig", +"Personal" => "Persónustillingar", "Users" => "Notendur", "Apps" => "Forrit", -"Admin" => "Stjórnun", +"Admin" => "Vefstjórn", "Help" => "Hjálp", "Access forbidden" => "Aðgangur bannaður", "Cloud not found" => "Ský finnst ekki", "Edit categories" => "Breyta flokkum", -"Add" => "Bæta við", +"Add" => "Bæta", "Security Warning" => "Öryggis aðvörun", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "Enginn traustur slembitölugjafi í boði, vinsamlegast virkjaðu PHP OpenSSL viðbótina.", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Án öruggs slembitölugjafa er mögulegt að sjá fyrir öryggis auðkenni til að endursetja lykilorð og komast inn á aðganginn þinn.", diff --git a/core/l10n/it.php b/core/l10n/it.php index d450f90b1d2..d24c3330bfd 100644 --- a/core/l10n/it.php +++ b/core/l10n/it.php @@ -77,8 +77,8 @@ "access control" => "controllo d'accesso", "create" => "creare", "update" => "aggiornare", -"delete" => "elimina", -"share" => "condividi", +"delete" => "eliminare", +"share" => "condividere", "Password protected" => "Protetta da password", "Error unsetting expiration date" => "Errore durante la rimozione della data di scadenza", "Error setting expiration date" => "Errore durante l'impostazione della data di scadenza", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "L'aggiornamento è stato effettuato correttamente. Stai per essere reindirizzato a ownCloud.", "ownCloud password reset" => "Ripristino password di ownCloud", "Use the following link to reset your password: {link}" => "Usa il collegamento seguente per ripristinare la password: {link}", -"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.
If it is not there ask your local administrator ." => "Il collegamento per ripristinare la password è stato inviato al tuo indirizzo di posta.
Se non lo ricevi in tempi ragionevoli, controlla le cartelle della posta indesiderata.
Se non dovesse essere nemmeno lì, contatta il tuo amministratore locale.", -"Request failed!
Did you make sure your email/username was right?" => "Richiesta non riuscita!
Sei sicuro che l'indirizzo di posta/nome utente fosse corretto?", "You will receive a link to reset your password via Email." => "Riceverai un collegamento per ripristinare la tua password via email", +"Reset email send." => "Email di ripristino inviata.", +"Request failed!" => "Richiesta non riuscita!", "Username" => "Nome utente", "Request reset" => "Richiesta di ripristino", "Your password was reset" => "La password è stata ripristinata", @@ -104,7 +104,7 @@ "Help" => "Aiuto", "Access forbidden" => "Accesso negato", "Cloud not found" => "Nuvola non trovata", -"Edit categories" => "Modifica categorie", +"Edit categories" => "Modifica le categorie", "Add" => "Aggiungi", "Security Warning" => "Avviso di sicurezza", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "La tua versione di PHP è vulnerabile all'attacco NULL Byte (CVE-2006-7243)", @@ -114,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "La cartella dei dati e i file sono probabilmente accessibili da Internet poiché il file .htaccess non funziona.", "For information how to properly configure your server, please see the documentation." => "Per informazioni su come configurare correttamente il server, vedi la documentazione.", "Create an admin account" => "Crea un account amministratore", -"Advanced" => "Avanzat", +"Advanced" => "Avanzate", "Data folder" => "Cartella dati", "Configure the database" => "Configura il database", "will be used" => "sarà utilizzato", diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index 056c67e8da5..200e494d8c1 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -89,16 +89,18 @@ "ownCloud password reset" => "ownCloudのパスワードをリセットします", "Use the following link to reset your password: {link}" => "パスワードをリセットするには次のリンクをクリックして下さい: {link}", "You will receive a link to reset your password via Email." => "メールでパスワードをリセットするリンクが届きます。", -"Username" => "ユーザー名", +"Reset email send." => "リセットメールを送信します。", +"Request failed!" => "リクエスト失敗!", +"Username" => "ユーザ名", "Request reset" => "リセットを要求します。", "Your password was reset" => "あなたのパスワードはリセットされました。", "To login page" => "ログインページへ戻る", "New password" => "新しいパスワードを入力", "Reset password" => "パスワードをリセット", -"Personal" => "個人", +"Personal" => "個人設定", "Users" => "ユーザ", "Apps" => "アプリ", -"Admin" => "管理", +"Admin" => "管理者", "Help" => "ヘルプ", "Access forbidden" => "アクセスが禁止されています", "Cloud not found" => "見つかりません", @@ -122,7 +124,7 @@ "Database tablespace" => "データベースの表領域", "Database host" => "データベースのホスト名", "Finish setup" => "セットアップを完了します", -"web services under your control" => "管理下のウェブサービス", +"web services under your control" => "管理下にあるウェブサービス", "Log out" => "ログアウト", "Automatic logon rejected!" => "自動ログインは拒否されました!", "If you did not change your password recently, your account may be compromised!" => "最近パスワードを変更していない場合、あなたのアカウントは危険にさらされているかもしれません。", diff --git a/core/l10n/ka_GE.php b/core/l10n/ka_GE.php index fd2e512654f..190a2f5eabe 100644 --- a/core/l10n/ka_GE.php +++ b/core/l10n/ka_GE.php @@ -60,7 +60,7 @@ "Error while changing permissions" => "შეცდომა დაშვების ცვლილების დროს", "Shared with you and the group {group} by {owner}" => "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner}–ის მიერ", "Shared with you by {owner}" => "გაზიარდა თქვენთვის {owner}–ის მიერ", -"Share with" => "გააზიარე შემდეგით:", +"Share with" => "გაუზიარე", "Share with link" => "გაუზიარე ლინკით", "Password protect" => "პაროლით დაცვა", "Password" => "პაროლი", @@ -72,7 +72,7 @@ "No people found" => "მომხმარებელი არ არის ნაპოვნი", "Resharing is not allowed" => "მეორეჯერ გაზიარება არ არის დაშვებული", "Shared in {item} with {user}" => "გაზიარდა {item}–ში {user}–ის მიერ", -"Unshare" => "გაუზიარებადი", +"Unshare" => "გაზიარების მოხსნა", "can edit" => "შეგიძლია შეცვლა", "access control" => "დაშვების კონტროლი", "create" => "შექმნა", @@ -89,16 +89,18 @@ "ownCloud password reset" => "ownCloud პაროლის შეცვლა", "Use the following link to reset your password: {link}" => "გამოიყენე შემდეგი ლინკი პაროლის შესაცვლელად: {link}", "You will receive a link to reset your password via Email." => "თქვენ მოგივათ პაროლის შესაცვლელი ლინკი მეილზე", -"Username" => "მომხმარებლის სახელი", +"Reset email send." => "რესეტის მეილი გაიგზავნა", +"Request failed!" => "მოთხოვნა შეწყდა!", +"Username" => "მომხმარებელი", "Request reset" => "პაროლის შეცვლის მოთხოვნა", "Your password was reset" => "თქვენი პაროლი შეცვლილია", "To login page" => "შესვლის გვერდზე", "New password" => "ახალი პაროლი", "Reset password" => "პაროლის შეცვლა", "Personal" => "პირადი", -"Users" => "მომხმარებელი", +"Users" => "მომხმარებლები", "Apps" => "აპლიკაციები", -"Admin" => "ადმინისტრატორი", +"Admin" => "ადმინი", "Help" => "დახმარება", "Access forbidden" => "წვდომა აკრძალულია", "Cloud not found" => "ღრუბელი არ არსებობს", @@ -122,7 +124,7 @@ "Database tablespace" => "ბაზის ცხრილის ზომა", "Database host" => "მონაცემთა ბაზის ჰოსტი", "Finish setup" => "კონფიგურაციის დასრულება", -"web services under your control" => "web services under your control", +"web services under your control" => "თქვენი კონტროლის ქვეშ მყოფი ვებ სერვისები", "Log out" => "გამოსვლა", "Automatic logon rejected!" => "ავტომატური შესვლა უარყოფილია!", "If you did not change your password recently, your account may be compromised!" => "თუ თქვენ არ შეცვლით პაროლს, თქვენი ანგარიში შეიძლება იყოს დაშვებადი სხვებისთვის", diff --git a/core/l10n/ko.php b/core/l10n/ko.php index 08713edaee1..2a75ce9c4f4 100644 --- a/core/l10n/ko.php +++ b/core/l10n/ko.php @@ -5,11 +5,10 @@ "User %s shared the folder \"%s\" with you. It is available for download here: %s" => "%s 님이 폴더 \"%s\"을(를) 공유하였습니다. 여기에서 다운로드할 수 있습니다: %s", "Category type not provided." => "분류 형식이 제공되지 않았습니다.", "No category to add?" => "추가할 분류가 없습니까?", -"This category already exists: %s" => "분류가 이미 존재합니다: %s", "Object type not provided." => "객체 형식이 제공되지 않았습니다.", "%s ID not provided." => "%s ID가 제공되지 않았습니다.", "Error adding %s to favorites." => "책갈피에 %s을(를) 추가할 수 없었습니다.", -"No categories selected for deletion." => "삭제할 분류를 선택하지 않았습니다. ", +"No categories selected for deletion." => "삭제할 분류를 선택하지 않았습니다.", "Error removing %s from favorites." => "책갈피에서 %s을(를) 삭제할 수 없었습니다.", "Sunday" => "일요일", "Monday" => "월요일", @@ -75,7 +74,7 @@ "Unshare" => "공유 해제", "can edit" => "편집 가능", "access control" => "접근 제어", -"create" => "생성", +"create" => "만들기", "update" => "업데이트", "delete" => "삭제", "share" => "공유", @@ -89,6 +88,8 @@ "ownCloud password reset" => "ownCloud 암호 재설정", "Use the following link to reset your password: {link}" => "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "You will receive a link to reset your password via Email." => "이메일로 암호 재설정 링크를 보냈습니다.", +"Reset email send." => "초기화 이메일을 보냈습니다.", +"Request failed!" => "요청이 실패했습니다!", "Username" => "사용자 이름", "Request reset" => "요청 초기화", "Your password was reset" => "암호가 재설정되었습니다", @@ -102,15 +103,11 @@ "Help" => "도움말", "Access forbidden" => "접근 금지됨", "Cloud not found" => "클라우드를 찾을 수 없습니다", -"Edit categories" => "분류 수정", +"Edit categories" => "분류 편집", "Add" => "추가", "Security Warning" => "보안 경고", -"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "사용 중인 PHP 버전이 NULL 바이트 공격에 취약합니다 (CVE-2006-7243)", -"Please update your PHP installation to use ownCloud securely." => "ownCloud의 보안을 위하여 PHP 버전을 업데이트하십시오.", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "안전한 난수 생성기를 사용할 수 없습니다. PHP의 OpenSSL 확장을 활성화해 주십시오.", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "안전한 난수 생성기를 사용하지 않으면 공격자가 암호 초기화 토큰을 추측하여 계정을 탈취할 수 있습니다.", -"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.", -"For information how to properly configure your server, please see the documentation." => "서버를 올바르게 설정하는 방법을 알아보려면 문서를 참고하십시오..", "Create an admin account" => "관리자 계정 만들기", "Advanced" => "고급", "Data folder" => "데이터 폴더", @@ -130,7 +127,6 @@ "Lost your password?" => "암호를 잊으셨습니까?", "remember" => "기억하기", "Log in" => "로그인", -"Alternative Logins" => "대체 ", "prev" => "이전", "next" => "다음", "Updating ownCloud to version %s, this may take a while." => "ownCloud를 버전 %s(으)로 업데이트합니다. 잠시 기다려 주십시오." diff --git a/core/l10n/lb.php b/core/l10n/lb.php index f2277445f9c..79258b8e974 100644 --- a/core/l10n/lb.php +++ b/core/l10n/lb.php @@ -57,7 +57,7 @@ "Access forbidden" => "Access net erlaabt", "Cloud not found" => "Cloud net fonnt", "Edit categories" => "Kategorien editéieren", -"Add" => "Dobäisetzen", +"Add" => "Bäisetzen", "Security Warning" => "Sécherheets Warnung", "Create an admin account" => "En Admin Account uleeën", "Advanced" => "Avancéiert", diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index 05ae35cc3d1..0f55c341e56 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -53,7 +53,7 @@ "No people found" => "Žmonių nerasta", "Resharing is not allowed" => "Dalijinasis išnaujo negalimas", "Shared in {item} with {user}" => "Pasidalino {item} su {user}", -"Unshare" => "Nebesidalinti", +"Unshare" => "Nesidalinti", "can edit" => "gali redaguoti", "access control" => "priėjimo kontrolė", "create" => "sukurti", diff --git a/core/l10n/lv.php b/core/l10n/lv.php index 18af82e4e36..76188662fbb 100644 --- a/core/l10n/lv.php +++ b/core/l10n/lv.php @@ -9,7 +9,7 @@ "Object type not provided." => "Objekta tips nav norādīts.", "%s ID not provided." => "%s ID nav norādīts.", "Error adding %s to favorites." => "Kļūda, pievienojot %s izlasei.", -"No categories selected for deletion." => "Neviena kategorija nav izvēlēta dzēšanai.", +"No categories selected for deletion." => "Neviena kategorija nav izvēlēta dzēšanai", "Error removing %s from favorites." => "Kļūda, izņemot %s no izlases.", "Sunday" => "Svētdiena", "Monday" => "Pirmdiena", @@ -72,7 +72,7 @@ "No people found" => "Nav atrastu cilvēku", "Resharing is not allowed" => "Atkārtota dalīšanās nav atļauta", "Shared in {item} with {user}" => "Dalījās ar {item} ar {user}", -"Unshare" => "Pārtraukt dalīšanos", +"Unshare" => "Beigt dalīties", "can edit" => "var rediģēt", "access control" => "piekļuves vadība", "create" => "izveidot", @@ -89,6 +89,8 @@ "ownCloud password reset" => "ownCloud paroles maiņa", "Use the following link to reset your password: {link}" => "Izmantojiet šo saiti, lai mainītu paroli: {link}", "You will receive a link to reset your password via Email." => "Jūs savā epastā saņemsiet interneta saiti, caur kuru varēsiet atjaunot paroli.", +"Reset email send." => "Atstatīt e-pasta sūtīšanu.", +"Request failed!" => "Pieprasījums neizdevās!", "Username" => "Lietotājvārds", "Request reset" => "Pieprasīt paroles maiņu", "Your password was reset" => "Jūsu parole tika nomainīta", @@ -98,7 +100,7 @@ "Personal" => "Personīgi", "Users" => "Lietotāji", "Apps" => "Lietotnes", -"Admin" => "Administratori", +"Admin" => "Administrators", "Help" => "Palīdzība", "Access forbidden" => "Pieeja ir liegta", "Cloud not found" => "Mākonis netika atrasts", diff --git a/core/l10n/mk.php b/core/l10n/mk.php index a6c06e4780a..9743d8b299e 100644 --- a/core/l10n/mk.php +++ b/core/l10n/mk.php @@ -29,7 +29,7 @@ "October" => "Октомври", "November" => "Ноември", "December" => "Декември", -"Settings" => "Подесувања", +"Settings" => "Поставки", "seconds ago" => "пред секунди", "1 minute ago" => "пред 1 минута", "{minutes} minutes ago" => "пред {minutes} минути", @@ -85,6 +85,8 @@ "ownCloud password reset" => "ресетирање на лозинка за ownCloud", "Use the following link to reset your password: {link}" => "Користете ја следната врска да ја ресетирате Вашата лозинка: {link}", "You will receive a link to reset your password via Email." => "Ќе добиете врска по е-пошта за да може да ја ресетирате Вашата лозинка.", +"Reset email send." => "Порката за ресетирање на лозинка пратена.", +"Request failed!" => "Барањето не успеа!", "Username" => "Корисничко име", "Request reset" => "Побарајте ресетирање", "Your password was reset" => "Вашата лозинка беше ресетирана", @@ -93,7 +95,7 @@ "Reset password" => "Ресетирај лозинка", "Personal" => "Лично", "Users" => "Корисници", -"Apps" => "Аппликации", +"Apps" => "Апликации", "Admin" => "Админ", "Help" => "Помош", "Access forbidden" => "Забранет пристап", diff --git a/core/l10n/ms_MY.php b/core/l10n/ms_MY.php index 70581ff7693..d8a2cf88367 100644 --- a/core/l10n/ms_MY.php +++ b/core/l10n/ms_MY.php @@ -1,6 +1,6 @@ "Tiada kategori untuk di tambah?", -"No categories selected for deletion." => "Tiada kategori dipilih untuk dibuang.", +"No categories selected for deletion." => "tiada kategori dipilih untuk penghapusan", "Sunday" => "Ahad", "Monday" => "Isnin", "Tuesday" => "Selasa", @@ -44,7 +44,7 @@ "Help" => "Bantuan", "Access forbidden" => "Larangan akses", "Cloud not found" => "Awan tidak dijumpai", -"Edit categories" => "Ubah kategori", +"Edit categories" => "Edit kategori", "Add" => "Tambah", "Security Warning" => "Amaran keselamatan", "Create an admin account" => "buat akaun admin", diff --git a/core/l10n/nb_NO.php b/core/l10n/nb_NO.php index 6efb31a7def..4e1ee45eec9 100644 --- a/core/l10n/nb_NO.php +++ b/core/l10n/nb_NO.php @@ -92,7 +92,7 @@ "Database tablespace" => "Database tabellområde", "Database host" => "Databasevert", "Finish setup" => "Fullfør oppsetting", -"web services under your control" => "web tjenester du kontrollerer", +"web services under your control" => "nettjenester under din kontroll", "Log out" => "Logg ut", "Automatic logon rejected!" => "Automatisk pålogging avvist!", "If you did not change your password recently, your account may be compromised!" => "Hvis du ikke har endret passordet ditt nylig kan kontoen din være kompromitert", diff --git a/core/l10n/nl.php b/core/l10n/nl.php index 83d1e82dc31..5e050c33bec 100644 --- a/core/l10n/nl.php +++ b/core/l10n/nl.php @@ -45,7 +45,7 @@ "last year" => "vorig jaar", "years ago" => "jaar geleden", "Ok" => "Ok", -"Cancel" => "Annuleer", +"Cancel" => "Annuleren", "Choose" => "Kies", "Yes" => "Ja", "No" => "Nee", @@ -75,7 +75,7 @@ "Unshare" => "Stop met delen", "can edit" => "kan wijzigen", "access control" => "toegangscontrole", -"create" => "creëer", +"create" => "maak", "update" => "bijwerken", "delete" => "verwijderen", "share" => "deel", @@ -88,14 +88,14 @@ "The update was successful. Redirecting you to ownCloud now." => "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.", "ownCloud password reset" => "ownCloud wachtwoord herstellen", "Use the following link to reset your password: {link}" => "Gebruik de volgende link om je wachtwoord te resetten: {link}", -"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.
If it is not there ask your local administrator ." => "De link voor het resetten van uw wachtwoord is verzonden naar uw e-mailadres.
Als u dat bericht niet snel ontvangen hebt, controleer dan uw spambakje.
Als het daar ook niet is, vraag dan uw beheerder om te helpen.", -"Request failed!
Did you make sure your email/username was right?" => "Aanvraag mislukt!
Weet u zeker dat uw gebruikersnaam en/of wachtwoord goed waren?", "You will receive a link to reset your password via Email." => "U ontvangt een link om uw wachtwoord opnieuw in te stellen via e-mail.", +"Reset email send." => "Reset e-mail verstuurd.", +"Request failed!" => "Verzoek mislukt!", "Username" => "Gebruikersnaam", "Request reset" => "Resetaanvraag", "Your password was reset" => "Je wachtwoord is gewijzigd", "To login page" => "Naar de login-pagina", -"New password" => "Nieuw", +"New password" => "Nieuw wachtwoord", "Reset password" => "Reset wachtwoord", "Personal" => "Persoonlijk", "Users" => "Gebruikers", @@ -104,7 +104,7 @@ "Help" => "Help", "Access forbidden" => "Toegang verboden", "Cloud not found" => "Cloud niet gevonden", -"Edit categories" => "Wijzig categorieën", +"Edit categories" => "Wijzigen categorieën", "Add" => "Toevoegen", "Security Warning" => "Beveiligingswaarschuwing", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Uw PHP versie is kwetsbaar voor de NULL byte aanval (CVE-2006-7243)", diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index f62897ed27d..61b2baffbf2 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -1,16 +1,4 @@ "Brukaren %s delte ei fil med deg", -"User %s shared a folder with you" => "Brukaren %s delte ei mappe med deg", -"User %s shared the file \"%s\" with you. It is available for download here: %s" => "Brukaren %s delte fila «%s» med deg. Du kan lasta ho ned her: %s", -"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Brukaren %s delte mappa «%s» med deg. Du kan lasta ho ned her: %s", -"Category type not provided." => "Ingen kategoritype.", -"No category to add?" => "Ingen kategori å leggja til?", -"This category already exists: %s" => "Denne kategorien finst alt: %s", -"Object type not provided." => "Ingen objekttype.", -"%s ID not provided." => "Ingen %s-ID.", -"Error adding %s to favorites." => "Klarte ikkje å leggja til %s i favorittar.", -"No categories selected for deletion." => "Ingen kategoriar valt for sletting.", -"Error removing %s from favorites." => "Klarte ikkje å fjerna %s frå favorittar.", "Sunday" => "Søndag", "Monday" => "Måndag", "Tuesday" => "Tysdag", @@ -31,88 +19,24 @@ "November" => "November", "December" => "Desember", "Settings" => "Innstillingar", -"seconds ago" => "sekund sidan", -"1 minute ago" => "1 minutt sidan", -"{minutes} minutes ago" => "{minutes} minutt sidan", -"1 hour ago" => "1 time sidan", -"{hours} hours ago" => "{hours} timar sidan", -"today" => "i dag", -"yesterday" => "i går", -"{days} days ago" => "{days} dagar sidan", -"last month" => "førre månad", -"{months} months ago" => "{months) månader sidan", -"months ago" => "månader sidan", -"last year" => "i fjor", -"years ago" => "år sidan", -"Ok" => "Greitt", -"Cancel" => "Avbryt", -"Choose" => "Vel", -"Yes" => "Ja", -"No" => "Nei", -"The object type is not specified." => "Objekttypen er ikkje spesifisert.", +"Cancel" => "Kanseller", "Error" => "Feil", -"The app name is not specified." => "App-namnet er ikkje spesifisert.", -"The required file {file} is not installed!" => "Den kravde fila {file} er ikkje installert!", -"Shared" => "Delt", -"Share" => "Del", -"Error while sharing" => "Feil ved deling", -"Error while unsharing" => "Feil ved udeling", -"Error while changing permissions" => "Feil ved endring av tillatingar", -"Shared with you and the group {group} by {owner}" => "Delt med deg og gruppa {group} av {owner}", -"Shared with you by {owner}" => "Delt med deg av {owner}", -"Share with" => "Del med", -"Share with link" => "Del med lenkje", -"Password protect" => "Passordvern", "Password" => "Passord", -"Email link to person" => "Send lenkja over e-post", -"Send" => "Send", -"Set expiration date" => "Set utlaupsdato", -"Expiration date" => "Utlaupsdato", -"Share via email:" => "Del over e-post:", -"No people found" => "Fann ingen personar", -"Resharing is not allowed" => "Vidaredeling er ikkje tillate", -"Shared in {item} with {user}" => "Delt i {item} med {brukar}", -"Unshare" => "Udel", -"can edit" => "kan endra", -"access control" => "tilgangskontroll", -"create" => "lag", -"update" => "oppdater", -"delete" => "slett", -"share" => "del", -"Password protected" => "Passordverna", -"Error unsetting expiration date" => "Klarte ikkje å fjerna utlaupsdato", -"Error setting expiration date" => "Klarte ikkje å setja utlaupsdato", -"Sending ..." => "Sender …", -"Email sent" => "E-post sendt", -"The update was unsuccessful. Please report this issue to the ownCloud community." => "Oppdateringa feila. Ver venleg og rapporter feilen til ownCloud-fellesskapet.", -"The update was successful. Redirecting you to ownCloud now." => "Oppdateringa er fullført. Sender deg vidare til ownCloud no.", -"ownCloud password reset" => "Nullstilling av ownCloud-passord", -"Use the following link to reset your password: {link}" => "Klikk følgjande lenkje til å nullstilla passordet ditt: {link}", -"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.
If it is not there ask your local administrator ." => "Lenkja til å nullstilla passordet med er sendt til e-posten din.
Sjå i spam-/søppelmappa di viss du ikkje ser e-posten innan rimeleg tid.
Spør din lokale administrator viss han ikkje er der heller.", -"Request failed!
Did you make sure your email/username was right?" => "Førespurnaden feila!
Er du viss på at du skreiv inn rett e-post/brukarnamn?", -"You will receive a link to reset your password via Email." => "Du vil få ein e-post med ei lenkje for å nullstilla passordet.", +"Use the following link to reset your password: {link}" => "Bruk føljane link til å tilbakestille passordet ditt: {link}", +"You will receive a link to reset your password via Email." => "Du vil få ei lenkje for å nullstilla passordet via epost.", "Username" => "Brukarnamn", "Request reset" => "Be om nullstilling", "Your password was reset" => "Passordet ditt er nullstilt", -"To login page" => "Til innloggingssida", +"To login page" => "Til innloggings sida", "New password" => "Nytt passord", "Reset password" => "Nullstill passord", "Personal" => "Personleg", "Users" => "Brukarar", "Apps" => "Applikasjonar", -"Admin" => "Admin", +"Admin" => "Administrer", "Help" => "Hjelp", -"Access forbidden" => "Tilgang forbudt", "Cloud not found" => "Fann ikkje skyen", -"Edit categories" => "Endra kategoriar", "Add" => "Legg til", -"Security Warning" => "Tryggleiksåtvaring", -"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "PHP-utgåva di er sårbar for NULL-byteåtaket (CVE-2006-7243)", -"Please update your PHP installation to use ownCloud securely." => "Ver venleg og oppdater PHP-installasjonen din så han køyrer ownCloud på ein trygg måte.", -"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen tilgjengeleg tilfeldig nummer-generator, ver venleg og aktiver OpenSSL-utvidinga i PHP.", -"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Utan ein trygg tilfeldig nummer-generator er det enklare for ein åtakar å gjetta seg fram til passordnullstillingskodar og dimed ta over kontoen din.", -"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Datamappa og filene dine er sannsynlegvis tilgjengelege frå Internett sidan .htaccess-fila ikkje fungerer.", -"For information how to properly configure your server, please see the documentation." => "Ver venleg og les dokumentasjonen for å læra korleis du set opp tenaren din på rett måte.", "Create an admin account" => "Lag ein admin-konto", "Advanced" => "Avansert", "Data folder" => "Datamappe", @@ -121,19 +45,13 @@ "Database user" => "Databasebrukar", "Database password" => "Databasepassord", "Database name" => "Databasenamn", -"Database tablespace" => "Tabellnamnrom for database", "Database host" => "Databasetenar", "Finish setup" => "Fullfør oppsettet", -"web services under your control" => "Vevtenester under din kontroll", +"web services under your control" => "Vev tjenester under din kontroll", "Log out" => "Logg ut", -"Automatic logon rejected!" => "Automatisk innlogging avvist!", -"If you did not change your password recently, your account may be compromised!" => "Viss du ikkje endra passordet ditt nyleg, så kan kontoen din vera kompromittert!", -"Please change your password to secure your account again." => "Ver venleg og endra passordet for å gjera kontoen din trygg igjen.", "Lost your password?" => "Gløymt passordet?", "remember" => "hugs", "Log in" => "Logg inn", -"Alternative Logins" => "Alternative innloggingar", "prev" => "førre", -"next" => "neste", -"Updating ownCloud to version %s, this may take a while." => "Oppdaterer ownCloud til utgåve %s, dette kan ta ei stund." +"next" => "neste" ); diff --git a/core/l10n/oc.php b/core/l10n/oc.php index a384b0315bb..ec432d495a4 100644 --- a/core/l10n/oc.php +++ b/core/l10n/oc.php @@ -8,16 +8,16 @@ "Thursday" => "Dijòus", "Friday" => "Divendres", "Saturday" => "Dissabte", -"January" => "genièr", -"February" => "febrièr", -"March" => "març", -"April" => "abril", -"May" => "mai", -"June" => "junh", -"July" => "julhet", -"August" => "agost", -"September" => "septembre", -"October" => "octobre", +"January" => "Genièr", +"February" => "Febrièr", +"March" => "Març", +"April" => "Abril", +"May" => "Mai", +"June" => "Junh", +"July" => "Julhet", +"August" => "Agost", +"September" => "Septembre", +"October" => "Octobre", "November" => "Novembre", "December" => "Decembre", "Settings" => "Configuracion", @@ -30,7 +30,7 @@ "last year" => "an passat", "years ago" => "ans a", "Ok" => "D'accòrdi", -"Cancel" => "Annula", +"Cancel" => "Anulla", "Choose" => "Causís", "Yes" => "Òc", "No" => "Non", @@ -48,7 +48,7 @@ "Share via email:" => "Parteja tras corrièl :", "No people found" => "Deguns trobat", "Resharing is not allowed" => "Tornar partejar es pas permis", -"Unshare" => "Pas partejador", +"Unshare" => "Non parteje", "can edit" => "pòt modificar", "access control" => "Contraròtle d'acces", "create" => "crea", @@ -61,11 +61,11 @@ "ownCloud password reset" => "senhal d'ownCloud tornat botar", "Use the following link to reset your password: {link}" => "Utiliza lo ligam seguent per tornar botar lo senhal : {link}", "You will receive a link to reset your password via Email." => "Reçaupràs un ligam per tornar botar ton senhal via corrièl.", -"Username" => "Non d'usancièr", +"Username" => "Nom d'usancièr", "Request reset" => "Tornar botar requesit", "Your password was reset" => "Ton senhal es estat tornat botar", "To login page" => "Pagina cap al login", -"New password" => "Senhal novèl", +"New password" => "Senhal nòu", "Reset password" => "Senhal tornat botar", "Personal" => "Personal", "Users" => "Usancièrs", diff --git a/core/l10n/pl.php b/core/l10n/pl.php index 22cc24cd514..2821bf77eed 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -89,6 +89,8 @@ "ownCloud password reset" => "restart hasła ownCloud", "Use the following link to reset your password: {link}" => "Użyj tego odnośnika by zresetować hasło: {link}", "You will receive a link to reset your password via Email." => "Odnośnik służący do resetowania hasła zostanie wysłany na adres e-mail.", +"Reset email send." => "Wysłano e-mail resetujący.", +"Request failed!" => "Żądanie nieudane!", "Username" => "Nazwa użytkownika", "Request reset" => "Żądanie resetowania", "Your password was reset" => "Zresetowano hasło", @@ -122,7 +124,7 @@ "Database tablespace" => "Obszar tabel bazy danych", "Database host" => "Komputer bazy danych", "Finish setup" => "Zakończ konfigurowanie", -"web services under your control" => "Kontrolowane serwisy", +"web services under your control" => "usługi internetowe pod kontrolą", "Log out" => "Wyloguj", "Automatic logon rejected!" => "Automatyczne logowanie odrzucone!", "If you did not change your password recently, your account may be compromised!" => "Jeśli hasło było dawno niezmieniane, twoje konto może być zagrożone!", diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php index ee1ac44d026..e5acd4da8f6 100644 --- a/core/l10n/pt_BR.php +++ b/core/l10n/pt_BR.php @@ -9,7 +9,7 @@ "Object type not provided." => "tipo de objeto não fornecido.", "%s ID not provided." => "%s ID não fornecido(s).", "Error adding %s to favorites." => "Erro ao adicionar %s aos favoritos.", -"No categories selected for deletion." => "Nenhuma categoria selecionada para remoção.", +"No categories selected for deletion." => "Nenhuma categoria selecionada para excluir.", "Error removing %s from favorites." => "Erro ao remover %s dos favoritos.", "Sunday" => "Domingo", "Monday" => "Segunda-feira", @@ -30,7 +30,7 @@ "October" => "outubro", "November" => "novembro", "December" => "dezembro", -"Settings" => "Ajustes", +"Settings" => "Configurações", "seconds ago" => "segundos atrás", "1 minute ago" => "1 minuto atrás", "{minutes} minutes ago" => "{minutes} minutos atrás", @@ -88,10 +88,10 @@ "The update was successful. Redirecting you to ownCloud now." => "A atualização teve êxito. Você será redirecionado ao ownCloud agora.", "ownCloud password reset" => "Redefinir senha ownCloud", "Use the following link to reset your password: {link}" => "Use o seguinte link para redefinir sua senha: {link}", -"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.
If it is not there ask your local administrator ." => "O link para redefinir sua senha foi enviada para o seu e-mail.
Se você não recebê-lo dentro de um período razoável de tempo, verifique o spam/lixo.
Se ele não estiver lá perguntar ao seu administrador local.", -"Request failed!
Did you make sure your email/username was right?" => "O pedido falhou!
Certifique-se que seu e-mail/username estavam corretos?", "You will receive a link to reset your password via Email." => "Você receberá um link para redefinir sua senha por e-mail.", -"Username" => "Nome de usuário", +"Reset email send." => "Email de redefinição de senha enviado.", +"Request failed!" => "A requisição falhou!", +"Username" => "Nome de Usuário", "Request reset" => "Pedir redefinição", "Your password was reset" => "Sua senha foi redefinida", "To login page" => "Para a página de login", @@ -99,7 +99,7 @@ "Reset password" => "Redefinir senha", "Personal" => "Pessoal", "Users" => "Usuários", -"Apps" => "Aplicações", +"Apps" => "Apps", "Admin" => "Admin", "Help" => "Ajuda", "Access forbidden" => "Acesso proibido", diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index 0b2af90d1d5..67d43e372a1 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -9,7 +9,7 @@ "Object type not provided." => "Tipo de objecto não fornecido", "%s ID not provided." => "ID %s não fornecido", "Error adding %s to favorites." => "Erro a adicionar %s aos favoritos", -"No categories selected for deletion." => "Nenhuma categoria seleccionada para eliminar.", +"No categories selected for deletion." => "Nenhuma categoria seleccionada para apagar", "Error removing %s from favorites." => "Erro a remover %s dos favoritos.", "Sunday" => "Domingo", "Monday" => "Segunda", @@ -30,11 +30,11 @@ "October" => "Outubro", "November" => "Novembro", "December" => "Dezembro", -"Settings" => "Configurações", +"Settings" => "Definições", "seconds ago" => "Minutos atrás", "1 minute ago" => "Há 1 minuto", "{minutes} minutes ago" => "{minutes} minutos atrás", -"1 hour ago" => "Há 1 horas", +"1 hour ago" => "Há 1 hora", "{hours} hours ago" => "Há {hours} horas atrás", "today" => "hoje", "yesterday" => "ontem", @@ -63,7 +63,7 @@ "Share with" => "Partilhar com", "Share with link" => "Partilhar com link", "Password protect" => "Proteger com palavra-passe", -"Password" => "Password", +"Password" => "Palavra chave", "Email link to person" => "Enviar o link por e-mail", "Send" => "Enviar", "Set expiration date" => "Especificar data de expiração", @@ -89,11 +89,13 @@ "ownCloud password reset" => "Reposição da password ownCloud", "Use the following link to reset your password: {link}" => "Use o seguinte endereço para repor a sua password: {link}", "You will receive a link to reset your password via Email." => "Vai receber um endereço para repor a sua password", -"Username" => "Nome de utilizador", +"Reset email send." => "E-mail de reinicialização enviado.", +"Request failed!" => "O pedido falhou!", +"Username" => "Utilizador", "Request reset" => "Pedir reposição", "Your password was reset" => "A sua password foi reposta", "To login page" => "Para a página de entrada", -"New password" => "Nova palavra-chave", +"New password" => "Nova password", "Reset password" => "Repor password", "Personal" => "Pessoal", "Users" => "Utilizadores", diff --git a/core/l10n/ro.php b/core/l10n/ro.php index 36ee8ab4b6c..51c1523d7e0 100644 --- a/core/l10n/ro.php +++ b/core/l10n/ro.php @@ -5,7 +5,6 @@ "User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Utilizatorul %s a partajat dosarul \"%s\" cu tine. Îl poți descărca de aici: %s ", "Category type not provided." => "Tipul de categorie nu este prevazut", "No category to add?" => "Nici o categorie de adăugat?", -"This category already exists: %s" => "Această categorie deja există: %s", "Object type not provided." => "Tipul obiectului nu este prevazut", "%s ID not provided." => "ID-ul %s nu a fost introdus", "Error adding %s to favorites." => "Eroare la adăugarea %s la favorite", @@ -30,7 +29,7 @@ "October" => "Octombrie", "November" => "Noiembrie", "December" => "Decembrie", -"Settings" => "Setări", +"Settings" => "Configurări", "seconds ago" => "secunde în urmă", "1 minute ago" => "1 minut în urmă", "{minutes} minutes ago" => "{minutes} minute in urma", @@ -53,7 +52,6 @@ "Error" => "Eroare", "The app name is not specified." => "Numele aplicației nu a fost specificat", "The required file {file} is not installed!" => "Fișierul obligatoriu {file} nu este instalat!", -"Shared" => "Partajat", "Share" => "Partajează", "Error while sharing" => "Eroare la partajare", "Error while unsharing" => "Eroare la anularea partajării", @@ -63,7 +61,7 @@ "Share with" => "Partajat cu", "Share with link" => "Partajare cu legătură", "Password protect" => "Protejare cu parolă", -"Password" => "Parolă", +"Password" => "Parola", "Email link to person" => "Expediază legătura prin poșta electronică", "Send" => "Expediază", "Set expiration date" => "Specifică data expirării", @@ -84,14 +82,12 @@ "Error setting expiration date" => "Eroare la specificarea datei de expirare", "Sending ..." => "Se expediază...", "Email sent" => "Mesajul a fost expediat", -"The update was unsuccessful. Please report this issue to the ownCloud community." => "Modernizarea a eșuat! Te rugam sa raportezi problema aici..", -"The update was successful. Redirecting you to ownCloud now." => "Modernizare reusita! Vei fii redirectionat!", "ownCloud password reset" => "Resetarea parolei ownCloud ", "Use the following link to reset your password: {link}" => "Folosește următorul link pentru a reseta parola: {link}", -"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.
If it is not there ask your local administrator ." => "Linkul pentru resetarea parolei tale a fost trimis pe email.
Daca nu ai primit email-ul intr-un timp rezonabil, verifica folderul spam/junk.
Daca nu sunt acolo intreaba administratorul local.", -"Request failed!
Did you make sure your email/username was right?" => "Cerere esuata!
Esti sigur ca email-ul/numele de utilizator sunt corecte?", "You will receive a link to reset your password via Email." => "Vei primi un mesaj prin care vei putea reseta parola via email", -"Username" => "Nume utilizator", +"Reset email send." => "Resetarea emailu-lui trimisa.", +"Request failed!" => "Solicitarea nu a reusit", +"Username" => "Utilizator", "Request reset" => "Cerere trimisă", "Your password was reset" => "Parola a fost resetată", "To login page" => "Spre pagina de autentificare", @@ -100,19 +96,15 @@ "Personal" => "Personal", "Users" => "Utilizatori", "Apps" => "Aplicații", -"Admin" => "Admin", +"Admin" => "Administrator", "Help" => "Ajutor", "Access forbidden" => "Acces interzis", "Cloud not found" => "Nu s-a găsit", -"Edit categories" => "Editează categorii", +"Edit categories" => "Editează categoriile", "Add" => "Adaugă", "Security Warning" => "Avertisment de securitate", -"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Versiunea dvs. PHP este vulnerabil la acest atac un octet null (CVE-2006-7243)", -"Please update your PHP installation to use ownCloud securely." => "Vă rugăm să actualizați instalarea dvs. PHP pentru a utiliza ownCloud in siguranță.", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "Generatorul de numere pentru securitate nu este disponibil, va rog activati extensia PHP OpenSSL", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Fara generatorul pentru numere de securitate , un atacator poate afla parola si reseta contul tau", -"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Directorul de date și fișiere sunt, probabil, accesibile de pe Internet, deoarece .htaccess nu funcționează.", -"For information how to properly configure your server, please see the documentation." => "Pentru informatii despre configurarea corecta a serverului accesati pagina Documentare.", "Create an admin account" => "Crează un cont de administrator", "Advanced" => "Avansat", "Data folder" => "Director date", @@ -132,7 +124,6 @@ "Lost your password?" => "Ai uitat parola?", "remember" => "amintește", "Log in" => "Autentificare", -"Alternative Logins" => "Conectări alternative", "prev" => "precedentul", "next" => "următorul", "Updating ownCloud to version %s, this may take a while." => "Actualizăm ownCloud la versiunea %s, aceasta poate dura câteva momente." diff --git a/core/l10n/ru.php b/core/l10n/ru.php index 54a0b94ec9e..0625a5d11d4 100644 --- a/core/l10n/ru.php +++ b/core/l10n/ru.php @@ -30,7 +30,7 @@ "October" => "Октябрь", "November" => "Ноябрь", "December" => "Декабрь", -"Settings" => "Конфигурация", +"Settings" => "Настройки", "seconds ago" => "несколько секунд назад", "1 minute ago" => "1 минуту назад", "{minutes} minutes ago" => "{minutes} минут назад", @@ -45,7 +45,7 @@ "last year" => "в прошлом году", "years ago" => "несколько лет назад", "Ok" => "Ок", -"Cancel" => "Отменить", +"Cancel" => "Отмена", "Choose" => "Выбрать", "Yes" => "Да", "No" => "Нет", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...", "ownCloud password reset" => "Сброс пароля ", "Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}", -"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.
If it is not there ask your local administrator ." => "Ссылка для сброса пароля была отправлена ​​по электронной почте.
Если вы не получите его в пределах одной двух минут, проверьте папку спам.
Если это не возможно, обратитесь к Вашему администратору.", -"Request failed!
Did you make sure your email/username was right?" => "Что-то не так. Вы уверены что Email / Имя пользователя указаны верно?", "You will receive a link to reset your password via Email." => "На ваш адрес Email выслана ссылка для сброса пароля.", +"Reset email send." => "Отправка письма с информацией для сброса.", +"Request failed!" => "Запрос не удался!", "Username" => "Имя пользователя", "Request reset" => "Запросить сброс", "Your password was reset" => "Ваш пароль был сброшен", @@ -100,11 +100,11 @@ "Personal" => "Личное", "Users" => "Пользователи", "Apps" => "Приложения", -"Admin" => "Admin", +"Admin" => "Администратор", "Help" => "Помощь", "Access forbidden" => "Доступ запрещён", "Cloud not found" => "Облако не найдено", -"Edit categories" => "Редактировать категрии", +"Edit categories" => "Редактировать категории", "Add" => "Добавить", "Security Warning" => "Предупреждение безопасности", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Ваша версия PHP уязвима к атаке NULL Byte (CVE-2006-7243)", @@ -124,7 +124,7 @@ "Database tablespace" => "Табличое пространство базы данных", "Database host" => "Хост базы данных", "Finish setup" => "Завершить установку", -"web services under your control" => "веб-сервисы под вашим управлением", +"web services under your control" => "Сетевые службы под твоим контролем", "Log out" => "Выйти", "Automatic logon rejected!" => "Автоматический вход в систему отключен!", "If you did not change your password recently, your account may be compromised!" => "Если Вы недавно не меняли свой пароль, то Ваша учетная запись может быть скомпрометирована!", diff --git a/core/l10n/ru_RU.php b/core/l10n/ru_RU.php index 8fb568aee7e..1afb9e20c9b 100644 --- a/core/l10n/ru_RU.php +++ b/core/l10n/ru_RU.php @@ -1,3 +1,137 @@ "Настройки" +"User %s shared a file with you" => "Пользователь %s открыл Вам доступ к файлу", +"User %s shared a folder with you" => "Пользователь %s открыл Вам доступ к папке", +"User %s shared the file \"%s\" with you. It is available for download here: %s" => "Пользователь %s открыл Вам доступ к файлу \"%s\". Он доступен для загрузки здесь: %s", +"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Пользователь %s открыл Вам доступ к папке \"%s\". Она доступена для загрузки здесь: %s", +"Category type not provided." => "Тип категории не предоставлен.", +"No category to add?" => "Нет категории для добавления?", +"This category already exists: %s" => "Эта категория уже существует: %s", +"Object type not provided." => "Тип объекта не предоставлен.", +"%s ID not provided." => "%s ID не предоставлен.", +"Error adding %s to favorites." => "Ошибка добавления %s в избранное.", +"No categories selected for deletion." => "Нет категорий, выбранных для удаления.", +"Error removing %s from favorites." => "Ошибка удаления %s из избранного.", +"Sunday" => "Воскресенье", +"Monday" => "Понедельник", +"Tuesday" => "Вторник", +"Wednesday" => "Среда", +"Thursday" => "Четверг", +"Friday" => "Пятница", +"Saturday" => "Суббота", +"January" => "Январь", +"February" => "Февраль", +"March" => "Март", +"April" => "Апрель", +"May" => "Май", +"June" => "Июнь", +"July" => "Июль", +"August" => "Август", +"September" => "Сентябрь", +"October" => "Октябрь", +"November" => "Ноябрь", +"December" => "Декабрь", +"Settings" => "Настройки", +"seconds ago" => "секунд назад", +"1 minute ago" => " 1 минуту назад", +"{minutes} minutes ago" => "{минуты} минут назад", +"1 hour ago" => "1 час назад", +"{hours} hours ago" => "{часы} часов назад", +"today" => "сегодня", +"yesterday" => "вчера", +"{days} days ago" => "{дни} дней назад", +"last month" => "в прошлом месяце", +"{months} months ago" => "{месяцы} месяцев назад", +"months ago" => "месяц назад", +"last year" => "в прошлом году", +"years ago" => "лет назад", +"Ok" => "Да", +"Cancel" => "Отмена", +"Choose" => "Выбрать", +"Yes" => "Да", +"No" => "Нет", +"The object type is not specified." => "Тип объекта не указан.", +"Error" => "Ошибка", +"The app name is not specified." => "Имя приложения не указано.", +"The required file {file} is not installed!" => "Требуемый файл {файл} не установлен!", +"Shared" => "Опубликовано", +"Share" => "Сделать общим", +"Error while sharing" => "Ошибка создания общего доступа", +"Error while unsharing" => "Ошибка отключения общего доступа", +"Error while changing permissions" => "Ошибка при изменении прав доступа", +"Shared with you and the group {group} by {owner}" => "Опубликовано для Вас и группы {группа} {собственник}", +"Shared with you by {owner}" => "Опубликовано для Вас {собственник}", +"Share with" => "Сделать общим с", +"Share with link" => "Опубликовать с ссылкой", +"Password protect" => "Защитить паролем", +"Password" => "Пароль", +"Email link to person" => "Ссылка на адрес электронной почты", +"Send" => "Отправить", +"Set expiration date" => "Установить срок действия", +"Expiration date" => "Дата истечения срока действия", +"Share via email:" => "Сделать общедоступным посредством email:", +"No people found" => "Не найдено людей", +"Resharing is not allowed" => "Рекурсивный общий доступ не разрешен", +"Shared in {item} with {user}" => "Совместное использование в {объект} с {пользователь}", +"Unshare" => "Отключить общий доступ", +"can edit" => "возможно редактирование", +"access control" => "контроль доступа", +"create" => "создать", +"update" => "обновить", +"delete" => "удалить", +"share" => "сделать общим", +"Password protected" => "Пароль защищен", +"Error unsetting expiration date" => "Ошибка при отключении даты истечения срока действия", +"Error setting expiration date" => "Ошибка при установке даты истечения срока действия", +"Sending ..." => "Отправка ...", +"Email sent" => "Письмо отправлено", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "Обновление прошло неудачно. Пожалуйста, сообщите об этом результате в ownCloud community.", +"The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Немедленное перенаправление Вас на ownCloud.", +"ownCloud password reset" => "Переназначение пароля", +"Use the following link to reset your password: {link}" => "Воспользуйтесь следующей ссылкой для переназначения пароля: {link}", +"You will receive a link to reset your password via Email." => "Вы получите ссылку для восстановления пароля по электронной почте.", +"Reset email send." => "Сброс отправки email.", +"Request failed!" => "Не удалось выполнить запрос!", +"Username" => "Имя пользователя", +"Request reset" => "Сброс запроса", +"Your password was reset" => "Ваш пароль был переустановлен", +"To login page" => "На страницу входа", +"New password" => "Новый пароль", +"Reset password" => "Переназначение пароля", +"Personal" => "Персональный", +"Users" => "Пользователи", +"Apps" => "Приложения", +"Admin" => "Администратор", +"Help" => "Помощь", +"Access forbidden" => "Доступ запрещен", +"Cloud not found" => "Облако не найдено", +"Edit categories" => "Редактирование категорий", +"Add" => "Добавить", +"Security Warning" => "Предупреждение системы безопасности", +"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Нет доступного защищенного генератора случайных чисел, пожалуйста, включите расширение PHP OpenSSL.", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без защищенного генератора случайных чисел злоумышленник может спрогнозировать пароль, сбросить учетные данные и завладеть Вашим аккаунтом.", +"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает.", +"For information how to properly configure your server, please see the documentation." => "Для информации как правильно настроить Ваш сервер, пожалйста загляните в документацию.", +"Create an admin account" => "Создать admin account", +"Advanced" => "Расширенный", +"Data folder" => "Папка данных", +"Configure the database" => "Настроить базу данных", +"will be used" => "будет использоваться", +"Database user" => "Пользователь базы данных", +"Database password" => "Пароль базы данных", +"Database name" => "Имя базы данных", +"Database tablespace" => "Табличная область базы данных", +"Database host" => "Сервер базы данных", +"Finish setup" => "Завершение настройки", +"web services under your control" => "веб-сервисы под Вашим контролем", +"Log out" => "Выйти", +"Automatic logon rejected!" => "Автоматический вход в систему отклонен!", +"If you did not change your password recently, your account may be compromised!" => "Если Вы недавно не меняли пароль, Ваш аккаунт может быть подвергнут опасности!", +"Please change your password to secure your account again." => "Пожалуйста, измените пароль, чтобы защитить ваш аккаунт еще раз.", +"Lost your password?" => "Забыли пароль?", +"remember" => "запомнить", +"Log in" => "Войти", +"Alternative Logins" => "Альтернативные Имена", +"prev" => "предыдущий", +"next" => "следующий", +"Updating ownCloud to version %s, this may take a while." => "Обновление ownCloud до версии %s, это может занять некоторое время." ); diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php index c1e8ba37ed9..dc9801139a4 100644 --- a/core/l10n/si_LK.php +++ b/core/l10n/si_LK.php @@ -16,10 +16,10 @@ "July" => "ජූලි", "August" => "අගෝස්තු", "September" => "සැප්තැම්බර්", -"October" => "ඔක්තෝබර", +"October" => "ඔක්තෝබර්", "November" => "නොවැම්බර්", "December" => "දෙසැම්බර්", -"Settings" => "සිටුවම්", +"Settings" => "සැකසුම්", "seconds ago" => "තත්පරයන්ට පෙර", "1 minute ago" => "1 මිනිත්තුවකට පෙර", "today" => "අද", @@ -32,13 +32,13 @@ "Cancel" => "එපා", "Choose" => "තෝරන්න", "Yes" => "ඔව්", -"No" => "එපා", +"No" => "නැහැ", "Error" => "දෝෂයක්", "Share" => "බෙදා හදා ගන්න", "Share with" => "බෙදාගන්න", "Share with link" => "යොමුවක් මඟින් බෙදාගන්න", "Password protect" => "මුර පදයකින් ආරක්ශාකරන්න", -"Password" => "මුර පදය", +"Password" => "මුර පදය ", "Set expiration date" => "කල් ඉකුත් විමේ දිනය දමන්න", "Expiration date" => "කල් ඉකුත් විමේ දිනය", "Share via email:" => "විද්‍යුත් තැපෑල මඟින් බෙදාගන්න: ", @@ -54,10 +54,11 @@ "Error setting expiration date" => "කල් ඉකුත් දිනය ස්ථාපනය කිරීමේ දෝෂයක්", "ownCloud password reset" => "ownCloud මුරපදය ප්‍රත්‍යාරම්භ කරන්න", "You will receive a link to reset your password via Email." => "ඔබගේ මුරපදය ප්‍රත්‍යාරම්භ කිරීම සඳහා යොමුව විද්‍යුත් තැපෑලෙන් ලැබෙනු ඇත", +"Request failed!" => "ඉල්ලීම අසාර්ථකයි!", "Username" => "පරිශීලක නම", "Your password was reset" => "ඔබේ මුරපදය ප්‍රත්‍යාරම්භ කරන ලදී", "To login page" => "පිවිසුම් පිටුවට", -"New password" => "නව මුරපදය", +"New password" => "නව මුර පදයක්", "Reset password" => "මුරපදය ප්‍රත්‍යාරම්භ කරන්න", "Personal" => "පෞද්ගලික", "Users" => "පරිශීලකයන්", @@ -67,7 +68,7 @@ "Access forbidden" => "ඇතුල් වීම තහනම්", "Cloud not found" => "සොයා ගත නොහැක", "Edit categories" => "ප්‍රභේදයන් සංස්කරණය", -"Add" => "එකතු කරන්න", +"Add" => "එක් කරන්න", "Security Warning" => "ආරක්ෂක නිවේදනයක්", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "ආරක්ෂිත අහඹු සංඛ්‍යා උත්පාදකයක් නොමැති නම් ඔබගේ ගිණුමට පහරදෙන අයකුට එහි මුරපද යළි පිහිටුවීමට අවශ්‍ය ටෝකන පහසුවෙන් සොයාගෙන ඔබගේ ගිණුම පැහැරගත හැක.", "Advanced" => "දියුණු/උසස්", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index d9f124b2b49..b52c8b03c41 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -34,7 +34,7 @@ "seconds ago" => "pred sekundami", "1 minute ago" => "pred minútou", "{minutes} minutes ago" => "pred {minutes} minútami", -"1 hour ago" => "Pred 1 hodinou", +"1 hour ago" => "Pred 1 hodinou.", "{hours} hours ago" => "Pred {hours} hodinami.", "today" => "dnes", "yesterday" => "včera", @@ -88,10 +88,10 @@ "The update was successful. Redirecting you to ownCloud now." => "Aktualizácia bola úspešná. Presmerovávam na prihlasovaciu stránku.", "ownCloud password reset" => "Obnovenie hesla pre ownCloud", "Use the following link to reset your password: {link}" => "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", -"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.
If it is not there ask your local administrator ." => "Odkaz na obnovenie hesla bol odoslaný na Vašu emailovú adresu.
Ak ho v krátkej dobe neobdržíte, skontrolujte si Váš kôš a priečinok spam.
Ak ho ani tam nenájdete, kontaktujte svojho administrátora.", -"Request failed!
Did you make sure your email/username was right?" => "Požiadavka zlyhala.
Uistili ste sa, že Vaše používateľské meno a email sú správne?", "You will receive a link to reset your password via Email." => "Odkaz pre obnovenie hesla obdržíte e-mailom.", -"Username" => "Meno používateľa", +"Reset email send." => "Obnovovací email bol odoslaný.", +"Request failed!" => "Požiadavka zlyhala!", +"Username" => "Prihlasovacie meno", "Request reset" => "Požiadať o obnovenie", "Your password was reset" => "Vaše heslo bolo obnovené", "To login page" => "Na prihlasovaciu stránku", @@ -100,11 +100,11 @@ "Personal" => "Osobné", "Users" => "Používatelia", "Apps" => "Aplikácie", -"Admin" => "Administrátor", +"Admin" => "Administrácia", "Help" => "Pomoc", "Access forbidden" => "Prístup odmietnutý", "Cloud not found" => "Nenájdené", -"Edit categories" => "Upraviť kategórie", +"Edit categories" => "Úprava kategórií", "Add" => "Pridať", "Security Warning" => "Bezpečnostné varovanie", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Verzia Vášho PHP je napadnuteľná pomocou techniky \"NULL Byte\" (CVE-2006-7243)", @@ -124,7 +124,7 @@ "Database tablespace" => "Tabuľkový priestor databázy", "Database host" => "Server databázy", "Finish setup" => "Dokončiť inštaláciu", -"web services under your control" => "webové služby pod Vašou kontrolou", +"web services under your control" => "webové služby pod vašou kontrolou", "Log out" => "Odhlásiť", "Automatic logon rejected!" => "Automatické prihlásenie bolo zamietnuté!", "If you did not change your password recently, your account may be compromised!" => "V nedávnej dobe ste nezmenili svoje heslo, Váš účet môže byť kompromitovaný.", diff --git a/core/l10n/sl.php b/core/l10n/sl.php index db5583c6101..b3cd5c353cf 100644 --- a/core/l10n/sl.php +++ b/core/l10n/sl.php @@ -34,7 +34,7 @@ "seconds ago" => "pred nekaj sekundami", "1 minute ago" => "pred minuto", "{minutes} minutes ago" => "pred {minutes} minutami", -"1 hour ago" => "Pred 1 uro", +"1 hour ago" => "pred 1 uro", "{hours} hours ago" => "pred {hours} urami", "today" => "danes", "yesterday" => "včeraj", @@ -72,7 +72,7 @@ "No people found" => "Ni najdenih uporabnikov", "Resharing is not allowed" => "Nadaljnja souporaba ni dovoljena", "Shared in {item} with {user}" => "V souporabi v {item} z {user}", -"Unshare" => "Prekliči souporabo", +"Unshare" => "Odstrani souporabo", "can edit" => "lahko ureja", "access control" => "nadzor dostopa", "create" => "ustvari", @@ -88,10 +88,10 @@ "The update was successful. Redirecting you to ownCloud now." => "Posodobitev je uspešno končana. Stran bo preusmerjena na oblak ownCloud.", "ownCloud password reset" => "Ponastavitev gesla za oblak ownCloud", "Use the following link to reset your password: {link}" => "Za ponastavitev gesla uporabite povezavo: {link}", -"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.
If it is not there ask your local administrator ." => "Povezava za ponastavitev gesla je bila poslana na elektronski naslov.
V kolikor sporočila ne prejmete v doglednem času, preverite tudi mape vsiljene pošte.
Če ne bo niti tam, stopite v stik s skrbnikom.", -"Request failed!
Did you make sure your email/username was right?" => "Zahteva je spodletela!
Ali sta elektronski naslov oziroma uporabniško ime navedena pravilno?", "You will receive a link to reset your password via Email." => "Na elektronski naslov boste prejeli povezavo za ponovno nastavitev gesla.", -"Username" => "Uporabniško ime", +"Reset email send." => "Sporočilo z navodili za ponastavitev gesla je poslana na vaš elektronski naslov.", +"Request failed!" => "Zahteva je spodletela!", +"Username" => "Uporabniško Ime", "Request reset" => "Zahtevaj ponovno nastavitev", "Your password was reset" => "Geslo je ponovno nastavljeno", "To login page" => "Na prijavno stran", diff --git a/core/l10n/sq.php b/core/l10n/sq.php index 8769a833e18..6881d0105c7 100644 --- a/core/l10n/sq.php +++ b/core/l10n/sq.php @@ -30,7 +30,7 @@ "October" => "Tetor", "November" => "Nëntor", "December" => "Dhjetor", -"Settings" => "Parametra", +"Settings" => "Parametrat", "seconds ago" => "sekonda më parë", "1 minute ago" => "1 minutë më parë", "{minutes} minutes ago" => "{minutes} minuta më parë", @@ -88,9 +88,9 @@ "The update was successful. Redirecting you to ownCloud now." => "Azhurnimi u krye. Tani do t'ju kaloj tek ownCloud-i.", "ownCloud password reset" => "Rivendosja e kodit të ownCloud-it", "Use the following link to reset your password: {link}" => "Përdorni lidhjen në vijim për të rivendosur kodin: {link}", -"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.
If it is not there ask your local administrator ." => "Lidhja për rivendosjen e kodit tuaj u dërgua tek email-i juaj.
Nëqoftëse nuk e merrni brenda një kohe të arsyeshme, kontrolloni dosjet e postës së padëshirueshme (spam).
Nëqoftëse nuk është as aty, pyesni administratorin tuaj lokal.", -"Request failed!
Did you make sure your email/username was right?" => "Kërkesa dështoi!
A u siguruat që email-i/përdoruesi juaj ishte i saktë?", "You will receive a link to reset your password via Email." => "Do t'iu vijë një email që përmban një lidhje për ta rivendosur kodin.", +"Reset email send." => "Emaili i rivendosjes u dërgua.", +"Request failed!" => "Kërkesa dështoi!", "Username" => "Përdoruesi", "Request reset" => "Bëj kërkesë për rivendosjen", "Your password was reset" => "Kodi yt u rivendos", diff --git a/core/l10n/sr.php b/core/l10n/sr.php index 2329dc49b17..b71d8cdd945 100644 --- a/core/l10n/sr.php +++ b/core/l10n/sr.php @@ -27,7 +27,7 @@ "October" => "Октобар", "November" => "Новембар", "December" => "Децембар", -"Settings" => "Поставке", +"Settings" => "Подешавања", "seconds ago" => "пре неколико секунди", "1 minute ago" => "пре 1 минут", "{minutes} minutes ago" => "пре {minutes} минута", @@ -50,7 +50,7 @@ "Error" => "Грешка", "The app name is not specified." => "Име програма није унето.", "The required file {file} is not installed!" => "Потребна датотека {file} није инсталирана.", -"Share" => "Дели", +"Share" => "Дељење", "Error while sharing" => "Грешка у дељењу", "Error while unsharing" => "Грешка код искључења дељења", "Error while changing permissions" => "Грешка код промене дозвола", @@ -67,7 +67,7 @@ "No people found" => "Особе нису пронађене.", "Resharing is not allowed" => "Поновно дељење није дозвољено", "Shared in {item} with {user}" => "Подељено унутар {item} са {user}", -"Unshare" => "Укини дељење", +"Unshare" => "Не дели", "can edit" => "може да мења", "access control" => "права приступа", "create" => "направи", @@ -82,16 +82,18 @@ "ownCloud password reset" => "Поништавање лозинке за ownCloud", "Use the following link to reset your password: {link}" => "Овом везом ресетујте своју лозинку: {link}", "You will receive a link to reset your password via Email." => "Добићете везу за ресетовање лозинке путем е-поште.", +"Reset email send." => "Захтев је послат поштом.", +"Request failed!" => "Захтев одбијен!", "Username" => "Корисничко име", "Request reset" => "Захтевај ресетовање", "Your password was reset" => "Ваша лозинка је ресетована", "To login page" => "На страницу за пријаву", "New password" => "Нова лозинка", "Reset password" => "Ресетуј лозинку", -"Personal" => "Лично", +"Personal" => "Лична", "Users" => "Корисници", -"Apps" => "Апликације", -"Admin" => "Администратор", +"Apps" => "Програми", +"Admin" => "Аднинистрација", "Help" => "Помоћ", "Access forbidden" => "Забрањен приступ", "Cloud not found" => "Облак није нађен", diff --git a/core/l10n/sr@latin.php b/core/l10n/sr@latin.php index 238843aa176..ec3eab34e29 100644 --- a/core/l10n/sr@latin.php +++ b/core/l10n/sr@latin.php @@ -27,7 +27,7 @@ "Your password was reset" => "Vaša lozinka je resetovana", "New password" => "Nova lozinka", "Reset password" => "Resetuj lozinku", -"Personal" => "Lično", +"Personal" => "Lična", "Users" => "Korisnici", "Apps" => "Programi", "Admin" => "Adninistracija", diff --git a/core/l10n/sv.php b/core/l10n/sv.php index 26bcebdf6c5..553afea5f71 100644 --- a/core/l10n/sv.php +++ b/core/l10n/sv.php @@ -89,6 +89,8 @@ "ownCloud password reset" => "ownCloud lösenordsåterställning", "Use the following link to reset your password: {link}" => "Använd följande länk för att återställa lösenordet: {link}", "You will receive a link to reset your password via Email." => "Du får en länk att återställa ditt lösenord via e-post.", +"Reset email send." => "Återställ skickad e-post.", +"Request failed!" => "Begäran misslyckades!", "Username" => "Användarnamn", "Request reset" => "Begär återställning", "Your password was reset" => "Ditt lösenord har återställts", @@ -102,7 +104,7 @@ "Help" => "Hjälp", "Access forbidden" => "Åtkomst förbjuden", "Cloud not found" => "Hittade inget moln", -"Edit categories" => "Editera kategorier", +"Edit categories" => "Redigera kategorier", "Add" => "Lägg till", "Security Warning" => "Säkerhetsvarning", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Din version av PHP är sårbar för NULL byte attack (CVE-2006-7243)", @@ -112,7 +114,7 @@ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Din datakatalog och filer är förmodligen tillgängliga från Internet, eftersom .htaccess-filen inte fungerar.", "For information how to properly configure your server, please see the documentation." => "För information hur man korrekt konfigurera servern, var god se documentation.", "Create an admin account" => "Skapa ett administratörskonto", -"Advanced" => "Avancerad", +"Advanced" => "Avancerat", "Data folder" => "Datamapp", "Configure the database" => "Konfigurera databasen", "will be used" => "kommer att användas", diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php index b01f8df945e..b45f38627a3 100644 --- a/core/l10n/ta_LK.php +++ b/core/l10n/ta_LK.php @@ -64,10 +64,10 @@ "No people found" => "நபர்கள் யாரும் இல்லை", "Resharing is not allowed" => "மீள்பகிர்வதற்கு அனுமதி இல்லை ", "Shared in {item} with {user}" => "{பயனாளர்} உடன் {உருப்படி} பகிரப்பட்டுள்ளது", -"Unshare" => "பகிரப்படாதது", +"Unshare" => "பகிரமுடியாது", "can edit" => "தொகுக்க முடியும்", "access control" => "கட்டுப்பாடான அணுகல்", -"create" => "உருவவாக்கல்", +"create" => "படைத்தல்", "update" => "இற்றைப்படுத்தல்", "delete" => "நீக்குக", "share" => "பகிர்தல்", @@ -77,6 +77,8 @@ "ownCloud password reset" => "ownCloud இன் கடவுச்சொல் மீளமைப்பு", "Use the following link to reset your password: {link}" => "உங்கள் கடவுச்சொல்லை மீளமைக்க பின்வரும் இணைப்பை பயன்படுத்தவும் : {இணைப்பு}", "You will receive a link to reset your password via Email." => "நீங்கள் மின்னஞ்சல் மூலம் உங்களுடைய கடவுச்சொல்லை மீளமைப்பதற்கான இணைப்பை பெறுவீர்கள். ", +"Reset email send." => "மின்னுஞ்சல் அனுப்புதலை மீளமைக்குக", +"Request failed!" => "வேண்டுகோள் தோல்வியுற்றது!", "Username" => "பயனாளர் பெயர்", "Request reset" => "கோரிக்கை மீளமைப்பு", "Your password was reset" => "உங்களுடைய கடவுச்சொல் மீளமைக்கப்பட்டது", @@ -84,9 +86,9 @@ "New password" => "புதிய கடவுச்சொல்", "Reset password" => "மீளமைத்த கடவுச்சொல்", "Personal" => "தனிப்பட்ட", -"Users" => "பயனாளர்", -"Apps" => "செயலிகள்", -"Admin" => "நிர்வாகம்", +"Users" => "பயனாளர்கள்", +"Apps" => "பயன்பாடுகள்", +"Admin" => "நிர்வாகி", "Help" => "உதவி", "Access forbidden" => "அணுக தடை", "Cloud not found" => "Cloud காணப்படவில்லை", @@ -96,7 +98,7 @@ "No secure random number generator is available, please enable the PHP OpenSSL extension." => "குறிப்பிட்ட எண்ணிக்கை பாதுகாப்பான புறப்பாக்கி / உண்டாக்கிகள் இல்லை, தயவுசெய்து PHP OpenSSL நீட்சியை இயலுமைப்படுத்துக. ", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "பாதுகாப்பான சீரற்ற எண்ணிக்கையான புறப்பாக்கி இல்லையெனின், தாக்குனரால் கடவுச்சொல் மீளமைப்பு அடையாளவில்லைகள் முன்மொழியப்பட்டு உங்களுடைய கணக்கை கைப்பற்றலாம்.", "Create an admin account" => " நிர்வாக கணக்கொன்றை உருவாக்குக", -"Advanced" => "உயர்ந்த", +"Advanced" => "மேம்பட்ட", "Data folder" => "தரவு கோப்புறை", "Configure the database" => "தரவுத்தளத்தை தகவமைக்க", "will be used" => "பயன்படுத்தப்படும்", @@ -106,7 +108,7 @@ "Database tablespace" => "தரவுத்தள அட்டவணை", "Database host" => "தரவுத்தள ஓம்புனர்", "Finish setup" => "அமைப்பை முடிக்க", -"web services under your control" => "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது", +"web services under your control" => "உங்கள் கட்டுப்பாட்டின் கீழ் இணைய சேவைகள்", "Log out" => "விடுபதிகை செய்க", "Automatic logon rejected!" => "தன்னிச்சையான புகுபதிகை நிராகரிப்பட்டது!", "If you did not change your password recently, your account may be compromised!" => "உங்களுடைய கடவுச்சொல்லை அண்மையில் மாற்றவில்லையின், உங்களுடைய கணக்கு சமரசமாகிவிடும்!", diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php index 1114726434c..47d4b87b17c 100644 --- a/core/l10n/th_TH.php +++ b/core/l10n/th_TH.php @@ -49,7 +49,7 @@ "Yes" => "ตกลง", "No" => "ไม่ตกลง", "The object type is not specified." => "ชนิดของวัตถุยังไม่ได้รับการระบุ", -"Error" => "ข้อผิดพลาด", +"Error" => "พบข้อผิดพลาด", "The app name is not specified." => "ชื่อของแอปยังไม่ได้รับการระบุชื่อ", "The required file {file} is not installed!" => "ไฟล์ {file} ซึ่งเป็นไฟล์ที่จำเป็นต้องได้รับการติดตั้งไว้ก่อน ยังไม่ได้ถูกติดตั้ง", "Shared" => "แชร์แล้ว", @@ -88,6 +88,8 @@ "ownCloud password reset" => "รีเซ็ตรหัสผ่าน ownCloud", "Use the following link to reset your password: {link}" => "ใช้ลิงค์ต่อไปนี้เพื่อเปลี่ยนรหัสผ่านของคุณใหม่: {link}", "You will receive a link to reset your password via Email." => "คุณจะได้รับลิงค์เพื่อกำหนดรหัสผ่านใหม่ทางอีเมล์", +"Reset email send." => "รีเซ็ตค่าการส่งอีเมล", +"Request failed!" => "คำร้องขอล้มเหลว!", "Username" => "ชื่อผู้ใช้งาน", "Request reset" => "ขอเปลี่ยนรหัสใหม่", "Your password was reset" => "รหัสผ่านของคุณถูกเปลี่ยนเรียบร้อยแล้ว", @@ -96,8 +98,8 @@ "Reset password" => "เปลี่ยนรหัสผ่าน", "Personal" => "ส่วนตัว", "Users" => "ผู้ใช้งาน", -"Apps" => "แอปฯ", -"Admin" => "ผู้ดูแล", +"Apps" => "Apps", +"Admin" => "ผู้ดูแลระบบ", "Help" => "ช่วยเหลือ", "Access forbidden" => "การเข้าถึงถูกหวงห้าม", "Cloud not found" => "ไม่พบ Cloud", @@ -117,7 +119,7 @@ "Database tablespace" => "พื้นที่ตารางในฐานข้อมูล", "Database host" => "Database host", "Finish setup" => "ติดตั้งเรียบร้อยแล้ว", -"web services under your control" => "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้", +"web services under your control" => "web services under your control", "Log out" => "ออกจากระบบ", "Automatic logon rejected!" => "การเข้าสู่ระบบอัตโนมัติถูกปฏิเสธแล้ว", "If you did not change your password recently, your account may be compromised!" => "หากคุณยังไม่ได้เปลี่ยนรหัสผ่านของคุณเมื่อเร็วๆนี้, บัญชีของคุณอาจถูกบุกรุกโดยผู้อื่น", diff --git a/core/l10n/tr.php b/core/l10n/tr.php index 4b858e82e4b..d6b25b40933 100644 --- a/core/l10n/tr.php +++ b/core/l10n/tr.php @@ -89,7 +89,9 @@ "ownCloud password reset" => "ownCloud parola sıfırlama", "Use the following link to reset your password: {link}" => "Bu bağlantıyı kullanarak parolanızı sıfırlayın: {link}", "You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantı Eposta olarak gönderilecek.", -"Username" => "Kullanıcı Adı", +"Reset email send." => "Sıfırlama epostası gönderildi.", +"Request failed!" => "İstek reddedildi!", +"Username" => "Kullanıcı adı", "Request reset" => "Sıfırlama iste", "Your password was reset" => "Parolanız sıfırlandı", "To login page" => "Giriş sayfasına git", @@ -122,7 +124,7 @@ "Database tablespace" => "Veritabanı tablo alanı", "Database host" => "Veritabanı sunucusu", "Finish setup" => "Kurulumu tamamla", -"web services under your control" => "Bilgileriniz güvenli ve şifreli", +"web services under your control" => "kontrolünüzdeki web servisleri", "Log out" => "Çıkış yap", "Automatic logon rejected!" => "Otomatik oturum açma reddedildi!", "If you did not change your password recently, your account may be compromised!" => "Yakın zamanda parolanızı değiştirmedi iseniz hesabınız riske girebilir.", diff --git a/core/l10n/uk.php b/core/l10n/uk.php index a9e4117a619..1e86ed7d36c 100644 --- a/core/l10n/uk.php +++ b/core/l10n/uk.php @@ -72,7 +72,7 @@ "No people found" => "Жодної людини не знайдено", "Resharing is not allowed" => "Пере-публікація не дозволяється", "Shared in {item} with {user}" => "Опубліковано {item} для {user}", -"Unshare" => "Закрити доступ", +"Unshare" => "Заборонити доступ", "can edit" => "може редагувати", "access control" => "контроль доступу", "create" => "створити", @@ -89,6 +89,8 @@ "ownCloud password reset" => "скидання пароля ownCloud", "Use the following link to reset your password: {link}" => "Використовуйте наступне посилання для скидання пароля: {link}", "You will receive a link to reset your password via Email." => "Ви отримаєте посилання для скидання вашого паролю на Ел. пошту.", +"Reset email send." => "Лист скидання відправлено.", +"Request failed!" => "Невдалий запит!", "Username" => "Ім'я користувача", "Request reset" => "Запит скидання", "Your password was reset" => "Ваш пароль був скинутий", @@ -98,7 +100,7 @@ "Personal" => "Особисте", "Users" => "Користувачі", "Apps" => "Додатки", -"Admin" => "Адмін", +"Admin" => "Адміністратор", "Help" => "Допомога", "Access forbidden" => "Доступ заборонено", "Cloud not found" => "Cloud не знайдено", @@ -122,7 +124,7 @@ "Database tablespace" => "Таблиця бази даних", "Database host" => "Хост бази даних", "Finish setup" => "Завершити налаштування", -"web services under your control" => "підконтрольні Вам веб-сервіси", +"web services under your control" => "веб-сервіс під вашим контролем", "Log out" => "Вихід", "Automatic logon rejected!" => "Автоматичний вхід в систему відхилений!", "If you did not change your password recently, your account may be compromised!" => "Якщо Ви не міняли пароль останнім часом, Ваш обліковий запис може бути скомпрометованим!", diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 0b45fa69313..709a8743086 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -9,7 +9,7 @@ "Object type not provided." => "Loại đối tượng không được cung cấp.", "%s ID not provided." => "%s ID không được cung cấp.", "Error adding %s to favorites." => "Lỗi thêm %s vào mục yêu thích.", -"No categories selected for deletion." => "Bạn chưa chọn mục để xóa", +"No categories selected for deletion." => "Không có thể loại nào được chọn để xóa.", "Error removing %s from favorites." => "Lỗi xóa %s từ mục yêu thích.", "Sunday" => "Chủ nhật", "Monday" => "Thứ 2", @@ -72,7 +72,7 @@ "No people found" => "Không tìm thấy người nào", "Resharing is not allowed" => "Chia sẻ lại không được cho phép", "Shared in {item} with {user}" => "Đã được chia sẽ trong {item} với {user}", -"Unshare" => "Bỏ chia sẻ", +"Unshare" => "Gỡ bỏ chia sẻ", "can edit" => "có thể chỉnh sửa", "access control" => "quản lý truy cập", "create" => "tạo", @@ -89,20 +89,22 @@ "ownCloud password reset" => "Khôi phục mật khẩu Owncloud ", "Use the following link to reset your password: {link}" => "Dùng đường dẫn sau để khôi phục lại mật khẩu : {link}", "You will receive a link to reset your password via Email." => "Vui lòng kiểm tra Email để khôi phục lại mật khẩu.", -"Username" => "Tên đăng nhập", +"Reset email send." => "Thiết lập lại email gởi.", +"Request failed!" => "Yêu cầu của bạn không thành công !", +"Username" => "Tên người dùng", "Request reset" => "Yêu cầu thiết lập lại ", "Your password was reset" => "Mật khẩu của bạn đã được khôi phục", "To login page" => "Trang đăng nhập", "New password" => "Mật khẩu mới", "Reset password" => "Khôi phục mật khẩu", "Personal" => "Cá nhân", -"Users" => "Người dùng", +"Users" => "Người sử dụng", "Apps" => "Ứng dụng", "Admin" => "Quản trị", "Help" => "Giúp đỡ", "Access forbidden" => "Truy cập bị cấm", "Cloud not found" => "Không tìm thấy Clound", -"Edit categories" => "Sửa chuyên mục", +"Edit categories" => "Sửa thể loại", "Add" => "Thêm", "Security Warning" => "Cảnh bảo bảo mật", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "Không an toàn ! chức năng random number generator đã có sẵn ,vui lòng bật PHP OpenSSL extension.", @@ -120,7 +122,7 @@ "Database tablespace" => "Cơ sở dữ liệu tablespace", "Database host" => "Database host", "Finish setup" => "Cài đặt hoàn tất", -"web services under your control" => "dịch vụ web dưới sự kiểm soát của bạn", +"web services under your control" => "các dịch vụ web dưới sự kiểm soát của bạn", "Log out" => "Đăng xuất", "Automatic logon rejected!" => "Tự động đăng nhập đã bị từ chối !", "If you did not change your password recently, your account may be compromised!" => "Nếu bạn không thay đổi mật khẩu gần đây của bạn, tài khoản của bạn có thể gặp nguy hiểm!", diff --git a/core/l10n/zh_CN.GB2312.php b/core/l10n/zh_CN.GB2312.php index 7e98d69b642..9fbfac2eec1 100644 --- a/core/l10n/zh_CN.GB2312.php +++ b/core/l10n/zh_CN.GB2312.php @@ -7,7 +7,7 @@ "No category to add?" => "没有分类添加了?", "This category already exists: %s" => "此分类已存在:%s", "Object type not provided." => "未选择对象类型。", -"No categories selected for deletion." => "没有选中要删除的分类。", +"No categories selected for deletion." => "没有选者要删除的分类.", "Sunday" => "星期天", "Monday" => "星期一", "Tuesday" => "星期二", @@ -47,7 +47,7 @@ "Yes" => "是", "No" => "否", "The object type is not specified." => "未指定对象类型。", -"Error" => "出错", +"Error" => "错误", "The app name is not specified." => "未指定应用名称。", "The required file {file} is not installed!" => "未安装所需要的文件 {file} !", "Shared" => "已分享", @@ -86,16 +86,18 @@ "ownCloud password reset" => "私有云密码重置", "Use the following link to reset your password: {link}" => "使用下面的链接来重置你的密码:{link}", "You will receive a link to reset your password via Email." => "你将会收到一个重置密码的链接", +"Reset email send." => "重置邮件已发送。", +"Request failed!" => "请求失败!", "Username" => "用户名", "Request reset" => "要求重置", "Your password was reset" => "你的密码已经被重置了", "To login page" => "转至登陆页面", "New password" => "新密码", "Reset password" => "重置密码", -"Personal" => "私人", +"Personal" => "个人的", "Users" => "用户", -"Apps" => "程序", -"Admin" => "管理员", +"Apps" => "应用程序", +"Admin" => "管理", "Help" => "帮助", "Access forbidden" => "禁止访问", "Cloud not found" => "云 没有被找到", @@ -118,7 +120,7 @@ "Database tablespace" => "数据库表格空间", "Database host" => "数据库主机", "Finish setup" => "完成安装", -"web services under your control" => "您控制的网络服务", +"web services under your control" => "你控制下的网络服务", "Log out" => "注销", "Automatic logon rejected!" => "自动登录被拒绝!", "If you did not change your password recently, your account may be compromised!" => "如果您最近没有修改您的密码,那您的帐号可能被攻击了!", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 49cd1e2ebf3..926d4691ed1 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -54,13 +54,13 @@ "The app name is not specified." => "未指定App名称。", "The required file {file} is not installed!" => "所需文件{file}未安装!", "Shared" => "已共享", -"Share" => "分享", +"Share" => "共享", "Error while sharing" => "共享时出错", "Error while unsharing" => "取消共享时出错", "Error while changing permissions" => "修改权限时出错", "Shared with you and the group {group} by {owner}" => "{owner}共享给您及{group}组", "Shared with you by {owner}" => " {owner}与您共享", -"Share with" => "分享之", +"Share with" => "共享", "Share with link" => "共享链接", "Password protect" => "密码保护", "Password" => "密码", @@ -89,6 +89,8 @@ "ownCloud password reset" => "重置 ownCloud 密码", "Use the following link to reset your password: {link}" => "使用以下链接重置您的密码:{link}", "You will receive a link to reset your password via Email." => "您将会收到包含可以重置密码链接的邮件。", +"Reset email send." => "重置邮件已发送。", +"Request failed!" => "请求失败!", "Username" => "用户名", "Request reset" => "请求重置", "Your password was reset" => "您的密码已重置", @@ -98,12 +100,12 @@ "Personal" => "个人", "Users" => "用户", "Apps" => "应用", -"Admin" => "管理", +"Admin" => "管理员", "Help" => "帮助", "Access forbidden" => "访问禁止", "Cloud not found" => "未找到云", "Edit categories" => "编辑分类", -"Add" => "增加", +"Add" => "添加", "Security Warning" => "安全警告", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "随机数生成器无效,请启用PHP的OpenSSL扩展", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "没有安全随机码生成器,攻击者可能会猜测密码重置信息从而窃取您的账户", @@ -120,7 +122,7 @@ "Database tablespace" => "数据库表空间", "Database host" => "数据库主机", "Finish setup" => "安装完成", -"web services under your control" => "您控制的web服务", +"web services under your control" => "由您掌控的网络服务", "Log out" => "注销", "Automatic logon rejected!" => "自动登录被拒绝!", "If you did not change your password recently, your account may be compromised!" => "如果您没有最近修改您的密码,您的帐户可能会受到影响!", diff --git a/core/l10n/zh_HK.php b/core/l10n/zh_HK.php index c4f40095177..178ab88e5e0 100644 --- a/core/l10n/zh_HK.php +++ b/core/l10n/zh_HK.php @@ -55,6 +55,8 @@ "The update was successful. Redirecting you to ownCloud now." => "更新成功, 正", "Use the following link to reset your password: {link}" => "請用以下連結重設你的密碼: {link}", "You will receive a link to reset your password via Email." => "你將收到一封電郵", +"Reset email send." => "重設密碼郵件已傳", +"Request failed!" => "請求失敗", "Username" => "用戶名稱", "Request reset" => "重設", "Your password was reset" => "你的密碼已被重設", diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index cfc3a9fe332..3199688be30 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -34,7 +34,7 @@ "seconds ago" => "幾秒前", "1 minute ago" => "1 分鐘前", "{minutes} minutes ago" => "{minutes} 分鐘前", -"1 hour ago" => "1 小時之前", +"1 hour ago" => "1 個小時前", "{hours} hours ago" => "{hours} 小時前", "today" => "今天", "yesterday" => "昨天", @@ -89,6 +89,8 @@ "ownCloud password reset" => "ownCloud 密碼重設", "Use the following link to reset your password: {link}" => "請至以下連結重設您的密碼: {link}", "You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到你的電子郵件信箱。", +"Reset email send." => "重設郵件已送出。", +"Request failed!" => "請求失敗!", "Username" => "使用者名稱", "Request reset" => "請求重設", "Your password was reset" => "您的密碼已重設", @@ -98,8 +100,8 @@ "Personal" => "個人", "Users" => "使用者", "Apps" => "應用程式", -"Admin" => "管理", -"Help" => "說明", +"Admin" => "管理者", +"Help" => "幫助", "Access forbidden" => "存取被拒", "Cloud not found" => "未發現雲端", "Edit categories" => "編輯分類", diff --git a/core/lostpassword/templates/lostpassword.php b/core/lostpassword/templates/lostpassword.php index c19c6893f13..dc9f0bc8ad3 100644 --- a/core/lostpassword/templates/lostpassword.php +++ b/core/lostpassword/templates/lostpassword.php @@ -1,24 +1,17 @@ - -

- t('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.
If it is not there ask your local administrator .')); - ?> -

- -
-
+ +
+ t('You will receive a link to reset your password via Email.'); ?> + + t('Reset email send.'); ?> + -

- t('Request failed!
Did you make sure your email/username was right?')); ?> -

+ t('Request failed!'); ?> - t('You will receive a link to reset your password via Email.')); ?>

+ - -

- -
- - + + +
+ diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 4dc4a2c7593..cfe0a551943 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -32,9 +32,6 @@
+
+

t('Internal Username'));?>

+

t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only to newly mapped (added) LDAP users.'));?>

+

+

t('Username-LDAP User Mapping'));?>

+

t('ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage.' ));?>

+

+
t('Help'));?> -- GitLab From 0b5f6b9c13f5516c2d16fb938e77c9168a74b76d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:16:02 +0200 Subject: [PATCH 233/454] Move autoloader to it's own class --- lib/autoloader.php | 65 ++++++++++++++++++++++++++++++++++++++++++++++ lib/base.php | 62 +++++-------------------------------------- 2 files changed, 71 insertions(+), 56 deletions(-) create mode 100644 lib/autoloader.php diff --git a/lib/autoloader.php b/lib/autoloader.php new file mode 100644 index 00000000000..27052e60a79 --- /dev/null +++ b/lib/autoloader.php @@ -0,0 +1,65 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +class Autoloader { + public function load($class) { + $class = trim($class, '\\'); + + if (array_key_exists($class, \OC::$CLASSPATH)) { + $path = \OC::$CLASSPATH[$class]; + /** @TODO: Remove this when necessary + Remove "apps/" from inclusion path for smooth migration to mutli app dir + */ + if (strpos($path, 'apps/') === 0) { + \OC_Log::write('core', 'include path for class "' . $class . '" starts with "apps/"', \OC_Log::DEBUG); + $path = str_replace('apps/', '', $path); + } + } elseif (strpos($class, 'OC_') === 0) { + $path = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); + } elseif (strpos($class, 'OC\\') === 0) { + $path = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); + } elseif (strpos($class, 'OCP\\') === 0) { + $path = 'public/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); + } elseif (strpos($class, 'OCA\\') === 0) { + foreach (\OC::$APPSROOTS as $appDir) { + $path = strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $path); + if (file_exists($fullPath)) { + require_once $fullPath; + return false; + } + // If not found in the root of the app directory, insert '/lib' after app id and try again. + $libpath = substr($path, 0, strpos($path, '/')) . '/lib' . substr($path, strpos($path, '/')); + $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $libpath); + if (file_exists($fullPath)) { + require_once $fullPath; + return false; + } + } + } elseif (strpos($class, 'Sabre_') === 0) { + $path = str_replace('_', '/', $class) . '.php'; + } elseif (strpos($class, 'Symfony\\Component\\Routing\\') === 0) { + $path = 'symfony/routing/' . str_replace('\\', '/', $class) . '.php'; + } elseif (strpos($class, 'Sabre\\VObject') === 0) { + $path = str_replace('\\', '/', $class) . '.php'; + } elseif (strpos($class, 'Test_') === 0) { + $path = 'tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php'); + } elseif (strpos($class, 'Test\\') === 0) { + $path = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); + } else { + return false; + } + + if ($fullPath = stream_resolve_include_path($path)) { + require_once $fullPath; + } + return false; + } +} diff --git a/lib/base.php b/lib/base.php index 8633ae9b637..eb3bd410d3b 100644 --- a/lib/base.php +++ b/lib/base.php @@ -75,61 +75,9 @@ class OC { protected static $router = null; /** - * SPL autoload + * @var \OC\Autoloader $loader */ - public static function autoload($className) { - $className = trim($className, '\\'); - - if (array_key_exists($className, OC::$CLASSPATH)) { - $path = OC::$CLASSPATH[$className]; - /** @TODO: Remove this when necessary - Remove "apps/" from inclusion path for smooth migration to mutli app dir - */ - if (strpos($path, 'apps/') === 0) { - OC_Log::write('core', 'include path for class "' . $className . '" starts with "apps/"', OC_Log::DEBUG); - $path = str_replace('apps/', '', $path); - } - } elseif (strpos($className, 'OC_') === 0) { - $path = strtolower(str_replace('_', '/', substr($className, 3)) . '.php'); - } elseif (strpos($className, 'OC\\') === 0) { - $path = strtolower(str_replace('\\', '/', substr($className, 3)) . '.php'); - } elseif (strpos($className, 'OCP\\') === 0) { - $path = 'public/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php'); - } elseif (strpos($className, 'OCA\\') === 0) { - foreach (self::$APPSROOTS as $appDir) { - $path = strtolower(str_replace('\\', '/', substr($className, 4)) . '.php'); - $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $path); - if (file_exists($fullPath)) { - require_once $fullPath; - return false; - } - // If not found in the root of the app directory, insert '/lib' after app id and try again. - $libpath = substr($path, 0, strpos($path, '/')) . '/lib' . substr($path, strpos($path, '/')); - $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $libpath); - if (file_exists($fullPath)) { - require_once $fullPath; - return false; - } - } - } elseif (strpos($className, 'Sabre_') === 0) { - $path = str_replace('_', '/', $className) . '.php'; - } elseif (strpos($className, 'Symfony\\Component\\Routing\\') === 0) { - $path = 'symfony/routing/' . str_replace('\\', '/', $className) . '.php'; - } elseif (strpos($className, 'Sabre\\VObject') === 0) { - $path = str_replace('\\', '/', $className) . '.php'; - } elseif (strpos($className, 'Test_') === 0) { - $path = 'tests/lib/' . strtolower(str_replace('_', '/', substr($className, 5)) . '.php'); - } elseif (strpos($className, 'Test\\') === 0) { - $path = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($className, 5)) . '.php'); - } else { - return false; - } - - if ($fullPath = stream_resolve_include_path($path)) { - require_once $fullPath; - } - return false; - } + public static $loader = null; public static function initPaths() { // calculate the root directories @@ -396,7 +344,9 @@ class OC { public static function init() { // register autoloader - spl_autoload_register(array('OC', 'autoload')); + require_once 'autoloader.php'; + self::$loader=new \OC\Autoloader(); + spl_autoload_register(array(self::$loader, 'load')); OC_Util::issetlocaleworking(); // set some stuff @@ -643,7 +593,7 @@ class OC { // Deny the redirect if the URL contains a @ // This prevents unvalidated redirects like ?redirect_url=:user@domain.com - if (strpos($location, '@') === FALSE) { + if (strpos($location, '@') === false) { header('Location: ' . $location); return; } -- GitLab From 19cfe74bf5d74c6f761513baf60da9ef7945f30e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:19:00 +0200 Subject: [PATCH 234/454] Add per-autoloader classPath --- lib/autoloader.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 27052e60a79..091c4de9674 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -9,13 +9,34 @@ namespace OC; class Autoloader { + private $classPaths = array(); + + /** + * Add a custom classpath to the autoloader + * + * @param string $class + * @param string $path + */ + public function registerClass($class, $path) { + $this->classPaths[$class] = $path; + } + + /** + * Load the specified class + * + * @param string $class + * @return bool + */ public function load($class) { $class = trim($class, '\\'); - if (array_key_exists($class, \OC::$CLASSPATH)) { + if (array_key_exists($class, $this->classPaths)) { + $path = $this->classPaths[$class]; + } else if (array_key_exists($class, \OC::$CLASSPATH)) { $path = \OC::$CLASSPATH[$class]; - /** @TODO: Remove this when necessary - Remove "apps/" from inclusion path for smooth migration to mutli app dir + /** + * @TODO: Remove this when necessary + * Remove "apps/" from inclusion path for smooth migration to mutli app dir */ if (strpos($path, 'apps/') === 0) { \OC_Log::write('core', 'include path for class "' . $class . '" starts with "apps/"', \OC_Log::DEBUG); -- GitLab From cdf4bec6a1f9b30ca9b8e5a121582689c91c351d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 7 May 2013 22:19:48 +0200 Subject: [PATCH 235/454] fix for tearDownFS, after filesystem::tearDown() the root is not mounted --- lib/util.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/util.php b/lib/util.php index 38453c1ce92..4fc1e8b232c 100755 --- a/lib/util.php +++ b/lib/util.php @@ -66,6 +66,7 @@ class OC_Util { public static function tearDownFS() { \OC\Files\Filesystem::tearDown(); self::$fsSetup=false; + self::$rootMounted=false; } /** -- GitLab From d1fcb7eb5237d597a878e5f7b61693e7dee29ca8 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:21:59 +0200 Subject: [PATCH 236/454] Allow the autoloader to try mutliple possible paths for each path --- lib/autoloader.php | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 091c4de9674..9547ddc7d91 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -30,10 +30,11 @@ class Autoloader { public function load($class) { $class = trim($class, '\\'); + $paths = array(); if (array_key_exists($class, $this->classPaths)) { - $path = $this->classPaths[$class]; + $paths[] = $this->classPaths[$class]; } else if (array_key_exists($class, \OC::$CLASSPATH)) { - $path = \OC::$CLASSPATH[$class]; + $paths[] = \OC::$CLASSPATH[$class]; /** * @TODO: Remove this when necessary * Remove "apps/" from inclusion path for smooth migration to mutli app dir @@ -43,43 +44,35 @@ class Autoloader { $path = str_replace('apps/', '', $path); } } elseif (strpos($class, 'OC_') === 0) { - $path = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); + $paths[] = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OC\\') === 0) { - $path = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); + $paths[] = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OCP\\') === 0) { - $path = 'public/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); + $paths[] = 'public/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OCA\\') === 0) { foreach (\OC::$APPSROOTS as $appDir) { - $path = strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); - $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $path); - if (file_exists($fullPath)) { - require_once $fullPath; - return false; - } + $paths[] = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); // If not found in the root of the app directory, insert '/lib' after app id and try again. - $libpath = substr($path, 0, strpos($path, '/')) . '/lib' . substr($path, strpos($path, '/')); - $fullPath = stream_resolve_include_path($appDir['path'] . '/' . $libpath); - if (file_exists($fullPath)) { - require_once $fullPath; - return false; - } + $paths[] = $appDir['path'] . '/lib/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); } } elseif (strpos($class, 'Sabre_') === 0) { - $path = str_replace('_', '/', $class) . '.php'; + $paths[] = str_replace('_', '/', $class) . '.php'; } elseif (strpos($class, 'Symfony\\Component\\Routing\\') === 0) { - $path = 'symfony/routing/' . str_replace('\\', '/', $class) . '.php'; + $paths[] = 'symfony/routing/' . str_replace('\\', '/', $class) . '.php'; } elseif (strpos($class, 'Sabre\\VObject') === 0) { - $path = str_replace('\\', '/', $class) . '.php'; + $paths[] = str_replace('\\', '/', $class) . '.php'; } elseif (strpos($class, 'Test_') === 0) { - $path = 'tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php'); + $paths[] = 'tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php'); } elseif (strpos($class, 'Test\\') === 0) { - $path = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); + $paths[] = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); } else { return false; } - if ($fullPath = stream_resolve_include_path($path)) { - require_once $fullPath; + foreach ($paths as $path) { + if ($fullPath = stream_resolve_include_path($path)) { + require_once $fullPath; + } } return false; } -- GitLab From 33fc830dd3c037fadd4be35d41937b43c418c188 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 7 May 2013 22:22:05 +0200 Subject: [PATCH 237/454] added test for re-share --- apps/files_encryption/tests/share.php | 75 ++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 6 deletions(-) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index b6f5ce2c6b8..11a38645405 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -43,8 +43,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $userHome = \OC_User::getHome('admin'); $this->dataDir = str_replace('/admin', '', $userHome); - OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes'); + \OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes'); + OC_Hook::clear('OCP\\Share'); // Sharing-related hooks OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); @@ -61,14 +62,14 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { } - function testShareFile() { + function testShareFile($withTeardown = true) { // create user1 $this->loginHelper('user1', true); // login as admin $this->loginHelper('admin'); - $filename = 'share-tmp-'.time().'.test'; + $filename = 'share-tmp.test'; $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataShort ); @@ -91,7 +92,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = $proxyStatus; // share the file - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1', OCP\PERMISSION_READ); + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1', OCP\PERMISSION_ALL); $this->loginHelper('admin'); @@ -101,12 +102,73 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // login as user1 $this->loginHelper('user1'); - $view = new \OC\Files\View('/user1/files/'); // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $view->file_get_contents('Shared/' . $filename); + $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared/' . $filename); // check if data is the same $this->assertEquals($this->dataShort, $retreivedCryptedFile); + + if($withTeardown) { + // login as admin + $this->loginHelper('admin'); + + // share the file + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); + + // tear down + \OC_User::deleteUser('user1'); + } + } + + function testReShareFile($withTeardown = true) { + $this->testShareFile(false); + + // create user2 + $this->loginHelper('user2', true); + + // login as user1 + $this->loginHelper('user1'); + + $filename = 'share-tmp.test'; + + // get the file info + $fileInfo = $this->view->getFileInfo('/user1/files/Shared/'.$filename); + + // share the file + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2', OCP\PERMISSION_ALL); + + $this->loginHelper('admin'); + + // check if share key exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user2.shareKey')); + + // login as user2 + $this->loginHelper('user2'); + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $filename); + + // check if data is the same + $this->assertEquals($this->dataShort, $retreivedCryptedFile); + + if($withTeardown) { + // login as admin + $this->loginHelper('user1'); + + // share the file + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2'); + + $this->loginHelper('admin'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user2.shareKey')); + + // tear down + \OC_User::deleteUser('user2'); + } } function loginHelper($user, $create=false) { @@ -114,6 +176,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_User::createUser($user, $user); } + \OC_Util::tearDownFS(); \OC_User::setUserId(''); \OC_Util::setupFS($user); \OC_User::setUserId($user); -- GitLab From cac86bb4db670e868ae61aef176d229c814452c0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:24:47 +0200 Subject: [PATCH 238/454] Allow disabling the global classpath in an autoloader --- lib/autoloader.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 9547ddc7d91..94c0ac7cb5d 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -9,6 +9,8 @@ namespace OC; class Autoloader { + private $useGlobalClassPath = true; + private $classPaths = array(); /** @@ -21,6 +23,20 @@ class Autoloader { $this->classPaths[$class] = $path; } + /** + * disable the usage of the global classpath \OC::$CLASSPATH + */ + public function disableGlobalClassPath() { + $this->useGlobalClassPath = false; + } + + /** + * enable the usage of the global classpath \OC::$CLASSPATH + */ + public function enableGlobalClassPath() { + $this->useGlobalClassPath = true; + } + /** * Load the specified class * @@ -33,15 +49,15 @@ class Autoloader { $paths = array(); if (array_key_exists($class, $this->classPaths)) { $paths[] = $this->classPaths[$class]; - } else if (array_key_exists($class, \OC::$CLASSPATH)) { + } else if ($this->useGlobalClassPath and array_key_exists($class, \OC::$CLASSPATH)) { $paths[] = \OC::$CLASSPATH[$class]; /** * @TODO: Remove this when necessary * Remove "apps/" from inclusion path for smooth migration to mutli app dir */ - if (strpos($path, 'apps/') === 0) { + if (strpos(\OC::$CLASSPATH[$class], 'apps/') === 0) { \OC_Log::write('core', 'include path for class "' . $class . '" starts with "apps/"', \OC_Log::DEBUG); - $path = str_replace('apps/', '', $path); + $path = str_replace('apps/', '', \OC::$CLASSPATH[$class]); } } elseif (strpos($class, 'OC_') === 0) { $paths[] = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); -- GitLab From 03d8907df8e3d109f12b8d9b88e6597022dd6981 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 7 May 2013 22:19:48 +0200 Subject: [PATCH 239/454] fix for tearDownFS, after filesystem::tearDown() the root is not mounted --- lib/util.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/util.php b/lib/util.php index 79509b1c3b2..f30cdf6a534 100755 --- a/lib/util.php +++ b/lib/util.php @@ -67,6 +67,7 @@ class OC_Util { public static function tearDownFS() { \OC\Files\Filesystem::tearDown(); self::$fsSetup=false; + self::$rootMounted=false; } /** -- GitLab From 72ed74f28acc9f7897e1591e1d7f6e4e28e8b107 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:26:55 +0200 Subject: [PATCH 240/454] Autoloader: split getting the class paths and loading the class --- lib/autoloader.php | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 94c0ac7cb5d..95b73fe8903 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -38,12 +38,12 @@ class Autoloader { } /** - * Load the specified class + * get the possible paths for a class * * @param string $class - * @return bool + * @return array|bool an array of possible paths or false if the class is not part of ownCloud */ - public function load($class) { + public function findClass($class) { $class = trim($class, '\\'); $paths = array(); @@ -57,7 +57,7 @@ class Autoloader { */ if (strpos(\OC::$CLASSPATH[$class], 'apps/') === 0) { \OC_Log::write('core', 'include path for class "' . $class . '" starts with "apps/"', \OC_Log::DEBUG); - $path = str_replace('apps/', '', \OC::$CLASSPATH[$class]); + $paths[] = str_replace('apps/', '', \OC::$CLASSPATH[$class]); } } elseif (strpos($class, 'OC_') === 0) { $paths[] = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); @@ -84,10 +84,23 @@ class Autoloader { } else { return false; } + return $paths; + } + + /** + * Load the specified class + * + * @param string $class + * @return bool + */ + public function load($class) { + $paths = $this->findClass($class); - foreach ($paths as $path) { - if ($fullPath = stream_resolve_include_path($path)) { - require_once $fullPath; + if (is_array($paths)) { + foreach ($paths as $path) { + if ($fullPath = stream_resolve_include_path($path)) { + require_once $fullPath; + } } } return false; -- GitLab From 6d903cf7ae30ef3b9fb9faa34ee8b8347ac47e93 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:39:35 +0200 Subject: [PATCH 241/454] Autoloader: add support for custom namespace paths --- lib/autoloader.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 95b73fe8903..976ec6b1a87 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -11,8 +11,20 @@ namespace OC; class Autoloader { private $useGlobalClassPath = true; + private $namespacePaths = array(); + private $classPaths = array(); + /** + * Add a custom namespace to the autoloader + * + * @param string $namespace + * @param string $path + */ + public function registerNamespace($namespace, $path) { + $this->namespacePaths[$namespace] = $path; + } + /** * Add a custom classpath to the autoloader * @@ -60,6 +72,8 @@ class Autoloader { $paths[] = str_replace('apps/', '', \OC::$CLASSPATH[$class]); } } elseif (strpos($class, 'OC_') === 0) { + // first check for legacy classes if underscores are used + $paths[] = 'legacy/' . strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); $paths[] = strtolower(str_replace('_', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OC\\') === 0) { $paths[] = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); @@ -82,7 +96,11 @@ class Autoloader { } elseif (strpos($class, 'Test\\') === 0) { $paths[] = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); } else { - return false; + foreach ($this->namespacePaths as $namespace => $dir) { + if (0 === strpos($class, $namespace)) { + $paths[] = $dir . '/' . str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php'; + } + } } return $paths; } -- GitLab From 0d25c0001ca276c3262476ebadcaba4f33bcd54a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 22:53:07 +0200 Subject: [PATCH 242/454] check for setlocale after setting up the paths to prevent autoloader confusion --- lib/base.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/base.php b/lib/base.php index eb3bd410d3b..667202d3aef 100644 --- a/lib/base.php +++ b/lib/base.php @@ -344,10 +344,14 @@ class OC { public static function init() { // register autoloader - require_once 'autoloader.php'; + require_once __DIR__ . '/autoloader.php'; self::$loader=new \OC\Autoloader(); + self::$loader->registerPrefix('Doctrine\\Common', 'doctrine/common/lib'); + self::$loader->registerPrefix('Doctrine\\DBAL', 'doctrine/dbal/lib'); + self::$loader->registerPrefix('Symfony\\Component\\Routing', 'symfony/routing'); + self::$loader->registerPrefix('Sabre\\VObject', '3rdparty'); + self::$loader->registerPrefix('Sabre_', '3rdparty'); spl_autoload_register(array(self::$loader, 'load')); - OC_Util::issetlocaleworking(); // set some stuff //ob_start(); @@ -404,6 +408,7 @@ class OC { } self::initPaths(); + OC_Util::issetlocaleworking(); // set debug mode if an xdebug session is active if (!defined('DEBUG') || !DEBUG) { -- GitLab From fdc49e7acbced4d09e4e96ea870ae25a9a32cbca Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 7 May 2013 22:56:59 +0200 Subject: [PATCH 243/454] added test for share folder --- apps/files_encryption/tests/share.php | 73 +++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 11a38645405..eba5dd5195a 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -166,8 +166,81 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user2.shareKey')); + // share the file + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); + // tear down \OC_User::deleteUser('user2'); + \OC_User::deleteUser('user1'); + } + } + + function testShareFolder($withTeardown = true) { + // create user1 + $this->loginHelper('user1', true); + + // login as admin + $this->loginHelper('admin'); + + $folder1 = '/folder1'; + $subfolder = '/subfolder1'; + $subsubfolder = '/subsubfolder1'; + + $filename = 'share-tmp.test'; + + $this->view->mkdir('/admin/files'.$folder1); + $this->view->mkdir('/admin/files'.$folder1.$subfolder); + $this->view->mkdir('/admin/files'.$folder1.$subfolder.$subsubfolder); + + $cryptedFile = file_put_contents( 'crypt://' . $folder1.$subfolder.$subsubfolder.'/'.$filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // get the file infos + $fileInfo = $this->view->getFileInfo('/admin/files/folder1/'); + + // check if we have fileInfos + $this->assertTrue(is_array($fileInfo)); + + \OC_FileProxy::$enabled = $proxyStatus; + + // share the file + \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1', OCP\PERMISSION_ALL); + + $this->loginHelper('admin'); + + // check if share key exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey')); + + // login as user1 + $this->loginHelper('user1'); + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared'.$folder1.$subfolder.$subsubfolder.'/'.$filename); + + // check if data is the same + $this->assertEquals($this->dataShort, $retreivedCryptedFile); + + if($withTeardown) { + // login as admin + $this->loginHelper('admin'); + + // share the file + \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey')); + + // tear down + \OC_User::deleteUser('user1'); } } -- GitLab From 2a01d3994080756316017e34b8c46c773332283f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 23:07:47 +0200 Subject: [PATCH 244/454] Autoloader: load the 3rdparty libraries using prefixes --- lib/autoloader.php | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index 976ec6b1a87..d84924d5969 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -11,18 +11,18 @@ namespace OC; class Autoloader { private $useGlobalClassPath = true; - private $namespacePaths = array(); + private $prefixPaths = array(); private $classPaths = array(); /** - * Add a custom namespace to the autoloader + * Add a custom prefix to the autoloader * - * @param string $namespace + * @param string $prefix * @param string $path */ - public function registerNamespace($namespace, $path) { - $this->namespacePaths[$namespace] = $path; + public function registerPrefix($prefix, $path) { + $this->prefixPaths[$prefix] = $path; } /** @@ -81,24 +81,23 @@ class Autoloader { $paths[] = 'public/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OCA\\') === 0) { foreach (\OC::$APPSROOTS as $appDir) { - $paths[] = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); - // If not found in the root of the app directory, insert '/lib' after app id and try again. - $paths[] = $appDir['path'] . '/lib/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + list(, $app,) = explode('\\', $class); + if (stream_resolve_include_path($appDir['path'] . '/' . strtolower($app))) { + $paths[] = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + // If not found in the root of the app directory, insert '/lib' after app id and try again. + $paths[] = $appDir['path'] . '/lib/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + } } - } elseif (strpos($class, 'Sabre_') === 0) { - $paths[] = str_replace('_', '/', $class) . '.php'; - } elseif (strpos($class, 'Symfony\\Component\\Routing\\') === 0) { - $paths[] = 'symfony/routing/' . str_replace('\\', '/', $class) . '.php'; - } elseif (strpos($class, 'Sabre\\VObject') === 0) { - $paths[] = str_replace('\\', '/', $class) . '.php'; } elseif (strpos($class, 'Test_') === 0) { $paths[] = 'tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php'); } elseif (strpos($class, 'Test\\') === 0) { $paths[] = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); } else { - foreach ($this->namespacePaths as $namespace => $dir) { - if (0 === strpos($class, $namespace)) { - $paths[] = $dir . '/' . str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php'; + foreach ($this->prefixPaths as $prefix => $dir) { + if (0 === strpos($class, $prefix)) { + $path = str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php'; + $path = str_replace('_', DIRECTORY_SEPARATOR, $path); + $paths[] = $dir . '/' . $path; } } } -- GitLab From e21a3a1a2324684f2e34bce024082d7d1d244b6a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 23:08:36 +0200 Subject: [PATCH 245/454] Autoloader: test cases --- tests/lib/autoloader.php | 58 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/tests/lib/autoloader.php b/tests/lib/autoloader.php index e769bf3bcf6..d9fc016adf5 100644 --- a/tests/lib/autoloader.php +++ b/tests/lib/autoloader.php @@ -6,14 +6,62 @@ * See the COPYING-README file. */ -class Test_AutoLoader extends PHPUnit_Framework_TestCase { +namespace Test; - public function testLeadingSlashOnClassName(){ - $this->assertTrue(class_exists('\OC\Files\Storage\Local')); +class AutoLoader extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Autoloader $loader + */ + private $loader; + + public function setUp() { + $this->loader = new \OC\AutoLoader(); + } + + public function testLeadingSlashOnClassName() { + $this->assertEquals(array('files/storage/local.php'), $this->loader->findClass('\OC\Files\Storage\Local')); + } + + public function testNoLeadingSlashOnClassName() { + $this->assertEquals(array('files/storage/local.php'), $this->loader->findClass('OC\Files\Storage\Local')); + } + + public function testLegacyPath() { + $this->assertEquals(array('legacy/files.php', 'files.php'), $this->loader->findClass('OC_Files')); + } + + public function testClassPath() { + $this->loader->registerClass('Foo\Bar', 'foobar.php'); + $this->assertEquals(array('foobar.php'), $this->loader->findClass('Foo\Bar')); + } + + public function testPrefixNamespace() { + $this->loader->registerPrefix('Foo', 'foo'); + $this->assertEquals(array('foo/Foo/Bar.php'), $this->loader->findClass('Foo\Bar')); + } + + public function testPrefix() { + $this->loader->registerPrefix('Foo_', 'foo'); + $this->assertEquals(array('foo/Foo/Bar.php'), $this->loader->findClass('Foo_Bar')); + } + + public function loadTestNamespace() { + $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test\Foo\Bar')); } - public function testNoLeadingSlashOnClassName(){ - $this->assertTrue(class_exists('OC\Files\Storage\Local')); + public function loadTest() { + $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test_Foo_Bar')); } + public function loadCoreNamespace() { + $this->assertEquals(array('lib/foo/bar.php'), $this->loader->findClass('OC\Foo\Bar')); + } + + public function loadCore() { + $this->assertEquals(array('lib/legacy/foo/bar.php', 'lib/foo/bar.php'), $this->loader->findClass('OC_Foo_Bar')); + } + + public function loadPublicNamespace() { + $this->assertEquals(array('lib/public/foo/bar.php'), $this->loader->findClass('OCP\Foo\Bar')); + } } -- GitLab From 71fc4a2cf4b5eaabdf44fae0fffe73690eb506dd Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 8 May 2013 00:50:33 +0200 Subject: [PATCH 246/454] Autoloader: fix loading app clases located in lib/ --- lib/autoloader.php | 11 ++++++----- tests/lib/autoloader.php | 27 +++++++++++++++++---------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/lib/autoloader.php b/lib/autoloader.php index d84924d5969..9615838a9a2 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -78,14 +78,15 @@ class Autoloader { } elseif (strpos($class, 'OC\\') === 0) { $paths[] = strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); } elseif (strpos($class, 'OCP\\') === 0) { - $paths[] = 'public/' . strtolower(str_replace('\\', '/', substr($class, 3)) . '.php'); + $paths[] = 'public/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); } elseif (strpos($class, 'OCA\\') === 0) { + list(, $app, $rest) = explode('\\', $class, 3); + $app = strtolower($app); foreach (\OC::$APPSROOTS as $appDir) { - list(, $app,) = explode('\\', $class); - if (stream_resolve_include_path($appDir['path'] . '/' . strtolower($app))) { - $paths[] = $appDir['path'] . '/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + if (stream_resolve_include_path($appDir['path'] . '/' . $app)) { + $paths[] = $appDir['path'] . '/' . $app . '/' . strtolower(str_replace('\\', '/', $rest) . '.php'); // If not found in the root of the app directory, insert '/lib' after app id and try again. - $paths[] = $appDir['path'] . '/lib/' . strtolower(str_replace('\\', '/', substr($class, 4)) . '.php'); + $paths[] = $appDir['path'] . '/' . $app . '/lib/' . strtolower(str_replace('\\', '/', $rest) . '.php'); } } } elseif (strpos($class, 'Test_') === 0) { diff --git a/tests/lib/autoloader.php b/tests/lib/autoloader.php index d9fc016adf5..0e7d606ccf6 100644 --- a/tests/lib/autoloader.php +++ b/tests/lib/autoloader.php @@ -45,23 +45,30 @@ class AutoLoader extends \PHPUnit_Framework_TestCase { $this->assertEquals(array('foo/Foo/Bar.php'), $this->loader->findClass('Foo_Bar')); } - public function loadTestNamespace() { - $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test\Foo\Bar')); + public function testLoadTestNamespace() { + $this->assertEquals(array('tests/lib/foo/bar.php'), $this->loader->findClass('Test\Foo\Bar')); } - public function loadTest() { - $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test_Foo_Bar')); + public function testLoadTest() { + $this->assertEquals(array('tests/lib/foo/bar.php'), $this->loader->findClass('Test_Foo_Bar')); } - public function loadCoreNamespace() { - $this->assertEquals(array('lib/foo/bar.php'), $this->loader->findClass('OC\Foo\Bar')); + public function testLoadCoreNamespace() { + $this->assertEquals(array('foo/bar.php'), $this->loader->findClass('OC\Foo\Bar')); } - public function loadCore() { - $this->assertEquals(array('lib/legacy/foo/bar.php', 'lib/foo/bar.php'), $this->loader->findClass('OC_Foo_Bar')); + public function testLoadCore() { + $this->assertEquals(array('legacy/foo/bar.php', 'foo/bar.php'), $this->loader->findClass('OC_Foo_Bar')); } - public function loadPublicNamespace() { - $this->assertEquals(array('lib/public/foo/bar.php'), $this->loader->findClass('OCP\Foo\Bar')); + public function testLoadPublicNamespace() { + $this->assertEquals(array('public/foo/bar.php'), $this->loader->findClass('OCP\Foo\Bar')); + } + + public function testLoadAppNamespace() { + $result = $this->loader->findClass('OCA\Files\Foobar'); + $this->assertEquals(2, count($result)); + $this->assertStringEndsWith('apps/files/foobar.php', $result[0]); + $this->assertStringEndsWith('apps/files/lib/foobar.php', $result[1]); } } -- GitLab From 135991474b7674881676dc6a9913bf6c778fdebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 8 May 2013 12:38:09 +0200 Subject: [PATCH 247/454] fix inconsistent post parameters in change password operation --- settings/ajax/changepassword.php | 2 +- settings/templates/personal.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index 1fc6d0e1000..4f16bff63d5 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -8,7 +8,7 @@ OC_JSON::checkLoggedIn(); OC_APP::loadApps(); $username = isset($_POST["username"]) ? $_POST["username"] : OC_User::getUser(); -$password = isset($_POST["password"]) ? $_POST["password"] : null; +$password = isset($_POST["newpassword"]) ? $_POST["newpassword"] : null; $oldPassword=isset($_POST["oldpassword"])?$_POST["oldpassword"]:''; $userstatus = null; diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 666cb9d0b36..cfb45e99c4d 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -38,7 +38,7 @@ if($_['passwordChangeSupported']) {
t('Your password was changed');?>
t('Unable to change your password');?>
- -- GitLab From c18158906cb39b0b7c2dafe429e8371f20f044e9 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 13:57:21 +0200 Subject: [PATCH 248/454] LDAP: add settings for UUID override --- apps/user_ldap/templates/settings.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index 2d0a23e1a6f..de166502028 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -99,10 +99,13 @@

t('Internal Username'));?>

-

t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only to newly mapped (added) LDAP users.'));?>

+

t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users.'));?>

+

t('Override UUID detection'));?>

+

t('By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups.'));?>

+

t('Username-LDAP User Mapping'));?>

-

t('ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage.' ));?>

+

t('ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage.'));?>

t('Help'));?> -- GitLab From bc23010670ecab5c5a0938e9e1a7a1f486f51827 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 14:05:08 +0200 Subject: [PATCH 249/454] LDAP: implement r+w for new settings --- apps/user_ldap/lib/connection.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index ef7cc5295b3..ecc13076179 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -65,6 +65,8 @@ class Connection { 'ldapAttributesForGroupSearch' => null, 'homeFolderNamingRule' => null, 'hasPagedResultSupport' => false, + 'ldapExpertUidAttr' => null, + 'ldapExpertUUIDAttr' => null, ); /** @@ -265,6 +267,10 @@ class Connection { = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_user_search')); $this->config['ldapAttributesForGroupSearch'] = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_group_search')); + $this->config['ldapExpertUidAttr'] + = $this->$v('ldap_expert_uid_attr'); + $this->config['ldapExpertUUIDAttr'] + = $this->$v('ldap_expert_uuid_attr'); $this->configured = $this->validateConfiguration(); } @@ -290,7 +296,6 @@ class Connection { 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName', - 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', @@ -302,7 +307,9 @@ class Connection { 'ldap_turn_off_cert_check' => 'turnOffCertCheck', 'ldap_configuration_active' => 'ldapConfigurationActive', 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', - 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch' + 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch', + 'ldap_expert_uid_attr' => 'ldapExpertUidAttr', + 'ldap_expert_uuid_attr' => 'ldapExpertUUIDAttr', ); return $array; } @@ -543,6 +550,8 @@ class Connection { 'ldap_configuration_active' => 1, 'ldap_attributes_for_user_search' => '', 'ldap_attributes_for_group_search' => '', + 'ldap_expert_uid_attr' => '', + 'ldap_expert_uuid_attr' => '', ); } -- GitLab From c9b3da5bbce52f10f060fcb131697bf41e4ab037 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 14:55:56 +0200 Subject: [PATCH 250/454] LDAP: better variable name --- apps/user_ldap/lib/connection.php | 14 +++++++++----- apps/user_ldap/templates/settings.php | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index ecc13076179..7292ca15e78 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -65,7 +65,7 @@ class Connection { 'ldapAttributesForGroupSearch' => null, 'homeFolderNamingRule' => null, 'hasPagedResultSupport' => false, - 'ldapExpertUidAttr' => null, + 'ldapExpertUsernameAttr' => null, 'ldapExpertUUIDAttr' => null, ); @@ -267,8 +267,8 @@ class Connection { = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_user_search')); $this->config['ldapAttributesForGroupSearch'] = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_group_search')); - $this->config['ldapExpertUidAttr'] - = $this->$v('ldap_expert_uid_attr'); + $this->config['ldapExpertUsernameAttr'] + = $this->$v('ldap_expert_username_attr'); $this->config['ldapExpertUUIDAttr'] = $this->$v('ldap_expert_uuid_attr'); @@ -308,7 +308,7 @@ class Connection { 'ldap_configuration_active' => 'ldapConfigurationActive', 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch', - 'ldap_expert_uid_attr' => 'ldapExpertUidAttr', + 'ldap_expert_username_attr' => 'ldapExpertUsernameAttr', 'ldap_expert_uuid_attr' => 'ldapExpertUUIDAttr', ); return $array; @@ -512,6 +512,10 @@ class Connection { $configurationOK = false; } + if(!empty($this->config['ldapExpertUUIDAttr'])) { + $this->config['ldapUuidAttribute'] = $this->config['ldapExpertUUIDAttr']; + } + return $configurationOK; } @@ -550,7 +554,7 @@ class Connection { 'ldap_configuration_active' => 1, 'ldap_attributes_for_user_search' => '', 'ldap_attributes_for_group_search' => '', - 'ldap_expert_uid_attr' => '', + 'ldap_expert_username_attr' => '', 'ldap_expert_uuid_attr' => '', ); } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index de166502028..3c7dd7cce6e 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -100,9 +100,9 @@

t('Internal Username'));?>

t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users.'));?>

-

+

t('Override UUID detection'));?>

-

t('By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups.'));?>

+

t('By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups.'));?>

t('Username-LDAP User Mapping'));?>

t('ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage.'));?>

-- GitLab From 3f1717d3d54fd82090abe6518da56c88678e24a2 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 14:56:52 +0200 Subject: [PATCH 251/454] LDAP: implement UUID and internal username override --- apps/user_ldap/lib/access.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 234e91f792f..8c372766c00 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -317,7 +317,19 @@ abstract class Access { } $ldapname = $ldapname[0]; } - $intname = $isUser ? $this->sanitizeUsername($uuid) : $ldapname; + + if($isUser) { + $usernameAttribute = $this->connection->ldapExpertUsernameAttr; + if(!emptY($usernameAttribute)) { + $username = $this->readAttribute($dn, $usernameAttribute); + $username = $username[0]; + } else { + $username = $uuid; + } + $intname = $this->sanitizeUsername($username); + } else { + $intname = $ldapname; + } //a new user/group! Add it only if it doesn't conflict with other backend's users or existing groups //disabling Cache is required to avoid that the new user is cached as not-existing in fooExists check @@ -897,6 +909,12 @@ abstract class Access { return true; } + $fixedAttribute = $this->connection->ldapExpertUUIDAttr; + if(!empty($fixedAttribute)) { + $this->connection->ldapUuidAttribute = $fixedAttribute; + return true; + } + //for now, supported (known) attributes are entryUUID, nsuniqueid, objectGUID $testAttributes = array('entryuuid', 'nsuniqueid', 'objectguid', 'guid'); -- GitLab From 28866de44bbf5c5bc2b1e0689b5139047ba5273b Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Wed, 8 May 2013 16:22:08 +0200 Subject: [PATCH 252/454] Added pre_share hook Switched it for post_share hook in encryption hooks Stop a file from being shared if the encryption procedure fails for any users --- apps/files_encryption/appinfo/app.php | 2 +- apps/files_encryption/hooks/hooks.php | 17 ++- apps/files_encryption/lib/util.php | 9 +- lib/public/share.php | 169 ++++++++++++++++++-------- 4 files changed, 130 insertions(+), 67 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index a7253c43332..7f01aaeebeb 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -16,7 +16,7 @@ OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); // Sharing-related hooks -OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); +OCP\Util::connectHook( 'OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared' ); OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ddec839acdc..1f642f48415 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -183,7 +183,7 @@ class Hooks { /** * @brief */ - public static function postShared( $params ) { + public static function preShared( $params ) { // NOTE: $params has keys: // [itemType] => file @@ -201,6 +201,7 @@ class Hooks { // [fileTarget] => /test8 // [id] => 10 // [token] => + // [run] => whether emitting script should continue to run // TODO: Should other kinds of item be encrypted too? if ( $params['itemType'] === 'file' || $params['itemType'] === 'folder' ) { @@ -249,7 +250,7 @@ class Hooks { // rebuild path foreach ( $targetPathSplit as $pathPart ) { - if( $pathPart !== $sharedPart ) { + if ( $pathPart !== $sharedPart ) { $path = '/' . $pathPart . $path; @@ -295,15 +296,13 @@ class Hooks { $failed[] = $path; } } - - // If no attempts to set keyfiles failed - if ( empty( $failed ) ) { - return true; + // If some attempts to set keyfiles failed + if ( ! empty( $failed ) ) { - } else { - - return false; + // Set flag var 'run' to notify emitting + // script that hook execution failed + $params['run']->run = false; } } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 5ab5ea6425f..871d3bcfc37 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -146,7 +146,7 @@ class Util { return false; } else { - + return true; } @@ -855,15 +855,14 @@ class Util { * @param string $filePath path of the file to be shared */ public function setSharedFileKeyfiles( Session $session, array $users, $filePath ) { - + // Make sure users are capable of sharing $filteredUids = $this->filterShareReadyUsers( $users ); if ( ! empty( $filteredUids['unready'] ) ) { - // Notify user of unready userDir - // TODO: Move this out of here; it belongs somewhere else - \OCP\JSON::error(); + // TODO: Notify user of unready userDir + \OC_Log::write( 'Encryption library', 'Sharing to these user(s) failed as they are unready for encryption:"'.print_r( $filteredUids['unready'], 1 ), \OC_Log::WARN ); } diff --git a/lib/public/share.php b/lib/public/share.php index fee906d1877..cb151b9f4bf 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1223,42 +1223,12 @@ class Share { } else { $groupFileTarget = null; } - $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, - $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); - // Save this id, any extra rows for this group share will need to reference it - $parent = \OC_DB::insertid('*PREFIX*share'); - // Loop through all users of this group in case we need to add an extra row - foreach ($shareWith['users'] as $uid) { - $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, - $uidOwner, $suggestedItemTarget, $parent); - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, - $uidOwner, $suggestedFileTarget, $parent); - if ($fileTarget != $groupFileTarget) { - $parentFolders[$uid]['folder'] = $fileTarget; - } - } else if (isset($parentFolder[$uid])) { - $fileTarget = $parentFolder[$uid]['folder'].$itemSource; - $parent = $parentFolder[$uid]['id']; - } - } else { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, - $uid, $uidOwner, $suggestedFileTarget, $parent); - } - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, - self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), - $fileSource, $fileTarget, $token)); - $id = \OC_DB::insertid('*PREFIX*share'); - } - } - \OC_Hook::emit('OCP\Share', 'post_shared', array( + // Trigger hooks before the share is added to DB + // Set flag indicating if execution should continue. + // Use an object as workaround for pass by reference issues + $run = new \stdClass(); + $run->run = true; + $params = array( 'itemType' => $itemType, 'itemSource' => $itemSource, 'itemTarget' => $groupItemTarget, @@ -1270,11 +1240,73 @@ class Share { 'fileSource' => $fileSource, 'fileTarget' => $groupFileTarget, 'id' => $parent, - 'token' => $token - )); - if ($parentFolder === true) { - // Return parent folders to preserve file target paths for potential children - return $parentFolders; + 'token' => $token, + 'run' => $run + ); + $run = \OC_Hook::emit( + 'OCP\Share' + , 'pre_shared' + , $params + ); + // If hook execution didn't encounter errors + if ( ! $run->run ) { + $message = 'Sharing '.$itemSource.' failed, because pre share hooks failed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + return false; + } else { + $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, + $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget, $token)); + // Save this id, any extra rows for this group share will need to reference it + $parent = \OC_DB::insertid('*PREFIX*share'); + // Loop through all users of this group in case we need to add an extra row + foreach ($shareWith['users'] as $uid) { + $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedItemTarget, $parent); + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, + $uidOwner, $suggestedFileTarget, $parent); + if ($fileTarget != $groupFileTarget) { + $parentFolders[$uid]['folder'] = $fileTarget; + } + } else if (isset($parentFolder[$uid])) { + $fileTarget = $parentFolder[$uid]['folder'].$itemSource; + $parent = $parentFolder[$uid]['id']; + } + } else { + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, + $uid, $uidOwner, $suggestedFileTarget, $parent); + } + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, + self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), + $fileSource, $fileTarget, $token)); + $id = \OC_DB::insertid('*PREFIX*share'); + } + } + \OC_Hook::emit('OCP\Share', 'post_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $groupItemTarget, + 'parent' => $parent, + 'shareType' => $shareType, + 'shareWith' => $shareWith['group'], + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'fileTarget' => $groupFileTarget, + 'id' => $parent, + 'token' => $token + )); + if ($parentFolder === true) { + // Return parent folders to preserve file target paths for potential children + return $parentFolders; + } } } else { $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, @@ -1296,10 +1328,14 @@ class Share { } else { $fileTarget = null; } - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, - $permissions, time(), $fileSource, $fileTarget, $token)); - $id = \OC_DB::insertid('*PREFIX*share'); - \OC_Hook::emit('OCP\Share', 'post_shared', array( + // Trigger hooks before the share is added to DB + // Set flag indicating if execution should continue. + // Use an object as workaround for pass by reference issues + $run = new \stdClass(); + $run->run = true; + // NOTE: [id] isn't included as it's not yet available + // (hasn't been inserted) + $params = array( 'itemType' => $itemType, 'itemSource' => $itemSource, 'itemTarget' => $itemTarget, @@ -1310,13 +1346,42 @@ class Share { 'permissions' => $permissions, 'fileSource' => $fileSource, 'fileTarget' => $fileTarget, - 'id' => $id, - 'token' => $token - )); - if ($parentFolder === true) { - $parentFolders['id'] = $id; - // Return parent folder to preserve file target paths for potential children - return $parentFolders; + 'token' => $token, + 'run' => $run + ); + \OC_Hook::emit( + 'OCP\Share' + , 'pre_shared' + , $params + ); + // If hook execution didn't encounter errors + if ( ! $run->run ) { + $message = 'Sharing '.$itemSource.' failed, because pre share hooks failed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + return false; + } else { + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, + $permissions, time(), $fileSource, $fileTarget, $token)); + $id = \OC_DB::insertid('*PREFIX*share'); + \OC_Hook::emit('OCP\Share', 'post_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $itemTarget, + 'parent' => $parent, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'fileTarget' => $fileTarget, + 'id' => $id, + 'token' => $token + )); + if ($parentFolder === true) { + $parentFolders['id'] = $id; + // Return parent folder to preserve file target paths for potential children + return $parentFolders; + } } } return true; -- GitLab From d9c19fa8d700a64054b29d8a1e4faaffc036c717 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 8 May 2013 16:48:47 +0200 Subject: [PATCH 253/454] Move legacy filesystem classes --- lib/{ => legacy}/filesystem.php | 0 lib/{ => legacy}/filesystemview.php | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename lib/{ => legacy}/filesystem.php (100%) rename lib/{ => legacy}/filesystemview.php (100%) diff --git a/lib/filesystem.php b/lib/legacy/filesystem.php similarity index 100% rename from lib/filesystem.php rename to lib/legacy/filesystem.php diff --git a/lib/filesystemview.php b/lib/legacy/filesystemview.php similarity index 100% rename from lib/filesystemview.php rename to lib/legacy/filesystemview.php -- GitLab From 796ee8c4c0cc7b105c6fd4c0e43d40c9e898bb43 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 17:47:07 +0200 Subject: [PATCH 254/454] LDAP: Implement clear mappings functionality --- apps/user_ldap/ajax/clearMappings.php | 35 +++++++++++++++++++++++++++ apps/user_ldap/js/settings.js | 30 +++++++++++++++++++++++ apps/user_ldap/lib/helper.php | 25 +++++++++++++++++++ apps/user_ldap/templates/settings.php | 2 +- 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 apps/user_ldap/ajax/clearMappings.php diff --git a/apps/user_ldap/ajax/clearMappings.php b/apps/user_ldap/ajax/clearMappings.php new file mode 100644 index 00000000000..5dab39839b6 --- /dev/null +++ b/apps/user_ldap/ajax/clearMappings.php @@ -0,0 +1,35 @@ +. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$subject = $_POST['ldap_clear_mapping']; +if(\OCA\user_ldap\lib\Helper::clearMapping($subject)) { + OCP\JSON::success(); +} else { + $l=OC_L10N::get('user_ldap'); + OCP\JSON::error(array('message' => $l->t('Failed to clear the mappings.'))); +} \ No newline at end of file diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index e34849ec887..5e4c0262a6d 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -99,6 +99,26 @@ var LdapConfiguration = { } } ); + }, + + clearMappings: function(mappingSubject) { + $.post( + OC.filePath('user_ldap','ajax','clearMappings.php'), + 'ldap_clear_mapping='+mappingSubject, + function(result) { + if(result.status == 'success') { + OC.dialogs.info( + t('user_ldap', 'mappings cleared'), + t('user_ldap', 'Success') + ); + } else { + OC.dialogs.alert( + result.message, + t('user_ldap', 'Error') + ); + } + } + ); } } @@ -166,6 +186,16 @@ $(document).ready(function() { ); }); + $('#ldap_action_clear_user_mappings').click(function(event) { + event.preventDefault(); + LdapConfiguration.clearMappings('user'); + }); + + $('#ldap_action_clear_group_mappings').click(function(event) { + event.preventDefault(); + LdapConfiguration.clearMappings('group'); + }); + $('#ldap_serverconfig_chooser').change(function(event) { value = $('#ldap_serverconfig_chooser option:selected:first').attr('value'); if(value == 'NEW') { diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index 612a088269b..7720c356a13 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -102,4 +102,29 @@ class Helper { return true; } + + /** + * Truncate's the given mapping table + * + * @param string $mapping either 'user' or 'group' + * @return boolean true on success, false otherwise + */ + static public function clearMapping($mapping) { + if($mapping === 'user') { + $table = '`*PREFIX*ldap_user_mapping`'; + } else if ($mapping === 'group') { + $table = '`*PREFIX*ldap_group_mapping`'; + } else { + return false; + } + + $query = \OCP\DB::prepare('TRUNCATE '.$table); + $res = $query->execute(); + + if(\OCP\DB::isError($res)) { + return false; + } + + return true; + } } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index 3c7dd7cce6e..ee1250fc911 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -106,7 +106,7 @@

t('Username-LDAP User Mapping'));?>

t('ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage.'));?>

-

+


t('Help'));?> -- GitLab From d69579f7733c742eb0ca17e80747d1f6b06c80e9 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 8 May 2013 17:54:38 +0200 Subject: [PATCH 255/454] LDAP: fix display of numerical display names --- apps/user_ldap/user_proxy.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php index 7e5b9045df3..73cc0963182 100644 --- a/apps/user_ldap/user_proxy.php +++ b/apps/user_ldap/user_proxy.php @@ -174,7 +174,7 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { foreach($this->backends as $backend) { $backendUsers = $backend->getDisplayNames($search, $limit, $offset); if (is_array($backendUsers)) { - $users = array_merge($users, $backendUsers); + $users = $users + $backendUsers; } } return $users; -- GitLab From b9134dcd6a997f252db8498dec7b422e148a5681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 8 May 2013 15:05:03 +0200 Subject: [PATCH 256/454] touch file relative to users file folder, otherwise the hooks will be ignored --- apps/files_versions/lib/versions.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index c38ba688fe0..836e3914dc0 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -184,11 +184,12 @@ class Storage { /** * rollback to an old version of a file. */ - public static function rollback($filename, $revision) { + public static function rollback($file, $revision) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { - list($uid, $filename) = self::getUidAndFilename($filename); + list($uid, $filename) = self::getUidAndFilename($file); $users_view = new \OC\Files\View('/'.$uid); + $files_view = new \OC\Files\View('/'.\OCP\User::getUser().'/files'); $versionCreated = false; //first create a new version @@ -200,8 +201,8 @@ class Storage { // rollback if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) { - $users_view->touch('files'.$filename, $revision); - Storage::expire($filename); + $files_view->touch($file, $revision); + Storage::expire($file); return true; }else if ( $versionCreated ) { -- GitLab From 0e30e68b22bf3db2872dcff50fe1c0186aa1c57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 8 May 2013 15:49:45 +0200 Subject: [PATCH 257/454] update etag for for the touched file --- lib/files/cache/updater.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/files/cache/updater.php b/lib/files/cache/updater.php index 92a16d9d9b6..e054b9dafcf 100644 --- a/lib/files/cache/updater.php +++ b/lib/files/cache/updater.php @@ -132,7 +132,15 @@ class Updater { * @param array $params */ static public function touchHook($params) { - self::writeUpdate($params['path']); + $path = $params['path']; + list($storage, $internalPath) = self::resolvePath($path); + $cache = $storage->getCache(); + $id = $cache->getId($internalPath); + if ($id !== -1) { + $cache->update($id, array('etag' => $storage->getETag($internalPath))); + self::correctFolder($parent, $time); + } + self::writeUpdate($path); } /** -- GitLab From bda8187f3b305d0d1d7843bb9eaf0074ae5009d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 8 May 2013 16:32:29 +0200 Subject: [PATCH 258/454] rename a file if it gets restored so that it no longer exists as a version. Otherwise it can happen that the expire() function removes all other versions so that we end up with only one version which is exactly the same as the original file --- apps/files_versions/lib/versions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 836e3914dc0..5fdbef27743 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -200,7 +200,7 @@ class Storage { } // rollback - if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) { + if( @$users_view->rename('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) { $files_view->touch($file, $revision); Storage::expire($file); return true; -- GitLab From 2e81efc37eeb95b7e5d392349ad393bb94d6928a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 8 May 2013 22:57:08 +0200 Subject: [PATCH 259/454] don't call correctFolder() in touchHook, it will be called later in the writeUpdate() --- lib/files/cache/updater.php | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/files/cache/updater.php b/lib/files/cache/updater.php index e054b9dafcf..417a47f3830 100644 --- a/lib/files/cache/updater.php +++ b/lib/files/cache/updater.php @@ -138,7 +138,6 @@ class Updater { $id = $cache->getId($internalPath); if ($id !== -1) { $cache->update($id, array('etag' => $storage->getETag($internalPath))); - self::correctFolder($parent, $time); } self::writeUpdate($path); } -- GitLab From 101e037529fef0273ba9d4de522d2e47d8a6ef0b Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Thu, 9 May 2013 14:43:06 +0200 Subject: [PATCH 260/454] Fixed bugs with pre_share hook usage Made sure new user being shared to is added to array of sharing users --- apps/files_encryption/hooks/hooks.php | 18 ++- apps/files_encryption/lib/util.php | 176 +++++++++++++++----------- 2 files changed, 115 insertions(+), 79 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 1f642f48415..e8cd4ade713 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -277,21 +277,28 @@ class Hooks { // if a folder was shared, get a list if all (sub-)folders if ( $params['itemType'] === 'folder' ) { - $allFiles = $util->getAllFiles($path); + + $allFiles = $util->getAllFiles( $path ); + } else { $allFiles = array( $path ); } + + // Set array for collecting paths which can't be shared + $failed = array(); foreach ( $allFiles as $path ) { $usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path ); - - $failed = array(); + + // Because this is a pre_share hook, the user + // being shared to is not yet included; add them + $usersSharing[] = $params['shareWith']; // Attempt to set shareKey - if ( !$util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { + if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { $failed[] = $path; } @@ -304,6 +311,9 @@ class Hooks { // script that hook execution failed $params['run']->run = false; + // TODO: Make sure files_sharing provides user + // feedback on failed share + } } } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 871d3bcfc37..068f7148425 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -3,8 +3,8 @@ * ownCloud * * @author Sam Tuke, Frank Karlitschek - * @copyright 2012 Sam Tuke samtuke@owncloud.com, - * Frank Karlitschek frank@owncloud.org + * @copyright 2012 Sam Tuke , + * Frank Karlitschek * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE @@ -88,16 +88,9 @@ class Util { //// TODO: add support for optional recovery in case of lost passphrase / keys //// TODO: add admin optional required long passphrase for users - //// TODO: add UI buttons for encrypt / decrypt everything //// TODO: implement flag system to allow user to specify encryption by folder, subfolder, etc. - // Sharing: - - //// TODO: add support for encrypting to multiple public keys - //// TODO: add support for decrypting to multiple private keys - - // Integration testing: //// TODO: test new encryption with versioning @@ -136,11 +129,11 @@ class Util { public function ready() { if( - !$this->view->file_exists( $this->encryptionDir ) - or !$this->view->file_exists( $this->keyfilesPath ) - or !$this->view->file_exists( $this->shareKeysPath ) - or !$this->view->file_exists( $this->publicKeyPath ) - or !$this->view->file_exists( $this->privateKeyPath ) + ! $this->view->file_exists( $this->encryptionDir ) + or ! $this->view->file_exists( $this->keyfilesPath ) + or ! $this->view->file_exists( $this->shareKeysPath ) + or ! $this->view->file_exists( $this->publicKeyPath ) + or ! $this->view->file_exists( $this->privateKeyPath ) ) { return false; @@ -471,9 +464,8 @@ class Util { /** * @brief get the file size of the unencrypted file - * * @param $path absolute path - * @return true / false if file is encrypted + * @return bool */ public function getFileSize($path) { @@ -768,7 +760,7 @@ class Util { * @return multi-dimensional array. keys: ready, unready */ public function filterShareReadyUsers( $unfilteredUsers ) { - + // This array will collect the filtered IDs $readyIds = $unreadyIds = array(); @@ -780,8 +772,8 @@ class Util { // Check that the user is encryption capable, or is the // public system user 'ownCloud' (for public shares) if ( - $util->ready() - or $user == 'owncloud' + $user == 'owncloud' + or $util->ready() ) { // Construct array of ready UIDs for Keymanager{} @@ -853,22 +845,27 @@ class Util { * @brief Encrypt keyfile to multiple users * @param array $users list of users which should be able to access the file * @param string $filePath path of the file to be shared + * @return bool */ public function setSharedFileKeyfiles( Session $session, array $users, $filePath ) { // Make sure users are capable of sharing $filteredUids = $this->filterShareReadyUsers( $users ); + // If we're attempting to share to unready users if ( ! empty( $filteredUids['unready'] ) ) { - - // TODO: Notify user of unready userDir + \OC_Log::write( 'Encryption library', 'Sharing to these user(s) failed as they are unready for encryption:"'.print_r( $filteredUids['unready'], 1 ), \OC_Log::WARN ); + return false; + } // Get public keys for each user, ready for generating sharekeys $userPubKeys = Keymanager::getPublicKeys( $this->view, $filteredUids['ready'] ); - + + // Note proxy status then disable it + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; // Get the current users's private key for decrypting existing keyfile @@ -884,21 +881,19 @@ class Util { // Save the recrypted key to it's owner's keyfiles directory // Save new sharekeys to all necessary user directory - // TODO: Reuse the keyfile, it it exists, instead of making a new one if ( ! Keymanager::setFileKey( $this->view, $filePath, $fileOwner, $multiEncKey['data'] ) || ! Keymanager::setShareKeys( $this->view, $filePath, $multiEncKey['keys'] ) ) { - trigger_error( "SET Share keys failed" ); + \OC_Log::write( 'Encryption library', 'Keyfiles could not be saved for users sharing ' . $filePath, \OC_Log::ERROR ); + + return false; } - - // Delete existing keyfile - // Do this last to ensure file is recoverable in case of error - // Keymanager::deleteFileKey( $this->view, $this->userId, $params['fileTarget'] ); - - \OC_FileProxy::$enabled = true; + + // Return proxy to original status + \OC_FileProxy::$enabled = $proxyStatus; return true; } @@ -948,7 +943,7 @@ class Util { // add current user if given if ( $currentUserId != false ) { - $userIds[] = $currentUserId; + $userIds[] = $currentUserId; } @@ -961,6 +956,7 @@ class Util { /** * @brief Set file migration status for user + * @return bool */ public function setMigrationStatus( $status ) { @@ -1089,42 +1085,59 @@ class Util { * @param type $dir relative to the users files folder * @return array with list of files relative to the users files folder */ - public function getAllFiles($dir) { + public function getAllFiles( $dir ) { + $result = array(); - $content = $this->view->getDirectoryContent($this->userFilesDir.$dir); + $content = $this->view->getDirectoryContent( $this->userFilesDir . $dir ); - // handling for re shared folders - $path_split = explode( '/', $dir ); - $shared = ''; - if($path_split[1] === 'Shared') { - $shared = '/Shared'; - } + // handling for re shared folders + $path_split = explode( '/', $dir ); + $shared = ''; + + if( $path_split[1] === 'Shared' ) { + + $shared = '/Shared'; + + } - foreach ($content as $c) { - $sharedPart = $path_split[sizeof($path_split)-1]; - $targetPathSplit = array_reverse(explode('/', $c['path'])); + foreach ( $content as $c ) { + + $sharedPart = $path_split[sizeof( $path_split )-1]; + $targetPathSplit = array_reverse( explode( '/', $c['path'] ) ); - $path = ''; + $path = ''; - // rebuild path - foreach ($targetPathSplit as $pathPart) { - if($pathPart !== $sharedPart) { - $path = '/'.$pathPart.$path; - } else { - break; - } - } + // rebuild path + foreach ( $targetPathSplit as $pathPart ) { + + if ( $pathPart !== $sharedPart ) { + + $path = '/' . $pathPart . $path; + + } else { + + break; + + } + + } - $path = $dir.$path; + $path = $dir.$path; if ($c['type'] === "dir" ) { - $result = array_merge($result, $this->getAllFiles($path)); + + $result = array_merge( $result, $this->getAllFiles( $path ) ); + } else { - $result[] = $path; + + $result[] = $path; + } } + return $result; + } /** @@ -1132,7 +1145,7 @@ class Util { * @param int $Id of the current share * @return array of the parent */ - public static function getShareParent($Id) { + public static function getShareParent( $Id ) { $query = \OC_DB::prepare( 'SELECT `file_target`, `item_type`' .' FROM `*PREFIX*share`' @@ -1152,26 +1165,39 @@ class Util { * @return owner */ public function getOwnerFromSharedFile($id) { - $query = \OC_DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1); - $source = $query->execute(array($id))->fetchRow(); - - if (isset($source['parent'])) { - $parent = $source['parent']; - while (isset($parent)) { - $query = \OC_DB::prepare('SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1); - $item = $query->execute(array($parent))->fetchRow(); - if (isset($item['parent'])) { - $parent = $item['parent']; - } else { - $fileOwner = $item['uid_owner']; - break; - } - } - } else { - $fileOwner = $source['uid_owner']; - } + + $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); + $source = $query->execute( array( $id ) )->fetchRow(); - return $fileOwner; - } + if ( isset($source['parent'] ) ) { + + $parent = $source['parent']; + + while ( isset( $parent ) ) { + + $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); + $item = $query->execute( array( $parent ) )->fetchRow(); + + if ( isset( $item['parent'] ) ) { + + $parent = $item['parent']; + + } else { + + $fileOwner = $item['uid_owner']; + + break; + + } + } + + } else { + + $fileOwner = $source['uid_owner']; + + } + + return $fileOwner; + } } -- GitLab From 3003dd46d17e9d4b70a5b19d4a7807bb0fbad298 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Thu, 9 May 2013 18:09:20 +0200 Subject: [PATCH 261/454] Implemented initial recoveryAdmin functionality in crypto file proxy --- apps/files_encryption/lib/proxy.php | 83 +++++++++++++++++++++-------- apps/files_encryption/lib/util.php | 22 ++++++-- 2 files changed, 80 insertions(+), 25 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 820b7d8b67e..ae36b9fe09f 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -93,29 +93,29 @@ class Proxy extends \OC_FileProxy { public function preFile_put_contents( $path, &$data ) { - if ( self::shouldEncrypt( $path ) ) { + if ( self::shouldEncrypt( $path ) ) { - // Stream put contents should have been converted to fopen + // Stream put contents should have been converted to fopen if ( !is_resource( $data ) ) { - $userId = \OCP\USER::getUser(); - $rootView = new \OC_FilesystemView( '/' ); - $util = new Util( $rootView, $userId ); - $session = new Session( $rootView ); + $userId = \OCP\USER::getUser(); + $view = new \OC_FilesystemView( '/' ); + $util = new Util( $view, $userId ); + $session = new Session( $view ); $privateKey = $session->getPrivateKey(); $filePath = $util->stripUserFilesPath( $path ); // Set the filesize for userland, before encrypting $size = strlen( $data ); - + // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + // Check if there is an existing key we can reuse - if ( $encKeyfile = Keymanager::getFileKey( $rootView, $userId, $filePath ) ) { + if ( $encKeyfile = Keymanager::getFileKey( $view, $userId, $filePath ) ) { // Fetch shareKey - $shareKey = Keymanager::getShareKey( $rootView, $userId, $filePath ); + $shareKey = Keymanager::getShareKey( $view, $userId, $filePath ); // Decrypt the keyfile $plainKey = Crypt::multiKeyDecrypt( $encKeyfile, $shareKey, $privateKey ); @@ -124,7 +124,7 @@ class Proxy extends \OC_FileProxy { // Make a new key $plainKey = Crypt::generateKey(); - + } // Encrypt data @@ -134,34 +134,73 @@ class Proxy extends \OC_FileProxy { $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId ); - // Fetch public keys for all users who will share the file - $publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds ); + // Fetch public keys for all users who will share the file + $publicKeys = Keymanager::getPublicKeys( $view, $uniqueUserIds ); - // Encrypt plain keyfile to multiple sharefiles + // Encrypt plain keyfile to multiple sharefiles $multiEncrypted = Crypt::multiKeyEncrypt( $plainKey, $publicKeys ); // Save sharekeys to user folders - Keymanager::setShareKeys( $rootView, $filePath, $multiEncrypted['keys'] ); + Keymanager::setShareKeys( $view, $filePath, $multiEncrypted['keys'] ); // Set encrypted keyfile as common varname $encKey = $multiEncrypted['data']; // Save keyfile for newly encrypted file in parallel directory tree - Keymanager::setFileKey( $rootView, $filePath, $userId, $encKey ); + Keymanager::setFileKey( $view, $filePath, $userId, $encKey ); // Replace plain content with encrypted content by reference $data = $encData; - + // Update the file cache with file info - \OC\Files\Filesystem::putFileInfo( $filePath, array( 'encrypted'=>true, 'size' => strlen($size), 'unencrypted_size' => $size), '' ); + \OC\Files\Filesystem::putFileInfo( $filePath, array( 'encrypted'=>true, 'size' => strlen($size), 'unencrypted_size' => $size), '' ); - // Re-enable proxy - our work is done + // Re-enable proxy - our work is done \OC_FileProxy::$enabled = $proxyStatus; } } - return true; + return true; + + } + + public function postFile_put_contents( $path, $length ) { + + $userId = \OCP\USER::getUser(); + $view = new \OC_FilesystemView( '/' ); + $util = new Util( $view, $userId ); + + // Check if recoveryAdmin is enabled for system and user + // TODO: Consider storing recoveryAdmin status for user in session + if ( + \OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ) + && $util->recoveryEnabledForUser() + ) { + + // Get owner UID and filepath + list( $owner, $ownerPath ) = $util->getUidAndFilename( $path ); + + $recoveryAdminUid = \OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ); + $usersSharing = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); + + // Check if file is already shared to recoveryAdmin + if ( ! in_array( $recoveryAdminUid, $usersSharing ) ) { + + $relPath = $util->stripFilesPath( $path ); + + // Get file info from filecache + $fileInfo = \OC\Files\Filesystem::getFileInfo( $path ); + + // Register share to recoveryAdmin with share API + // FIXME: Some of these vars aren't set + // FIXME: What should the permission number be to grant all rights? +// \OCP\Share::shareItem( $itemType, $itemSource, 0, $recoveryAdminUid, 17 ); + + } + + } + } /** diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 068f7148425..41d51fbf6fb 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -548,6 +548,7 @@ class Util { /** * @brief Format a path to be relative to the /user/files/ directory + * @note e.g. turns '/admin/files/test.txt' into 'test.txt' */ public function stripUserFilesPath( $path ) { @@ -560,6 +561,21 @@ class Util { } + /** + * @brief Format a path to be relative to the /user directory + * @note e.g. turns '/admin/files/test.txt' into 'files/test.txt' + */ + public function stripFilesPath( $path ) { + + $trimmed = ltrim( $path, '/' ); + $split = explode( '/', $trimmed ); + $sliced = array_slice( $split, 1 ); + $relPath = implode( '/', $sliced ); + + return $relPath; + + } + /** * @brief Format a shared path to be relative to the /user/files/ directory * @note Expects a path like /uid/files/Shared/filepath @@ -1142,16 +1158,16 @@ class Util { /** * @brief get shares parent. - * @param int $Id of the current share + * @param int $id of the current share * @return array of the parent */ - public static function getShareParent( $Id ) { + public static function getShareParent( $id ) { $query = \OC_DB::prepare( 'SELECT `file_target`, `item_type`' .' FROM `*PREFIX*share`' .' WHERE `id` = ?' ); - $result = $query->execute( array( $Id ) ); + $result = $query->execute( array( $id ) ); $row = $result->fetchRow(); -- GitLab From 92e28839ffe31c5173fe49481705db15a3a4acb2 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Thu, 9 May 2013 18:16:59 +0200 Subject: [PATCH 262/454] Improvements to code formatting & indentation --- apps/files_encryption/lib/util.php | 223 +++++++++++++++-------------- 1 file changed, 114 insertions(+), 109 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 41d51fbf6fb..04b1e66f58a 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -305,7 +305,6 @@ class Util { * @brief Find all files and their encryption status within a directory * @param string $directory The path of the parent directory to search * @return mixed false if 0 found, array on success. Keys: name, path - * @note $directory needs to be a path relative to OC data dir. e.g. * /admin/files NOT /backup OR /home/www/oc/data/admin/files */ @@ -444,10 +443,10 @@ class Util { return $text; } - /** - * @brief Check if a given path identifies an encrypted file - * @return true / false - */ + /** + * @brief Check if a given path identifies an encrypted file + * @return true / false + */ public function isEncryptedPath( $path ) { // Disable encryption proxy so data retreived is in its @@ -462,89 +461,94 @@ class Util { } - /** - * @brief get the file size of the unencrypted file - * @param $path absolute path - * @return bool - */ + /** + * @brief get the file size of the unencrypted file + * @param $path absolute path + * @return bool + */ - public function getFileSize($path) { - $result = 0; + public function getFileSize( $path ) { + + $result = 0; - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; - // Reformat path for use with OC_FSV - $pathSplit = explode( '/', $path ); - $pathRelative = implode( '/', array_slice( $pathSplit, 3 ) ); + // Reformat path for use with OC_FSV + $pathSplit = explode( '/', $path ); + $pathRelative = implode( '/', array_slice( $pathSplit, 3 ) ); - if ($pathSplit[2] == 'files' && $this->view->file_exists($path) && $this->isEncryptedPath($path)) { + if ($pathSplit[2] == 'files' && $this->view->file_exists($path) && $this->isEncryptedPath($path)) { - // get the size from filesystem - $fullPath = $this->view->getLocalFile($path); - $size = filesize($fullPath); + // get the size from filesystem + $fullPath = $this->view->getLocalFile($path); + $size = filesize($fullPath); - // calculate last chunk nr - $lastChunckNr = floor($size / 8192); + // calculate last chunk nr + $lastChunckNr = floor($size / 8192); - // open stream - $stream = fopen('crypt://' . $pathRelative, "r"); + // open stream + $stream = fopen('crypt://' . $pathRelative, "r"); - if(is_resource($stream)) { - // calculate last chunk position - $lastChunckPos = ($lastChunckNr * 8192); + if(is_resource($stream)) { + // calculate last chunk position + $lastChunckPos = ($lastChunckNr * 8192); - // seek to end - fseek($stream, $lastChunckPos); + // seek to end + fseek($stream, $lastChunckPos); - // get the content of the last chunk - $lastChunkContent = fread($stream, 8192); + // get the content of the last chunk + $lastChunkContent = fread($stream, 8192); - // calc the real file size with the size of the last chunk - $realSize = (($lastChunckNr * 6126) + strlen($lastChunkContent)); + // calc the real file size with the size of the last chunk + $realSize = (($lastChunckNr * 6126) + strlen($lastChunkContent)); - // store file size - $result = $realSize; - } - } + // store file size + $result = $realSize; + } + } - \OC_FileProxy::$enabled = $proxyStatus; + \OC_FileProxy::$enabled = $proxyStatus; - return $result; - } - /** - * @brief fix the file size of the encrypted file - * - * @param $path absolute path - * @return true / false if file is encrypted - */ + return $result; + } + + /** + * @brief fix the file size of the encrypted file + * @param $path absolute path + * @return true / false if file is encrypted + */ - public function fixFileSize($path) { - $result = false; + public function fixFileSize( $path ) { + + $result = false; - // Disable encryption proxy to prevent recursive calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; - $realSize = $this->getFileSize($path); - if($realSize > 0) { - $cached = $this->view->getFileInfo($path); - $cached['encrypted'] = 1; + $realSize = $this->getFileSize( $path ); + + if ( $realSize > 0 ) { + + $cached = $this->view->getFileInfo( $path ); + $cached['encrypted'] = 1; - // set the size - $cached['unencrypted_size'] = $realSize; + // set the size + $cached['unencrypted_size'] = $realSize; - // put file info - $this->view->putFileInfo( $path, $cached ); + // put file info + $this->view->putFileInfo( $path, $cached ); - $result = true; - } + $result = true; + + } - \OC_FileProxy::$enabled = $proxyStatus; + \OC_FileProxy::$enabled = $proxyStatus; - return $result; - } + return $result; + } /** * @brief Format a path to be relative to the /user/files/ directory @@ -640,7 +644,7 @@ class Util { stream_copy_to_stream( $plainHandle1, $plainHandle2 ); // Close access to original file -// $this->view->fclose( $plainHandle1 ); // not implemented in view{} + // $this->view->fclose( $plainHandle1 ); // not implemented in view{} // Delete original plain file so we can rename enc file later $this->view->unlink( $rawPath ); @@ -1156,64 +1160,65 @@ class Util { } - /** - * @brief get shares parent. - * @param int $id of the current share - * @return array of the parent - */ - public static function getShareParent( $id ) { - - $query = \OC_DB::prepare( 'SELECT `file_target`, `item_type`' - .' FROM `*PREFIX*share`' - .' WHERE `id` = ?' ); + /** + * @brief get shares parent. + * @param int $id of the current share + * @return array of the parent + */ + public static function getShareParent( $id ) { - $result = $query->execute( array( $id ) ); + $query = \OC_DB::prepare( 'SELECT `file_target`, `item_type`' + .' FROM `*PREFIX*share`' + .' WHERE `id` = ?' ); - $row = $result->fetchRow(); + $result = $query->execute( array( $id ) ); - return $row; + $row = $result->fetchRow(); - } + return $row; - /** - * @brief get owner of the shared files. - * @param int $Id of a share - * @return owner - */ - public function getOwnerFromSharedFile($id) { - - $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); - $source = $query->execute( array( $id ) )->fetchRow(); + } - if ( isset($source['parent'] ) ) { + /** + * @brief get owner of the shared files. + * @param int $Id of a share + * @return owner + */ + public function getOwnerFromSharedFile( $id ) { - $parent = $source['parent']; - - while ( isset( $parent ) ) { + $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); + $source = $query->execute( array( $id ) )->fetchRow(); + + if ( isset($source['parent'] ) ) { - $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); - $item = $query->execute( array( $parent ) )->fetchRow(); + $parent = $source['parent']; - if ( isset( $item['parent'] ) ) { + while ( isset( $parent ) ) { - $parent = $item['parent']; + $query = \OC_DB::prepare( 'SELECT `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `id` = ?', 1 ); + $item = $query->execute( array( $parent ) )->fetchRow(); + + if ( isset( $item['parent'] ) ) { + + $parent = $item['parent']; + + } else { + + $fileOwner = $item['uid_owner']; + + break; + + } + } - } else { + } else { - $fileOwner = $item['uid_owner']; - - break; + $fileOwner = $source['uid_owner']; - } } - - } else { - - $fileOwner = $source['uid_owner']; - - } return $fileOwner; + } } -- GitLab From 163fe6401609a9bdb4ee71127e4f6724b1804af0 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Thu, 9 May 2013 18:24:07 +0200 Subject: [PATCH 263/454] Fixes to code formatting and indentation --- apps/files_encryption/lib/keymanager.php | 166 ++++++++++++++--------- 1 file changed, 99 insertions(+), 67 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 51d4f8ffc04..6c2df6f8406 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -113,8 +113,8 @@ class Keymanager { \OC_FileProxy::$enabled = false; //here we need the currently logged in user, while userId can be a different user - $util = new Util($view, \OCP\User::getUser()); - list($owner, $filename) = $util->getUidAndFilename($path); + $util = new Util( $view, \OCP\User::getUser() ); + list( $owner, $filename ) = $util->getUidAndFilename( $path ); $basePath = '/' . $owner . '/files_encryption/keyfiles'; @@ -123,19 +123,26 @@ class Keymanager { if ( !$view->is_dir( $basePath . '/' . $targetPath ) ) { // create all parent folders - $info=pathinfo($basePath . '/' . $targetPath); - $keyfileFolderName=$view->getLocalFolder($info['dirname']); - if(!file_exists($keyfileFolderName)) { - mkdir($keyfileFolderName, 0750, true); + $info = pathinfo( $basePath . '/' . $targetPath ); + $keyfileFolderName = $view->getLocalFolder( $info['dirname'] ); + + if ( ! file_exists( $keyfileFolderName ) ) { + + mkdir( $keyfileFolderName, 0750, true ); + } } - // try reusing key file if part file - if(self::isPartialFilePath($targetPath)) { - $result = $view->file_put_contents( $basePath . '/' . self::fixPartialFilePath($targetPath) . '.key', $catfile ); - } else { - $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); - } + // try reusing key file if part file + if ( self::isPartialFilePath( $targetPath ) ) { + + $result = $view->file_put_contents( $basePath . '/' . self::fixPartialFilePath( $targetPath ) . '.key', $catfile ); + + } else { + + $result = $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile ); + + } \OC_FileProxy::$enabled = $proxyStatus; @@ -143,37 +150,47 @@ class Keymanager { } - /** - * @brief Remove .path extension from a file path - * @param string $path Path that may identify a .part file - * @return string File path without .part extension - * @note this is needed for reusing keys - */ - public static function fixPartialFilePath($path) - { - if (preg_match('/\.part$/', $path)) { + /** + * @brief Remove .path extension from a file path + * @param string $path Path that may identify a .part file + * @return string File path without .part extension + * @note this is needed for reusing keys + */ + public static function fixPartialFilePath( $path ) { + + if (preg_match('/\.part$/', $path)) { - $newLength = strlen($path) - 5; - $fPath = substr($path, 0, $newLength); + $newLength = strlen($path) - 5; + $fPath = substr($path, 0, $newLength); - return $fPath; - } else { + return $fPath; + + } else { - return $path; + return $path; - } + } - } + } - public static function isPartialFilePath($path) - { - if (preg_match('/\.part$/', $path)) { - return true; - } else { - return false; - } + /** + * @brief Check if a path is a .part file + * @param string $path Path that may identify a .part file + * @return bool + */ + public static function isPartialFilePath( $path ) { + + if ( preg_match('/\.part$/', $path ) ) { + + return true; + + } else { + + return false; + + } - } + } /** * @brief retrieve keyfile for an encrypted file * @param \OC_FilesystemView $view @@ -186,21 +203,26 @@ class Keymanager { */ public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) { - // try reusing key file if part file - if(self::isPartialFilePath($filePath)) { - $result = self::getFileKey($view, $userId, self::fixPartialFilePath($filePath)); - if($result) { - return $result; - } - } + // try reusing key file if part file + if ( self::isPartialFilePath( $filePath ) ) { + + $result = self::getFileKey( $view, $userId, self::fixPartialFilePath( $filePath ) ); + + if ( $result ) { + + return $result; + + } + + } $util = new Util($view, \OCP\User::getUser()); list($owner, $filename) = $util->getUidAndFilename($filePath); $filePath_f = ltrim( $filename, '/' ); - $keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key'; + $keyfilePath = '/' . $owner . '/files_encryption/keyfiles/' . $filePath_f . '.key'; - $proxyStatus = \OC_FileProxy::$enabled; + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( $view->file_exists( $keyfilePath ) ) { @@ -269,7 +291,7 @@ class Keymanager { $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' ); - $proxyStatus = \OC_FileProxy::$enabled; + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); @@ -278,7 +300,8 @@ class Keymanager { \OC_FileProxy::$enabled = $proxyStatus; - return $result; + return $result; + } /** @@ -304,7 +327,7 @@ class Keymanager { $view = new \OC_FilesystemView( '/public-keys' ); - $proxyStatus = \OC_FileProxy::$enabled; + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; if ( !$view->file_exists( '' ) ) $view->mkdir( '' ); @@ -313,7 +336,7 @@ class Keymanager { \OC_FileProxy::$enabled = $proxyStatus; - return $result; + return $result; } @@ -330,28 +353,32 @@ class Keymanager { */ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) { - //here we need the currently logged in user, while userId can be a different user + // Here we need the currently logged in user, while userId can be a different user $util = new Util( $view, \OCP\User::getUser() ); - list($owner, $filename) = $util->getUidAndFilename($path); + list( $owner, $filename ) = $util->getUidAndFilename( $path ); $basePath = '/' . $owner . '/files_encryption/share-keys'; $shareKeyPath = self::keySetPreparation( $view, $filename, $basePath, $owner ); - // try reusing key file if part file - if(self::isPartialFilePath($shareKeyPath)) { - $writePath = $basePath . '/' . self::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey'; - } else { - $writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey'; - } + // try reusing key file if part file + if(self::isPartialFilePath($shareKeyPath)) { + + $writePath = $basePath . '/' . self::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey'; + + } else { + + $writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey'; + + } - $proxyStatus = \OC_FileProxy::$enabled; + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; $result = $view->file_put_contents( $writePath, $shareKey ); - \OC_FileProxy::$enabled = $proxyStatus; + \OC_FileProxy::$enabled = $proxyStatus; if ( is_int( $result ) @@ -407,15 +434,20 @@ class Keymanager { */ public static function getShareKey( \OC_FilesystemView $view, $userId, $filePath ) { - // try reusing key file if part file - if(self::isPartialFilePath($filePath)) { - $result = self::getShareKey($view, $userId, self::fixPartialFilePath($filePath)); - if($result) { - return $result; - } - } + // try reusing key file if part file + if(self::isPartialFilePath($filePath)) { + + $result = self::getShareKey($view, $userId, self::fixPartialFilePath($filePath)); + + if($result) { + + return $result; + + } + + } - $proxyStatus = \OC_FileProxy::$enabled; + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; //here we need the currently logged in user, while userId can be a different user -- GitLab From e25aa78cafda9d922d70c1a1223009df5da93786 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 9 May 2013 19:36:18 +0200 Subject: [PATCH 264/454] added helper class and moved hook registration to it --- apps/files_encryption/appinfo/app.php | 21 ++++---- apps/files_encryption/lib/helper.php | 71 +++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 11 deletions(-) create mode 100755 apps/files_encryption/lib/helper.php diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index 7f01aaeebeb..b611eb798f3 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -8,23 +8,21 @@ OC::$CLASSPATH['OCA\Encryption\Stream'] = 'files_encryption/lib/stream.php'; OC::$CLASSPATH['OCA\Encryption\Proxy'] = 'files_encryption/lib/proxy.php'; OC::$CLASSPATH['OCA\Encryption\Session'] = 'files_encryption/lib/session.php'; OC::$CLASSPATH['OCA\Encryption\Capabilities'] = 'files_encryption/lib/capabilities.php'; +OC::$CLASSPATH['OCA\Encryption\Helper'] = 'files_encryption/lib/helper.php'; OC_FileProxy::register( new OCA\Encryption\Proxy() ); -// User-related hooks -OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); -OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); +// User related hooks +OCA\Encryption\Helper::registerUserHooks(); -// Sharing-related hooks -OCP\Util::connectHook( 'OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared' ); -OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); -OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); +// Sharing related hooks +OCA\Encryption\Helper::registerShareHooks(); -// Webdav-related hooks -OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); +// Webdav related hooks +OCA\Encryption\Helper::registerWebdavHooks(); -// filesystem hooks -OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename'); +// Filesystem related hooks +OCA\Encryption\Helper::registerFilesystemHooks(); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); @@ -52,3 +50,4 @@ if ( // Register settings scripts OCP\App::registerAdmin( 'files_encryption', 'settings-admin' ); OCP\App::registerPersonal( 'files_encryption', 'settings-personal' ); + diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php new file mode 100755 index 00000000000..b294a71ec1b --- /dev/null +++ b/apps/files_encryption/lib/helper.php @@ -0,0 +1,71 @@ + + * + * 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 . + * + */ + +namespace OCA\Encryption; + +/** + * @brief Class to manage registration of hooks an various helper methods + */ +class Helper { + + /** + * @brief register share related hooks + * + */ + public static function registerShareHooks() { + + \OCP\Util::connectHook( 'OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared' ); + \OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); + \OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); + } + + /** + * @brief register user related hooks + * + */ + public static function registerUserHooks() { + + \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); + \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); + } + + /** + * @brief register webdav related hooks + * + */ + public static function registerWebdavHooks() { + + \OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); + } + + /** + * @brief register filesystem related hooks + * + */ + public static function registerFilesystemHooks() { + + \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename'); + } + + +} \ No newline at end of file -- GitLab From de855ac31bbb7ccbf8632c0dd0bdf198d22a2c97 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 9 May 2013 19:37:26 +0200 Subject: [PATCH 265/454] improved tests and include helper --- apps/files_encryption/tests/share.php | 76 +++++++++++++++++++-------- 1 file changed, 53 insertions(+), 23 deletions(-) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index eba5dd5195a..bfe34478f78 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -1,13 +1,25 @@ , and - * Robin Appelman - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. + * ownCloud + * + * @author Florin Peter + * @copyright 2013 Florin Peter + * + * 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 . + * */ -//require_once "PHPUnit/Framework/TestCase.php"; require_once realpath( dirname(__FILE__).'/../../../3rdparty/Crypt_Blowfish/Blowfish.php' ); require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); require_once realpath( dirname(__FILE__).'/../lib/crypt.php' ); @@ -15,21 +27,11 @@ require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../lib/helper.php' ); require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); use OCA\Encryption; -// This has to go here because otherwise session errors arise, and the private -// encryption key needs to be saved in the session - -/** - * @note It would be better to use Mockery here for mocking out the session - * handling process, and isolate calls to session class and data from the unit - * tests relating to them (stream etc.). However getting mockery to work and - * overload classes whilst also using the OC autoloader is difficult due to - * load order Pear errors. - */ - class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function setUp() { @@ -46,20 +48,30 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes'); OC_Hook::clear('OCP\\Share'); - // Sharing-related hooks - OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); - OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); - OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); - OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); + // Sharing related hooks + OCA\Encryption\Helper::registerShareHooks(); + + // Filesystem related hooks + OCA\Encryption\Helper::registerFilesystemHooks(); OC_FileProxy::register( new OCA\Encryption\Proxy() ); OC::registerShareHooks(); + + // remember files_trashbin state + $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); + + // we don't want to tests with app files_trashbin + OC_App::disable('files_trashbin'); } function tearDown() { - + if($this->stateFilesTrashbin) { + OC_App::enable('files_trashbin'); + } else { + OC_App::disable('files_trashbin'); + } } function testShareFile($withTeardown = true) { @@ -120,6 +132,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // tear down \OC_User::deleteUser('user1'); + + // cleanup + $this->view->unlink('/admin/files/'.$filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey')); } } @@ -175,6 +193,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // tear down \OC_User::deleteUser('user2'); \OC_User::deleteUser('user1'); + + // cleanup + $this->view->unlink('/admin/files/'.$filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey')); } } @@ -239,6 +263,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey')); + // cleanup + $this->view->unlink('/admin/files'.$folder1.$subfolder.$subsubfolder.'/'.$filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.admin.shareKey')); + // tear down \OC_User::deleteUser('user1'); } -- GitLab From 990f23c0249682043c9e0dd42f33c478e2aa9131 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 9 May 2013 22:52:44 +0200 Subject: [PATCH 266/454] fix typo --- lib/hooks/basicemitter.php | 2 +- lib/hooks/emitter.php | 2 +- tests/lib/hooks/basicemitter.php | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/hooks/basicemitter.php b/lib/hooks/basicemitter.php index bd24539a40b..e615a58cfe8 100644 --- a/lib/hooks/basicemitter.php +++ b/lib/hooks/basicemitter.php @@ -35,7 +35,7 @@ abstract class BasicEmitter implements Emitter { * @param string $method optional * @param callable $callback optional */ - public function remoteListener($scope = null, $method = null, $callback = null) { + public function removeListener($scope = null, $method = null, $callback = null) { $names = array(); $allNames = array_keys($this->listeners); if ($scope and $method) { diff --git a/lib/hooks/emitter.php b/lib/hooks/emitter.php index 4219b6f3545..8e9074bad67 100644 --- a/lib/hooks/emitter.php +++ b/lib/hooks/emitter.php @@ -28,5 +28,5 @@ interface Emitter { * @param string $method optional * @param callable $callback optional */ - public function remoteListener($scope = null, $method = null, $callback = null); + public function removeListener($scope = null, $method = null, $callback = null); } diff --git a/tests/lib/hooks/basicemitter.php b/tests/lib/hooks/basicemitter.php index 53de996c5c9..f48dc53c563 100644 --- a/tests/lib/hooks/basicemitter.php +++ b/tests/lib/hooks/basicemitter.php @@ -153,7 +153,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { throw new EmittedException; }; $this->emitter->listen('Test', 'test', $listener); - $this->emitter->remoteListener('Test', 'test', $listener); + $this->emitter->removeListener('Test', 'test', $listener); $this->emitter->emitEvent('Test', 'test'); } @@ -166,7 +166,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener1); $this->emitter->listen('Test', 'test', $listener2); - $this->emitter->remoteListener('Test', 'test'); + $this->emitter->removeListener('Test', 'test'); $this->emitter->emitEvent('Test', 'test'); } @@ -176,7 +176,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener); $this->emitter->listen('Test', 'foo', $listener); - $this->emitter->remoteListener('Test', null, $listener); + $this->emitter->removeListener('Test', null, $listener); $this->emitter->emitEvent('Test', 'test'); $this->emitter->emitEvent('Test', 'foo'); } @@ -187,7 +187,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener); $this->emitter->listen('Bar', 'test', $listener); - $this->emitter->remoteListener(null, 'test', $listener); + $this->emitter->removeListener(null, 'test', $listener); $this->emitter->emitEvent('Test', 'test'); $this->emitter->emitEvent('Bar', 'test'); } @@ -199,7 +199,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { $this->emitter->listen('Test', 'test', $listener); $this->emitter->listen('Test', 'foo', $listener); $this->emitter->listen('Bar', 'foo', $listener); - $this->emitter->remoteListener(null, null, $listener); + $this->emitter->removeListener(null, null, $listener); $this->emitter->emitEvent('Test', 'test'); $this->emitter->emitEvent('Test', 'foo'); $this->emitter->emitEvent('Bar', 'foo'); @@ -217,7 +217,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener1); $this->emitter->listen('Test', 'test', $listener2); - $this->emitter->remoteListener('Test', 'test', $listener1); + $this->emitter->removeListener('Test', 'test', $listener1); $this->emitter->emitEvent('Test', 'test'); } @@ -230,7 +230,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener); $this->emitter->listen('Test', 'foo', $listener); - $this->emitter->remoteListener('Test', 'foo', $listener); + $this->emitter->removeListener('Test', 'foo', $listener); $this->emitter->emitEvent('Test', 'test'); } @@ -243,7 +243,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { }; $this->emitter->listen('Test', 'test', $listener); $this->emitter->listen('Bar', 'test', $listener); - $this->emitter->remoteListener('Bar', 'test', $listener); + $this->emitter->removeListener('Bar', 'test', $listener); $this->emitter->emitEvent('Test', 'test'); } @@ -255,7 +255,7 @@ class BasicEmitter extends \PHPUnit_Framework_TestCase { throw new EmittedException; }; $this->emitter->listen('Test', 'test', $listener); - $this->emitter->remoteListener('Bar', 'test', $listener); + $this->emitter->removeListener('Bar', 'test', $listener); $this->emitter->emitEvent('Test', 'test'); } } -- GitLab From ee1ce055fc6bbd543d31ef8c443bc379e7476e8d Mon Sep 17 00:00:00 2001 From: kondou Date: Tue, 7 May 2013 06:27:52 +0200 Subject: [PATCH 267/454] Fix #3251 Using ksort now, instead of prefilling the commonlanguages array. --- settings/personal.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/settings/personal.php b/settings/personal.php index de029770d98..cab6e56dada 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -29,8 +29,7 @@ $commonlangcodes = array( $languageNames=include 'languageCodes.php'; $languages=array(); -// Initialize array, so we can substitue later with our in $commonlangcodes specified order -$commonlanguages = array_fill(0, count($commonlangcodes), ""); +$commonlanguages = array(); foreach($languageCodes as $lang) { $l=OC_L10N::get('settings', $lang); if(substr($l->t('__language_name__'), 0, 1)!='_') {//first check if the language name is in the translation file @@ -52,6 +51,8 @@ foreach($languageCodes as $lang) { } } +ksort($commonlanguages); + // sort now by displayed language not the iso-code usort( $languages, function ($a, $b) { return strcmp($a['name'], $b['name']); -- GitLab From 1f464a7113f15ba55c3c80863e315855707f2177 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 9 May 2013 23:21:39 +0200 Subject: [PATCH 268/454] fix for accessing non object --- lib/public/share.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public/share.php b/lib/public/share.php index cb151b9f4bf..17fdd338610 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1249,7 +1249,7 @@ class Share { , $params ); // If hook execution didn't encounter errors - if ( ! $run->run ) { + if ( $run !== false && !$run->run ) { $message = 'Sharing '.$itemSource.' failed, because pre share hooks failed'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); return false; -- GitLab From 18a821b1e3bd1b688571c7c25bc4b78164a4110d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 9 May 2013 23:22:22 +0200 Subject: [PATCH 269/454] added helper --- apps/files_encryption/tests/crypt.php | 1 + apps/files_encryption/tests/keymanager.php | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 4a85048ba43..b2dea2f6538 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -15,6 +15,7 @@ require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../lib/helper.php' ); require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); use OCA\Encryption; diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 33ca29997be..3acc781a096 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -13,6 +13,7 @@ require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../lib/helper.php' ); require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); use OCA\Encryption; -- GitLab From 15845bf0bf2817a2cd113ee1d5752e63cf00bc79 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 9 May 2013 23:22:46 +0200 Subject: [PATCH 270/454] fix for autotest.sh --- apps/files_encryption/tests/share.php | 40 ++++++++++++--------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index bfe34478f78..5afa44b69cd 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -50,20 +50,27 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { OC_Hook::clear('OCP\\Share'); // Sharing related hooks - OCA\Encryption\Helper::registerShareHooks(); + \OCA\Encryption\Helper::registerShareHooks(); // Filesystem related hooks - OCA\Encryption\Helper::registerFilesystemHooks(); + \OCA\Encryption\Helper::registerFilesystemHooks(); - OC_FileProxy::register( new OCA\Encryption\Proxy() ); + \OC_FileProxy::register( new OCA\Encryption\Proxy() ); - OC::registerShareHooks(); + \OC::registerShareHooks(); + + OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); // remember files_trashbin state $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); // we don't want to tests with app files_trashbin - OC_App::disable('files_trashbin'); + \OC_App::disable('files_trashbin'); + + $this->loginHelper('user1', true); + $this->loginHelper('user2', true); + $this->loginHelper('user3', true); + $this->loginHelper('user4', true); } function tearDown() { @@ -72,12 +79,14 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { } else { OC_App::disable('files_trashbin'); } + + \OC_User::deleteUser('user1'); + \OC_User::deleteUser('user2'); + \OC_User::deleteUser('user3'); + \OC_User::deleteUser('user4'); } function testShareFile($withTeardown = true) { - // create user1 - $this->loginHelper('user1', true); - // login as admin $this->loginHelper('admin'); @@ -130,9 +139,6 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); - // tear down - \OC_User::deleteUser('user1'); - // cleanup $this->view->unlink('/admin/files/'.$filename); @@ -144,9 +150,6 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testReShareFile($withTeardown = true) { $this->testShareFile(false); - // create user2 - $this->loginHelper('user2', true); - // login as user1 $this->loginHelper('user1'); @@ -190,10 +193,6 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); - // tear down - \OC_User::deleteUser('user2'); - \OC_User::deleteUser('user1'); - // cleanup $this->view->unlink('/admin/files/'.$filename); @@ -204,7 +203,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testShareFolder($withTeardown = true) { // create user1 - $this->loginHelper('user1', true); + $this->loginHelper('user1'); // login as admin $this->loginHelper('admin'); @@ -268,9 +267,6 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // check if share key not exists $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.admin.shareKey')); - - // tear down - \OC_User::deleteUser('user1'); } } -- GitLab From 3eae26143f144cce173a619b260d45605aa11a03 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 10 May 2013 01:00:24 +0200 Subject: [PATCH 271/454] added test for re-share folder --- apps/files_encryption/tests/share.php | 312 ++++++++++++++++++-------- 1 file changed, 215 insertions(+), 97 deletions(-) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 5afa44b69cd..ca7209e1afd 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -20,34 +20,46 @@ * */ -require_once realpath( dirname(__FILE__).'/../../../3rdparty/Crypt_Blowfish/Blowfish.php' ); -require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); -require_once realpath( dirname(__FILE__).'/../lib/crypt.php' ); -require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); -require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); -require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); -require_once realpath( dirname(__FILE__).'/../lib/util.php' ); -require_once realpath( dirname(__FILE__).'/../lib/helper.php' ); -require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); +require_once realpath(dirname(__FILE__) . '/../../../3rdparty/Crypt_Blowfish/Blowfish.php'); +require_once realpath(dirname(__FILE__) . '/../../../lib/base.php'); +require_once realpath(dirname(__FILE__) . '/../lib/crypt.php'); +require_once realpath(dirname(__FILE__) . '/../lib/keymanager.php'); +require_once realpath(dirname(__FILE__) . '/../lib/proxy.php'); +require_once realpath(dirname(__FILE__) . '/../lib/stream.php'); +require_once realpath(dirname(__FILE__) . '/../lib/util.php'); +require_once realpath(dirname(__FILE__) . '/../lib/helper.php'); +require_once realpath(dirname(__FILE__) . '/../appinfo/app.php'); use OCA\Encryption; -class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { - - function setUp() { +class Test_Encryption_Share extends \PHPUnit_Framework_TestCase +{ + + function setUp() + { // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); $this->dataShort = 'hats'; - $this->view = new \OC_FilesystemView( '/' ); + $this->view = new \OC_FilesystemView('/'); $userHome = \OC_User::getHome('admin'); $this->dataDir = str_replace('/admin', '', $userHome); + $this->folder1 = '/folder1'; + $this->subfolder = '/subfolder1'; + $this->subsubfolder = '/subsubfolder1'; + + $this->filename = 'share-tmp.test'; + + // enable resharing \OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes'); - OC_Hook::clear('OCP\\Share'); + // clear share hooks + \OC_Hook::clear('OCP\\Share'); + \OC::registerShareHooks(); + \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); // Sharing related hooks \OCA\Encryption\Helper::registerShareHooks(); @@ -55,223 +67,329 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // Filesystem related hooks \OCA\Encryption\Helper::registerFilesystemHooks(); - \OC_FileProxy::register( new OCA\Encryption\Proxy() ); - - \OC::registerShareHooks(); - - OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); + \OC_FileProxy::register(new OCA\Encryption\Proxy()); // remember files_trashbin state $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); - // we don't want to tests with app files_trashbin + // we don't want to tests with app files_trashbin enabled \OC_App::disable('files_trashbin'); + // create users $this->loginHelper('user1', true); $this->loginHelper('user2', true); $this->loginHelper('user3', true); - $this->loginHelper('user4', true); } - - function tearDown() { - if($this->stateFilesTrashbin) { + + function tearDown() + { + // reset app files_trashbin + if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); } else { OC_App::disable('files_trashbin'); } + // cleanup users \OC_User::deleteUser('user1'); \OC_User::deleteUser('user2'); \OC_User::deleteUser('user3'); - \OC_User::deleteUser('user4'); - } + } - function testShareFile($withTeardown = true) { + function testShareFile($withTeardown = true) + { // login as admin $this->loginHelper('admin'); - $filename = 'share-tmp.test'; + // save file with content + $cryptedFile = file_put_contents('crypt://' . $this->filename, $this->dataShort); - $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataShort ); + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile)); - // Test that data was successfully written - $this->assertTrue( is_int( $cryptedFile ) ); - - // Disable encryption proxy to prevent recursive calls + // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - // get the file infos - $fileInfo = $this->view->getFileInfo('/admin/files/'.$filename); + // get the file info from previous created file + $fileInfo = $this->view->getFileInfo('/admin/files/' . $this->filename); - // check if we have fileInfos + // check if we have a valid file info $this->assertTrue(is_array($fileInfo)); - // check if we have fileInfos + // check if the unencrypted file size is stored $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); + // re-enable the file proxy \OC_FileProxy::$enabled = $proxyStatus; // share the file \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1', OCP\PERMISSION_ALL); + // login as admin $this->loginHelper('admin'); - // check if share key exists - $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); + // check if share key for user1 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user1.shareKey')); // login as user1 $this->loginHelper('user1'); - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared/' . $filename); + // get file contents + $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared/' . $this->filename); - // check if data is the same + // check if data is the same as we previously written $this->assertEquals($this->dataShort, $retreivedCryptedFile); - if($withTeardown) { + // cleanup + if ($withTeardown) { + // login as admin $this->loginHelper('admin'); - // share the file + // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user1.shareKey')); // cleanup - $this->view->unlink('/admin/files/'.$filename); + $this->view->unlink('/admin/files/' . $this->filename); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); } } - function testReShareFile($withTeardown = true) { + function testReShareFile($withTeardown = true) + { $this->testShareFile(false); // login as user1 $this->loginHelper('user1'); - $filename = 'share-tmp.test'; - // get the file info - $fileInfo = $this->view->getFileInfo('/user1/files/Shared/'.$filename); + $fileInfo = $this->view->getFileInfo('/user1/files/Shared/' . $this->filename); - // share the file + // share the file with user2 \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2', OCP\PERMISSION_ALL); + // login as admin $this->loginHelper('admin'); - // check if share key exists - $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user2.shareKey')); + // check if share key for user2 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey')); // login as user2 $this->loginHelper('user2'); - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $filename); + // get file contents + $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $this->filename); - // check if data is the same + // check if data is the same as previously written $this->assertEquals($this->dataShort, $retreivedCryptedFile); - if($withTeardown) { - // login as admin + // cleanup + if ($withTeardown) { + + // login as user1 $this->loginHelper('user1'); - // share the file + // unshare the file with user2 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2'); + // login as admin $this->loginHelper('admin'); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user2.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey')); - // share the file + // unshare the file with user1 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.user1.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user1.shareKey')); // cleanup - $this->view->unlink('/admin/files/'.$filename); + $this->view->unlink('/admin/files/' . $this->filename); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); } } - function testShareFolder($withTeardown = true) { - // create user1 - $this->loginHelper('user1'); - + function testShareFolder($withTeardown = true) + { // login as admin $this->loginHelper('admin'); - $folder1 = '/folder1'; - $subfolder = '/subfolder1'; - $subsubfolder = '/subsubfolder1'; - - $filename = 'share-tmp.test'; - - $this->view->mkdir('/admin/files'.$folder1); - $this->view->mkdir('/admin/files'.$folder1.$subfolder); - $this->view->mkdir('/admin/files'.$folder1.$subfolder.$subsubfolder); + // create folder structure + $this->view->mkdir('/admin/files' . $this->folder1); + $this->view->mkdir('/admin/files' . $this->folder1 . $this->subfolder); + $this->view->mkdir('/admin/files' . $this->folder1 . $this->subfolder . $this->subsubfolder); - $cryptedFile = file_put_contents( 'crypt://' . $folder1.$subfolder.$subsubfolder.'/'.$filename, $this->dataShort ); + // save file with content + $cryptedFile = file_put_contents('crypt://' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename, $this->dataShort); - // Test that data was successfully written - $this->assertTrue( is_int( $cryptedFile ) ); + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile)); - // Disable encryption proxy to prevent recursive calls + // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - // get the file infos - $fileInfo = $this->view->getFileInfo('/admin/files/folder1/'); + // get the file info from previous created folder + $fileInfo = $this->view->getFileInfo('/admin/files' . $this->folder1); - // check if we have fileInfos + // check if we have a valid file info $this->assertTrue(is_array($fileInfo)); + // re-enable the file proxy \OC_FileProxy::$enabled = $proxyStatus; - // share the file + // share the folder with user1 \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1', OCP\PERMISSION_ALL); + // login as admin $this->loginHelper('admin'); - // check if share key exists - $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey')); + // check if share key for user1 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user1.shareKey')); // login as user1 $this->loginHelper('user1'); - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared'.$folder1.$subfolder.$subsubfolder.'/'.$filename); + // get file contents + $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); // check if data is the same $this->assertEquals($this->dataShort, $retreivedCryptedFile); - if($withTeardown) { + // cleanup + if ($withTeardown) { + // login as admin $this->loginHelper('admin'); - // share the file + // unshare the folder with user1 \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user1.shareKey')); + + // cleanup + $this->view->unlink('/admin/files' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.admin.shareKey')); + } + + return $fileInfo; + } + + function testReShareFolder($withTeardown = true) + { + $fileInfoFolder1 = $this->testShareFolder(false); + + // login as user1 + $this->loginHelper('user1'); + + // disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // get the file info from previous created folder + $fileInfoSubFolder = $this->view->getFileInfo('/user1/files/Shared' . $this->folder1 . $this->subfolder); + + // check if we have a valid file info + $this->assertTrue(is_array($fileInfoSubFolder)); + + // re-enable the file proxy + \OC_FileProxy::$enabled = $proxyStatus; + + // share the file with user2 + \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2', OCP\PERMISSION_ALL); + + // login as admin + $this->loginHelper('admin'); + + // check if share key for user2 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user2.shareKey')); + + // login as user2 + $this->loginHelper('user2'); + + // get file contents + $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared' . $this->subfolder . $this->subsubfolder . '/' . $this->filename); + + // check if data is the same + $this->assertEquals($this->dataShort, $retreivedCryptedFile); + + // get the file info + $fileInfo = $this->view->getFileInfo('/user2/files/Shared' . $this->subfolder . $this->subsubfolder . '/' . $this->filename); + + // check if we have fileInfos + $this->assertTrue(is_array($fileInfo)); + + // share the file with user3 + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user3', OCP\PERMISSION_ALL); + + // login as admin + $this->loginHelper('admin'); + + // check if share key for user3 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user3.shareKey')); + + // login as user3 + $this->loginHelper('user3'); + + // get file contents + $retreivedCryptedFile = $this->view->file_get_contents('/user3/files/Shared/' . $this->filename); + + // check if data is the same + $this->assertEquals($this->dataShort, $retreivedCryptedFile); + + // cleanup + if ($withTeardown) { + + // login as user2 + $this->loginHelper('user2'); + + // unshare the file with user3 + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user3'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user3.shareKey')); + + // login as user1 + $this->loginHelper('user1'); + + // unshare the folder with user2 + \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user2'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user2.shareKey')); + + // login as admin + $this->loginHelper('admin'); + + // unshare the folder1 with user1 + \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, 'user1'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.user1.shareKey')); // cleanup - $this->view->unlink('/admin/files'.$folder1.$subfolder.$subsubfolder.'/'.$filename); + $this->view->unlink('/admin/files' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); // check if share key not exists - $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.admin.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename . '.admin.shareKey')); } } - function loginHelper($user, $create=false) { - if($create) { + function loginHelper($user, $create = false) + { + if ($create) { \OC_User::createUser($user, $user); } -- GitLab From 78559c0863dad56ddf71f1e4c296fabe0e75de35 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Fri, 10 May 2013 02:13:59 +0300 Subject: [PATCH 272/454] disable mbstring.func_overload --- .htaccess | 1 + 1 file changed, 1 insertion(+) diff --git a/.htaccess b/.htaccess index 201e0d605b7..08e2a82facb 100755 --- a/.htaccess +++ b/.htaccess @@ -12,6 +12,7 @@ ErrorDocument 404 /core/templates/404.php php_value upload_max_filesize 513M php_value post_max_size 513M php_value memory_limit 512M +php_value mbstring.func_overload 0 SetEnv htaccessWorking true -- GitLab From c3b0d3d38cb2cfe1501a28081dde34dbec2d2621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 10 May 2013 12:00:13 +0200 Subject: [PATCH 273/454] rename isIgnoredFile to isPartialFile, remove check of blacklisted files in isPartialFile, correct usage of isPartialFile and isFileBlacklisted --- lib/files/cache/scanner.php | 10 +++++----- lib/files/view.php | 16 +++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php index 5241acec1ee..661bc486330 100644 --- a/lib/files/cache/scanner.php +++ b/lib/files/cache/scanner.php @@ -62,7 +62,9 @@ class Scanner { * @return array with metadata of the scanned file */ public function scanFile($file, $checkExisting = false) { - if (!self::isIgnoredFile($file)) { + if ( ! self::isPartialFile($file) + and ! \OC\Files\Filesystem::isFileBlacklisted($file) + ) { \OC_Hook::emit('\OC\Files\Cache\Scanner', 'scan_file', array('path' => $file, 'storage' => $this->storageId)); $data = $this->getData($file); if ($data) { @@ -166,10 +168,8 @@ class Scanner { * @param String $file * @return boolean */ - public static function isIgnoredFile($file) { - if (pathinfo($file, PATHINFO_EXTENSION) === 'part' - || \OC\Files\Filesystem::isFileBlacklisted($file) - ) { + public static function isPartialFile($file) { + if (pathinfo($file, PATHINFO_EXTENSION) === 'part') { return true; } return false; diff --git a/lib/files/view.php b/lib/files/view.php index f89b7f66ffd..35053e0729c 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -263,12 +263,13 @@ class View { if (is_resource($data)) { //not having to deal with streams in file_put_contents makes life easier $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); if (\OC_FileProxy::runPreProxies('file_put_contents', $absolutePath, $data) - && Filesystem::isValidPath($path) + and Filesystem::isValidPath($path) + and ! Filesystem::isFileBlacklisted($path) ) { $path = $this->getRelativePath($absolutePath); $exists = $this->file_exists($path); $run = true; - if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) { + if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isPartialFile($path)) { if (!$exists) { \OC_Hook::emit( Filesystem::CLASSNAME, @@ -296,7 +297,7 @@ class View { list ($count, $result) = \OC_Helper::streamCopy($data, $target); fclose($target); fclose($data); - if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) { + if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isPartialFile($path)) { if (!$exists) { \OC_Hook::emit( Filesystem::CLASSNAME, @@ -340,6 +341,7 @@ class View { \OC_FileProxy::runPreProxies('rename', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2) and Filesystem::isValidPath($path1) + and ! Filesystem::isFileBlacklisted($path2) ) { $path1 = $this->getRelativePath($absolutePath1); $path2 = $this->getRelativePath($absolutePath2); @@ -404,6 +406,7 @@ class View { \OC_FileProxy::runPreProxies('copy', $absolutePath1, $absolutePath2) and Filesystem::isValidPath($path2) and Filesystem::isValidPath($path1) + and ! Filesystem::isFileBlacklisted($path2) ) { $path1 = $this->getRelativePath($absolutePath1); $path2 = $this->getRelativePath($absolutePath2); @@ -606,7 +609,10 @@ class View { private function basicOperation($operation, $path, $hooks = array(), $extraParam = null) { $postFix = (substr($path, -1, 1) === '/') ? '/' : ''; $absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path)); - if (\OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam) and Filesystem::isValidPath($path)) { + if (\OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam) + and Filesystem::isValidPath($path) + and ! Filesystem::isFileBlacklisted($path) + ) { $path = $this->getRelativePath($absolutePath); if ($path == null) { return false; @@ -635,7 +641,7 @@ class View { private function runHooks($hooks, $path, $post = false) { $prefix = ($post) ? 'post_' : ''; $run = true; - if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isIgnoredFile($path)) { + if (Filesystem::$loaded and $this->fakeRoot == Filesystem::getRoot()) { foreach ($hooks as $hook) { if ($hook != 'read') { \OC_Hook::emit( -- GitLab From 9134395b43bb92d31abc5de95fb00a024898cfc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 10 May 2013 12:01:50 +0200 Subject: [PATCH 274/454] don't emit rename hooks on partial file renames --- lib/files/view.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/files/view.php b/lib/files/view.php index 35053e0729c..f35e1e3dc16 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -350,7 +350,7 @@ class View { return false; } $run = true; - if ($this->fakeRoot == Filesystem::getRoot()) { + if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isPartialFile($path1)) { \OC_Hook::emit( Filesystem::CLASSNAME, Filesystem::signal_rename, array( @@ -378,7 +378,7 @@ class View { list($storage1, $internalPath1) = Filesystem::resolvePath($absolutePath1 . $postFix1); $storage1->unlink($internalPath1); } - if ($this->fakeRoot == Filesystem::getRoot()) { + if ($this->fakeRoot == Filesystem::getRoot() && !Cache\Scanner::isPartialFile($path1)) { \OC_Hook::emit( Filesystem::CLASSNAME, Filesystem::signal_post_rename, -- GitLab From cc433d47cb102d0dca50b925c7519c803ccce48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Fri, 10 May 2013 12:05:11 +0200 Subject: [PATCH 275/454] touch() needs to be performed relative to user/files otherwise ownCloud doesn't execute the hooks which means that etags aren't updated properly --- apps/files_trashbin/lib/trash.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index 88c71a75ab0..7fda855d0c2 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -266,7 +266,10 @@ class Trashbin { // handle the restore result if( $restoreResult ) { - $view->touch($target.$ext, $mtime); + $fakeRoot = $view->getRoot(); + $view->chroot('/'.$user.'/files'); + $view->touch('/'.$location.'/'.$filename.$ext, $mtime); + $view->chroot($fakeRoot); \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', array('filePath' => \OC\Files\Filesystem::normalizePath('/'.$location.'/'.$filename.$ext), 'trashPath' => \OC\Files\Filesystem::normalizePath($file))); -- GitLab From dc8164a3f09d45b8df195df791fa21ddbd2e510d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Sat, 11 May 2013 00:22:58 +0200 Subject: [PATCH 276/454] fix for accessing non object --- lib/public/share.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/public/share.php b/lib/public/share.php index 17fdd338610..418c0028ee5 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1243,13 +1243,14 @@ class Share { 'token' => $token, 'run' => $run ); + $run = \OC_Hook::emit( 'OCP\Share' , 'pre_shared' , $params ); // If hook execution didn't encounter errors - if ( $run !== false && !$run->run ) { + if ( isset($run->run) && !$run->run ) { $message = 'Sharing '.$itemSource.' failed, because pre share hooks failed'; \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); return false; -- GitLab From e88595638c787e04d1cd6c2df2aabf82ba4729d1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Sat, 11 May 2013 00:23:30 +0200 Subject: [PATCH 277/454] fix for webdav --- apps/files_encryption/lib/proxy.php | 2 +- apps/files_encryption/lib/stream.php | 2 +- apps/files_encryption/lib/util.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index ae36b9fe09f..3f8b8571252 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -492,7 +492,7 @@ class Proxy extends \OC_FileProxy { if($fixSize > 0) { $size = $fixSize; - $fileInfo['encrypted'] = 1; + $fileInfo['encrypted'] = true; $fileInfo['unencrypted_size'] = $size; // put file info diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index c2b13b00b24..33b3255e2af 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -519,7 +519,7 @@ class Stream { } // set encryption data - $fileInfo['encrypted'] = 1; + $fileInfo['encrypted'] = true; $fileInfo['size'] = $this->size; $fileInfo['unencrypted_size'] = $this->unencryptedSize; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 04b1e66f58a..ae8c7ffd575 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -94,7 +94,7 @@ class Util { // Integration testing: //// TODO: test new encryption with versioning - //// TODO: test new encryption with sharing + //// DONE: test new encryption with sharing //// TODO: test new encryption with proxies @@ -533,7 +533,7 @@ class Util { if ( $realSize > 0 ) { $cached = $this->view->getFileInfo( $path ); - $cached['encrypted'] = 1; + $cached['encrypted'] = true; // set the size $cached['unencrypted_size'] = $realSize; -- GitLab From 33e0dfeecbcfba7c3caa6765f156cd06d7dfdb13 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Sat, 11 May 2013 00:25:32 +0200 Subject: [PATCH 278/454] sharing with group should work now --- apps/files_encryption/hooks/hooks.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e8cd4ade713..619a4d1bfee 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -292,10 +292,16 @@ class Hooks { foreach ( $allFiles as $path ) { $usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path ); - - // Because this is a pre_share hook, the user - // being shared to is not yet included; add them - $usersSharing[] = $params['shareWith']; + + // check if we share to a group + if($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { + $usersSharing[] = reset(\OC_Group::usersInGroup($params['shareWith'])); + } else { + // Because this is a pre_share hook, the user + // being shared to is not yet included; add them + $usersSharing[] = $params['shareWith']; + } + // Attempt to set shareKey if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { @@ -310,8 +316,7 @@ class Hooks { // Set flag var 'run' to notify emitting // script that hook execution failed $params['run']->run = false; - - // TODO: Make sure files_sharing provides user + // TODO: Make sure files_sharing provides user // feedback on failed share } -- GitLab From 8e004cc3e1f2ef14096c8a19771363d29552f5b3 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Sat, 11 May 2013 01:03:43 +0200 Subject: [PATCH 279/454] added handling for sharing with link NOTE: only encryption work atm --- apps/files_encryption/hooks/hooks.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 619a4d1bfee..2d48198939b 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -296,6 +296,9 @@ class Hooks { // check if we share to a group if($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { $usersSharing[] = reset(\OC_Group::usersInGroup($params['shareWith'])); + // check if we share with link + } else if($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK) { + $usersSharing[] = 'owncloud'; } else { // Because this is a pre_share hook, the user // being shared to is not yet included; add them -- GitLab From 0d852dce3b060537ceb1418d97d00426f437527c Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Sat, 11 May 2013 22:44:45 +0200 Subject: [PATCH 280/454] Use new autoloader class --- tests/lib/public/contacts.php | 2 -- tests/lib/template.php | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/lib/public/contacts.php b/tests/lib/public/contacts.php index ce5d762226b..d6008876a00 100644 --- a/tests/lib/public/contacts.php +++ b/tests/lib/public/contacts.php @@ -19,8 +19,6 @@ * License along with this library. If not, see . */ -OC::autoload('OCP\Contacts'); - class Test_Contacts extends PHPUnit_Framework_TestCase { diff --git a/tests/lib/template.php b/tests/lib/template.php index 6e88d4c07fc..fd12119da58 100644 --- a/tests/lib/template.php +++ b/tests/lib/template.php @@ -20,10 +20,13 @@ * */ -OC::autoload('OC_Template'); - class Test_TemplateFunctions extends PHPUnit_Framework_TestCase { + public function setUp() { + $loader = new \OC\Autoloader(); + $loader->load('OC_Template'); + } + public function testP() { // FIXME: do we need more testcases? $htmlString = ""; -- GitLab From 74f92d0c7fa1afa181837a9e827933769816ecbb Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Sun, 12 May 2013 02:05:29 +0200 Subject: [PATCH 281/454] [tx-robot] updated from transifex --- apps/files/l10n/de.php | 24 ++-- apps/files/l10n/de_DE.php | 26 ++-- apps/files/l10n/en@pirate.php | 3 + apps/files/l10n/es.php | 20 ++-- apps/files/l10n/fr.php | 14 +-- apps/files/l10n/gl.php | 2 +- apps/files/l10n/ko.php | 6 + apps/files/l10n/ug.php | 44 +++++++ apps/files/l10n/vi.php | 6 +- apps/files_encryption/l10n/ug.php | 7 ++ apps/files_external/l10n/de_DE.php | 2 +- apps/files_external/l10n/pt_PT.php | 1 + apps/files_external/l10n/ug.php | 9 ++ apps/files_external/l10n/vi.php | 3 + apps/files_sharing/l10n/en@pirate.php | 8 +- apps/files_sharing/l10n/ug.php | 5 + apps/files_trashbin/l10n/ko.php | 1 + apps/files_trashbin/l10n/ug.php | 11 ++ apps/files_versions/l10n/ug.php | 9 ++ apps/files_versions/l10n/zh_TW.php | 4 +- apps/user_ldap/l10n/de.php | 24 ++-- apps/user_ldap/l10n/de_DE.php | 42 +++---- apps/user_ldap/l10n/ja_JP.php | 2 +- apps/user_ldap/l10n/ug.php | 13 ++ apps/user_webdavauth/l10n/ug.php | 4 + apps/user_webdavauth/l10n/zh_TW.php | 2 +- core/l10n/de.php | 1 + core/l10n/de_DE.php | 4 +- core/l10n/en@pirate.php | 4 +- core/l10n/es.php | 50 ++++---- core/l10n/fr.php | 1 + core/l10n/ja_JP.php | 2 +- core/l10n/lt_LT.php | 2 + core/l10n/pt_PT.php | 3 + core/l10n/sk_SK.php | 1 + core/l10n/ug.php | 48 ++++++++ core/l10n/vi.php | 5 + core/l10n/zh_CN.php | 3 + core/l10n/zh_TW.php | 3 + l10n/de/core.po | 9 +- l10n/de/files.po | 79 ++++++------ l10n/de/files_encryption.po | 6 +- l10n/de/files_external.po | 6 +- l10n/de/files_sharing.po | 6 +- l10n/de/files_trashbin.po | 6 +- l10n/de/files_versions.po | 6 +- l10n/de/lib.po | 17 +-- l10n/de/settings.po | 45 +++---- l10n/de/user_ldap.po | 31 ++--- l10n/de_DE/core.po | 11 +- l10n/de_DE/files.po | 34 +++--- l10n/de_DE/files_encryption.po | 6 +- l10n/de_DE/files_external.po | 9 +- l10n/de_DE/files_sharing.po | 6 +- l10n/de_DE/files_trashbin.po | 6 +- l10n/de_DE/lib.po | 6 +- l10n/de_DE/settings.po | 36 +++--- l10n/de_DE/user_ldap.po | 49 ++++---- l10n/en@pirate/core.po | 8 +- l10n/en@pirate/files.po | 4 +- l10n/en@pirate/files_sharing.po | 16 +-- l10n/es/core.po | 57 ++++----- l10n/es/files.po | 75 ++++++------ l10n/es/lib.po | 12 +- l10n/fr/core.po | 9 +- l10n/fr/files.po | 69 +++++------ l10n/gl/files.po | 57 ++++----- l10n/gl/settings.po | 26 ++-- l10n/ja_JP/core.po | 6 +- l10n/ja_JP/user_ldap.po | 9 +- l10n/ko/files.po | 68 ++++++----- l10n/ko/files_trashbin.po | 6 +- l10n/ko/settings.po | 26 ++-- l10n/lt_LT/core.po | 11 +- l10n/nn_NO/core.po | 4 +- l10n/nn_NO/files.po | 4 +- l10n/pt_PT/core.po | 13 +- l10n/pt_PT/files_external.po | 9 +- l10n/pt_PT/settings.po | 31 ++--- l10n/sk_SK/core.po | 8 +- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 4 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/ug/core.po | 100 ++++++++-------- l10n/ug/files.po | 92 +++++++------- l10n/ug/files_encryption.po | 18 +-- l10n/ug/files_external.po | 22 ++-- l10n/ug/files_sharing.po | 15 +-- l10n/ug/files_trashbin.po | 26 ++-- l10n/ug/files_versions.po | 22 ++-- l10n/ug/lib.po | 50 ++++---- l10n/ug/settings.po | 166 +++++++++++++------------- l10n/ug/user_ldap.po | 30 ++--- l10n/ug/user_webdavauth.po | 13 +- l10n/vi/core.po | 17 +-- l10n/vi/files.po | 63 +++++----- l10n/vi/files_external.po | 13 +- l10n/zh_CN/core.po | 13 +- l10n/zh_CN/settings.po | 31 ++--- l10n/zh_TW/core.po | 13 +- l10n/zh_TW/files_versions.po | 11 +- l10n/zh_TW/user_ldap.po | 4 +- l10n/zh_TW/user_webdavauth.po | 15 +-- lib/l10n/de.php | 2 +- lib/l10n/ug.php | 19 +++ settings/l10n/de.php | 18 +-- settings/l10n/de_DE.php | 8 +- settings/l10n/gl.php | 2 +- settings/l10n/pt_PT.php | 1 + settings/l10n/ug.php | 71 +++++++++++ settings/l10n/zh_CN.php | 1 + 119 files changed, 1260 insertions(+), 941 deletions(-) create mode 100644 apps/files/l10n/en@pirate.php create mode 100644 apps/files/l10n/ug.php create mode 100644 apps/files_encryption/l10n/ug.php create mode 100644 apps/files_external/l10n/ug.php create mode 100644 apps/files_sharing/l10n/ug.php create mode 100644 apps/files_trashbin/l10n/ug.php create mode 100644 apps/files_versions/l10n/ug.php create mode 100644 apps/user_ldap/l10n/ug.php create mode 100644 apps/user_webdavauth/l10n/ug.php create mode 100644 core/l10n/ug.php create mode 100644 lib/l10n/ug.php create mode 100644 settings/l10n/ug.php diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index f8ad5993af6..14d084bc211 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -1,16 +1,16 @@ "%s konnte nicht verschoben werden - eine Datei mit diesem Namen existiert bereits.", -"Could not move %s" => "%s konnte nicht verschoben werden", -"Unable to rename file" => "Die Datei konnte nicht umbenannt werden", +"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", +"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich übertragen.", +"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", "The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", "No file was uploaded" => "Keine Datei konnte übertragen werden.", "Missing a temporary folder" => "Kein temporärer Ordner vorhanden", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", -"Not enough storage available" => "Nicht genug Speicherplatz verfügbar", +"Not enough storage available" => "Nicht genug Speicher vorhanden.", "Invalid directory." => "Ungültiges Verzeichnis.", "Files" => "Dateien", "Share" => "Teilen", @@ -20,20 +20,20 @@ "Pending" => "Ausstehend", "{new_name} already exists" => "{new_name} existiert bereits", "replace" => "ersetzen", -"suggest name" => "Name vorschlagen", +"suggest name" => "Namen vorschlagen", "cancel" => "abbrechen", "replaced {new_name} with {old_name}" => "{old_name} ersetzt durch {new_name}", "undo" => "rückgängig machen", "perform delete operation" => "Löschvorgang ausführen", -"1 file uploading" => "Eine Datei wird hoch geladen", +"1 file uploading" => "1 Datei wird hochgeladen", "files uploading" => "Dateien werden hoch geladen", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", -"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicherplatz ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!", -"Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicherplatz ist fast aufgebraucht ({usedSpacePercent}%)", +"Your storage is full, files can not be updated or synced anymore!" => "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", +"Your storage is almost full ({usedSpacePercent}%)" => "Dein Speicher ist fast voll ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Dein Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.", +"Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.", "Not enough space available" => "Nicht genug Speicherplatz verfügbar", "Upload cancelled." => "Upload abgebrochen.", "File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.", @@ -62,9 +62,9 @@ "From link" => "Von einem Link", "Deleted files" => "Gelöschte Dateien", "Cancel upload" => "Upload abbrechen", -"You don’t have write permissions here." => "Du besitzt hier keine Schreib-Berechtigung.", +"You don’t have write permissions here." => "Du hast hier keine Schreib-Berechtigung.", "Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", -"Download" => "Download", +"Download" => "Herunterladen", "Unshare" => "Freigabe aufheben", "Upload too large" => "Der Upload ist zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 8a977710a2a..6f912976939 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -3,12 +3,12 @@ "Could not move %s" => "Konnte %s nicht verschieben", "Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", -"There is no error, the file uploaded with success" => "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in der php.ini:", -"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist", +"There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", "The uploaded file was only partially uploaded" => "Die Datei konnte nur teilweise übertragen werden", "No file was uploaded" => "Keine Datei konnte übertragen werden.", -"Missing a temporary folder" => "Der temporäre Ordner fehlt.", +"Missing a temporary folder" => "Kein temporärer Ordner vorhanden", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Not enough storage available" => "Nicht genug Speicher vorhanden.", "Invalid directory." => "Ungültiges Verzeichnis.", @@ -20,29 +20,29 @@ "Pending" => "Ausstehend", "{new_name} already exists" => "{new_name} existiert bereits", "replace" => "ersetzen", -"suggest name" => "Einen Namen vorschlagen", +"suggest name" => "Namen vorschlagen", "cancel" => "abbrechen", "replaced {new_name} with {old_name}" => "{old_name} wurde ersetzt durch {new_name}", "undo" => "rückgängig machen", -"perform delete operation" => "führe das Löschen aus", +"perform delete operation" => "Löschvorgang ausführen", "1 file uploading" => "1 Datei wird hochgeladen", "files uploading" => "Dateien werden hoch geladen", "'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.", "File name cannot be empty." => "Der Dateiname darf nicht leer sein.", -"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name! Die Zeichen '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", -"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", +"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.", +"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicher ist fast voll ({usedSpacePercent}%)", -"Your download is being prepared. This might take some time if the files are big." => "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern.", +"Your download is being prepared. This might take some time if the files are big." => "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern.", "Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.", "Not enough space available" => "Nicht genügend Speicherplatz verfügbar", "Upload cancelled." => "Upload abgebrochen.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", "URL cannot be empty." => "Die URL darf nicht leer sein.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten", "Error" => "Fehler", "Name" => "Name", "Size" => "Größe", -"Modified" => "Bearbeitet", +"Modified" => "Geändert", "1 folder" => "1 Ordner", "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", @@ -63,12 +63,12 @@ "Deleted files" => "Gelöschte Dateien", "Cancel upload" => "Upload abbrechen", "You don’t have write permissions here." => "Sie haben hier keine Schreib-Berechtigungen.", -"Nothing in here. Upload something!" => "Alles leer. Bitte laden Sie etwas hoch!", +"Nothing in here. Upload something!" => "Alles leer. Laden Sie etwas hoch!", "Download" => "Herunterladen", "Unshare" => "Freigabe aufheben", "Upload too large" => "Der Upload ist zu groß", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.", "Files are being scanned, please wait." => "Dateien werden gescannt, bitte warten.", "Current scanning" => "Scanne", -"Upgrading filesystem cache..." => "Aktualisiere den Dateisystem-Cache..." +"Upgrading filesystem cache..." => "Dateisystem-Cache wird aktualisiert ..." ); diff --git a/apps/files/l10n/en@pirate.php b/apps/files/l10n/en@pirate.php new file mode 100644 index 00000000000..fdd1850da90 --- /dev/null +++ b/apps/files/l10n/en@pirate.php @@ -0,0 +1,3 @@ + "Download" +); diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index c9bc5ed6293..dd756142e42 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -27,18 +27,18 @@ "perform delete operation" => "Eliminar", "1 file uploading" => "subiendo 1 archivo", "files uploading" => "subiendo archivos", -"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.", +"'.' is an invalid file name." => "'.' no es un nombre de archivo válido.", "File name cannot be empty." => "El nombre de archivo no puede estar vacío.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ", -"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizados o sincronizados!", -"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento esta lleno en un ({usedSpacePercent}%)", -"Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.", +"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡no se pueden actualizar ni sincronizar archivos!", +"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)", +"Your download is being prepared. This might take some time if the files are big." => "Su descarga está siendo preparada. Esto puede tardar algún tiempo si los archivos son muy grandes.", "Unable to upload your file as it is a directory or has 0 bytes" => "Imposible subir su archivo, es un directorio o tiene 0 bytes", "Not enough space available" => "No hay suficiente espacio disponible", "Upload cancelled." => "Subida cancelada.", -"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida.", +"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si sale de la página ahora, se cancelará la subida.", "URL cannot be empty." => "La URL no puede estar vacía.", -"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud", +"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "El nombre de carpeta no es válido. El uso de \"Shared\" está reservado para Owncloud", "Error" => "Error", "Name" => "Nombre", "Size" => "Tamaño", @@ -65,10 +65,10 @@ "You don’t have write permissions here." => "No tienes permisos para escribir aquí.", "Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!", "Download" => "Descargar", -"Unshare" => "No compartir", -"Upload too large" => "bida demasido grande", +"Unshare" => "Dejar de compartir", +"Upload too large" => "Subida demasido grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.", "Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.", -"Current scanning" => "Ahora escaneando", -"Upgrading filesystem cache..." => "Actualizando cache de archivos de sistema" +"Current scanning" => "Escaneo actual", +"Upgrading filesystem cache..." => "Actualizando caché del sistema de archivos" ); diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 3e2bdd4db02..e4793ab5264 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -2,11 +2,11 @@ "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", "Unable to rename file" => "Impossible de renommer le fichier", -"No file was uploaded. Unknown error" => "Aucun fichier n'a été chargé. Erreur inconnue", -"There is no error, the file uploaded with success" => "Il n'y a pas d'erreur, le fichier a été envoyé avec succes.", +"No file was uploaded. Unknown error" => "Aucun fichier n'a été envoyé. Erreur inconnue", +"There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été envoyé avec succès.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Le fichier envoyé dépasse la directive MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", -"The uploaded file was only partially uploaded" => "Le fichier envoyé n'a été que partiellement envoyé.", +"The uploaded file was only partially uploaded" => "Le fichier n'a été que partiellement envoyé.", "No file was uploaded" => "Pas de fichier envoyé.", "Missing a temporary folder" => "Absence de dossier temporaire.", "Failed to write to disk" => "Erreur d'écriture sur le disque", @@ -25,17 +25,17 @@ "replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}", "undo" => "annuler", "perform delete operation" => "effectuer l'opération de suppression", -"1 file uploading" => "1 fichier en cours de téléchargement", -"files uploading" => "fichiers en cours de téléchargement", +"1 file uploading" => "1 fichier en cours d'envoi", +"files uploading" => "fichiers en cours d'envoi", "'.' is an invalid file name." => "'.' n'est pas un nom de fichier valide.", "File name cannot be empty." => "Le nom de fichier ne peut être vide.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.", "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 !", "Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de téléverser votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle", +"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible d'envoyer votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle", "Not enough space available" => "Espace disponible insuffisant", -"Upload cancelled." => "Chargement annulé.", +"Upload cancelled." => "Envoi annulé.", "File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.", "URL cannot be empty." => "L'URL ne peut-être vide", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index e04940e2b48..48145d44619 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -52,7 +52,7 @@ "Maximum upload size" => "Tamaño máximo do envío", "max. possible: " => "máx. posíbel: ", "Needed for multi-file and folder downloads." => "Precísase para a descarga de varios ficheiros e cartafoles.", -"Enable ZIP-download" => "Habilitar a descarga-ZIP", +"Enable ZIP-download" => "Activar a descarga ZIP", "0 is unlimited" => "0 significa ilimitado", "Maximum input size for ZIP files" => "Tamaño máximo de descarga para os ficheiros ZIP", "Save" => "Gardar", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index 711c53ee49f..46955bd675f 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -10,9 +10,11 @@ "No file was uploaded" => "파일이 업로드되지 않았음", "Missing a temporary folder" => "임시 폴더가 없음", "Failed to write to disk" => "디스크에 쓰지 못했습니다", +"Not enough storage available" => "저장소가 용량이 충분하지 않습니다.", "Invalid directory." => "올바르지 않은 디렉터리입니다.", "Files" => "파일", "Share" => "공유", +"Delete permanently" => "영원히 삭제", "Delete" => "삭제", "Rename" => "이름 바꾸기", "Pending" => "대기 중", @@ -22,7 +24,9 @@ "cancel" => "취소", "replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨", "undo" => "되돌리기", +"perform delete operation" => "삭제 작업중", "1 file uploading" => "파일 1개 업로드 중", +"files uploading" => "파일 업로드중", "'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름 입니다.", "File name cannot be empty." => "파일 이름이 비어 있을 수 없습니다.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.", @@ -56,7 +60,9 @@ "Text file" => "텍스트 파일", "Folder" => "폴더", "From link" => "링크에서", +"Deleted files" => "파일 삭제됨", "Cancel upload" => "업로드 취소", +"You don’t have write permissions here." => "당신은 여기에 쓰기를 할 수 있는 권한이 없습니다.", "Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!", "Download" => "다운로드", "Unshare" => "공유 해제", diff --git a/apps/files/l10n/ug.php b/apps/files/l10n/ug.php new file mode 100644 index 00000000000..1bcd78be5ae --- /dev/null +++ b/apps/files/l10n/ug.php @@ -0,0 +1,44 @@ + "%s يۆتكىيەلمەيدۇ", +"Unable to rename file" => "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ", +"No file was uploaded. Unknown error" => "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق", +"No file was uploaded" => "ھېچقانداق ھۆججەت يۈكلەنمىدى", +"Missing a temporary folder" => "ۋاقىتلىق قىسقۇچ كەم.", +"Failed to write to disk" => "دىسكىغا يازالمىدى", +"Not enough storage available" => "يېتەرلىك ساقلاش بوشلۇقى يوق", +"Files" => "ھۆججەتلەر", +"Share" => "ھەمبەھىر", +"Delete permanently" => "مەڭگۈلۈك ئۆچۈر", +"Delete" => "ئۆچۈر", +"Rename" => "ئات ئۆزگەرت", +"Pending" => "كۈتۈۋاتىدۇ", +"{new_name} already exists" => "{new_name} مەۋجۇت", +"replace" => "ئالماشتۇر", +"suggest name" => "تەۋسىيە ئات", +"cancel" => "ۋاز كەچ", +"undo" => "يېنىۋال", +"1 file uploading" => "1 ھۆججەت يۈكلىنىۋاتىدۇ", +"files uploading" => "ھۆججەت يۈكلىنىۋاتىدۇ", +"Not enough space available" => "يېتەرلىك بوشلۇق يوق", +"Upload cancelled." => "يۈكلەشتىن ۋاز كەچتى.", +"File upload is in progress. Leaving the page now will cancel the upload." => "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload.", +"Error" => "خاتالىق", +"Name" => "ئاتى", +"Size" => "چوڭلۇقى", +"Modified" => "ئۆزگەرتكەن", +"1 folder" => "1 قىسقۇچ", +"1 file" => "1 ھۆججەت", +"{count} files" => "{count} ھۆججەت", +"Upload" => "يۈكلە", +"Save" => "ساقلا", +"New" => "يېڭى", +"Text file" => "تېكىست ھۆججەت", +"Folder" => "قىسقۇچ", +"Deleted files" => "ئۆچۈرۈلگەن ھۆججەتلەر", +"Cancel upload" => "يۈكلەشتىن ۋاز كەچ", +"Nothing in here. Upload something!" => "بۇ جايدا ھېچنېمە يوق. Upload something!", +"Download" => "چۈشۈر", +"Unshare" => "ھەمبەھىرلىمە", +"Upload too large" => "يۈكلەندىغىنى بەك چوڭ", +"Upgrading filesystem cache..." => "ھۆججەت سىستېما غەملىكىنى يۈكسەلدۈرۈۋاتىدۇ…" +); diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index fe172996c7c..77df2b0db41 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -1,5 +1,5 @@ "Không thể di chuyển %s - Đã có tên file này trên hệ thống", +"Could not move %s - File with this name already exists" => "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống", "Could not move %s" => "Không thể di chuyển %s", "Unable to rename file" => "Không thể đổi tên file", "No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định", @@ -34,6 +34,7 @@ "Your storage is almost full ({usedSpacePercent}%)" => "Your storage is almost full ({usedSpacePercent}%)", "Your download is being prepared. This might take some time if the files are big." => "Your download is being prepared. This might take some time if the files are big.", "Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin của bạn ,nó như là một thư mục hoặc có 0 byte", +"Not enough space available" => "Không đủ chỗ trống cần thiết", "Upload cancelled." => "Hủy tải lên", "File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.", "URL cannot be empty." => "URL không được để trống.", @@ -61,6 +62,7 @@ "From link" => "Từ liên kết", "Deleted files" => "File đã bị xóa", "Cancel upload" => "Hủy upload", +"You don’t have write permissions here." => "Bạn không có quyền ghi vào đâ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ề", "Unshare" => "Bỏ chia sẻ", @@ -68,5 +70,5 @@ "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .", "Files are being scanned, please wait." => "Tập tin đang được quét ,vui lòng chờ.", "Current scanning" => "Hiện tại đang quét", -"Upgrading filesystem cache..." => "Upgrading filesystem cache..." +"Upgrading filesystem cache..." => "Đang nâng cấp bộ nhớ đệm cho tập tin hệ thống..." ); diff --git a/apps/files_encryption/l10n/ug.php b/apps/files_encryption/l10n/ug.php new file mode 100644 index 00000000000..34eeb373b3e --- /dev/null +++ b/apps/files_encryption/l10n/ug.php @@ -0,0 +1,7 @@ + "شىفىرلاش", +"File encryption is enabled." => "ھۆججەت شىفىرلاش قوزغىتىلدى.", +"The following file types will not be encrypted:" => "تۆۋەندىكى ھۆججەت تىپلىرى شىفىرلانمايدۇ:", +"Exclude the following file types from encryption:" => "تۆۋەندىكى ھۆججەت تىپلىرى شىفىرلاشنىڭ سىرتىدا:", +"None" => "يوق" +); diff --git a/apps/files_external/l10n/de_DE.php b/apps/files_external/l10n/de_DE.php index 8a8ae37ffd2..9b7ab4d53ca 100644 --- a/apps/files_external/l10n/de_DE.php +++ b/apps/files_external/l10n/de_DE.php @@ -20,7 +20,7 @@ "Users" => "Benutzer", "Delete" => "Löschen", "Enable User External Storage" => "Externen Speicher für Benutzer aktivieren", -"Allow users to mount their own external storage" => "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden", +"Allow users to mount their own external storage" => "Erlaubt Benutzern, ihre eigenen externen Speicher einzubinden", "SSL root certificates" => "SSL-Root-Zertifikate", "Import Root Certificate" => "Root-Zertifikate importieren" ); diff --git a/apps/files_external/l10n/pt_PT.php b/apps/files_external/l10n/pt_PT.php index aac3c1c2ca0..0a05d1f8825 100644 --- a/apps/files_external/l10n/pt_PT.php +++ b/apps/files_external/l10n/pt_PT.php @@ -6,6 +6,7 @@ "Error configuring Google Drive storage" => "Erro ao configurar o armazenamento do Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Atenção: O cliente \"smbclient\" não está instalado. Não é possível montar as partilhas CIFS/SMB . Peça ao seu administrador para instalar.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Aviso: O suporte FTP no PHP não está activate ou instalado. Não é possível montar as partilhas FTP. Peça ao seu administrador para instalar.", +"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Atenção:
O suporte PHP para o Curl não está activado ou instalado. A montagem do ownCloud/WebDav ou GoolgeDriver não é possível. Por favor contacte o administrador para o instalar.", "External Storage" => "Armazenamento Externo", "Folder name" => "Nome da pasta", "External storage" => "Armazenamento Externo", diff --git a/apps/files_external/l10n/ug.php b/apps/files_external/l10n/ug.php new file mode 100644 index 00000000000..2d1dea98906 --- /dev/null +++ b/apps/files_external/l10n/ug.php @@ -0,0 +1,9 @@ + "قىسقۇچ ئاتى", +"External storage" => "سىرتقى ساقلىغۇچ", +"Configuration" => "سەپلىمە", +"Options" => "تاللانما", +"Groups" => "گۇرۇپپا", +"Users" => "ئىشلەتكۈچىلەر", +"Delete" => "ئۆچۈر" +); diff --git a/apps/files_external/l10n/vi.php b/apps/files_external/l10n/vi.php index 84f31e88924..769f9e2a097 100644 --- a/apps/files_external/l10n/vi.php +++ b/apps/files_external/l10n/vi.php @@ -6,11 +6,14 @@ "Error configuring Google Drive storage" => "Lỗi cấu hình lưu trữ Google Drive", "Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Cảnh báo: \"smbclient\" chưa được cài đặt. Mount CIFS/SMB shares là không thể thực hiện được. Hãy hỏi người quản trị hệ thống để cài đặt nó.", "Warning: The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "Cảnh báo: FTP trong PHP chưa được cài đặt hoặc chưa được mở. Mount FTP shares là không thể. Xin hãy yêu cầu quản trị hệ thống của bạn cài đặt nó.", +"Warning: The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "Cảnh báo: Tính năng Curl trong PHP chưa được kích hoạt hoặc cài đặt. Việc gắn kết ownCloud / WebDAV hay GoogleDrive không thực hiện được. Vui lòng liên hệ người quản trị để cài đặt nó.", "External Storage" => "Lưu trữ ngoài", "Folder name" => "Tên thư mục", +"External storage" => "Lưu trữ ngoài", "Configuration" => "Cấu hình", "Options" => "Tùy chọn", "Applicable" => "Áp dụng", +"Add storage" => "Thêm bộ nhớ", "None set" => "không", "All Users" => "Tất cả người dùng", "Groups" => "Nhóm", diff --git a/apps/files_sharing/l10n/en@pirate.php b/apps/files_sharing/l10n/en@pirate.php index eb667142ab4..02ee8440487 100644 --- a/apps/files_sharing/l10n/en@pirate.php +++ b/apps/files_sharing/l10n/en@pirate.php @@ -1,3 +1,9 @@ "Secret Code" +"Password" => "Secret Code", +"Submit" => "Submit", +"%s shared the folder %s with you" => "%s shared the folder %s with you", +"%s shared the file %s with you" => "%s shared the file %s with you", +"Download" => "Download", +"No preview available for" => "No preview available for", +"web services under your control" => "web services under your control" ); diff --git a/apps/files_sharing/l10n/ug.php b/apps/files_sharing/l10n/ug.php new file mode 100644 index 00000000000..348acc4a898 --- /dev/null +++ b/apps/files_sharing/l10n/ug.php @@ -0,0 +1,5 @@ + "ئىم", +"Submit" => "تاپشۇر", +"Download" => "چۈشۈر" +); diff --git a/apps/files_trashbin/l10n/ko.php b/apps/files_trashbin/l10n/ko.php index f06c90962ea..42ad87e98d2 100644 --- a/apps/files_trashbin/l10n/ko.php +++ b/apps/files_trashbin/l10n/ko.php @@ -1,5 +1,6 @@ "오류", +"Delete permanently" => "영원히 삭제", "Name" => "이름", "1 folder" => "폴더 1개", "{count} folders" => "폴더 {count}개", diff --git a/apps/files_trashbin/l10n/ug.php b/apps/files_trashbin/l10n/ug.php new file mode 100644 index 00000000000..c369e385f74 --- /dev/null +++ b/apps/files_trashbin/l10n/ug.php @@ -0,0 +1,11 @@ + "خاتالىق", +"Delete permanently" => "مەڭگۈلۈك ئۆچۈر", +"Name" => "ئاتى", +"Deleted" => "ئۆچۈرۈلدى", +"1 folder" => "1 قىسقۇچ", +"1 file" => "1 ھۆججەت", +"{count} files" => "{count} ھۆججەت", +"Nothing in here. Your trash bin is empty!" => "بۇ جايدا ھېچنېمە يوق. Your trash bin is empty!", +"Delete" => "ئۆچۈر" +); diff --git a/apps/files_versions/l10n/ug.php b/apps/files_versions/l10n/ug.php new file mode 100644 index 00000000000..024f326b032 --- /dev/null +++ b/apps/files_versions/l10n/ug.php @@ -0,0 +1,9 @@ + "ئەسلىگە قايتۇرالمايدۇ: %s", +"success" => "مۇۋەپپەقىيەتلىك", +"File %s was reverted to version %s" => "ھۆججەت %s نى %s نەشرىگە ئەسلىگە قايتۇردى", +"failure" => "مەغلۇپ بولدى", +"No old versions available" => "كونا نەشرى يوق", +"No path specified" => "يول بەلگىلەنمىگەن", +"Versions" => "نەشرى" +); diff --git a/apps/files_versions/l10n/zh_TW.php b/apps/files_versions/l10n/zh_TW.php index a191d594523..2ae9ce657ce 100644 --- a/apps/files_versions/l10n/zh_TW.php +++ b/apps/files_versions/l10n/zh_TW.php @@ -5,7 +5,7 @@ "failure" => "失敗", "File %s could not be reverted to version %s" => "檔案 %s 無法復原至版本 %s", "No old versions available" => "沒有舊的版本", -"No path specified" => "沒有指定路線", +"No path specified" => "沒有指定路徑", "Versions" => "版本", -"Revert a file to a previous version by clicking on its revert button" => "按一按復原的按鈕,就能把一個檔案復原至以前的版本" +"Revert a file to a previous version by clicking on its revert button" => "按一下復原的按鈕即可把檔案復原至以前的版本" ); diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index e86d877ecd7..27f5adb8b6c 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -1,31 +1,31 @@ "Löschen der Serverkonfiguration fehlgeschlagen", -"The configuration is valid and the connection could be established!" => "Die Konfiguration war erfolgreich, die Verbindung konnte hergestellt werden!", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, bitte sehen Sie für weitere Details im ownCloud Log nach", +"The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, sieh für weitere Details bitte im ownCloud Log nach", "Deletion failed" => "Löschen fehlgeschlagen", "Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", "Keep settings?" => "Einstellungen beibehalten?", -"Cannot add server configuration" => "Serverkonfiguration konnte nicht hinzugefügt werden.", +"Cannot add server configuration" => "Das Hinzufügen der Serverkonfiguration schlug fehl", "Connection test succeeded" => "Verbindungstest erfolgreich", "Connection test failed" => "Verbindungstest fehlgeschlagen", -"Do you really want to delete the current Server Configuration?" => "Wollen Sie die aktuelle Serverkonfiguration wirklich löschen?", +"Do you really want to delete the current Server Configuration?" => "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", -"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren.", "Server configuration" => "Serverkonfiguration", "Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://", "Base DN" => "Basis-DN", -"One Base DN per line" => "Ein Base DN pro Zeile", +"One Base DN per line" => "Ein Basis-DN pro Zeile", "You can specify Base DN for users and groups in the Advanced tab" => "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", "User DN" => "Benutzer-DN", "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." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer.", "Password" => "Passwort", -"For anonymous access, leave DN and Password empty." => "Lasse die Felder von DN und Passwort für anonymen Zugang leer.", +"For anonymous access, leave DN and Password empty." => "Lasse die Felder DN und Passwort für anonymen Zugang leer.", "User Login Filter" => "Benutzer-Login-Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch.", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch.", "use %%uid placeholder, e.g. \"uid=%%uid\"" => "verwende %%uid Platzhalter, z. B. \"uid=%%uid\"", "User List Filter" => "Benutzer-Filter-Liste", "Defines the filter to apply, when retrieving users." => "Definiert den Filter für die Anfrage der Benutzer.", @@ -54,13 +54,13 @@ "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", "Base User Tree" => "Basis-Benutzerbaum", -"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", +"One User Base DN per line" => "Ein Benutzer Basis-DN pro Zeile", "User Search Attributes" => "Benutzersucheigenschaften", -"Optional; one attribute per line" => "Optional; eine Eigenschaft pro Zeile", +"Optional; one attribute per line" => "Optional; ein Attribut pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", "Base Group Tree" => "Basis-Gruppenbaum", -"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", +"One Group Base DN per line" => "Ein Gruppen Basis-DN pro Zeile", "Group Search Attributes" => "Gruppensucheigenschaften", "Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", "Special Attributes" => "Spezielle Eigenschaften", diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php index 3b5d60387a6..488d8aad7c8 100644 --- a/apps/user_ldap/l10n/de_DE.php +++ b/apps/user_ldap/l10n/de_DE.php @@ -1,31 +1,31 @@ "Das Löschen der Server-Konfiguration schlug fehl", +"Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen", "The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig, aber das Herstellen der Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig. Weitere Details können Sie im ownCloud-Log nachlesen.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", +"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, sehen Sie für weitere Details bitte im ownCloud Log nach", "Deletion failed" => "Löschen fehlgeschlagen", -"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Serverkonfiguration übernommen werden?", -"Keep settings?" => "Einstellungen behalten?", +"Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", +"Keep settings?" => "Einstellungen beibehalten?", "Cannot add server configuration" => "Das Hinzufügen der Serverkonfiguration schlug fehl", "Connection test succeeded" => "Verbindungstest erfolgreich", "Connection test failed" => "Verbindungstest fehlgeschlagen", -"Do you really want to delete the current Server Configuration?" => "Möchten Sie die Serverkonfiguration wirklich löschen?", +"Do you really want to delete the current Server Configuration?" => "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", -"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", +"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", "Server configuration" => "Serverkonfiguration", "Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", "Base DN" => "Basis-DN", -"One Base DN per line" => "Ein Base DN pro Zeile", +"One Base DN per line" => "Ein Basis-DN pro Zeile", "You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", "User DN" => "Benutzer-DN", "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." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer.", "Password" => "Passwort", -"For anonymous access, leave DN and Password empty." => "Lassen Sie die Felder von DN und Passwort für einen anonymen Zugang leer.", +"For anonymous access, leave DN and Password empty." => "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer.", "User Login Filter" => "Benutzer-Login-Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Bestimmt den angewendeten Filter, wenn eine Anmeldung durchgeführt wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch.", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Bestimmt den angewendeten Filter, wenn eine Anmeldung durchgeführt wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch.", "use %%uid placeholder, e.g. \"uid=%%uid\"" => "verwenden Sie %%uid Platzhalter, z. B. \"uid=%%uid\"", "User List Filter" => "Benutzer-Filter-Liste", "Defines the filter to apply, when retrieving users." => "Definiert den Filter für die Anfrage der Benutzer.", @@ -37,12 +37,12 @@ "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", "Port" => "Port", -"Backup (Replica) Host" => "Back-Up (Replikation) Host", -"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup-Host an. Es muss ein Replikat des Haupt-LDAP/AD Servers sein.", -"Backup (Replica) Port" => "Back-Up (Replikation) Port", +"Backup (Replica) Host" => "Backup Host (Kopie)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", +"Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", -"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet, wird sich die ownCloud nur mit dem Replikat-Server verbinden.", -"Use TLS" => "Benutze TLS", +"When switched on, ownCloud will only connect to the replica server." => "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden.", +"Use TLS" => "Nutze TLS", "Do not use it additionally for LDAPS connections, it will fail." => "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.", @@ -50,20 +50,20 @@ "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", "Cache Time-To-Live" => "Speichere Time-To-Live zwischen", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", -"Directory Settings" => "Verzeichniseinstellungen", +"Directory Settings" => "Ordnereinstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", "The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ", "Base User Tree" => "Basis-Benutzerbaum", -"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile", -"User Search Attributes" => "Eigenschaften der Benutzer-Suche", +"One User Base DN per line" => "Ein Benutzer Basis-DN pro Zeile", +"User Search Attributes" => "Benutzersucheigenschaften", "Optional; one attribute per line" => "Optional; ein Attribut pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", "Base Group Tree" => "Basis-Gruppenbaum", -"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile", -"Group Search Attributes" => "Eigenschaften der Gruppen-Suche", +"One Group Base DN per line" => "Ein Gruppen Basis-DN pro Zeile", +"Group Search Attributes" => "Gruppensucheigenschaften", "Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", -"Special Attributes" => "Besondere Eigenschaften", +"Special Attributes" => "Spezielle Eigenschaften", "Quota Field" => "Kontingent-Feld", "Quota Default" => "Standard-Kontingent", "in bytes" => "in Bytes", diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php index 3ae7d2e6392..8239ecf3cc9 100644 --- a/apps/user_ldap/l10n/ja_JP.php +++ b/apps/user_ldap/l10n/ja_JP.php @@ -70,6 +70,6 @@ "Email Field" => "メールフィールド", "User Home Folder Naming Rule" => "ユーザのホームフォルダ命名規則", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。", -"Test Configuration" => "テスト設定", +"Test Configuration" => "設定をテスト", "Help" => "ヘルプ" ); diff --git a/apps/user_ldap/l10n/ug.php b/apps/user_ldap/l10n/ug.php new file mode 100644 index 00000000000..05a7a3f9a06 --- /dev/null +++ b/apps/user_ldap/l10n/ug.php @@ -0,0 +1,13 @@ + "ئۆچۈرۈش مەغلۇپ بولدى", +"Host" => "باش ئاپپارات", +"Password" => "ئىم", +"User Login Filter" => "ئىشلەتكۈچى تىزىمغا كىرىش سۈزگۈچى", +"User List Filter" => "ئىشلەتكۈچى تىزىم سۈزگۈچى", +"Group Filter" => "گۇرۇپپا سۈزگۈچ", +"Connection Settings" => "باغلىنىش تەڭشىكى", +"Configuration Active" => "سەپلىمە ئاكتىپ", +"Port" => "ئېغىز", +"Use TLS" => "TLS ئىشلەت", +"Help" => "ياردەم" +); diff --git a/apps/user_webdavauth/l10n/ug.php b/apps/user_webdavauth/l10n/ug.php new file mode 100644 index 00000000000..03ced5f4aa2 --- /dev/null +++ b/apps/user_webdavauth/l10n/ug.php @@ -0,0 +1,4 @@ + "WebDAV سالاھىيەت دەلىللەش", +"URL: http://" => "URL: http://" +); diff --git a/apps/user_webdavauth/l10n/zh_TW.php b/apps/user_webdavauth/l10n/zh_TW.php index 7a9d767eec1..6f94b77ac57 100644 --- a/apps/user_webdavauth/l10n/zh_TW.php +++ b/apps/user_webdavauth/l10n/zh_TW.php @@ -1,5 +1,5 @@ "WebDAV 認證", "URL: http://" => "網址:http://", -"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud會將把用戶的證件發送到這個網址。這個插件會檢查回應,並把HTTP狀態代碼401和403視為無效證件和所有其他回應視為有效證件。" +"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud 會將把用戶的登入資訊發送到這個網址以嘗試登入,並檢查回應, HTTP 狀態碼401和403視為登入失敗,所有其他回應視為登入成功。" ); diff --git a/core/l10n/de.php b/core/l10n/de.php index 6a77757d31a..b53bda109dd 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -125,6 +125,7 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Deiner Kontrolle", +"%s is available. Get more information on how to update." => "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatischer Login zurückgewiesen!", "If you did not change your password recently, your account may be compromised!" => "Wenn Du Dein Passwort nicht vor kurzem geändert hast, könnte Dein\nAccount kompromittiert sein!", diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php index 397bd2e6277..7e9b64193c6 100644 --- a/core/l10n/de_DE.php +++ b/core/l10n/de_DE.php @@ -92,7 +92,7 @@ "Request failed!
Did you make sure your email/username was right?" => "Anfrage fehlgeschlagen!
Haben Sie darauf geachtet, dass E-Mail-Adresse/Nutzername korrekt waren?", "You will receive a link to reset your password via Email." => "Sie erhalten einen Link per E-Mail, um Ihr Passwort zurückzusetzen.", "Username" => "Benutzername", -"Request reset" => "Zurücksetzung beantragen", +"Request reset" => "Zurücksetzung anfordern", "Your password was reset" => "Ihr Passwort wurde zurückgesetzt.", "To login page" => "Zur Login-Seite", "New password" => "Neues Passwort", @@ -125,7 +125,7 @@ "Database host" => "Datenbank-Host", "Finish setup" => "Installation abschließen", "web services under your control" => "Web-Services unter Ihrer Kontrolle", -"%s is available. Get more information on how to update." => "%s ist nicht verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", +"%s is available. Get more information on how to update." => "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.", "Log out" => "Abmelden", "Automatic logon rejected!" => "Automatische Anmeldung verweigert!", "If you did not change your password recently, your account may be compromised!" => "Wenn Sie Ihr Passwort nicht vor kurzem geändert haben, könnte Ihr\nAccount kompromittiert sein!", diff --git a/core/l10n/en@pirate.php b/core/l10n/en@pirate.php index 482632f3fda..981d9a1ca0f 100644 --- a/core/l10n/en@pirate.php +++ b/core/l10n/en@pirate.php @@ -1,3 +1,5 @@ "Passcode" +"User %s shared a file with you" => "User %s shared a file with you", +"Password" => "Passcode", +"web services under your control" => "web services under your control" ); diff --git a/core/l10n/es.php b/core/l10n/es.php index e0ccfd059de..d99ac861cea 100644 --- a/core/l10n/es.php +++ b/core/l10n/es.php @@ -3,11 +3,11 @@ "User %s shared a folder with you" => "El usuario %s ha compartido una carpeta contigo.", "User %s shared the file \"%s\" with you. It is available for download here: %s" => "El usuario %s ha compartido el archivo \"%s\" contigo. Puedes descargarlo aquí: %s.", "User %s shared the folder \"%s\" with you. It is available for download here: %s" => "El usuario %s ha compartido la carpeta \"%s\" contigo. Puedes descargarla aquí: %s.", -"Category type not provided." => "Tipo de categoria no proporcionado.", +"Category type not provided." => "Tipo de categoría no proporcionado.", "No category to add?" => "¿Ninguna categoría para añadir?", -"This category already exists: %s" => "Esta categoria ya existe: %s", -"Object type not provided." => "ipo de objeto no proporcionado.", -"%s ID not provided." => "%s ID no proporcionado.", +"This category already exists: %s" => "Ya existe esta categoría: %s", +"Object type not provided." => "Tipo de objeto no proporcionado.", +"%s ID not provided." => "ID de %s no proporcionado.", "Error adding %s to favorites." => "Error añadiendo %s a los favoritos.", "No categories selected for deletion." => "No hay categorías seleccionadas para borrar.", "Error removing %s from favorites." => "Error eliminando %s de los favoritos.", @@ -39,20 +39,20 @@ "today" => "hoy", "yesterday" => "ayer", "{days} days ago" => "hace {days} días", -"last month" => "mes pasado", +"last month" => "el mes pasado", "{months} months ago" => "Hace {months} meses", "months ago" => "hace meses", -"last year" => "año pasado", +"last year" => "el año pasado", "years ago" => "hace años", "Ok" => "Aceptar", "Cancel" => "Cancelar", "Choose" => "Seleccionar", "Yes" => "Sí", "No" => "No", -"The object type is not specified." => "El tipo de objeto no se ha especificado.", +"The object type is not specified." => "No se ha especificado el tipo de objeto", "Error" => "Error", -"The app name is not specified." => "El nombre de la app no se ha especificado.", -"The required file {file} is not installed!" => "El fichero {file} requerido, no está instalado.", +"The app name is not specified." => "No se ha especificado el nombre de la aplicación.", +"The required file {file} is not installed!" => "¡El fichero requerido {file} no está instalado!", "Shared" => "Compartido", "Share" => "Compartir", "Error while sharing" => "Error compartiendo", @@ -68,15 +68,15 @@ "Send" => "Enviar", "Set expiration date" => "Establecer fecha de caducidad", "Expiration date" => "Fecha de caducidad", -"Share via email:" => "compartido via e-mail:", +"Share via email:" => "Compartido por correo electrónico:", "No people found" => "No se encontró gente", "Resharing is not allowed" => "No se permite compartir de nuevo", "Shared in {item} with {user}" => "Compartido en {item} con {user}", -"Unshare" => "No compartir", +"Unshare" => "Dejar de compartir", "can edit" => "puede editar", "access control" => "control de acceso", "create" => "crear", -"update" => "modificar", +"update" => "actualizar", "delete" => "eliminar", "share" => "compartir", "Password protected" => "Protegido por contraseña", @@ -84,16 +84,16 @@ "Error setting expiration date" => "Error estableciendo fecha de caducidad", "Sending ..." => "Enviando...", "Email sent" => "Correo electrónico enviado", -"The update was unsuccessful. Please report this issue to the ownCloud community." => "La actualización ha fracasado. Por favor, informe este problema a la Comunidad de ownCloud.", +"The update was unsuccessful. Please report this issue to the ownCloud community." => "La actualización ha fracasado. Por favor, informe de este problema a la Comunidad de ownCloud.", "The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado correctamente. Redireccionando a ownCloud ahora.", -"ownCloud password reset" => "Reiniciar contraseña de ownCloud", +"ownCloud password reset" => "Restablecer contraseña de ownCloud", "Use the following link to reset your password: {link}" => "Utiliza el siguiente enlace para restablecer tu contraseña: {link}", -"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.
If it is not there ask your local administrator ." => "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su spam / carpetas no deseados.
Si no está allí pregunte a su administrador local.", -"Request failed!
Did you make sure your email/username was right?" => "Petición ha fallado!
¿Usted asegúrese que su dirección de correo electrónico / nombre de usuario estaba justo?", -"You will receive a link to reset your password via Email." => "Recibirás un enlace por correo electrónico para restablecer tu contraseña", +"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.
If it is not there ask your local administrator ." => "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su carpeta de spam / correo no deseado.
Si no está allí, pregunte a su administrador local.", +"Request failed!
Did you make sure your email/username was right?" => "La petición ha fallado!
¿Está seguro de que su dirección de correo electrónico o nombre de usuario era correcto?", +"You will receive a link to reset your password via Email." => "Recibirá un enlace por correo electrónico para restablecer su contraseña", "Username" => "Nombre de usuario", "Request reset" => "Solicitar restablecimiento", -"Your password was reset" => "Tu contraseña se ha restablecido", +"Your password was reset" => "Su contraseña ha sido establecida", "To login page" => "A la página de inicio de sesión", "New password" => "Nueva contraseña", "Reset password" => "Restablecer contraseña", @@ -108,12 +108,12 @@ "Add" => "Agregar", "Security Warning" => "Advertencia de seguridad", "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "La versión de PHP es vulnerable al ataque de Byte NULL (CVE-2006-7243)", -"Please update your PHP installation to use ownCloud securely." => "Por favor, actualice su instalación de PHP para utilizar ownCloud en forma segura.", +"Please update your PHP installation to use ownCloud securely." => "Por favor, actualice su instalación de PHP para utilizar ownCloud de manera segura.", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "No está disponible un generador de números aleatorios seguro, por favor habilite la extensión OpenSSL de PHP.", -"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sin un generador de números aleatorios seguro un atacante podría predecir los tokens de reinicio de su contraseña y tomar control de su cuenta.", -"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Su directorio de datos y sus archivos están probablemente accesibles a través de internet ya que el archivo .htaccess no está funcionando.", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sin un generador de números aleatorios seguro, un atacante podría predecir los tokens de restablecimiento de contraseñas y tomar el control de su cuenta.", +"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Probablemente su directorio de datos y sus archivos sean accesibles a través de internet ya que el archivo .htaccess no funciona.", "For information how to properly configure your server, please see the
documentation." => "Para información sobre cómo configurar adecuadamente su servidor, por favor vea la documentación.", -"Create an admin account" => "Crea una cuenta de administrador", +"Create an admin account" => "Crear una cuenta de administrador", "Advanced" => "Avanzado", "Data folder" => "Directorio de almacenamiento", "Configure the database" => "Configurar la base de datos", @@ -125,13 +125,13 @@ "Database host" => "Host de la base de datos", "Finish setup" => "Completar la instalación", "web services under your control" => "Servicios web bajo su control", -"%s is available. Get more information on how to update." => "%s esta disponible. Obtén mas información de como actualizar.", +"%s is available. Get more information on how to update." => "%s esta disponible. Obtener mas información de como actualizar.", "Log out" => "Salir", "Automatic logon rejected!" => "¡Inicio de sesión automático rechazado!", "If you did not change your password recently, your account may be compromised!" => "Si usted no ha cambiado su contraseña recientemente, ¡puede que su cuenta esté comprometida!", "Please change your password to secure your account again." => "Por favor cambie su contraseña para asegurar su cuenta nuevamente.", -"Lost your password?" => "¿Has perdido tu contraseña?", -"remember" => "recuérdame", +"Lost your password?" => "¿Ha perdido su contraseña?", +"remember" => "recordarme", "Log in" => "Entrar", "Alternative Logins" => "Nombre de usuarios alternativos", "prev" => "anterior", diff --git a/core/l10n/fr.php b/core/l10n/fr.php index c8f60a678f9..84ea35abcf2 100644 --- a/core/l10n/fr.php +++ b/core/l10n/fr.php @@ -125,6 +125,7 @@ "Database host" => "Serveur de la base de données", "Finish setup" => "Terminer l'installation", "web services under your control" => "services web sous votre contrôle", +"%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", "Automatic logon rejected!" => "Connexion automatique rejetée !", "If you did not change your password recently, your account may be compromised!" => "Si vous n'avez pas changé votre mot de passe récemment, votre compte risque d'être compromis !", diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index 1e73aa58908..783fe288ba3 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -110,7 +110,7 @@ "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "あなたのPHPのバージョンには、Null Byte攻撃(CVE-2006-7243)という脆弱性が含まれています。", "Please update your PHP installation to use ownCloud securely." => "ownCloud を安全に利用するに、PHPの更新を行なってください。", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "セキュアな乱数生成器が利用可能ではありません。PHPのOpenSSL拡張を有効にして下さい。", -"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "セキュアな乱数生成器が無い場合、攻撃者はパスワードリセットのトークンを予測してアカウントを乗っ取られる可能性があります。", +"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "セキュアな乱数生成器が無い場合、攻撃者がパスワードリセットのトークンを予測してアカウントを乗っ取られる可能性があります。", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => ".htaccess ファイルが動作していないため、おそらくあなたのデータディレクトリもしくはファイルはインターネットからアクセス可能です。", "For information how to properly configure your server, please see the documentation." => "あなたのサーバの適切な設定に関する情報として、ドキュメントを参照して下さい。", "Create an admin account" => "管理者アカウントを作成してください", diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php index 05ae35cc3d1..85b76fe6948 100644 --- a/core/l10n/lt_LT.php +++ b/core/l10n/lt_LT.php @@ -1,4 +1,6 @@ "Vartotojas %s pasidalino su jumis failu", +"User %s shared a folder with you" => "Vartotojas %s su jumis pasidalino aplanku", "No category to add?" => "Nepridėsite jokios kategorijos?", "No categories selected for deletion." => "Trynimui nepasirinkta jokia kategorija.", "Sunday" => "Sekmadienis", diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index 0b2af90d1d5..1084fc618f7 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "A actualização foi concluída com sucesso. Vai ser redireccionado para o ownCloud agora.", "ownCloud password reset" => "Reposição da password ownCloud", "Use the following link to reset your password: {link}" => "Use o seguinte endereço para repor a sua password: {link}", +"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.
If it is not there ask your local administrator ." => "O link para fazer reset à sua password foi enviado para o seu e-mail.
Se não o recebeu dentro um espaço de tempo aceitável, por favor verifique a sua pasta de SPAM.
Se não o encontrar, por favor contacte o seu administrador.", +"Request failed!
Did you make sure your email/username was right?" => "O pedido falhou!
Tem a certeza que introduziu o seu email/username correcto?", "You will receive a link to reset your password via Email." => "Vai receber um endereço para repor a sua password", "Username" => "Nome de utilizador", "Request reset" => "Pedir reposição", @@ -123,6 +125,7 @@ "Database host" => "Anfitrião da base de dados", "Finish setup" => "Acabar instalação", "web services under your control" => "serviços web sob o seu controlo", +"%s is available. Get more information on how to update." => "%s está disponível. Tenha mais informações como actualizar.", "Log out" => "Sair", "Automatic logon rejected!" => "Login automático rejeitado!", "If you did not change your password recently, your account may be compromised!" => "Se não mudou a sua palavra-passe recentemente, a sua conta pode ter sido comprometida!", diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php index d9f124b2b49..6a2d0aa5ece 100644 --- a/core/l10n/sk_SK.php +++ b/core/l10n/sk_SK.php @@ -125,6 +125,7 @@ "Database host" => "Server databázy", "Finish setup" => "Dokončiť inštaláciu", "web services under your control" => "webové služby pod Vašou kontrolou", +"%s is available. Get more information on how to update." => "%s je dostupná. Získajte viac informácií k postupu aktualizáce.", "Log out" => "Odhlásiť", "Automatic logon rejected!" => "Automatické prihlásenie bolo zamietnuté!", "If you did not change your password recently, your account may be compromised!" => "V nedávnej dobe ste nezmenili svoje heslo, Váš účet môže byť kompromitovaný.", diff --git a/core/l10n/ug.php b/core/l10n/ug.php new file mode 100644 index 00000000000..4727e37debd --- /dev/null +++ b/core/l10n/ug.php @@ -0,0 +1,48 @@ + "يەكشەنبە", +"Monday" => "دۈشەنبە", +"Tuesday" => "سەيشەنبە", +"Wednesday" => "چارشەنبە", +"Thursday" => "پەيشەنبە", +"Friday" => "جۈمە", +"Saturday" => "شەنبە", +"January" => "قەھرىتان", +"February" => "ھۇت", +"March" => "نەۋرۇز", +"April" => "ئۇمۇت", +"May" => "باھار", +"June" => "سەپەر", +"July" => "چىللە", +"August" => "تومۇز", +"September" => "مىزان", +"October" => "ئوغۇز", +"November" => "ئوغلاق", +"December" => "كۆنەك", +"Settings" => "تەڭشەكلەر", +"1 minute ago" => "1 مىنۇت ئىلگىرى", +"1 hour ago" => "1 سائەت ئىلگىرى", +"today" => "بۈگۈن", +"yesterday" => "تۈنۈگۈن", +"Ok" => "جەزملە", +"Cancel" => "ۋاز كەچ", +"Yes" => "ھەئە", +"No" => "ياق", +"Error" => "خاتالىق", +"Share" => "ھەمبەھىر", +"Share with" => "ھەمبەھىر", +"Password" => "ئىم", +"Send" => "يوللا", +"Unshare" => "ھەمبەھىرلىمە", +"delete" => "ئۆچۈر", +"share" => "ھەمبەھىر", +"Username" => "ئىشلەتكۈچى ئاتى", +"New password" => "يېڭى ئىم", +"Personal" => "شەخسىي", +"Users" => "ئىشلەتكۈچىلەر", +"Apps" => "ئەپلەر", +"Help" => "ياردەم", +"Add" => "قوش", +"Advanced" => "ئالىي", +"Finish setup" => "تەڭشەك تامام", +"Log out" => "تىزىمدىن چىق" +); diff --git a/core/l10n/vi.php b/core/l10n/vi.php index 0b45fa69313..31c4a37545c 100644 --- a/core/l10n/vi.php +++ b/core/l10n/vi.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "Cập nhật thành công .Hệ thống sẽ đưa bạn tới ownCloud.", "ownCloud password reset" => "Khôi phục mật khẩu Owncloud ", "Use the following link to reset your password: {link}" => "Dùng đường dẫn sau để khôi phục lại mật khẩu : {link}", +"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.
If it is not there ask your local administrator ." => "Liên kết tạo lại mật khẩu đã được gửi tới hộp thư của bạn.
Nếu bạn không thấy nó sau một khoảng thời gian, vui lòng kiểm tra trong thư mục Spam/Rác.
Nếu vẫn không thấy, vui lòng hỏi người quản trị hệ thống.", +"Request failed!
Did you make sure your email/username was right?" => "Yêu cầu thất bại!
Bạn có chắc là email/tên đăng nhập của bạn chính xác?", "You will receive a link to reset your password via Email." => "Vui lòng kiểm tra Email để khôi phục lại mật khẩu.", "Username" => "Tên đăng nhập", "Request reset" => "Yêu cầu thiết lập lại ", @@ -105,6 +107,8 @@ "Edit categories" => "Sửa chuyên mục", "Add" => "Thêm", "Security Warning" => "Cảnh bảo bảo mật", +"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Phiên bản PHP của bạn có lỗ hổng NULL Byte attack (CVE-2006-7243)", +"Please update your PHP installation to use ownCloud securely." => "Vui lòng cập nhật bản cài đặt PHP để sử dụng ownCloud một cách an toàn.", "No secure random number generator is available, please enable the PHP OpenSSL extension." => "Không an toàn ! chức năng random number generator đã có sẵn ,vui lòng bật PHP OpenSSL extension.", "Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Nếu không có random number generator , Hacker có thể thiết lập lại mật khẩu và chiếm tài khoản của bạn.", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Thư mục và file dữ liệu của bạn có thể được truy cập từ internet bởi vì file .htaccess không hoạt động", @@ -121,6 +125,7 @@ "Database host" => "Database host", "Finish setup" => "Cài đặt hoàn tất", "web services under your control" => "dịch vụ web dưới sự kiểm soát của bạn", +"%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", "Automatic logon rejected!" => "Tự động đăng nhập đã bị từ chối !", "If you did not change your password recently, your account may be compromised!" => "Nếu bạn không thay đổi mật khẩu gần đây của bạn, tài khoản của bạn có thể gặp nguy hiểm!", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index 0b6f0dfbdb5..c37f7b2602b 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "更新成功。正在重定向至 ownCloud。", "ownCloud password reset" => "重置 ownCloud 密码", "Use the following link to reset your password: {link}" => "使用以下链接重置您的密码:{link}", +"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.
If it is not there ask your local administrator ." => "重置密码的链接已发送到您的邮箱。
如果您觉得在合理的时间内还未收到邮件,请查看 spam/junk 目录。
如果没有在那里,请询问您的本地管理员。", +"Request failed!
Did you make sure your email/username was right?" => "请求失败
您确定您的邮箱/用户名是正确的?", "You will receive a link to reset your password via Email." => "您将会收到包含可以重置密码链接的邮件。", "Username" => "用户名", "Request reset" => "请求重置", @@ -123,6 +125,7 @@ "Database host" => "数据库主机", "Finish setup" => "安装完成", "web services under your control" => "您控制的web服务", +"%s is available. Get more information on how to update." => "%s 可用。获取更多关于如何升级的信息。", "Log out" => "注销", "Automatic logon rejected!" => "自动登录被拒绝!", "If you did not change your password recently, your account may be compromised!" => "如果您没有最近修改您的密码,您的帐户可能会受到影响!", diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php index cfc3a9fe332..6537e6dff07 100644 --- a/core/l10n/zh_TW.php +++ b/core/l10n/zh_TW.php @@ -88,6 +88,8 @@ "The update was successful. Redirecting you to ownCloud now." => "升級成功,正將您重新導向至 ownCloud 。", "ownCloud password reset" => "ownCloud 密碼重設", "Use the following link to reset your password: {link}" => "請至以下連結重設您的密碼: {link}", +"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.
If it is not there ask your local administrator ." => "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被放到垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。", +"Request failed!
Did you make sure your email/username was right?" => "請求失敗!
您確定填入的電子郵件地址或是帳號名稱是正確的嗎?", "You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到你的電子郵件信箱。", "Username" => "使用者名稱", "Request reset" => "請求重設", @@ -123,6 +125,7 @@ "Database host" => "資料庫主機", "Finish setup" => "完成設定", "web services under your control" => "由您控制的網路服務", +"%s is available. Get more information on how to update." => "%s 已經釋出,瞭解更多資訊以進行更新。", "Log out" => "登出", "Automatic logon rejected!" => "自動登入被拒!", "If you did not change your password recently, your account may be compromised!" => "如果您最近並未更改密碼,您的帳號可能已經遭到入侵!", diff --git a/l10n/de/core.po b/l10n/de/core.po index f882bf72085..87d896ee48a 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -4,14 +4,15 @@ # # Translators: # arkascha , 2013 +# Marcel Kühlhorn , 2013 # Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" -"PO-Revision-Date: 2013-05-03 21:50+0000\n" -"Last-Translator: Mirodin \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-11 17:20+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -565,7 +566,7 @@ msgstr "Web-Services unter Deiner Kontrolle" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de/files.po b/l10n/de/files.po index 19a6349e68c..5a0a81b37da 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Marcel Kühlhorn , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 21:00+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,16 +21,16 @@ msgstr "" #: ajax/move.php:17 #, php-format msgid "Could not move %s - File with this name already exists" -msgstr "%s konnte nicht verschoben werden - eine Datei mit diesem Namen existiert bereits." +msgstr "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits" #: ajax/move.php:27 ajax/move.php:30 #, php-format msgid "Could not move %s" -msgstr "%s konnte nicht verschoben werden" +msgstr "Konnte %s nicht verschieben" #: ajax/rename.php:22 ajax/rename.php:25 msgid "Unable to rename file" -msgstr "Die Datei konnte nicht umbenannt werden" +msgstr "Konnte Datei nicht umbenennen" #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" @@ -37,7 +38,7 @@ msgstr "Keine Datei hochgeladen. Unbekannter Fehler" #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" -msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich übertragen." +msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." #: ajax/upload.php:27 msgid "" @@ -68,7 +69,7 @@ msgstr "Fehler beim Schreiben auf die Festplatte" #: ajax/upload.php:51 msgid "Not enough storage available" -msgstr "Nicht genug Speicherplatz verfügbar" +msgstr "Nicht genug Speicher vorhanden." #: ajax/upload.php:83 msgid "Invalid directory." @@ -86,7 +87,7 @@ msgstr "Teilen" msgid "Delete permanently" msgstr "Endgültig löschen" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Löschen" @@ -108,7 +109,7 @@ msgstr "ersetzen" #: js/filelist.js:252 msgid "suggest name" -msgstr "Name vorschlagen" +msgstr "Namen vorschlagen" #: js/filelist.js:252 js/filelist.js:254 msgid "cancel" @@ -128,7 +129,7 @@ msgstr "Löschvorgang ausführen" #: js/filelist.js:406 msgid "1 file uploading" -msgstr "Eine Datei wird hoch geladen" +msgstr "1 Datei wird hochgeladen" #: js/filelist.js:409 js/filelist.js:463 msgid "files uploading" @@ -150,72 +151,72 @@ msgstr "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "Ihr Speicherplatz ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!" +msgstr "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "Ihr Speicherplatz ist fast aufgebraucht ({usedSpacePercent}%)" +msgstr "Dein Speicher ist fast voll ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dein Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." +msgstr "Deine Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nicht genug Speicherplatz verfügbar" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Upload abgebrochen." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Die URL darf nicht leer sein." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fehler" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Name" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Größe" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Geändert" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 Ordner" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} Ordner" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 Datei" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} Dateien" @@ -279,37 +280,37 @@ msgstr "Gelöschte Dateien" msgid "Cancel upload" msgstr "Upload abbrechen" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." -msgstr "Du besitzt hier keine Schreib-Berechtigung." +msgstr "Du hast hier keine Schreib-Berechtigung." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Alles leer. Lade etwas hoch!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" -msgstr "Download" +msgstr "Herunterladen" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Freigabe aufheben" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Der Upload ist zu groß" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Dateien werden gescannt, bitte warten." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Scanne" diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po index d3f07f05c78..caaaa81d2b3 100644 --- a/l10n/de/files_encryption.po +++ b/l10n/de/files_encryption.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:54+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de/files_external.po b/l10n/de/files_external.po index b6255cd3ef1..aaa2995382c 100644 --- a/l10n/de/files_external.po +++ b/l10n/de/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 15:10+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:55+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de/files_sharing.po b/l10n/de/files_sharing.po index 77148131a15..3b551c20312 100644 --- a/l10n/de/files_sharing.po +++ b/l10n/de/files_sharing.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 19:50+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de/files_trashbin.po b/l10n/de/files_trashbin.po index 3a8c59bd022..57df6038e88 100644 --- a/l10n/de/files_trashbin.po +++ b/l10n/de/files_trashbin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:58+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de/files_versions.po b/l10n/de/files_versions.po index e0fd8f7fa64..921aba68c41 100644 --- a/l10n/de/files_versions.po +++ b/l10n/de/files_versions.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:59+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de/lib.po b/l10n/de/lib.po index 4fc5815b165..417ce173f3e 100644 --- a/l10n/de/lib.po +++ b/l10n/de/lib.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-06 22:00+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,19 +42,19 @@ msgstr "Apps" msgid "Admin" msgstr "Administration" -#: files.php:209 +#: files.php:207 msgid "ZIP download is turned off." msgstr "Der ZIP-Download ist deaktiviert." -#: files.php:210 +#: files.php:208 msgid "Files need to be downloaded one by one." msgstr "Die Dateien müssen einzeln heruntergeladen werden." -#: files.php:211 files.php:244 +#: files.php:209 files.php:242 msgid "Back to Files" msgstr "Zurück zu \"Dateien\"" -#: files.php:241 +#: files.php:239 msgid "Selected files too large to generate zip file." msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen." @@ -181,7 +182,7 @@ msgstr "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil d #: setup.php:859 #, php-format msgid "Please double check the installation guides." -msgstr "Bitte prüfen Sie die Installationsanleitungen." +msgstr "Bitte prüfe die Installationsanleitungen." #: template.php:113 msgid "seconds ago" diff --git a/l10n/de/settings.po b/l10n/de/settings.po index 43ac32ddf2e..4a545152eed 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -4,13 +4,14 @@ # # Translators: # arkascha , 2013 +# Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 06:30+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-06 22:00+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -125,44 +126,44 @@ msgstr "Aktualisiert" msgid "Saving..." msgstr "Speichern..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "gelöscht" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "rückgängig machen" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Benutzer konnte nicht entfernt werden." -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Gruppen" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Gruppenadministrator" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Löschen" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "Gruppe hinzufügen" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Es muss ein gültiger Benutzername angegeben werden" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Beim Anlegen des Benutzers ist ein Fehler aufgetreten" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Es muss ein gültiges Passwort angegeben werden" @@ -232,7 +233,7 @@ msgid "" "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" " of ownCloud." -msgstr "Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren wenn Du alle Funktionen von ownCloud nutzen möchtest." +msgstr "Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren, wenn Du alle Funktionen von ownCloud nutzen möchtest." #: templates/admin.php:92 msgid "Cron" @@ -264,31 +265,31 @@ msgstr "Aktiviere Sharing-API" #: templates/admin.php:135 msgid "Allow apps to use the Share API" -msgstr "Erlaube Apps die Nutzung der Share-API" +msgstr "Erlaubt Apps die Nutzung der Share-API" #: templates/admin.php:142 msgid "Allow links" -msgstr "Erlaube Links" +msgstr "Erlaubt Links" #: templates/admin.php:143 msgid "Allow users to share items to the public with links" -msgstr "Erlaube Benutzern, Inhalte über öffentliche Links zu teilen" +msgstr "Erlaubt Benutzern, Inhalte über öffentliche Links zu teilen" #: templates/admin.php:150 msgid "Allow resharing" -msgstr "Erlaube erneutes Teilen" +msgstr "Erlaubt erneutes Teilen" #: templates/admin.php:151 msgid "Allow users to share items shared with them again" -msgstr "Erlaube Benutzern, mit ihnen geteilte Inhalte erneut zu teilen" +msgstr "Erlaubt Benutzern, mit ihnen geteilte Inhalte erneut zu teilen" #: templates/admin.php:158 msgid "Allow users to share with anyone" -msgstr "Erlaube Benutzern, mit jedem zu teilen" +msgstr "Erlaubt Benutzern, mit jedem zu teilen" #: templates/admin.php:161 msgid "Allow users to only share with users in their groups" -msgstr "Erlaube Benutzern, nur mit Benutzern ihrer Gruppe zu teilen" +msgstr "Erlaubt Benutzern, nur mit Benutzern ihrer Gruppe zu teilen" #: templates/admin.php:168 msgid "Security" @@ -307,7 +308,7 @@ msgstr "Erzwingt die Verwendung einer verschlüsselten Verbindung" msgid "" "Please connect to this ownCloud instance via HTTPS to enable or disable the " "SSL enforcement." -msgstr "Bitte verbinden Sie sich über eine HTTPS Verbindung mit diesem ownCloud Server um diese Einstellung zu ändern" +msgstr "Bitte verbinde Dich über eine HTTPS Verbindung mit diesem ownCloud Server um diese Einstellung zu ändern" #: templates/admin.php:195 msgid "Log" diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po index 008eb03bc4d..ae5ea47d002 100644 --- a/l10n/de/user_ldap.po +++ b/l10n/de/user_ldap.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Marcel Kühlhorn , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 19:40+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,19 +24,19 @@ msgstr "Löschen der Serverkonfiguration fehlgeschlagen" #: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" -msgstr "Die Konfiguration war erfolgreich, die Verbindung konnte hergestellt werden!" +msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!" #: ajax/testConfiguration.php:39 msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen." +msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen." #: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "Die Konfiguration ist ungültig, bitte sehen Sie für weitere Details im ownCloud Log nach" +msgstr "Die Konfiguration ist ungültig, sieh für weitere Details bitte im ownCloud Log nach" #: js/settings.js:66 msgid "Deletion failed" @@ -51,7 +52,7 @@ msgstr "Einstellungen beibehalten?" #: js/settings.js:97 msgid "Cannot add server configuration" -msgstr "Serverkonfiguration konnte nicht hinzugefügt werden." +msgstr "Das Hinzufügen der Serverkonfiguration schlug fehl" #: js/settings.js:121 msgid "Connection test succeeded" @@ -63,7 +64,7 @@ msgstr "Verbindungstest fehlgeschlagen" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "Wollen Sie die aktuelle Serverkonfiguration wirklich löschen?" +msgstr "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?" #: js/settings.js:137 msgid "Confirm Deletion" @@ -74,7 +75,7 @@ msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren." +msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren." #: templates/settings.php:11 msgid "" @@ -105,7 +106,7 @@ msgstr "Basis-DN" #: templates/settings.php:40 msgid "One Base DN per line" -msgstr "Ein Base DN pro Zeile" +msgstr "Ein Basis-DN pro Zeile" #: templates/settings.php:41 msgid "You can specify Base DN for users and groups in the Advanced tab" @@ -128,7 +129,7 @@ msgstr "Passwort" #: templates/settings.php:49 msgid "For anonymous access, leave DN and Password empty." -msgstr "Lasse die Felder von DN und Passwort für anonymen Zugang leer." +msgstr "Lasse die Felder DN und Passwort für anonymen Zugang leer." #: templates/settings.php:50 msgid "User Login Filter" @@ -139,7 +140,7 @@ msgstr "Benutzer-Login-Filter" msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." -msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." +msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch." #: templates/settings.php:54 #, php-format @@ -260,7 +261,7 @@ msgstr "Basis-Benutzerbaum" #: templates/settings.php:83 msgid "One User Base DN per line" -msgstr "Ein Benutzer Base DN pro Zeile" +msgstr "Ein Benutzer Basis-DN pro Zeile" #: templates/settings.php:84 msgid "User Search Attributes" @@ -268,7 +269,7 @@ msgstr "Benutzersucheigenschaften" #: templates/settings.php:84 templates/settings.php:87 msgid "Optional; one attribute per line" -msgstr "Optional; eine Eigenschaft pro Zeile" +msgstr "Optional; ein Attribut pro Zeile" #: templates/settings.php:85 msgid "Group Display Name Field" @@ -284,7 +285,7 @@ msgstr "Basis-Gruppenbaum" #: templates/settings.php:86 msgid "One Group Base DN per line" -msgstr "Ein Gruppen Base DN pro Zeile" +msgstr "Ein Gruppen Basis-DN pro Zeile" #: templates/settings.php:87 msgid "Group Search Attributes" diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index 5920087fce1..da2cd95de1b 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/core.po @@ -4,15 +4,16 @@ # # Translators: # arkascha , 2013 +# Marcel Kühlhorn , 2013 # traductor , 2013 # Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" -"PO-Revision-Date: 2013-05-03 21:40+0000\n" -"Last-Translator: Mirodin \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-11 17:20+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -421,7 +422,7 @@ msgstr "Benutzername" #: lostpassword/templates/lostpassword.php:21 msgid "Request reset" -msgstr "Zurücksetzung beantragen" +msgstr "Zurücksetzung anfordern" #: lostpassword/templates/resetpassword.php:4 msgid "Your password was reset" @@ -566,7 +567,7 @@ msgstr "Web-Services unter Ihrer Kontrolle" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "%s ist nicht verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein." +msgstr "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 54713d05960..55b91f87a79 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -3,13 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Marcel Kühlhorn , 2013 +# Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 20:40+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 20:00+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,18 +39,18 @@ msgstr "Keine Datei hochgeladen. Unbekannter Fehler" #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" -msgstr "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." +msgstr "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen." #: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in der php.ini:" +msgstr "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini" #: ajax/upload.php:29 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form" -msgstr "Die Datei ist größer, als die MAX_FILE_SIZE Direktive erlaubt, die im HTML-Formular spezifiziert ist" +msgstr "Die Datei ist größer, als die MAX_FILE_SIZE Vorgabe erlaubt, die im HTML-Formular spezifiziert ist" #: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" @@ -60,7 +62,7 @@ msgstr "Keine Datei konnte übertragen werden." #: ajax/upload.php:32 msgid "Missing a temporary folder" -msgstr "Der temporäre Ordner fehlt." +msgstr "Kein temporärer Ordner vorhanden" #: ajax/upload.php:33 msgid "Failed to write to disk" @@ -108,7 +110,7 @@ msgstr "ersetzen" #: js/filelist.js:252 msgid "suggest name" -msgstr "Einen Namen vorschlagen" +msgstr "Namen vorschlagen" #: js/filelist.js:252 js/filelist.js:254 msgid "cancel" @@ -124,7 +126,7 @@ msgstr "rückgängig machen" #: js/filelist.js:324 msgid "perform delete operation" -msgstr "führe das Löschen aus" +msgstr "Löschvorgang ausführen" #: js/filelist.js:406 msgid "1 file uploading" @@ -146,11 +148,11 @@ msgstr "Der Dateiname darf nicht leer sein." msgid "" "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not " "allowed." -msgstr "Ungültiger Name! Die Zeichen '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig." +msgstr "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig." #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "Ihr Speicher ist voll. Daher können keine Dateien mehr aktualisiert oder synchronisiert werden!" +msgstr "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" @@ -160,7 +162,7 @@ msgstr "Ihr Speicher ist fast voll ({usedSpacePercent}%)" msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien einen Moment dauern." +msgstr "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern." #: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" @@ -177,7 +179,7 @@ msgstr "Upload abgebrochen." #: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen." +msgstr "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen." #: js/files.js:486 msgid "URL cannot be empty." @@ -201,7 +203,7 @@ msgstr "Größe" #: js/files.js:879 templates/index.php:82 msgid "Modified" -msgstr "Bearbeitet" +msgstr "Geändert" #: js/files.js:898 msgid "1 folder" @@ -285,7 +287,7 @@ msgstr "Sie haben hier keine Schreib-Berechtigungen." #: templates/index.php:61 msgid "Nothing in here. Upload something!" -msgstr "Alles leer. Bitte laden Sie etwas hoch!" +msgstr "Alles leer. Laden Sie etwas hoch!" #: templates/index.php:75 msgid "Download" @@ -315,4 +317,4 @@ msgstr "Scanne" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "Aktualisiere den Dateisystem-Cache..." +msgstr "Dateisystem-Cache wird aktualisiert ..." diff --git a/l10n/de_DE/files_encryption.po b/l10n/de_DE/files_encryption.po index ef17e7de8fc..6630efe3775 100644 --- a/l10n/de_DE/files_encryption.po +++ b/l10n/de_DE/files_encryption.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:54+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de_DE/files_external.po b/l10n/de_DE/files_external.po index 39812499d98..7646967a4f9 100644 --- a/l10n/de_DE/files_external.po +++ b/l10n/de_DE/files_external.po @@ -4,13 +4,14 @@ # # Translators: # arkascha , 2013 +# Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 15:10+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 22:00+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -113,7 +114,7 @@ msgstr "Externen Speicher für Benutzer aktivieren" #: templates/settings.php:130 msgid "Allow users to mount their own external storage" -msgstr "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" +msgstr "Erlaubt Benutzern, ihre eigenen externen Speicher einzubinden" #: templates/settings.php:141 msgid "SSL root certificates" diff --git a/l10n/de_DE/files_sharing.po b/l10n/de_DE/files_sharing.po index 1c1c9d6020a..5a9782beebe 100644 --- a/l10n/de_DE/files_sharing.po +++ b/l10n/de_DE/files_sharing.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:57+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de_DE/files_trashbin.po b/l10n/de_DE/files_trashbin.po index 2e9654699e6..f05c61535a3 100644 --- a/l10n/de_DE/files_trashbin.po +++ b/l10n/de_DE/files_trashbin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 21:58+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de_DE/lib.po b/l10n/de_DE/lib.po index c36b64e3cb8..bcbe6b91ad2 100644 --- a/l10n/de_DE/lib.po +++ b/l10n/de_DE/lib.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-04 01:59+0200\n" -"PO-Revision-Date: 2013-05-03 21:40+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-06 21:53+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de_DE/settings.po b/l10n/de_DE/settings.po index 983e3752d45..9e82862dc2e 100644 --- a/l10n/de_DE/settings.po +++ b/l10n/de_DE/settings.po @@ -3,14 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# a.tangemann , 2013 # arkascha , 2013 +# Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 06:40+0000\n" -"Last-Translator: arkascha \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-06 21:40+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -125,44 +127,44 @@ msgstr "Aktualisiert" msgid "Saving..." msgstr "Speichern..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "gelöscht" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "rückgängig machen" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Der Benutzer konnte nicht entfernt werden." -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Gruppen" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Gruppenadministrator" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Löschen" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "Gruppe hinzufügen" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Es muss ein gültiger Benutzername angegeben werden" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Beim Erstellen des Benutzers ist ein Fehler aufgetreten" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Es muss ein gültiges Passwort angegeben werden" @@ -222,7 +224,7 @@ msgstr "Dieser ownCloud-Server kann die Ländereinstellung nicht auf %s ändern. #: templates/admin.php:75 msgid "Internet connection not working" -msgstr "Keine Netzwerkverbindung" +msgstr "Keine Internetverbindung" #: templates/admin.php:78 msgid "" @@ -276,7 +278,7 @@ msgstr "Benutzern erlauben, Inhalte per öffentlichem Link zu teilen" #: templates/admin.php:150 msgid "Allow resharing" -msgstr "Erlaube weiterverteilen" +msgstr "Erlaube Weiterverteilen" #: templates/admin.php:151 msgid "Allow users to share items shared with them again" @@ -284,11 +286,11 @@ msgstr "Erlaubt Benutzern, mit ihnen geteilte Inhalte erneut zu teilen" #: templates/admin.php:158 msgid "Allow users to share with anyone" -msgstr "Erlaube Benutzern, mit jedem zu teilen" +msgstr "Erlaubt Benutzern, mit jedem zu teilen" #: templates/admin.php:161 msgid "Allow users to only share with users in their groups" -msgstr "Erlaube Benutzern, nur mit Nutzern in ihrer Gruppe zu teilen" +msgstr "Erlaubt Benutzern, nur mit Nutzern in ihrer Gruppe zu teilen" #: templates/admin.php:168 msgid "Security" diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po index 2d41e90563d..9fed068426f 100644 --- a/l10n/de_DE/user_ldap.po +++ b/l10n/de_DE/user_ldap.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Marcel Kühlhorn , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 19:40+0000\n" +"Last-Translator: Marcel Kühlhorn \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +20,7 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "Das Löschen der Server-Konfiguration schlug fehl" +msgstr "Löschen der Serverkonfiguration fehlgeschlagen" #: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" @@ -29,13 +30,13 @@ msgstr "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werd msgid "" "The configuration is valid, but the Bind failed. Please check the server " "settings and credentials." -msgstr "Die Konfiguration ist gültig, aber das Herstellen der Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate." +msgstr "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen." #: ajax/testConfiguration.php:43 msgid "" "The configuration is invalid. Please look in the ownCloud log for further " "details." -msgstr "Die Konfiguration ist ungültig. Weitere Details können Sie im ownCloud-Log nachlesen." +msgstr "Die Konfiguration ist ungültig, sehen Sie für weitere Details bitte im ownCloud Log nach" #: js/settings.js:66 msgid "Deletion failed" @@ -43,11 +44,11 @@ msgstr "Löschen fehlgeschlagen" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" -msgstr "Sollen die Einstellungen der letzten Serverkonfiguration übernommen werden?" +msgstr "Einstellungen von letzter Konfiguration übernehmen?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "Einstellungen behalten?" +msgstr "Einstellungen beibehalten?" #: js/settings.js:97 msgid "Cannot add server configuration" @@ -63,7 +64,7 @@ msgstr "Verbindungstest fehlgeschlagen" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" -msgstr "Möchten Sie die Serverkonfiguration wirklich löschen?" +msgstr "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?" #: js/settings.js:137 msgid "Confirm Deletion" @@ -74,7 +75,7 @@ msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." -msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren." +msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren." #: templates/settings.php:11 msgid "" @@ -105,7 +106,7 @@ msgstr "Basis-DN" #: templates/settings.php:40 msgid "One Base DN per line" -msgstr "Ein Base DN pro Zeile" +msgstr "Ein Basis-DN pro Zeile" #: templates/settings.php:41 msgid "You can specify Base DN for users and groups in the Advanced tab" @@ -128,7 +129,7 @@ msgstr "Passwort" #: templates/settings.php:49 msgid "For anonymous access, leave DN and Password empty." -msgstr "Lassen Sie die Felder von DN und Passwort für einen anonymen Zugang leer." +msgstr "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer." #: templates/settings.php:50 msgid "User Login Filter" @@ -139,7 +140,7 @@ msgstr "Benutzer-Login-Filter" msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." -msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung durchgeführt wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch." +msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung durchgeführt wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch." #: templates/settings.php:54 #, php-format @@ -188,17 +189,17 @@ msgstr "Port" #: templates/settings.php:72 msgid "Backup (Replica) Host" -msgstr "Back-Up (Replikation) Host" +msgstr "Backup Host (Kopie)" #: templates/settings.php:72 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "Geben Sie einen optionalen Backup-Host an. Es muss ein Replikat des Haupt-LDAP/AD Servers sein." +msgstr "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln." #: templates/settings.php:73 msgid "Backup (Replica) Port" -msgstr "Back-Up (Replikation) Port" +msgstr "Backup Port" #: templates/settings.php:74 msgid "Disable Main Server" @@ -206,11 +207,11 @@ msgstr "Hauptserver deaktivieren" #: templates/settings.php:74 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "Wenn eingeschaltet, wird sich die ownCloud nur mit dem Replikat-Server verbinden." +msgstr "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden." #: templates/settings.php:75 msgid "Use TLS" -msgstr "Benutze TLS" +msgstr "Nutze TLS" #: templates/settings.php:75 msgid "Do not use it additionally for LDAPS connections, it will fail." @@ -244,7 +245,7 @@ msgstr "in Sekunden. Eine Änderung leert den Cache." #: templates/settings.php:80 msgid "Directory Settings" -msgstr "Verzeichniseinstellungen" +msgstr "Ordnereinstellungen" #: templates/settings.php:82 msgid "User Display Name Field" @@ -260,11 +261,11 @@ msgstr "Basis-Benutzerbaum" #: templates/settings.php:83 msgid "One User Base DN per line" -msgstr "Ein Benutzer Base DN pro Zeile" +msgstr "Ein Benutzer Basis-DN pro Zeile" #: templates/settings.php:84 msgid "User Search Attributes" -msgstr "Eigenschaften der Benutzer-Suche" +msgstr "Benutzersucheigenschaften" #: templates/settings.php:84 templates/settings.php:87 msgid "Optional; one attribute per line" @@ -284,11 +285,11 @@ msgstr "Basis-Gruppenbaum" #: templates/settings.php:86 msgid "One Group Base DN per line" -msgstr "Ein Gruppen Base DN pro Zeile" +msgstr "Ein Gruppen Basis-DN pro Zeile" #: templates/settings.php:87 msgid "Group Search Attributes" -msgstr "Eigenschaften der Gruppen-Suche" +msgstr "Gruppensucheigenschaften" #: templates/settings.php:88 msgid "Group-Member association" @@ -296,7 +297,7 @@ msgstr "Assoziation zwischen Gruppe und Benutzer" #: templates/settings.php:90 msgid "Special Attributes" -msgstr "Besondere Eigenschaften" +msgstr "Spezielle Eigenschaften" #: templates/settings.php:92 msgid "Quota Field" diff --git a/l10n/en@pirate/core.po b/l10n/en@pirate/core.po index 31acce82fea..48961fc2a58 100644 --- a/l10n/en@pirate/core.po +++ b/l10n/en@pirate/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-05-01 18:51+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 04:00+0000\n" "Last-Translator: lhpalacio \n" "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n" "MIME-Version: 1.0\n" @@ -21,7 +21,7 @@ msgstr "" #: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" -msgstr "" +msgstr "User %s shared a file with you" #: ajax/share.php:99 #, php-format @@ -559,7 +559,7 @@ msgstr "" #: templates/layout.guest.php:40 msgid "web services under your control" -msgstr "" +msgstr "web services under your control" #: templates/layout.user.php:36 #, php-format diff --git a/l10n/en@pirate/files.po b/l10n/en@pirate/files.po index 5990ec2d715..941c39cc0a6 100644 --- a/l10n/en@pirate/files.po +++ b/l10n/en@pirate/files.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: 2013-04-26 08:00+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n" @@ -289,7 +289,7 @@ msgstr "" #: templates/index.php:75 msgid "Download" -msgstr "" +msgstr "Download" #: templates/index.php:87 templates/index.php:88 msgid "Unshare" diff --git a/l10n/en@pirate/files_sharing.po b/l10n/en@pirate/files_sharing.po index 0256b0cd296..b60b2651147 100644 --- a/l10n/en@pirate/files_sharing.po +++ b/l10n/en@pirate/files_sharing.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-05-01 18:51+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 04:00+0000\n" "Last-Translator: lhpalacio \n" "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n" "MIME-Version: 1.0\n" @@ -24,26 +24,26 @@ msgstr "Secret Code" #: templates/authenticate.php:6 msgid "Submit" -msgstr "" +msgstr "Submit" #: templates/public.php:10 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%s shared the folder %s with you" #: templates/public.php:13 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%s shared the file %s with you" #: templates/public.php:19 templates/public.php:43 msgid "Download" -msgstr "" +msgstr "Download" #: templates/public.php:40 msgid "No preview available for" -msgstr "" +msgstr "No preview available for" #: templates/public.php:50 msgid "web services under your control" -msgstr "" +msgstr "web services under your control" diff --git a/l10n/es/core.po b/l10n/es/core.po index 1a4b035d22c..adabbb6dddc 100644 --- a/l10n/es/core.po +++ b/l10n/es/core.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# ggam , 2013 # msoko , 2013 # iGerli , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 11:30+0000\n" -"Last-Translator: iGerli \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 16:30+0000\n" +"Last-Translator: ggam \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -45,7 +46,7 @@ msgstr "El usuario %s ha compartido la carpeta \"%s\" contigo. Puedes descargarl #: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25 msgid "Category type not provided." -msgstr "Tipo de categoria no proporcionado." +msgstr "Tipo de categoría no proporcionado." #: ajax/vcategories/add.php:30 msgid "No category to add?" @@ -54,19 +55,19 @@ msgstr "¿Ninguna categoría para añadir?" #: ajax/vcategories/add.php:37 #, php-format msgid "This category already exists: %s" -msgstr "Esta categoria ya existe: %s" +msgstr "Ya existe esta categoría: %s" #: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27 #: ajax/vcategories/favorites.php:24 #: ajax/vcategories/removeFromFavorites.php:26 msgid "Object type not provided." -msgstr "ipo de objeto no proporcionado." +msgstr "Tipo de objeto no proporcionado." #: ajax/vcategories/addToFavorites.php:30 #: ajax/vcategories/removeFromFavorites.php:30 #, php-format msgid "%s ID not provided." -msgstr "%s ID no proporcionado." +msgstr "ID de %s no proporcionado." #: ajax/vcategories/addToFavorites.php:35 #, php-format @@ -196,7 +197,7 @@ msgstr "hace {days} días" #: js/js.js:726 msgid "last month" -msgstr "mes pasado" +msgstr "el mes pasado" #: js/js.js:727 msgid "{months} months ago" @@ -208,7 +209,7 @@ msgstr "hace meses" #: js/js.js:729 msgid "last year" -msgstr "año pasado" +msgstr "el año pasado" #: js/js.js:730 msgid "years ago" @@ -237,7 +238,7 @@ msgstr "No" #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 msgid "The object type is not specified." -msgstr "El tipo de objeto no se ha especificado." +msgstr "No se ha especificado el tipo de objeto" #: js/oc-vcategories.js:14 js/oc-vcategories.js:80 js/oc-vcategories.js:95 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 @@ -249,11 +250,11 @@ msgstr "Error" #: js/oc-vcategories.js:179 msgid "The app name is not specified." -msgstr "El nombre de la app no se ha especificado." +msgstr "No se ha especificado el nombre de la aplicación." #: js/oc-vcategories.js:194 msgid "The required file {file} is not installed!" -msgstr "El fichero {file} requerido, no está instalado." +msgstr "¡El fichero requerido {file} no está instalado!" #: js/share.js:30 js/share.js:45 js/share.js:87 msgid "Shared" @@ -317,7 +318,7 @@ msgstr "Fecha de caducidad" #: js/share.js:211 msgid "Share via email:" -msgstr "compartido via e-mail:" +msgstr "Compartido por correo electrónico:" #: js/share.js:213 msgid "No people found" @@ -333,7 +334,7 @@ msgstr "Compartido en {item} con {user}" #: js/share.js:308 msgid "Unshare" -msgstr "No compartir" +msgstr "Dejar de compartir" #: js/share.js:320 msgid "can edit" @@ -349,7 +350,7 @@ msgstr "crear" #: js/share.js:328 msgid "update" -msgstr "modificar" +msgstr "actualizar" #: js/share.js:331 msgid "delete" @@ -384,7 +385,7 @@ msgid "" "The update was unsuccessful. Please report this issue to the ownCloud " "community." -msgstr "La actualización ha fracasado. Por favor, informe este problema a la Comunidad de ownCloud." +msgstr "La actualización ha fracasado. Por favor, informe de este problema a la Comunidad de ownCloud." #: js/update.js:18 msgid "The update was successful. Redirecting you to ownCloud now." @@ -392,7 +393,7 @@ msgstr "La actualización se ha realizado correctamente. Redireccionando a ownCl #: lostpassword/controller.php:48 msgid "ownCloud password reset" -msgstr "Reiniciar contraseña de ownCloud" +msgstr "Restablecer contraseña de ownCloud" #: lostpassword/templates/email.php:2 msgid "Use the following link to reset your password: {link}" @@ -403,15 +404,15 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su spam / carpetas no deseados.
Si no está allí pregunte a su administrador local." +msgstr "El enlace para restablecer la contraseña ha sido enviada a su correo electrónico.
Si no lo recibe en un plazo razonable de tiempo, revise su carpeta de spam / correo no deseado.
Si no está allí, pregunte a su administrador local." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "Petición ha fallado!
¿Usted asegúrese que su dirección de correo electrónico / nombre de usuario estaba justo?" +msgstr "La petición ha fallado!
¿Está seguro de que su dirección de correo electrónico o nombre de usuario era correcto?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." -msgstr "Recibirás un enlace por correo electrónico para restablecer tu contraseña" +msgstr "Recibirá un enlace por correo electrónico para restablecer su contraseña" #: lostpassword/templates/lostpassword.php:18 templates/installation.php:48 #: templates/login.php:19 @@ -424,7 +425,7 @@ msgstr "Solicitar restablecimiento" #: lostpassword/templates/resetpassword.php:4 msgid "Your password was reset" -msgstr "Tu contraseña se ha restablecido" +msgstr "Su contraseña ha sido establecida" #: lostpassword/templates/resetpassword.php:5 msgid "To login page" @@ -485,7 +486,7 @@ msgstr "La versión de PHP es vulnerable al ataque de Byte NULL (CVE-2006-7243)" #: templates/installation.php:26 msgid "Please update your PHP installation to use ownCloud securely." -msgstr "Por favor, actualice su instalación de PHP para utilizar ownCloud en forma segura." +msgstr "Por favor, actualice su instalación de PHP para utilizar ownCloud de manera segura." #: templates/installation.php:32 msgid "" @@ -497,13 +498,13 @@ msgstr "No está disponible un generador de números aleatorios seguro, por favo msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." -msgstr "Sin un generador de números aleatorios seguro un atacante podría predecir los tokens de reinicio de su contraseña y tomar control de su cuenta." +msgstr "Sin un generador de números aleatorios seguro, un atacante podría predecir los tokens de restablecimiento de contraseñas y tomar el control de su cuenta." #: templates/installation.php:39 msgid "" "Your data directory and files are probably accessible from the internet " "because the .htaccess file does not work." -msgstr "Su directorio de datos y sus archivos están probablemente accesibles a través de internet ya que el archivo .htaccess no está funcionando." +msgstr "Probablemente su directorio de datos y sus archivos sean accesibles a través de internet ya que el archivo .htaccess no funciona." #: templates/installation.php:40 msgid "" @@ -514,7 +515,7 @@ msgstr "Para información sobre cómo configurar adecuadamente su servidor, por #: templates/installation.php:44 msgid "Create an admin account" -msgstr "Crea una cuenta de administrador" +msgstr "Crear una cuenta de administrador" #: templates/installation.php:62 msgid "Advanced" @@ -565,7 +566,7 @@ msgstr "Servicios web bajo su control" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "%s esta disponible. Obtén mas información de como actualizar." +msgstr "%s esta disponible. Obtener mas información de como actualizar." #: templates/layout.user.php:61 msgid "Log out" @@ -587,11 +588,11 @@ msgstr "Por favor cambie su contraseña para asegurar su cuenta nuevamente." #: templates/login.php:34 msgid "Lost your password?" -msgstr "¿Has perdido tu contraseña?" +msgstr "¿Ha perdido su contraseña?" #: templates/login.php:39 msgid "remember" -msgstr "recuérdame" +msgstr "recordarme" #: templates/login.php:41 msgid "Log in" diff --git a/l10n/es/files.po b/l10n/es/files.po index cbb83952dd8..74327252992 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# ggam , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 16:20+0000\n" +"Last-Translator: ggam \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -86,7 +87,7 @@ msgstr "Compartir" msgid "Delete permanently" msgstr "Eliminar permanentemente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Eliminar" @@ -136,7 +137,7 @@ msgstr "subiendo archivos" #: js/files.js:52 msgid "'.' is an invalid file name." -msgstr "'.' es un nombre de archivo inválido." +msgstr "'.' no es un nombre de archivo válido." #: js/files.js:56 msgid "File name cannot be empty." @@ -150,72 +151,72 @@ msgstr "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizados o sincronizados!" +msgstr "Su almacenamiento está lleno, ¡no se pueden actualizar ni sincronizar archivos!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" -msgstr "Su almacenamiento esta lleno en un ({usedSpacePercent}%)" +msgstr "Su almacenamiento está casi lleno ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." +msgstr "Su descarga está siendo preparada. Esto puede tardar algún tiempo si los archivos son muy grandes." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Imposible subir su archivo, es un directorio o tiene 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "No hay suficiente espacio disponible" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Subida cancelada." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida." +msgstr "La subida del archivo está en proceso. Si sale de la página ahora, se cancelará la subida." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -msgstr "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud" +msgstr "El nombre de carpeta no es válido. El uso de \"Shared\" está reservado para Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Error" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nombre" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamaño" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificado" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 carpeta" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} carpetas" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 archivo" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} archivos" @@ -279,40 +280,40 @@ msgstr "Archivos eliminados" msgid "Cancel upload" msgstr "Cancelar subida" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "No tienes permisos para escribir aquí." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Aquí no hay nada. ¡Sube algo!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" -msgstr "No compartir" +msgstr "Dejar de compartir" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" -msgstr "bida demasido grande" +msgstr "Subida demasido grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Se están escaneando los archivos, por favor espere." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" -msgstr "Ahora escaneando" +msgstr "Escaneo actual" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "Actualizando cache de archivos de sistema" +msgstr "Actualizando caché del sistema de archivos" diff --git a/l10n/es/lib.po b/l10n/es/lib.po index a15c993cab7..cf73637ca6b 100644 --- a/l10n/es/lib.po +++ b/l10n/es/lib.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-04 16:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -41,19 +41,19 @@ msgstr "Aplicaciones" msgid "Admin" msgstr "Administración" -#: files.php:209 +#: files.php:207 msgid "ZIP download is turned off." msgstr "La descarga en ZIP está desactivada." -#: files.php:210 +#: files.php:208 msgid "Files need to be downloaded one by one." msgstr "Los archivos deben ser descargados uno por uno." -#: files.php:211 files.php:244 +#: files.php:209 files.php:242 msgid "Back to Files" msgstr "Volver a Archivos" -#: files.php:241 +#: files.php:239 msgid "Selected files too large to generate zip file." msgstr "Los archivos seleccionados son demasiado grandes para generar el archivo zip." diff --git a/l10n/fr/core.po b/l10n/fr/core.po index 5b8b4cdeb02..b88d8fd8508 100644 --- a/l10n/fr/core.po +++ b/l10n/fr/core.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# msoko , 2013 # plachance , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-10 01:10+0000\n" +"Last-Translator: msoko \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -564,7 +565,7 @@ msgstr "services web sous votre contrôle" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index 94e0d502d90..f93f948ef90 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# MathieuP , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-07 15:00+0000\n" +"Last-Translator: MathieuP \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,11 +34,11 @@ msgstr "Impossible de renommer le fichier" #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" -msgstr "Aucun fichier n'a été chargé. Erreur inconnue" +msgstr "Aucun fichier n'a été envoyé. Erreur inconnue" #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" -msgstr "Il n'y a pas d'erreur, le fichier a été envoyé avec succes." +msgstr "Aucune erreur, le fichier a été envoyé avec succès." #: ajax/upload.php:27 msgid "" @@ -52,7 +53,7 @@ msgstr "Le fichier envoyé dépasse la directive MAX_FILE_SIZE qui est spécifi #: ajax/upload.php:30 msgid "The uploaded file was only partially uploaded" -msgstr "Le fichier envoyé n'a été que partiellement envoyé." +msgstr "Le fichier n'a été que partiellement envoyé." #: ajax/upload.php:31 msgid "No file was uploaded" @@ -86,7 +87,7 @@ msgstr "Partager" msgid "Delete permanently" msgstr "Supprimer de façon définitive" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Supprimer" @@ -128,11 +129,11 @@ msgstr "effectuer l'opération de suppression" #: js/filelist.js:406 msgid "1 file uploading" -msgstr "1 fichier en cours de téléchargement" +msgstr "1 fichier en cours d'envoi" #: js/filelist.js:409 js/filelist.js:463 msgid "files uploading" -msgstr "fichiers en cours de téléchargement" +msgstr "fichiers en cours d'envoi" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,66 +157,66 @@ msgstr "Votre espage de stockage est plein, les fichiers ne peuvent plus être t msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Votre espace de stockage est presque plein ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Impossible de téléverser votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle" +msgstr "Impossible d'envoyer votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Espace disponible insuffisant" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." -msgstr "Chargement annulé." +msgstr "Envoi annulé." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "L'URL ne peut-être vide" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Erreur" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nom" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Taille" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modifié" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 dossier" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} dossiers" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fichier" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} fichiers" @@ -279,37 +280,37 @@ msgstr "Fichiers supprimés" msgid "Cancel upload" msgstr "Annuler l'envoi" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Vous n'avez pas le droit d'écriture ici." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Il n'y a rien ici ! Envoyez donc quelque chose :)" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Télécharger" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Ne plus partager" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Téléversement trop volumineux" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Les fichiers sont en cours d'analyse, veuillez patienter." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Analyse en cours" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index df7ddc55d2a..1287443bc34 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# mbouzada , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 09:50+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -86,7 +87,7 @@ msgstr "Compartir" msgid "Delete permanently" msgstr "Eliminar permanentemente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Eliminar" @@ -156,66 +157,66 @@ msgstr "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Está a prepararse a súa descarga. Isto pode levar bastante tempo se os ficheiros son grandes." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Non foi posíbel enviar o ficheiro pois ou é un directorio ou ten 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "O espazo dispoñíbel é insuficiente" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Envío cancelado." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "O envío do ficheiro está en proceso. Saír agora da páxina cancelará o envío." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "O URL non pode quedar baleiro." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de cartafol incorrecto. O uso de «Shared» está reservado por Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Erro" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamaño" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificado" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 cartafol" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} cartafoles" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ficheiros" @@ -241,7 +242,7 @@ msgstr "Precísase para a descarga de varios ficheiros e cartafoles." #: templates/admin.php:17 msgid "Enable ZIP-download" -msgstr "Habilitar a descarga-ZIP" +msgstr "Activar a descarga ZIP" #: templates/admin.php:20 msgid "0 is unlimited" @@ -279,37 +280,37 @@ msgstr "Ficheiros eliminados" msgid "Cancel upload" msgstr "Cancelar o envío" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Non ten permisos para escribir aquí." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Aquí non hai nada. Envíe algo." -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Deixar de compartir" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Envío demasiado grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Estanse analizando os ficheiros. Agarde." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Análise actual" diff --git a/l10n/gl/settings.po b/l10n/gl/settings.po index 7b3e9df3f15..84a80b69d57 100644 --- a/l10n/gl/settings.po +++ b/l10n/gl/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-29 01:58+0200\n" -"PO-Revision-Date: 2013-04-28 09:00+0000\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-11 20:00+0000\n" "Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -125,44 +125,44 @@ msgstr "Actualizado" msgid "Saving..." msgstr "Gardando..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "eliminado" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "desfacer" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Non é posíbel retirar o usuario" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Grupos" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Grupo Admin" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Eliminar" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "engadir un grupo" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Debe fornecer un nome de usuario" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Produciuse un erro ao crear o usuario" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Debe fornecer un contrasinal" @@ -252,7 +252,7 @@ msgstr "cron.php está rexistrado nun servizo de WebCron. Chame á página cron. msgid "" "Use systems cron service. Call the cron.php file in the owncloud folder via " "a system cronjob once a minute." -msgstr "Use o servizo de sistema cron. Chame ao ficheiro cron.php no catfaol owncloud a través dun sistema de cronjob unna vez por minuto." +msgstr "Use o servizo de sistema cron. Chame ao ficheiro cron.php no cartafol owncloud a través dun sistema de cronjob unha vez por minuto." #: templates/admin.php:128 msgid "Sharing" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index eca1551834f..e0a0299d06d 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 04:50+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-07 07:30+0000\n" "Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -496,7 +496,7 @@ msgstr "セキュアな乱数生成器が利用可能ではありません。PHP msgid "" "Without a secure random number generator an attacker may be able to predict " "password reset tokens and take over your account." -msgstr "セキュアな乱数生成器が無い場合、攻撃者はパスワードリセットのトークンを予測してアカウントを乗っ取られる可能性があります。" +msgstr "セキュアな乱数生成器が無い場合、攻撃者がパスワードリセットのトークンを予測してアカウントを乗っ取られる可能性があります。" #: templates/installation.php:39 msgid "" diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po index d954d491167..7e169d97e48 100644 --- a/l10n/ja_JP/user_ldap.po +++ b/l10n/ja_JP/user_ldap.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Daisuke Deguchi , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-08 13:50+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -326,7 +327,7 @@ msgstr "ユーザ名を空のままにしてください(デフォルト)。 #: templates/settings.php:99 msgid "Test Configuration" -msgstr "テスト設定" +msgstr "設定をテスト" #: templates/settings.php:99 msgid "Help" diff --git a/l10n/ko/files.po b/l10n/ko/files.po index 32901091a74..6a764822f6c 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/files.po @@ -3,13 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Sungjin Gang , 2013 +# Sungjin Gang , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-08 15:50+0000\n" +"Last-Translator: Sungjin Gang \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,7 +70,7 @@ msgstr "디스크에 쓰지 못했습니다" #: ajax/upload.php:51 msgid "Not enough storage available" -msgstr "" +msgstr "저장소가 용량이 충분하지 않습니다." #: ajax/upload.php:83 msgid "Invalid directory." @@ -84,9 +86,9 @@ msgstr "공유" #: js/fileactions.js:126 msgid "Delete permanently" -msgstr "" +msgstr "영원히 삭제" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "삭제" @@ -124,7 +126,7 @@ msgstr "되돌리기" #: js/filelist.js:324 msgid "perform delete operation" -msgstr "" +msgstr "삭제 작업중" #: js/filelist.js:406 msgid "1 file uploading" @@ -132,7 +134,7 @@ msgstr "파일 1개 업로드 중" #: js/filelist.js:409 js/filelist.js:463 msgid "files uploading" -msgstr "" +msgstr "파일 업로드중" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -156,66 +158,66 @@ msgstr "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "저장 공간이 거의 가득 찼습니다 ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "다운로드가 준비 중입니다. 파일 크기가 크다면 시간이 오래 걸릴 수도 있습니다." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "디렉터리 및 빈 파일은 업로드할 수 없습니다" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "여유 공간이 부족합니다" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "업로드가 취소되었습니다." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL을 입력해야 합니다." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "폴더 이름이 유효하지 않습니다. " -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "오류" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "이름" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "크기" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "수정됨" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "폴더 1개" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "폴더 {count}개" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "파일 1개" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "파일 {count}개" @@ -273,43 +275,43 @@ msgstr "링크에서" #: templates/index.php:42 msgid "Deleted files" -msgstr "" +msgstr "파일 삭제됨" #: templates/index.php:48 msgid "Cancel upload" msgstr "업로드 취소" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." -msgstr "" +msgstr "당신은 여기에 쓰기를 할 수 있는 권한이 없습니다." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "내용이 없습니다. 업로드할 수 있습니다!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "다운로드" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "공유 해제" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "업로드한 파일이 너무 큼" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "파일을 검색하고 있습니다. 기다려 주십시오." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "현재 검색" diff --git a/l10n/ko/files_trashbin.po b/l10n/ko/files_trashbin.po index b2f9321e0e6..c4e8c0dec40 100644 --- a/l10n/ko/files_trashbin.po +++ b/l10n/ko/files_trashbin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-08 15:50+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -41,7 +41,7 @@ msgstr "" #: js/trash.js:121 msgid "Delete permanently" -msgstr "" +msgstr "영원히 삭제" #: js/trash.js:174 templates/index.php:17 msgid "Name" diff --git a/l10n/ko/settings.po b/l10n/ko/settings.po index 6e2db6fcc84..15aeff0cf97 100644 --- a/l10n/ko/settings.po +++ b/l10n/ko/settings.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-09 00:30+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -124,44 +124,44 @@ msgstr "" msgid "Saving..." msgstr "저장 중..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "삭제" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "되돌리기" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "그룹" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "그룹 관리자" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "삭제" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "" @@ -328,7 +328,7 @@ msgstr "덜 중요함" msgid "Version" msgstr "버전" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the
ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-09 12:20+0000\n" +"Last-Translator: Roman Deniobe \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,12 +21,12 @@ msgstr "" #: ajax/share.php:97 #, php-format msgid "User %s shared a file with you" -msgstr "" +msgstr "Vartotojas %s pasidalino su jumis failu" #: ajax/share.php:99 #, php-format msgid "User %s shared a folder with you" -msgstr "" +msgstr "Vartotojas %s su jumis pasidalino aplanku" #: ajax/share.php:101 #, php-format diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index 6c4ba95164a..6ffc7836248 100644 --- a/l10n/nn_NO/core.po +++ b/l10n/nn_NO/core.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 06:50+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-07 18:40+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index 388d90f63a9..7f244a9be09 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 17:50+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-07 20:20+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index 9fd8df290be..29ffcb6e7d8 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Mouxy , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 16:40+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "O link para fazer reset à sua password foi enviado para o seu e-mail.
Se não o recebeu dentro um espaço de tempo aceitável, por favor verifique a sua pasta de SPAM.
Se não o encontrar, por favor contacte o seu administrador." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "O pedido falhou!
Tem a certeza que introduziu o seu email/username correcto?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "serviços web sob o seu controlo" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s está disponível. Tenha mais informações como actualizar." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/pt_PT/files_external.po b/l10n/pt_PT/files_external.po index 4941cbba20d..57de8c823ef 100644 --- a/l10n/pt_PT/files_external.po +++ b/l10n/pt_PT/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Mouxy , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 16:40+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgid "" "Warning: The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "your system administrator to install it." -msgstr "" +msgstr "Atenção:
O suporte PHP para o Curl não está activado ou instalado. A montagem do ownCloud/WebDav ou GoolgeDriver não é possível. Por favor contacte o administrador para o instalar." #: templates/settings.php:3 msgid "External Storage" diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po index c9af2137f5f..fada0ab8d79 100644 --- a/l10n/pt_PT/settings.po +++ b/l10n/pt_PT/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Mouxy , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-06 16:40+0000\n" +"Last-Translator: Mouxy \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Erro na autenticação" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "O seu nome foi alterado" #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -124,44 +125,44 @@ msgstr "Actualizado" msgid "Saving..." msgstr "A guardar..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "apagado" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "desfazer" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Não foi possível remover o utilizador" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Grupos" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Grupo Administrador" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Eliminar" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "Adicionar grupo" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Um nome de utilizador válido deve ser fornecido" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Erro a criar utilizador" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Uma password válida deve ser fornecida" @@ -328,7 +329,7 @@ msgstr "Menos" msgid "Version" msgstr "Versão" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the
ownCloud community, the \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 05:10+0000\n" +"Last-Translator: mhh \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -564,7 +564,7 @@ msgstr "webové služby pod Vašou kontrolou" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s je dostupná. Získajte viac informácií k postupu aktualizáce." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index aad1a7178c4..fd68e36e1a8 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 9a782d94338..05e9cfd4f1a 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 8eff1b3b7f5..472016e2ec2 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 2853fa3428d..3a714f79772 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 44a659ca12b..e4c494813d6 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index cd86ea36e1d..ade10916876 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 7f02a875eec..dd93a02c1a5 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 79f16cb3358..2cd397f4db3 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:59+0200\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index b0388cd0404..356bb267b81 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:59+0200\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -165,7 +165,7 @@ msgstr "" msgid "A valid password must be provided" msgstr "" -#: personal.php:36 personal.php:37 +#: personal.php:35 personal.php:36 msgid "__language_name__" msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 5a1fafb41da..ba8a5766964 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index e1e122832b1..9215452368d 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/ug/core.po b/l10n/ug/core.po index ee5739f4cf3..a3627605922 100644 --- a/l10n/ug/core.po +++ b/l10n/ug/core.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 12:10+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -82,83 +82,83 @@ msgstr "" #: js/config.php:34 msgid "Sunday" -msgstr "" +msgstr "يەكشەنبە" #: js/config.php:35 msgid "Monday" -msgstr "" +msgstr "دۈشەنبە" #: js/config.php:36 msgid "Tuesday" -msgstr "" +msgstr "سەيشەنبە" #: js/config.php:37 msgid "Wednesday" -msgstr "" +msgstr "چارشەنبە" #: js/config.php:38 msgid "Thursday" -msgstr "" +msgstr "پەيشەنبە" #: js/config.php:39 msgid "Friday" -msgstr "" +msgstr "جۈمە" #: js/config.php:40 msgid "Saturday" -msgstr "" +msgstr "شەنبە" #: js/config.php:45 msgid "January" -msgstr "" +msgstr "قەھرىتان" #: js/config.php:46 msgid "February" -msgstr "" +msgstr "ھۇت" #: js/config.php:47 msgid "March" -msgstr "" +msgstr "نەۋرۇز" #: js/config.php:48 msgid "April" -msgstr "" +msgstr "ئۇمۇت" #: js/config.php:49 msgid "May" -msgstr "" +msgstr "باھار" #: js/config.php:50 msgid "June" -msgstr "" +msgstr "سەپەر" #: js/config.php:51 msgid "July" -msgstr "" +msgstr "چىللە" #: js/config.php:52 msgid "August" -msgstr "" +msgstr "تومۇز" #: js/config.php:53 msgid "September" -msgstr "" +msgstr "مىزان" #: js/config.php:54 msgid "October" -msgstr "" +msgstr "ئوغۇز" #: js/config.php:55 msgid "November" -msgstr "" +msgstr "ئوغلاق" #: js/config.php:56 msgid "December" -msgstr "" +msgstr "كۆنەك" #: js/js.js:286 msgid "Settings" -msgstr "" +msgstr "تەڭشەكلەر" #: js/js.js:718 msgid "seconds ago" @@ -166,7 +166,7 @@ msgstr "" #: js/js.js:719 msgid "1 minute ago" -msgstr "" +msgstr "1 مىنۇت ئىلگىرى" #: js/js.js:720 msgid "{minutes} minutes ago" @@ -174,7 +174,7 @@ msgstr "" #: js/js.js:721 msgid "1 hour ago" -msgstr "" +msgstr "1 سائەت ئىلگىرى" #: js/js.js:722 msgid "{hours} hours ago" @@ -182,11 +182,11 @@ msgstr "" #: js/js.js:723 msgid "today" -msgstr "" +msgstr "بۈگۈن" #: js/js.js:724 msgid "yesterday" -msgstr "" +msgstr "تۈنۈگۈن" #: js/js.js:725 msgid "{days} days ago" @@ -214,11 +214,11 @@ msgstr "" #: js/oc-dialogs.js:117 js/oc-dialogs.js:247 msgid "Ok" -msgstr "" +msgstr "جەزملە" #: js/oc-dialogs.js:121 js/oc-dialogs.js:189 js/oc-dialogs.js:240 msgid "Cancel" -msgstr "" +msgstr "ۋاز كەچ" #: js/oc-dialogs.js:185 msgid "Choose" @@ -226,11 +226,11 @@ msgstr "" #: js/oc-dialogs.js:215 msgid "Yes" -msgstr "" +msgstr "ھەئە" #: js/oc-dialogs.js:222 msgid "No" -msgstr "" +msgstr "ياق" #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 @@ -243,7 +243,7 @@ msgstr "" #: js/oc-vcategories.js:199 js/share.js:136 js/share.js:143 js/share.js:577 #: js/share.js:589 msgid "Error" -msgstr "" +msgstr "خاتالىق" #: js/oc-vcategories.js:179 msgid "The app name is not specified." @@ -259,7 +259,7 @@ msgstr "" #: js/share.js:90 msgid "Share" -msgstr "" +msgstr "ھەمبەھىر" #: js/share.js:125 js/share.js:617 msgid "Error while sharing" @@ -283,7 +283,7 @@ msgstr "" #: js/share.js:159 msgid "Share with" -msgstr "" +msgstr "ھەمبەھىر" #: js/share.js:164 msgid "Share with link" @@ -295,7 +295,7 @@ msgstr "" #: js/share.js:169 templates/installation.php:54 templates/login.php:26 msgid "Password" -msgstr "" +msgstr "ئىم" #: js/share.js:173 msgid "Email link to person" @@ -303,7 +303,7 @@ msgstr "" #: js/share.js:174 msgid "Send" -msgstr "" +msgstr "يوللا" #: js/share.js:178 msgid "Set expiration date" @@ -331,7 +331,7 @@ msgstr "" #: js/share.js:308 msgid "Unshare" -msgstr "" +msgstr "ھەمبەھىرلىمە" #: js/share.js:320 msgid "can edit" @@ -351,11 +351,11 @@ msgstr "" #: js/share.js:331 msgid "delete" -msgstr "" +msgstr "ئۆچۈر" #: js/share.js:334 msgid "share" -msgstr "" +msgstr "ھەمبەھىر" #: js/share.js:368 js/share.js:564 msgid "Password protected" @@ -414,7 +414,7 @@ msgstr "" #: lostpassword/templates/lostpassword.php:18 templates/installation.php:48 #: templates/login.php:19 msgid "Username" -msgstr "" +msgstr "ئىشلەتكۈچى ئاتى" #: lostpassword/templates/lostpassword.php:21 msgid "Request reset" @@ -430,7 +430,7 @@ msgstr "" #: lostpassword/templates/resetpassword.php:8 msgid "New password" -msgstr "" +msgstr "يېڭى ئىم" #: lostpassword/templates/resetpassword.php:11 msgid "Reset password" @@ -438,15 +438,15 @@ msgstr "" #: strings.php:5 msgid "Personal" -msgstr "" +msgstr "شەخسىي" #: strings.php:6 msgid "Users" -msgstr "" +msgstr "ئىشلەتكۈچىلەر" #: strings.php:7 msgid "Apps" -msgstr "" +msgstr "ئەپلەر" #: strings.php:8 msgid "Admin" @@ -454,7 +454,7 @@ msgstr "" #: strings.php:9 msgid "Help" -msgstr "" +msgstr "ياردەم" #: templates/403.php:12 msgid "Access forbidden" @@ -470,7 +470,7 @@ msgstr "" #: templates/edit_categories_dialog.php:16 msgid "Add" -msgstr "" +msgstr "قوش" #: templates/installation.php:24 templates/installation.php:31 #: templates/installation.php:38 @@ -516,7 +516,7 @@ msgstr "" #: templates/installation.php:62 msgid "Advanced" -msgstr "" +msgstr "ئالىي" #: templates/installation.php:64 msgid "Data folder" @@ -554,7 +554,7 @@ msgstr "" #: templates/installation.php:172 msgid "Finish setup" -msgstr "" +msgstr "تەڭشەك تامام" #: templates/layout.guest.php:40 msgid "web services under your control" @@ -567,7 +567,7 @@ msgstr "" #: templates/layout.user.php:61 msgid "Log out" -msgstr "" +msgstr "تىزىمدىن چىق" #: templates/login.php:9 msgid "Automatic logon rejected!" diff --git a/l10n/ug/files.po b/l10n/ug/files.po index 03b8fe9308e..fa4a56b319c 100644 --- a/l10n/ug/files.po +++ b/l10n/ug/files.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 12:00+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,15 +25,15 @@ msgstr "" #: ajax/move.php:27 ajax/move.php:30 #, php-format msgid "Could not move %s" -msgstr "" +msgstr "%s يۆتكىيەلمەيدۇ" #: ajax/rename.php:22 ajax/rename.php:25 msgid "Unable to rename file" -msgstr "" +msgstr "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ" #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" -msgstr "" +msgstr "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق" #: ajax/upload.php:26 msgid "There is no error, the file uploaded with success" @@ -56,19 +56,19 @@ msgstr "" #: ajax/upload.php:31 msgid "No file was uploaded" -msgstr "" +msgstr "ھېچقانداق ھۆججەت يۈكلەنمىدى" #: ajax/upload.php:32 msgid "Missing a temporary folder" -msgstr "" +msgstr "ۋاقىتلىق قىسقۇچ كەم." #: ajax/upload.php:33 msgid "Failed to write to disk" -msgstr "" +msgstr "دىسكىغا يازالمىدى" #: ajax/upload.php:51 msgid "Not enough storage available" -msgstr "" +msgstr "يېتەرلىك ساقلاش بوشلۇقى يوق" #: ajax/upload.php:83 msgid "Invalid directory." @@ -76,43 +76,43 @@ msgstr "" #: appinfo/app.php:12 msgid "Files" -msgstr "" +msgstr "ھۆججەتلەر" #: js/fileactions.js:116 msgid "Share" -msgstr "" +msgstr "ھەمبەھىر" #: js/fileactions.js:126 msgid "Delete permanently" -msgstr "" +msgstr "مەڭگۈلۈك ئۆچۈر" #: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" -msgstr "" +msgstr "ئۆچۈر" #: js/fileactions.js:194 msgid "Rename" -msgstr "" +msgstr "ئات ئۆزگەرت" #: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 msgid "Pending" -msgstr "" +msgstr "كۈتۈۋاتىدۇ" #: js/filelist.js:252 js/filelist.js:254 msgid "{new_name} already exists" -msgstr "" +msgstr "{new_name} مەۋجۇت" #: js/filelist.js:252 js/filelist.js:254 msgid "replace" -msgstr "" +msgstr "ئالماشتۇر" #: js/filelist.js:252 msgid "suggest name" -msgstr "" +msgstr "تەۋسىيە ئات" #: js/filelist.js:252 js/filelist.js:254 msgid "cancel" -msgstr "" +msgstr "ۋاز كەچ" #: js/filelist.js:299 msgid "replaced {new_name} with {old_name}" @@ -120,7 +120,7 @@ msgstr "" #: js/filelist.js:299 msgid "undo" -msgstr "" +msgstr "يېنىۋال" #: js/filelist.js:324 msgid "perform delete operation" @@ -128,11 +128,11 @@ msgstr "" #: js/filelist.js:406 msgid "1 file uploading" -msgstr "" +msgstr "1 ھۆججەت يۈكلىنىۋاتىدۇ" #: js/filelist.js:409 js/filelist.js:463 msgid "files uploading" -msgstr "" +msgstr "ھۆججەت يۈكلىنىۋاتىدۇ" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -168,16 +168,16 @@ msgstr "" #: js/files.js:277 msgid "Not enough space available" -msgstr "" +msgstr "يېتەرلىك بوشلۇق يوق" #: js/files.js:317 msgid "Upload cancelled." -msgstr "" +msgstr "يۈكلەشتىن ۋاز كەچتى." #: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "" +msgstr "ھۆججەت يۈكلەش مەشغۇلاتى ئېلىپ بېرىلىۋاتىدۇ. Leaving the page now will cancel the upload." #: js/files.js:486 msgid "URL cannot be empty." @@ -189,23 +189,23 @@ msgstr "" #: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" -msgstr "" +msgstr "خاتالىق" #: js/files.js:877 templates/index.php:69 msgid "Name" -msgstr "" +msgstr "ئاتى" #: js/files.js:878 templates/index.php:80 msgid "Size" -msgstr "" +msgstr "چوڭلۇقى" #: js/files.js:879 templates/index.php:82 msgid "Modified" -msgstr "" +msgstr "ئۆزگەرتكەن" #: js/files.js:898 msgid "1 folder" -msgstr "" +msgstr "1 قىسقۇچ" #: js/files.js:900 msgid "{count} folders" @@ -213,15 +213,15 @@ msgstr "" #: js/files.js:908 msgid "1 file" -msgstr "" +msgstr "1 ھۆججەت" #: js/files.js:910 msgid "{count} files" -msgstr "" +msgstr "{count} ھۆججەت" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" -msgstr "" +msgstr "يۈكلە" #: templates/admin.php:5 msgid "File handling" @@ -253,19 +253,19 @@ msgstr "" #: templates/admin.php:26 msgid "Save" -msgstr "" +msgstr "ساقلا" #: templates/index.php:7 msgid "New" -msgstr "" +msgstr "يېڭى" #: templates/index.php:10 msgid "Text file" -msgstr "" +msgstr "تېكىست ھۆججەت" #: templates/index.php:12 msgid "Folder" -msgstr "" +msgstr "قىسقۇچ" #: templates/index.php:14 msgid "From link" @@ -273,11 +273,11 @@ msgstr "" #: templates/index.php:42 msgid "Deleted files" -msgstr "" +msgstr "ئۆچۈرۈلگەن ھۆججەتلەر" #: templates/index.php:48 msgid "Cancel upload" -msgstr "" +msgstr "يۈكلەشتىن ۋاز كەچ" #: templates/index.php:54 msgid "You don’t have write permissions here." @@ -285,19 +285,19 @@ msgstr "" #: templates/index.php:61 msgid "Nothing in here. Upload something!" -msgstr "" +msgstr "بۇ جايدا ھېچنېمە يوق. Upload something!" #: templates/index.php:75 msgid "Download" -msgstr "" +msgstr "چۈشۈر" #: templates/index.php:87 templates/index.php:88 msgid "Unshare" -msgstr "" +msgstr "ھەمبەھىرلىمە" #: templates/index.php:107 msgid "Upload too large" -msgstr "" +msgstr "يۈكلەندىغىنى بەك چوڭ" #: templates/index.php:109 msgid "" @@ -315,4 +315,4 @@ msgstr "" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "" +msgstr "ھۆججەت سىستېما غەملىكىنى يۈكسەلدۈرۈۋاتىدۇ…" diff --git a/l10n/ug/files_encryption.po b/l10n/ug/files_encryption.po index f41668c2584..ce1f593333f 100644 --- a/l10n/ug/files_encryption.po +++ b/l10n/ug/files_encryption.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 12:10+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,20 +19,20 @@ msgstr "" #: templates/settings-personal.php:4 templates/settings.php:5 msgid "Encryption" -msgstr "" +msgstr "شىفىرلاش" #: templates/settings-personal.php:7 msgid "File encryption is enabled." -msgstr "" +msgstr "ھۆججەت شىفىرلاش قوزغىتىلدى." #: templates/settings-personal.php:11 msgid "The following file types will not be encrypted:" -msgstr "" +msgstr "تۆۋەندىكى ھۆججەت تىپلىرى شىفىرلانمايدۇ:" #: templates/settings.php:7 msgid "Exclude the following file types from encryption:" -msgstr "" +msgstr "تۆۋەندىكى ھۆججەت تىپلىرى شىفىرلاشنىڭ سىرتىدا:" #: templates/settings.php:12 msgid "None" -msgstr "" +msgstr "يوق" diff --git a/l10n/ug/files_external.po b/l10n/ug/files_external.po index eb512c8a138..1da94038c56 100644 --- a/l10n/ug/files_external.po +++ b/l10n/ug/files_external.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 11:50+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -63,19 +63,19 @@ msgstr "" #: templates/settings.php:9 templates/settings.php:28 msgid "Folder name" -msgstr "" +msgstr "قىسقۇچ ئاتى" #: templates/settings.php:10 msgid "External storage" -msgstr "" +msgstr "سىرتقى ساقلىغۇچ" #: templates/settings.php:11 msgid "Configuration" -msgstr "" +msgstr "سەپلىمە" #: templates/settings.php:12 msgid "Options" -msgstr "" +msgstr "تاللانما" #: templates/settings.php:13 msgid "Applicable" @@ -95,16 +95,16 @@ msgstr "" #: templates/settings.php:92 msgid "Groups" -msgstr "" +msgstr "گۇرۇپپا" #: templates/settings.php:100 msgid "Users" -msgstr "" +msgstr "ئىشلەتكۈچىلەر" #: templates/settings.php:113 templates/settings.php:114 #: templates/settings.php:149 templates/settings.php:150 msgid "Delete" -msgstr "" +msgstr "ئۆچۈر" #: templates/settings.php:129 msgid "Enable User External Storage" diff --git a/l10n/ug/files_sharing.po b/l10n/ug/files_sharing.po index b8c70243a8d..85d88c61819 100644 --- a/l10n/ug/files_sharing.po +++ b/l10n/ug/files_sharing.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# uqkun , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-08 15:21+0000\n" +"Last-Translator: uqkun \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,11 +20,11 @@ msgstr "" #: templates/authenticate.php:4 msgid "Password" -msgstr "" +msgstr "ئىم" #: templates/authenticate.php:6 msgid "Submit" -msgstr "" +msgstr "تاپشۇر" #: templates/public.php:10 #, php-format @@ -37,7 +38,7 @@ msgstr "" #: templates/public.php:19 templates/public.php:43 msgid "Download" -msgstr "" +msgstr "چۈشۈر" #: templates/public.php:40 msgid "No preview available for" diff --git a/l10n/ug/files_trashbin.po b/l10n/ug/files_trashbin.po index 50afd6bcf85..af6a62272cd 100644 --- a/l10n/ug/files_trashbin.po +++ b/l10n/ug/files_trashbin.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 12:00+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -33,7 +33,7 @@ msgstr "" #: js/trash.js:19 js/trash.js:46 js/trash.js:114 js/trash.js:139 msgid "Error" -msgstr "" +msgstr "خاتالىق" #: js/trash.js:34 msgid "delete file permanently" @@ -41,19 +41,19 @@ msgstr "" #: js/trash.js:121 msgid "Delete permanently" -msgstr "" +msgstr "مەڭگۈلۈك ئۆچۈر" #: js/trash.js:174 templates/index.php:17 msgid "Name" -msgstr "" +msgstr "ئاتى" #: js/trash.js:175 templates/index.php:27 msgid "Deleted" -msgstr "" +msgstr "ئۆچۈرۈلدى" #: js/trash.js:184 msgid "1 folder" -msgstr "" +msgstr "1 قىسقۇچ" #: js/trash.js:186 msgid "{count} folders" @@ -61,15 +61,15 @@ msgstr "" #: js/trash.js:194 msgid "1 file" -msgstr "" +msgstr "1 ھۆججەت" #: js/trash.js:196 msgid "{count} files" -msgstr "" +msgstr "{count} ھۆججەت" #: templates/index.php:9 msgid "Nothing in here. Your trash bin is empty!" -msgstr "" +msgstr "بۇ جايدا ھېچنېمە يوق. Your trash bin is empty!" #: templates/index.php:20 templates/index.php:22 msgid "Restore" @@ -77,7 +77,7 @@ msgstr "" #: templates/index.php:30 templates/index.php:31 msgid "Delete" -msgstr "" +msgstr "ئۆچۈر" #: templates/part.breadcrumb.php:9 msgid "Deleted Files" diff --git a/l10n/ug/files_versions.po b/l10n/ug/files_versions.po index 7237f3fcb8c..bc0751f8d0a 100644 --- a/l10n/ug/files_versions.po +++ b/l10n/ug/files_versions.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 11:40+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -20,20 +20,20 @@ msgstr "" #: ajax/rollbackVersion.php:15 #, php-format msgid "Could not revert: %s" -msgstr "" +msgstr "ئەسلىگە قايتۇرالمايدۇ: %s" #: history.php:40 msgid "success" -msgstr "" +msgstr "مۇۋەپپەقىيەتلىك" #: history.php:42 #, php-format msgid "File %s was reverted to version %s" -msgstr "" +msgstr "ھۆججەت %s نى %s نەشرىگە ئەسلىگە قايتۇردى" #: history.php:49 msgid "failure" -msgstr "" +msgstr "مەغلۇپ بولدى" #: history.php:51 #, php-format @@ -42,15 +42,15 @@ msgstr "" #: history.php:69 msgid "No old versions available" -msgstr "" +msgstr "كونا نەشرى يوق" #: history.php:74 msgid "No path specified" -msgstr "" +msgstr "يول بەلگىلەنمىگەن" #: js/versions.js:6 msgid "Versions" -msgstr "" +msgstr "نەشرى" #: templates/history.php:20 msgid "Revert a file to a previous version by clicking on its revert button" diff --git a/l10n/ug/lib.po b/l10n/ug/lib.po index c1abb1aaa8f..a14470fe872 100644 --- a/l10n/ug/lib.po +++ b/l10n/ug/lib.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:15+0200\n" -"PO-Revision-Date: 2013-04-26 08:01+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-04 12:00+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,41 +19,41 @@ msgstr "" #: app.php:349 msgid "Help" -msgstr "" +msgstr "ياردەم" #: app.php:362 msgid "Personal" -msgstr "" +msgstr "شەخسىي" #: app.php:373 msgid "Settings" -msgstr "" +msgstr "تەڭشەكلەر" #: app.php:385 msgid "Users" -msgstr "" +msgstr "ئىشلەتكۈچىلەر" #: app.php:398 msgid "Apps" -msgstr "" +msgstr "ئەپلەر" #: app.php:406 msgid "Admin" msgstr "" -#: files.php:209 +#: files.php:207 msgid "ZIP download is turned off." msgstr "" -#: files.php:210 +#: files.php:208 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:211 files.php:244 +#: files.php:209 files.php:242 msgid "Back to Files" msgstr "" -#: files.php:241 +#: files.php:239 msgid "Selected files too large to generate zip file." msgstr "" @@ -67,7 +67,7 @@ msgstr "" #: json.php:39 json.php:62 json.php:73 msgid "Authentication error" -msgstr "" +msgstr "سالاھىيەت دەلىللەش خاتالىقى" #: json.php:51 msgid "Token expired. Please reload page." @@ -75,15 +75,15 @@ msgstr "" #: search/provider/file.php:17 search/provider/file.php:35 msgid "Files" -msgstr "" +msgstr "ھۆججەتلەر" #: search/provider/file.php:26 search/provider/file.php:33 msgid "Text" -msgstr "" +msgstr "قىسقا ئۇچۇر" #: search/provider/file.php:29 msgid "Images" -msgstr "" +msgstr "سۈرەتلەر" #: setup.php:34 msgid "Set an admin username." @@ -189,34 +189,34 @@ msgstr "" #: template.php:114 msgid "1 minute ago" -msgstr "" +msgstr "1 مىنۇت ئىلگىرى" #: template.php:115 #, php-format msgid "%d minutes ago" -msgstr "" +msgstr "%d مىنۇت ئىلگىرى" #: template.php:116 msgid "1 hour ago" -msgstr "" +msgstr "1 سائەت ئىلگىرى" #: template.php:117 #, php-format msgid "%d hours ago" -msgstr "" +msgstr "%d سائەت ئىلگىرى" #: template.php:118 msgid "today" -msgstr "" +msgstr "بۈگۈن" #: template.php:119 msgid "yesterday" -msgstr "" +msgstr "تۈنۈگۈن" #: template.php:120 #, php-format msgid "%d days ago" -msgstr "" +msgstr "%d كۈن ئىلگىرى" #: template.php:121 msgid "last month" @@ -225,7 +225,7 @@ msgstr "" #: template.php:122 #, php-format msgid "%d months ago" -msgstr "" +msgstr "%d ئاي ئىلگىرى" #: template.php:123 msgid "last year" diff --git a/l10n/ug/settings.po b/l10n/ug/settings.po index 8908acf11ab..056a0697be8 100644 --- a/l10n/ug/settings.po +++ b/l10n/ug/settings.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:15+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-04 12:00+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,56 +19,56 @@ msgstr "" #: ajax/apps/ocs.php:20 msgid "Unable to load list from App Store" -msgstr "" +msgstr "ئەپ بازىرىدىن تىزىمنى يۈكلىيەلمىدى" #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/togglegroups.php:20 msgid "Authentication error" -msgstr "" +msgstr "سالاھىيەت دەلىللەش خاتالىقى" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "كۆرسىتىدىغان ئىسمىڭىز ئۆزگەردى." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" -msgstr "" +msgstr "كۆرسىتىدىغان ئىسىمنى ئۆزگەرتكىلى بولمايدۇ" #: ajax/creategroup.php:10 msgid "Group already exists" -msgstr "" +msgstr "گۇرۇپپا مەۋجۇت" #: ajax/creategroup.php:19 msgid "Unable to add group" -msgstr "" +msgstr "گۇرۇپپا قوشقىلى بولمايدۇ" #: ajax/enableapp.php:11 msgid "Could not enable app. " -msgstr "" +msgstr "ئەپنى قوزغىتالمىدى. " #: ajax/lostpassword.php:12 msgid "Email saved" -msgstr "" +msgstr "تورخەت ساقلاندى" #: ajax/lostpassword.php:14 msgid "Invalid email" -msgstr "" +msgstr "ئىناۋەتسىز تورخەت" #: ajax/removegroup.php:13 msgid "Unable to delete group" -msgstr "" +msgstr "گۇرۇپپىنى ئۆچۈرەلمىدى" #: ajax/removeuser.php:24 msgid "Unable to delete user" -msgstr "" +msgstr "ئىشلەتكۈچىنى ئۆچۈرەلمىدى" #: ajax/setlanguage.php:15 msgid "Language changed" -msgstr "" +msgstr "تىل ئۆزگەردى" #: ajax/setlanguage.php:17 ajax/setlanguage.php:20 msgid "Invalid request" -msgstr "" +msgstr "ئىناۋەتسىز ئىلتىماس" #: ajax/togglegroups.php:12 msgid "Admins can't remove themself from the admin group" @@ -77,91 +77,91 @@ msgstr "" #: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" -msgstr "" +msgstr "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ" #: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" -msgstr "" +msgstr "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ" #: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "" +msgstr "ئەپنى يېڭىلىيالمايدۇ." #: js/apps.js:30 msgid "Update to {appversion}" -msgstr "" +msgstr "{appversion} غا يېڭىلايدۇ" #: js/apps.js:36 js/apps.js:76 msgid "Disable" -msgstr "" +msgstr "چەكلە" #: js/apps.js:36 js/apps.js:64 js/apps.js:83 msgid "Enable" -msgstr "" +msgstr "قوزغات" #: js/apps.js:55 msgid "Please wait...." -msgstr "" +msgstr "سەل كۈتۈڭ…" #: js/apps.js:59 js/apps.js:71 js/apps.js:80 js/apps.js:93 msgid "Error" -msgstr "" +msgstr "خاتالىق" #: js/apps.js:90 msgid "Updating...." -msgstr "" +msgstr "يېڭىلاۋاتىدۇ…" #: js/apps.js:93 msgid "Error while updating app" -msgstr "" +msgstr "ئەپنى يېڭىلاۋاتقاندا خاتالىق كۆرۈلدى" #: js/apps.js:96 msgid "Updated" -msgstr "" +msgstr "يېڭىلاندى" #: js/personal.js:118 msgid "Saving..." -msgstr "" +msgstr "ساقلاۋاتىدۇ…" -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" -msgstr "" +msgstr "ئۆچۈرۈلگەن" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" -msgstr "" +msgstr "يېنىۋال" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" -msgstr "" +msgstr "ئىشلەتكۈچىنى چىقىرىۋېتەلمەيدۇ" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" -msgstr "" +msgstr "گۇرۇپپا" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" -msgstr "" +msgstr "گۇرۇپپا باشقۇرغۇچى" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" -msgstr "" +msgstr "ئۆچۈر" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" -msgstr "" +msgstr "گۇرۇپپا قوش" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "" @@ -255,7 +255,7 @@ msgstr "" #: templates/admin.php:128 msgid "Sharing" -msgstr "" +msgstr "ھەمبەھىر" #: templates/admin.php:134 msgid "Enable Share API" @@ -291,7 +291,7 @@ msgstr "" #: templates/admin.php:168 msgid "Security" -msgstr "" +msgstr "بىخەتەرلىك" #: templates/admin.php:181 msgid "Enforce HTTPS" @@ -310,23 +310,23 @@ msgstr "" #: templates/admin.php:195 msgid "Log" -msgstr "" +msgstr "خاتىرە" #: templates/admin.php:196 msgid "Log level" -msgstr "" +msgstr "خاتىرە دەرىجىسى" #: templates/admin.php:227 msgid "More" -msgstr "" +msgstr "تېخىمۇ كۆپ" #: templates/admin.php:228 msgid "Less" -msgstr "" +msgstr "ئاز" #: templates/admin.php:235 templates/personal.php:105 msgid "Version" -msgstr "" +msgstr "نەشرى" #: templates/admin.php:237 templates/personal.php:108 msgid "" @@ -340,15 +340,15 @@ msgstr "" #: templates/apps.php:11 msgid "Add your App" -msgstr "" +msgstr "ئەپىڭىزنى قوشۇڭ" #: templates/apps.php:12 msgid "More Apps" -msgstr "" +msgstr "تېخىمۇ كۆپ ئەپلەر" #: templates/apps.php:28 msgid "Select an App" -msgstr "" +msgstr "بىر ئەپ تاللاڭ" #: templates/apps.php:34 msgid "See application page at apps.owncloud.com" @@ -360,23 +360,23 @@ msgstr "" #: templates/apps.php:38 msgid "Update" -msgstr "" +msgstr "يېڭىلا" #: templates/help.php:4 msgid "User Documentation" -msgstr "" +msgstr "ئىشلەتكۈچى قوللانمىسى" #: templates/help.php:6 msgid "Administrator Documentation" -msgstr "" +msgstr "باشقۇرغۇچى قوللانمىسى" #: templates/help.php:9 msgid "Online Documentation" -msgstr "" +msgstr "توردىكى قوللانما" #: templates/help.php:11 msgid "Forum" -msgstr "" +msgstr "مۇنبەر" #: templates/help.php:14 msgid "Bugtracker" @@ -401,55 +401,55 @@ msgstr "" #: templates/personal.php:37 templates/users.php:23 templates/users.php:77 msgid "Password" -msgstr "" +msgstr "ئىم" #: templates/personal.php:38 msgid "Your password was changed" -msgstr "" +msgstr "ئىمىڭىز مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى" #: templates/personal.php:39 msgid "Unable to change your password" -msgstr "" +msgstr "ئىمنى ئۆزگەرتكىلى بولمايدۇ." #: templates/personal.php:40 msgid "Current password" -msgstr "" +msgstr "نۆۋەتتىكى ئىم" #: templates/personal.php:42 msgid "New password" -msgstr "" +msgstr "يېڭى ئىم" #: templates/personal.php:44 msgid "Change password" -msgstr "" +msgstr "ئىم ئۆزگەرت" #: templates/personal.php:56 templates/users.php:76 msgid "Display Name" -msgstr "" +msgstr "كۆرسىتىش ئىسمى" #: templates/personal.php:68 msgid "Email" -msgstr "" +msgstr "تورخەت" #: templates/personal.php:70 msgid "Your email address" -msgstr "" +msgstr "تورخەت ئادرېسىڭىز" #: templates/personal.php:71 msgid "Fill in an email address to enable password recovery" -msgstr "" +msgstr "ئىم ئەسلىگە كەلتۈرۈشتە ئىشلىتىدىغان تور خەت ئادرېسىنى تولدۇرۇڭ" #: templates/personal.php:77 templates/personal.php:78 msgid "Language" -msgstr "" +msgstr "تىل" #: templates/personal.php:89 msgid "Help translate" -msgstr "" +msgstr "تەرجىمىگە ياردەم" #: templates/personal.php:94 msgid "WebDAV" -msgstr "" +msgstr "WebDAV" #: templates/personal.php:96 msgid "Use this address to connect to your ownCloud in your file manager" @@ -457,36 +457,36 @@ msgstr "" #: templates/users.php:21 templates/users.php:75 msgid "Login Name" -msgstr "" +msgstr "تىزىمغا كىرىش ئاتى" #: templates/users.php:30 msgid "Create" -msgstr "" +msgstr "قۇر" #: templates/users.php:33 msgid "Default Storage" -msgstr "" +msgstr "كۆڭۈلدىكى ساقلىغۇچ" #: templates/users.php:39 templates/users.php:133 msgid "Unlimited" -msgstr "" +msgstr "چەكسىز" #: templates/users.php:57 templates/users.php:148 msgid "Other" -msgstr "" +msgstr "باشقا" #: templates/users.php:82 msgid "Storage" -msgstr "" +msgstr "ساقلىغۇچ" #: templates/users.php:93 msgid "change display name" -msgstr "" +msgstr "كۆرسىتىدىغان ئىسىمنى ئۆزگەرت" #: templates/users.php:97 msgid "set new password" -msgstr "" +msgstr "يېڭى ئىم تەڭشە" #: templates/users.php:128 msgid "Default" -msgstr "" +msgstr "كۆڭۈلدىكى" diff --git a/l10n/ug/user_ldap.po b/l10n/ug/user_ldap.po index a8ca272882e..f6fcf46d4e2 100644 --- a/l10n/ug/user_ldap.po +++ b/l10n/ug/user_ldap.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 11:50+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -39,7 +39,7 @@ msgstr "" #: js/settings.js:66 msgid "Deletion failed" -msgstr "" +msgstr "ئۆچۈرۈش مەغلۇپ بولدى" #: js/settings.js:82 msgid "Take over settings from recent server configuration?" @@ -92,7 +92,7 @@ msgstr "" #: templates/settings.php:36 msgid "Host" -msgstr "" +msgstr "باش ئاپپارات" #: templates/settings.php:38 msgid "" @@ -124,7 +124,7 @@ msgstr "" #: templates/settings.php:46 msgid "Password" -msgstr "" +msgstr "ئىم" #: templates/settings.php:49 msgid "For anonymous access, leave DN and Password empty." @@ -132,7 +132,7 @@ msgstr "" #: templates/settings.php:50 msgid "User Login Filter" -msgstr "" +msgstr "ئىشلەتكۈچى تىزىمغا كىرىش سۈزگۈچى" #: templates/settings.php:53 #, php-format @@ -148,7 +148,7 @@ msgstr "" #: templates/settings.php:55 msgid "User List Filter" -msgstr "" +msgstr "ئىشلەتكۈچى تىزىم سۈزگۈچى" #: templates/settings.php:58 msgid "Defines the filter to apply, when retrieving users." @@ -160,7 +160,7 @@ msgstr "" #: templates/settings.php:60 msgid "Group Filter" -msgstr "" +msgstr "گۇرۇپپا سۈزگۈچ" #: templates/settings.php:63 msgid "Defines the filter to apply, when retrieving groups." @@ -172,11 +172,11 @@ msgstr "" #: templates/settings.php:68 msgid "Connection Settings" -msgstr "" +msgstr "باغلىنىش تەڭشىكى" #: templates/settings.php:70 msgid "Configuration Active" -msgstr "" +msgstr "سەپلىمە ئاكتىپ" #: templates/settings.php:70 msgid "When unchecked, this configuration will be skipped." @@ -184,7 +184,7 @@ msgstr "" #: templates/settings.php:71 msgid "Port" -msgstr "" +msgstr "ئېغىز" #: templates/settings.php:72 msgid "Backup (Replica) Host" @@ -210,7 +210,7 @@ msgstr "" #: templates/settings.php:75 msgid "Use TLS" -msgstr "" +msgstr "TLS ئىشلەت" #: templates/settings.php:75 msgid "Do not use it additionally for LDAPS connections, it will fail." @@ -330,4 +330,4 @@ msgstr "" #: templates/settings.php:99 msgid "Help" -msgstr "" +msgstr "ياردەم" diff --git a/l10n/ug/user_webdavauth.po b/l10n/ug/user_webdavauth.po index 5af76959104..30ac4d4ad7e 100644 --- a/l10n/ug/user_webdavauth.po +++ b/l10n/ug/user_webdavauth.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# uqkun , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2012-11-09 09:06+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Uighur (http://www.transifex.com/projects/p/owncloud/language/ug/)\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 11:40+0000\n" +"Last-Translator: Abduqadir Abliz \n" +"Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,11 +20,11 @@ msgstr "" #: templates/settings.php:3 msgid "WebDAV Authentication" -msgstr "" +msgstr "WebDAV سالاھىيەت دەلىللەش" #: templates/settings.php:4 msgid "URL: http://" -msgstr "" +msgstr "URL: http://" #: templates/settings.php:7 msgid "" diff --git a/l10n/vi/core.po b/l10n/vi/core.po index d664c1fa066..e6723000ef9 100644 --- a/l10n/vi/core.po +++ b/l10n/vi/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# xtdv , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 17:50+0000\n" +"Last-Translator: xtdv \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "Liên kết tạo lại mật khẩu đã được gửi tới hộp thư của bạn.
Nếu bạn không thấy nó sau một khoảng thời gian, vui lòng kiểm tra trong thư mục Spam/Rác.
Nếu vẫn không thấy, vui lòng hỏi người quản trị hệ thống." #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Yêu cầu thất bại!
Bạn có chắc là email/tên đăng nhập của bạn chính xác?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -479,11 +480,11 @@ msgstr "Cảnh bảo bảo mật" #: templates/installation.php:25 msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" -msgstr "" +msgstr "Phiên bản PHP của bạn có lỗ hổng NULL Byte attack (CVE-2006-7243)" #: templates/installation.php:26 msgid "Please update your PHP installation to use ownCloud securely." -msgstr "" +msgstr "Vui lòng cập nhật bản cài đặt PHP để sử dụng ownCloud một cách an toàn." #: templates/installation.php:32 msgid "" @@ -563,7 +564,7 @@ msgstr "dịch vụ web dưới sự kiểm soát của bạn" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s còn trống. Xem thêm thông tin cách cập nhật." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index 8a9cc154480..d6dfedc95a9 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# xtdv , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 17:40+0000\n" +"Last-Translator: xtdv \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,7 +21,7 @@ msgstr "" #: ajax/move.php:17 #, php-format msgid "Could not move %s - File with this name already exists" -msgstr "Không thể di chuyển %s - Đã có tên file này trên hệ thống" +msgstr "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống" #: ajax/move.php:27 ajax/move.php:30 #, php-format @@ -86,7 +87,7 @@ msgstr "Chia sẻ" msgid "Delete permanently" msgstr "Xóa vĩnh vễn" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Xóa" @@ -156,66 +157,66 @@ msgstr "Your storage is full, files can not be updated or synced anymore!" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Your storage is almost full ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Your download is being prepared. This might take some time if the files are big." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Không thể tải lên tập tin của bạn ,nó như là một thư mục hoặc có 0 byte" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" -msgstr "" +msgstr "Không đủ chỗ trống cần thiết" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Hủy tải lên" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL không được để trống." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Lỗi" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Tên" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Kích cỡ" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Thay đổi" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 thư mục" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} thư mục" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 tập tin" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} tập tin" @@ -279,40 +280,40 @@ msgstr "File đã bị xóa" msgid "Cancel upload" msgstr "Hủy upload" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." -msgstr "" +msgstr "Bạn không có quyền ghi vào đây." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Không có gì ở đây .Hãy tải lên một cái gì đó !" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Tải về" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Bỏ chia sẻ" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Tập tin tải lên quá lớn" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ ." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Tập tin đang được quét ,vui lòng chờ." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Hiện tại đang quét" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "Upgrading filesystem cache..." +msgstr "Đang nâng cấp bộ nhớ đệm cho tập tin hệ thống..." diff --git a/l10n/vi/files_external.po b/l10n/vi/files_external.po index 5a4d0493a78..fd539c747a2 100644 --- a/l10n/vi/files_external.po +++ b/l10n/vi/files_external.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# xtdv , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:29+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-05 06:20+0000\n" +"Last-Translator: xtdv \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -55,7 +56,7 @@ msgid "" "Warning: The Curl support in PHP is not enabled or installed. " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "your system administrator to install it." -msgstr "" +msgstr "Cảnh báo: Tính năng Curl trong PHP chưa được kích hoạt hoặc cài đặt. Việc gắn kết ownCloud / WebDAV hay GoogleDrive không thực hiện được. Vui lòng liên hệ người quản trị để cài đặt nó." #: templates/settings.php:3 msgid "External Storage" @@ -67,7 +68,7 @@ msgstr "Tên thư mục" #: templates/settings.php:10 msgid "External storage" -msgstr "" +msgstr "Lưu trữ ngoài" #: templates/settings.php:11 msgid "Configuration" @@ -83,7 +84,7 @@ msgstr "Áp dụng" #: templates/settings.php:33 msgid "Add storage" -msgstr "" +msgstr "Thêm bộ nhớ" #: templates/settings.php:90 msgid "None set" diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index 1b9c3c88568..a9e6d7581f5 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# zhangmin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 02:20+0000\n" +"Last-Translator: zhangmin \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "重置密码的链接已发送到您的邮箱。
如果您觉得在合理的时间内还未收到邮件,请查看 spam/junk 目录。
如果没有在那里,请询问您的本地管理员。" #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "请求失败
您确定您的邮箱/用户名是正确的?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "您控制的web服务" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s 可用。获取更多关于如何升级的信息。" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/zh_CN/settings.po b/l10n/zh_CN/settings.po index 73987140074..9044f64dc2e 100644 --- a/l10n/zh_CN/settings.po +++ b/l10n/zh_CN/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# zhangmin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"PO-Revision-Date: 2013-05-04 02:20+0000\n" +"Last-Translator: zhangmin \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "认证出错" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "您的显示名字已经改变" #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -124,44 +125,44 @@ msgstr "已更新" msgid "Saving..." msgstr "保存中" -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "已经删除" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "撤销" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "无法移除用户" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "组" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "组管理员" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "删除" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "添加组" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "必须提供合法的用户名" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "创建用户出错" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "必须提供合法的密码" @@ -328,7 +329,7 @@ msgstr "更少" msgid "Version" msgstr "版本" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the
ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-04 04:20+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -401,11 +402,11 @@ msgid "" "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.
If it is not there ask your local administrator ." -msgstr "" +msgstr "重設密碼的連結已經寄至您的電子郵件信箱,如果您過了一段時間還是沒有收到它,請檢查看看它是不是被放到垃圾郵件了,如果還是沒有的話,請聯絡您的 ownCloud 系統管理員。" #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "請求失敗!
您確定填入的電子郵件地址或是帳號名稱是正確的嗎?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "由您控制的網路服務" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s 已經釋出,瞭解更多資訊以進行更新。" #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/zh_TW/files_versions.po b/l10n/zh_TW/files_versions.po index 0269ee3c341..ceb0cbe0535 100644 --- a/l10n/zh_TW/files_versions.po +++ b/l10n/zh_TW/files_versions.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# pellaeon , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:30+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 07:10+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -46,7 +47,7 @@ msgstr "沒有舊的版本" #: history.php:74 msgid "No path specified" -msgstr "沒有指定路線" +msgstr "沒有指定路徑" #: js/versions.js:6 msgid "Versions" @@ -54,4 +55,4 @@ msgstr "版本" #: templates/history.php:20 msgid "Revert a file to a previous version by clicking on its revert button" -msgstr "按一按復原的按鈕,就能把一個檔案復原至以前的版本" +msgstr "按一下復原的按鈕即可把檔案復原至以前的版本" diff --git a/l10n/zh_TW/user_ldap.po b/l10n/zh_TW/user_ldap.po index 87daf4265bb..29607494a30 100644 --- a/l10n/zh_TW/user_ldap.po +++ b/l10n/zh_TW/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 07:20+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/zh_TW/user_webdavauth.po b/l10n/zh_TW/user_webdavauth.po index 19c7a6a94c8..4dd48e2ce3d 100644 --- a/l10n/zh_TW/user_webdavauth.po +++ b/l10n/zh_TW/user_webdavauth.po @@ -3,16 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# , 2013. -# Hydriz Scholz , 2013. -# , 2012. +# Hydriz , 2013 +# Hydriz , 2013 +# pellaeon , 2013 +# sofiasu , 2012 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-17 02:20+0200\n" -"PO-Revision-Date: 2013-04-17 00:23+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"PO-Revision-Date: 2013-05-06 07:10+0000\n" +"Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,4 +34,4 @@ msgid "" "ownCloud will send the user credentials to this URL. This plugin checks the " "response and will interpret the HTTP statuscodes 401 and 403 as invalid " "credentials, and all other responses as valid credentials." -msgstr "ownCloud會將把用戶的證件發送到這個網址。這個插件會檢查回應,並把HTTP狀態代碼401和403視為無效證件和所有其他回應視為有效證件。" +msgstr "ownCloud 會將把用戶的登入資訊發送到這個網址以嘗試登入,並檢查回應, HTTP 狀態碼401和403視為登入失敗,所有其他回應視為登入成功。" diff --git a/lib/l10n/de.php b/lib/l10n/de.php index cd1bf104d35..13acc1c55b5 100644 --- a/lib/l10n/de.php +++ b/lib/l10n/de.php @@ -35,7 +35,7 @@ "Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s", "MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Password ungültig: %s", "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.", -"Please double check the
installation guides." => "Bitte prüfen Sie die Installationsanleitungen.", +"Please double check the installation guides." => "Bitte prüfe die Installationsanleitungen.", "seconds ago" => "Gerade eben", "1 minute ago" => "vor einer Minute", "%d minutes ago" => "Vor %d Minuten", diff --git a/lib/l10n/ug.php b/lib/l10n/ug.php new file mode 100644 index 00000000000..62d91616c1d --- /dev/null +++ b/lib/l10n/ug.php @@ -0,0 +1,19 @@ + "ياردەم", +"Personal" => "شەخسىي", +"Settings" => "تەڭشەكلەر", +"Users" => "ئىشلەتكۈچىلەر", +"Apps" => "ئەپلەر", +"Authentication error" => "سالاھىيەت دەلىللەش خاتالىقى", +"Files" => "ھۆججەتلەر", +"Text" => "قىسقا ئۇچۇر", +"Images" => "سۈرەتلەر", +"1 minute ago" => "1 مىنۇت ئىلگىرى", +"%d minutes ago" => "%d مىنۇت ئىلگىرى", +"1 hour ago" => "1 سائەت ئىلگىرى", +"%d hours ago" => "%d سائەت ئىلگىرى", +"today" => "بۈگۈن", +"yesterday" => "تۈنۈگۈن", +"%d days ago" => "%d كۈن ئىلگىرى", +"%d months ago" => "%d ئاي ئىلگىرى" +); diff --git a/settings/l10n/de.php b/settings/l10n/de.php index 12ef97ca75a..2cf828e7342 100644 --- a/settings/l10n/de.php +++ b/settings/l10n/de.php @@ -46,24 +46,24 @@ "Locale not working" => "Ländereinstellung funktioniert nicht", "This ownCloud server can't set system locale to %s. 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 %s." => "Dieser ownCloud Server kann die Ländereinstellung nicht auf %s ändern. Dies bedeutet, dass es Probleme mit bestimmten Zeichen in Dateinamen geben könnte. Wir empfehlen die für %s benötigten Pakete auf Deinem System zu installieren.", "Internet connection not working" => "Keine Netzwerkverbindung", -"This ownCloud 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 of ownCloud." => "Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren wenn Du alle Funktionen von ownCloud nutzen möchtest.", +"This ownCloud 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 of ownCloud." => "Dieser ownCloud Server hat keine funktionierende Netzwerkverbindung. Dies bedeutet das einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungsmails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Netzwerkverbindung für diesen Server zu aktivieren, wenn Du alle Funktionen von ownCloud nutzen möchtest.", "Cron" => "Cron", "Execute one task with each page loaded" => "Führe eine Aufgabe mit jeder geladenen Seite aus", "cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php ist an einem Webcron-Service registriert. Die cron.php Seite wird einmal pro Minute über http abgerufen.", "Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Nutze den Cron Systemdienst. Rufe die Datei cron.php im owncloud Ordner einmal pro Minute über einen Cronjob auf.", "Sharing" => "Teilen", "Enable Share API" => "Aktiviere Sharing-API", -"Allow apps to use the Share API" => "Erlaube Apps die Nutzung der Share-API", -"Allow links" => "Erlaube Links", -"Allow users to share items to the public with links" => "Erlaube Benutzern, Inhalte über öffentliche Links zu teilen", -"Allow resharing" => "Erlaube erneutes Teilen", -"Allow users to share items shared with them again" => "Erlaube Benutzern, mit ihnen geteilte Inhalte erneut zu teilen", -"Allow users to share with anyone" => "Erlaube Benutzern, mit jedem zu teilen", -"Allow users to only share with users in their groups" => "Erlaube Benutzern, nur mit Benutzern ihrer Gruppe zu teilen", +"Allow apps to use the Share API" => "Erlaubt Apps die Nutzung der Share-API", +"Allow links" => "Erlaubt Links", +"Allow users to share items to the public with links" => "Erlaubt Benutzern, Inhalte über öffentliche Links zu teilen", +"Allow resharing" => "Erlaubt erneutes Teilen", +"Allow users to share items shared with them again" => "Erlaubt Benutzern, mit ihnen geteilte Inhalte erneut zu teilen", +"Allow users to share with anyone" => "Erlaubt Benutzern, mit jedem zu teilen", +"Allow users to only share with users in their groups" => "Erlaubt Benutzern, nur mit Benutzern ihrer Gruppe zu teilen", "Security" => "Sicherheit", "Enforce HTTPS" => "Erzwinge HTTPS", "Enforces the clients to connect to ownCloud via an encrypted connection." => "Erzwingt die Verwendung einer verschlüsselten Verbindung", -"Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Bitte verbinden Sie sich über eine HTTPS Verbindung mit diesem ownCloud Server um diese Einstellung zu ändern", +"Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Bitte verbinde Dich über eine HTTPS Verbindung mit diesem ownCloud Server um diese Einstellung zu ändern", "Log" => "Log", "Log level" => "Loglevel", "More" => "Mehr", diff --git a/settings/l10n/de_DE.php b/settings/l10n/de_DE.php index febc67ef2d7..91a96ca9f0e 100644 --- a/settings/l10n/de_DE.php +++ b/settings/l10n/de_DE.php @@ -45,7 +45,7 @@ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.", "Locale not working" => "Die Lokalisierung funktioniert nicht", "This ownCloud server can't set system locale to %s. 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 %s." => "Dieser ownCloud-Server kann die Ländereinstellung nicht auf %s ändern. Dies bedeutet, dass es Probleme mit bestimmten Zeichen in Dateinamen geben könnte. Wir empfehlen, die für %s benötigten Pakete auf ihrem System zu installieren.", -"Internet connection not working" => "Keine Netzwerkverbindung", +"Internet connection not working" => "Keine Internetverbindung", "This ownCloud 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 of ownCloud." => "Dieser ownCloud-Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einbinden von externen Speichern, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Fernzugriff auf Dateien und das Senden von Benachrichtigungs-E-Mails funktioniert eventuell ebenfalls nicht. Wir empfehlen die Internetverbindung für diesen Server zu aktivieren, wenn Sie alle Funktionen von ownCloud nutzen wollen.", "Cron" => "Cron", "Execute one task with each page loaded" => "Eine Aufgabe bei jedem Laden der Seite ausführen", @@ -56,10 +56,10 @@ "Allow apps to use the Share API" => "Anwendungen erlauben, die Share-API zu benutzen", "Allow links" => "Links erlauben", "Allow users to share items to the public with links" => "Benutzern erlauben, Inhalte per öffentlichem Link zu teilen", -"Allow resharing" => "Erlaube weiterverteilen", +"Allow resharing" => "Erlaube Weiterverteilen", "Allow users to share items shared with them again" => "Erlaubt Benutzern, mit ihnen geteilte Inhalte erneut zu teilen", -"Allow users to share with anyone" => "Erlaube Benutzern, mit jedem zu teilen", -"Allow users to only share with users in their groups" => "Erlaube Benutzern, nur mit Nutzern in ihrer Gruppe zu teilen", +"Allow users to share with anyone" => "Erlaubt Benutzern, mit jedem zu teilen", +"Allow users to only share with users in their groups" => "Erlaubt Benutzern, nur mit Nutzern in ihrer Gruppe zu teilen", "Security" => "Sicherheit", "Enforce HTTPS" => "HTTPS erzwingen", "Enforces the clients to connect to ownCloud via an encrypted connection." => "Zwingt die Clients, sich über eine verschlüsselte Verbindung mit ownCloud zu verbinden.", diff --git a/settings/l10n/gl.php b/settings/l10n/gl.php index a6c5018626e..61e86a83f33 100644 --- a/settings/l10n/gl.php +++ b/settings/l10n/gl.php @@ -50,7 +50,7 @@ "Cron" => "Cron", "Execute one task with each page loaded" => "Executar unha tarefa con cada páxina cargada", "cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php está rexistrado nun servizo de WebCron. Chame á página cron.php na raíz ownCloud unha vez por minuto a través de HTTP.", -"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Use o servizo de sistema cron. Chame ao ficheiro cron.php no catfaol owncloud a través dun sistema de cronjob unna vez por minuto.", +"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Use o servizo de sistema cron. Chame ao ficheiro cron.php no cartafol owncloud a través dun sistema de cronjob unha vez por minuto.", "Sharing" => "Compartindo", "Enable Share API" => "Activar o API para compartir", "Allow apps to use the Share API" => "Permitir que os aplicativos empreguen o API para compartir", diff --git a/settings/l10n/pt_PT.php b/settings/l10n/pt_PT.php index 3e49675f793..de32c3b1f02 100644 --- a/settings/l10n/pt_PT.php +++ b/settings/l10n/pt_PT.php @@ -1,6 +1,7 @@ "Incapaz de carregar a lista da App Store", "Authentication error" => "Erro na autenticação", +"Your display name has been changed." => "O seu nome foi alterado", "Unable to change display name" => "Não foi possível alterar o nome", "Group already exists" => "O grupo já existe", "Unable to add group" => "Impossível acrescentar o grupo", diff --git a/settings/l10n/ug.php b/settings/l10n/ug.php new file mode 100644 index 00000000000..8e8c17f0d36 --- /dev/null +++ b/settings/l10n/ug.php @@ -0,0 +1,71 @@ + "ئەپ بازىرىدىن تىزىمنى يۈكلىيەلمىدى", +"Authentication error" => "سالاھىيەت دەلىللەش خاتالىقى", +"Your display name has been changed." => "كۆرسىتىدىغان ئىسمىڭىز ئۆزگەردى.", +"Unable to change display name" => "كۆرسىتىدىغان ئىسىمنى ئۆزگەرتكىلى بولمايدۇ", +"Group already exists" => "گۇرۇپپا مەۋجۇت", +"Unable to add group" => "گۇرۇپپا قوشقىلى بولمايدۇ", +"Could not enable app. " => "ئەپنى قوزغىتالمىدى. ", +"Email saved" => "تورخەت ساقلاندى", +"Invalid email" => "ئىناۋەتسىز تورخەت", +"Unable to delete group" => "گۇرۇپپىنى ئۆچۈرەلمىدى", +"Unable to delete user" => "ئىشلەتكۈچىنى ئۆچۈرەلمىدى", +"Language changed" => "تىل ئۆزگەردى", +"Invalid request" => "ئىناۋەتسىز ئىلتىماس", +"Unable to add user to group %s" => "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ", +"Unable to remove user from group %s" => "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ", +"Couldn't update app." => "ئەپنى يېڭىلىيالمايدۇ.", +"Update to {appversion}" => "{appversion} غا يېڭىلايدۇ", +"Disable" => "چەكلە", +"Enable" => "قوزغات", +"Please wait...." => "سەل كۈتۈڭ…", +"Error" => "خاتالىق", +"Updating...." => "يېڭىلاۋاتىدۇ…", +"Error while updating app" => "ئەپنى يېڭىلاۋاتقاندا خاتالىق كۆرۈلدى", +"Updated" => "يېڭىلاندى", +"Saving..." => "ساقلاۋاتىدۇ…", +"deleted" => "ئۆچۈرۈلگەن", +"undo" => "يېنىۋال", +"Unable to remove user" => "ئىشلەتكۈچىنى چىقىرىۋېتەلمەيدۇ", +"Groups" => "گۇرۇپپا", +"Group Admin" => "گۇرۇپپا باشقۇرغۇچى", +"Delete" => "ئۆچۈر", +"add group" => "گۇرۇپپا قوش", +"Sharing" => "ھەمبەھىر", +"Security" => "بىخەتەرلىك", +"Log" => "خاتىرە", +"Log level" => "خاتىرە دەرىجىسى", +"More" => "تېخىمۇ كۆپ", +"Less" => "ئاز", +"Version" => "نەشرى", +"Add your App" => "ئەپىڭىزنى قوشۇڭ", +"More Apps" => "تېخىمۇ كۆپ ئەپلەر", +"Select an App" => "بىر ئەپ تاللاڭ", +"Update" => "يېڭىلا", +"User Documentation" => "ئىشلەتكۈچى قوللانمىسى", +"Administrator Documentation" => "باشقۇرغۇچى قوللانمىسى", +"Online Documentation" => "توردىكى قوللانما", +"Forum" => "مۇنبەر", +"Password" => "ئىم", +"Your password was changed" => "ئىمىڭىز مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى", +"Unable to change your password" => "ئىمنى ئۆزگەرتكىلى بولمايدۇ.", +"Current password" => "نۆۋەتتىكى ئىم", +"New password" => "يېڭى ئىم", +"Change password" => "ئىم ئۆزگەرت", +"Display Name" => "كۆرسىتىش ئىسمى", +"Email" => "تورخەت", +"Your email address" => "تورخەت ئادرېسىڭىز", +"Fill in an email address to enable password recovery" => "ئىم ئەسلىگە كەلتۈرۈشتە ئىشلىتىدىغان تور خەت ئادرېسىنى تولدۇرۇڭ", +"Language" => "تىل", +"Help translate" => "تەرجىمىگە ياردەم", +"WebDAV" => "WebDAV", +"Login Name" => "تىزىمغا كىرىش ئاتى", +"Create" => "قۇر", +"Default Storage" => "كۆڭۈلدىكى ساقلىغۇچ", +"Unlimited" => "چەكسىز", +"Other" => "باشقا", +"Storage" => "ساقلىغۇچ", +"change display name" => "كۆرسىتىدىغان ئىسىمنى ئۆزگەرت", +"set new password" => "يېڭى ئىم تەڭشە", +"Default" => "كۆڭۈلدىكى" +); diff --git a/settings/l10n/zh_CN.php b/settings/l10n/zh_CN.php index 9ccc52f65f5..1ec0b004c60 100644 --- a/settings/l10n/zh_CN.php +++ b/settings/l10n/zh_CN.php @@ -1,6 +1,7 @@ "无法从应用商店载入列表", "Authentication error" => "认证出错", +"Your display name has been changed." => "您的显示名字已经改变", "Unable to change display name" => "无法修改显示名称", "Group already exists" => "已存在该组", "Unable to add group" => "无法添加组", -- GitLab From 63d51980e17b34c16fdff2cb5bc6f9924a8f1d61 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 11 May 2013 21:07:05 +0200 Subject: [PATCH 282/454] Get config from template --- core/js/config.php | 6 +++--- core/templates/layout.user.php | 2 +- lib/templatelayout.php | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/js/config.php b/core/js/config.php index 0aaa4482287..8a377c2da1a 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -26,8 +26,8 @@ $array = array( "oc_debug" => (defined('DEBUG') && DEBUG) ? 'true' : 'false', "oc_webroot" => "\"".OC::$WEBROOT."\"", "oc_appswebroots" => str_replace('\\/', '/', json_encode($apps_paths)), // Ugly unescape slashes waiting for better solution - "oc_current_user" => "\"".OC_User::getUser(). "\"", - "oc_requesttoken" => "\"".OC_Util::callRegister(). "\"", + "oc_current_user" => "document.head.getAttribute('data-user');", + "oc_requesttoken" => "document.head.getAttribute('data-requesttoken');", "datepickerFormatDate" => json_encode($l->l('jsdate', 'jsdate')), "dayNames" => json_encode( array( @@ -62,4 +62,4 @@ $array = array( // Echo it foreach ($array as $setting => $value) { echo("var ". $setting ."=".$value.";\n"); -} +} \ No newline at end of file diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 4dc4a2c7593..6e49149b0ae 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -5,7 +5,7 @@ - + <?php p(!empty($_['application'])?$_['application'].' | ':'') ?>ownCloud <?php p(trim($_['user_displayname']) != '' ?' ('.$_['user_displayname'].') ':'') ?> diff --git a/lib/templatelayout.php b/lib/templatelayout.php index d385bb7f19d..7115b8f0306 100644 --- a/lib/templatelayout.php +++ b/lib/templatelayout.php @@ -56,7 +56,7 @@ class OC_TemplateLayout extends OC_Template { $jsfiles = self::findJavascriptFiles(OC_Util::$scripts); $this->assign('jsfiles', array(), false); if (OC_Config::getValue('installed', false) && $renderas!='error') { - $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config')); + $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter); } if (!empty(OC_Util::$core_scripts)) { $this->append( 'jsfiles', OC_Helper::linkToRemoteBase('core.js', false) . $versionParameter); -- GitLab From 337e3ed61fc50d1d69b6f481777e58c3f9a428fd Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 11 May 2013 21:08:26 +0200 Subject: [PATCH 283/454] Typo --- core/js/config.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/js/config.php b/core/js/config.php index 8a377c2da1a..48bea6ae542 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -26,8 +26,8 @@ $array = array( "oc_debug" => (defined('DEBUG') && DEBUG) ? 'true' : 'false', "oc_webroot" => "\"".OC::$WEBROOT."\"", "oc_appswebroots" => str_replace('\\/', '/', json_encode($apps_paths)), // Ugly unescape slashes waiting for better solution - "oc_current_user" => "document.head.getAttribute('data-user');", - "oc_requesttoken" => "document.head.getAttribute('data-requesttoken');", + "oc_current_user" => "document.head.getAttribute('data-user')", + "oc_requesttoken" => "document.head.getAttribute('data-requesttoken')", "datepickerFormatDate" => json_encode($l->l('jsdate', 'jsdate')), "dayNames" => json_encode( array( -- GitLab From baf058316cbf6a8d57d2cf29239f5ad885306f7c Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Sun, 12 May 2013 10:56:32 +0200 Subject: [PATCH 284/454] disable mbstring.func_overload in setup --- lib/setup.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/setup.php b/lib/setup.php index d1197b3ebf3..f1ac6b8b2b8 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -811,6 +811,7 @@ class OC_Setup { $content.= "php_value upload_max_filesize 512M\n";//upload limit $content.= "php_value post_max_size 512M\n"; $content.= "php_value memory_limit 512M\n"; + $content.= "php_value mbstring.func_overload 0\n"; $content.= "\n"; $content.= " SetEnv htaccessWorking true\n"; $content.= "\n"; -- GitLab From a878bd9923f68ce35146357fe089749f62ab0e27 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 9 Apr 2013 13:31:12 +0200 Subject: [PATCH 285/454] fix allowed rename of folder in root directory to reserved name "Shared" refs #2159 --- apps/files/ajax/rename.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 9fd2ce3ad4b..d9b59c6e487 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -13,7 +13,7 @@ $newname = stripslashes($_GET["newname"]); $l = OC_L10N::get('files'); -if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') { +if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== 'Shared' ) { $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { @@ -21,6 +21,8 @@ if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.' } else { OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); } -}else{ +} elseif( $newname === 'Shared' ) { + OCP\JSON::error(array("data" => array( "message" => $l->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") ))); +} else { OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); } -- GitLab From b393c91a96aeb1346add8e0cb5a62747b07379f0 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 9 Apr 2013 13:44:54 +0200 Subject: [PATCH 286/454] wrong root dir name --- apps/files/ajax/rename.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index d9b59c6e487..50bbe54bd25 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -13,7 +13,7 @@ $newname = stripslashes($_GET["newname"]); $l = OC_L10N::get('files'); -if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== 'Shared' ) { +if ( $newname !== '.' and ($dir != '/' || $file != 'Shared') and ($dir !== '/' || $newname !== 'Shared') ) { $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { @@ -21,7 +21,7 @@ if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== 'Sh } else { OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); } -} elseif( $newname === 'Shared' ) { +} elseif( $dir === '/' and $newname === 'Shared' ) { OCP\JSON::error(array("data" => array( "message" => $l->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") ))); } else { OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); -- GitLab From 33b31931bddb6932c35f2ab9ec6bce9ea723509a Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 9 Apr 2013 13:54:01 +0200 Subject: [PATCH 287/454] string comparision --- apps/files/ajax/rename.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 50bbe54bd25..a0785f52df2 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -13,7 +13,7 @@ $newname = stripslashes($_GET["newname"]); $l = OC_L10N::get('files'); -if ( $newname !== '.' and ($dir != '/' || $file != 'Shared') and ($dir !== '/' || $newname !== 'Shared') ) { +if ( $newname !== '.' and ($dir !== '/' || $file !== 'Shared') and ($dir !== '/' || $newname !== 'Shared') ) { $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { -- GitLab From 1020d5c16c452145b25725b71bc3269dceddbe6e Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 6 May 2013 20:45:04 +0200 Subject: [PATCH 288/454] [files] refactoring --- apps/files/ajax/rename.php | 50 +++++++++++++++--------- apps/files/lib/files.php | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 19 deletions(-) create mode 100644 apps/files/lib/files.php diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index a0785f52df2..641655a9ea5 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -1,28 +1,40 @@ . + * + */ +require_once realpath( dirname(__FILE__).'/../lib/files.php' ); OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); -// Get data -$dir = stripslashes($_GET["dir"]); -$file = stripslashes($_GET["file"]); -$newname = stripslashes($_GET["newname"]); +$files = new \OCA\Files\Files(); +$result = $files->rename( + stripslashes($_GET["dir"]), + stripslashes($_GET["file"]), + stripslashes($_GET["newname"]) +); -$l = OC_L10N::get('files'); - -if ( $newname !== '.' and ($dir !== '/' || $file !== 'Shared') and ($dir !== '/' || $newname !== 'Shared') ) { - $targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname); - $sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file); - if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) { - OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); - } else { - OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); - } -} elseif( $dir === '/' and $newname === 'Shared' ) { - OCP\JSON::error(array("data" => array( "message" => $l->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") ))); +if($result['success'] === true){ + OCP\JSON::success(array('data' => $result['data'])); } else { - OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") ))); -} + OCP\JSON::error(array('data' => $result['data'])); +} \ No newline at end of file diff --git a/apps/files/lib/files.php b/apps/files/lib/files.php new file mode 100644 index 00000000000..3cbeb384794 --- /dev/null +++ b/apps/files/lib/files.php @@ -0,0 +1,80 @@ +. + * + */ + + +namespace OCA\Files; + +class Files { + private $l10n; + + public function __construct() { + $this->l10n = \OC_L10n::get('files'); + } + + /** + * rename a file + * + * @param string $dir + * @param string $oldname + * @param string $newname + * @return array + */ + public function rename($dir, $oldname, $newname) { + $result = array( + 'success' => false, + 'data' => NULL + ); + + // rename to "Shared" in root directory denied + if( $dir === '/' and $newname === 'Shared' ) { + $result['data'] = array( + 'message' => $this->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + ); + } elseif( + // rename to "." is denied + $newname !== '.' and + // rename to "Shared" inside the root directory is denied + !($dir === '/' and $file === 'Shared') and + // THEN try to rename + \OC\Files\Filesystem::rename( + \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname), + \OC\Files\Filesystem::normalizePath($dir . '/' . $newname) + ) + ) { + // successful rename + $result['success'] = true; + $result['data'] = array( + 'dir' => $dir, + 'file' => $oldname, + 'newname' => $newname + ); + } else { + // rename failed + $result['data'] = array( + 'message' => $this->t('Unable to rename file') + ); + } + return $result; + } + +} \ No newline at end of file -- GitLab From 418e878ba87169f97a3bccfec04e6066d354fc2f Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 6 May 2013 20:53:41 +0200 Subject: [PATCH 289/454] [files] fix typos --- apps/files/lib/files.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/files/lib/files.php b/apps/files/lib/files.php index 3cbeb384794..02582eff20a 100644 --- a/apps/files/lib/files.php +++ b/apps/files/lib/files.php @@ -45,16 +45,16 @@ class Files { 'data' => NULL ); - // rename to "Shared" in root directory denied + // rename to "/Shared" is denied if( $dir === '/' and $newname === 'Shared' ) { $result['data'] = array( - 'message' => $this->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + 'message' => $this->l10n->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") ); } elseif( // rename to "." is denied $newname !== '.' and - // rename to "Shared" inside the root directory is denied - !($dir === '/' and $file === 'Shared') and + // rename of "/Shared" is denied + !($dir === '/' and $oldname === 'Shared') and // THEN try to rename \OC\Files\Filesystem::rename( \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname), @@ -71,7 +71,7 @@ class Files { } else { // rename failed $result['data'] = array( - 'message' => $this->t('Unable to rename file') + 'message' => $this->l10n->t('Unable to rename file') ); } return $result; -- GitLab From 324c423548a708720a6f4247bb10be2f1314bd37 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 6 May 2013 20:59:26 +0200 Subject: [PATCH 290/454] [files] kill stripslashes --- apps/files/ajax/rename.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 641655a9ea5..cb7a178852d 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -28,9 +28,9 @@ OCP\JSON::callCheck(); $files = new \OCA\Files\Files(); $result = $files->rename( - stripslashes($_GET["dir"]), - stripslashes($_GET["file"]), - stripslashes($_GET["newname"]) + $_GET["dir"], + $_GET["file"], + $_GET["newname"] ); if($result['success'] === true){ -- GitLab From b9f426b1d70b1818aab9d54630b8d858a7e5a4dd Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 7 May 2013 13:36:29 +0200 Subject: [PATCH 291/454] [files] remove normalizePath on rename and dependency injection --- apps/files/ajax/rename.php | 5 ++++- apps/files/lib/files.php | 10 ++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index cb7a178852d..f01932a73c3 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -26,7 +26,10 @@ require_once realpath( dirname(__FILE__).'/../lib/files.php' ); OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); -$files = new \OCA\Files\Files(); +$files = new \OCA\Files\Files( + \OC\Files\Filesystem::getView(), + \OC_L10n::get('files') +); $result = $files->rename( $_GET["dir"], $_GET["file"], diff --git a/apps/files/lib/files.php b/apps/files/lib/files.php index 02582eff20a..d5fdc8dde78 100644 --- a/apps/files/lib/files.php +++ b/apps/files/lib/files.php @@ -27,8 +27,9 @@ namespace OCA\Files; class Files { private $l10n; - public function __construct() { - $this->l10n = \OC_L10n::get('files'); + public function __construct($view, $l10n) { + $this->view = $view; + $this->l10n = $l10n; } /** @@ -56,10 +57,7 @@ class Files { // rename of "/Shared" is denied !($dir === '/' and $oldname === 'Shared') and // THEN try to rename - \OC\Files\Filesystem::rename( - \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname), - \OC\Files\Filesystem::normalizePath($dir . '/' . $newname) - ) + $this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname) ) { // successful rename $result['success'] = true; -- GitLab From bb5554de7ffdb1292045e7817a35b450c02403ca Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 7 May 2013 13:37:20 +0200 Subject: [PATCH 292/454] [files] rename tests --- apps/files/tests/ajax_rename.php | 99 ++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 apps/files/tests/ajax_rename.php diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php new file mode 100644 index 00000000000..8332f36e161 --- /dev/null +++ b/apps/files/tests/ajax_rename.php @@ -0,0 +1,99 @@ +. + * + */ + + +require_once realpath( dirname(__FILE__).'/../lib/files.php' ); + +class Test_Ajax_Rename extends \PHPUnit_Framework_TestCase { + + function setUp() { + // mock OC_L10n + $l10nMock = $this->getMock('\OC_L10N', array('t')); + $l10nMock->expects($this->any()) + ->method('t') + ->will($this->returnArgument(0)); + $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath')); + $viewMock->expects($this->any()) + ->method('normalizePath') + ->will($this->returnArgument(0)); + $viewMock->expects($this->any()) + ->method('rename') + ->will($this->returnValue(true)); + $this->files = new \OCA\Files\Files($viewMock, $l10nMock); + } + + /** + * @brief test rename of file/folder named "Shared" + */ + function testRenameSharedFolder() { + $dir = '/'; + $oldname = 'Shared'; + $newname = 'new_name'; + + $result = $this->files->rename($dir, $oldname, $newname); + $expected = array( + 'success' => false, + 'data' => array('message' => 'Unable to rename file') + ); + + $this->assertEquals($expected, $result); + } + + /** + * @brief test rename of file/folder named "Shared" + */ + function testRenameSharedFolderInSubdirectory() { + $dir = '/test'; + $oldname = 'Shared'; + $newname = 'new_name'; + + $result = $this->files->rename($dir, $oldname, $newname); + $expected = array( + 'success' => true, + 'data' => array( + 'dir' => $dir, + 'file' => $oldname, + 'newname' => $newname + ) + ); + + $this->assertEquals($expected, $result); + } + + /** + * @brief test rename of file/folder to "Shared" + */ + function testRenameFolderToShared() { + $dir = '/'; + $oldname = 'oldname'; + $newname = 'Shared'; + + $result = $this->files->rename($dir, $oldname, $newname); + $expected = array( + 'success' => false, + 'data' => array('message' => "Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + ); + + $this->assertEquals($expected, $result); + } +} \ No newline at end of file -- GitLab From d4ba9cf3386097e4ad7cc2dffd990f9ce1a15a83 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 7 May 2013 15:21:43 +0200 Subject: [PATCH 293/454] [files] remove realpath in test --- apps/files/tests/ajax_rename.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php index 8332f36e161..81bd2a38350 100644 --- a/apps/files/tests/ajax_rename.php +++ b/apps/files/tests/ajax_rename.php @@ -22,7 +22,7 @@ */ -require_once realpath( dirname(__FILE__).'/../lib/files.php' ); +require_once dirname(__FILE__).'/../lib/files.php'; class Test_Ajax_Rename extends \PHPUnit_Framework_TestCase { -- GitLab From 7e23e9767637b6c0776988b1197add44ad0dd17d Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 7 May 2013 15:24:26 +0200 Subject: [PATCH 294/454] [files] rename test class and add rename test --- apps/files/tests/ajax_rename.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php index 81bd2a38350..dee956dc8c8 100644 --- a/apps/files/tests/ajax_rename.php +++ b/apps/files/tests/ajax_rename.php @@ -24,7 +24,7 @@ require_once dirname(__FILE__).'/../lib/files.php'; -class Test_Ajax_Rename extends \PHPUnit_Framework_TestCase { +class Test_OC_Files_Files_Rename extends \PHPUnit_Framework_TestCase { function setUp() { // mock OC_L10n @@ -96,4 +96,25 @@ class Test_Ajax_Rename extends \PHPUnit_Framework_TestCase { $this->assertEquals($expected, $result); } + + /** + * @brief test rename of file/folder + */ + function testRenameFolder() { + $dir = '/'; + $oldname = 'oldname'; + $newname = 'newname'; + + $result = $this->files->rename($dir, $oldname, $newname); + $expected = array( + 'success' => true, + 'data' => array( + 'dir' => $dir, + 'file' => $oldname, + 'newname' => $newname + ) + ); + + $this->assertEquals($expected, $result); + } } \ No newline at end of file -- GitLab From b32c30b6d0aafbe65691068068a4647f852c574e Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 7 May 2013 16:04:12 +0200 Subject: [PATCH 295/454] [files] ownCloud typo --- apps/files/lib/files.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/lib/files.php b/apps/files/lib/files.php index d5fdc8dde78..2d47fcf4ad3 100644 --- a/apps/files/lib/files.php +++ b/apps/files/lib/files.php @@ -49,7 +49,7 @@ class Files { // rename to "/Shared" is denied if( $dir === '/' and $newname === 'Shared' ) { $result['data'] = array( - 'message' => $this->l10n->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + 'message' => $this->l10n->t("Invalid folder name. Usage of 'Shared' is reserved by ownCloud") ); } elseif( // rename to "." is denied -- GitLab From b777c0fd7501c59f0389c34303e98867e94cd20b Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Wed, 8 May 2013 11:56:59 +0200 Subject: [PATCH 296/454] [files] rename lib to "App" --- apps/files/ajax/rename.php | 4 ++-- apps/files/lib/{files.php => app.php} | 2 +- apps/files/tests/ajax_rename.php | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) rename apps/files/lib/{files.php => app.php} (99%) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index f01932a73c3..d9ba68428ee 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -21,12 +21,12 @@ * */ -require_once realpath( dirname(__FILE__).'/../lib/files.php' ); +require_once realpath( dirname(__FILE__).'/../lib/app.php' ); OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); -$files = new \OCA\Files\Files( +$files = new \OCA\Files\App( \OC\Files\Filesystem::getView(), \OC_L10n::get('files') ); diff --git a/apps/files/lib/files.php b/apps/files/lib/app.php similarity index 99% rename from apps/files/lib/files.php rename to apps/files/lib/app.php index 2d47fcf4ad3..7cd6143e6c1 100644 --- a/apps/files/lib/files.php +++ b/apps/files/lib/app.php @@ -24,7 +24,7 @@ namespace OCA\Files; -class Files { +class App { private $l10n; public function __construct($view, $l10n) { diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php index dee956dc8c8..6dc7c120b3b 100644 --- a/apps/files/tests/ajax_rename.php +++ b/apps/files/tests/ajax_rename.php @@ -22,9 +22,9 @@ */ -require_once dirname(__FILE__).'/../lib/files.php'; +require_once dirname(__FILE__).'/../lib/app.php'; -class Test_OC_Files_Files_Rename extends \PHPUnit_Framework_TestCase { +class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase { function setUp() { // mock OC_L10n @@ -39,7 +39,7 @@ class Test_OC_Files_Files_Rename extends \PHPUnit_Framework_TestCase { $viewMock->expects($this->any()) ->method('rename') ->will($this->returnValue(true)); - $this->files = new \OCA\Files\Files($viewMock, $l10nMock); + $this->files = new \OCA\Files\App($viewMock, $l10nMock); } /** @@ -91,7 +91,7 @@ class Test_OC_Files_Files_Rename extends \PHPUnit_Framework_TestCase { $result = $this->files->rename($dir, $oldname, $newname); $expected = array( 'success' => false, - 'data' => array('message' => "Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + 'data' => array('message' => "Invalid folder name. Usage of 'Shared' is reserved by ownCloud") ); $this->assertEquals($expected, $result); -- GitLab From e2bd32323d30cb5da7b2e1433d09effd33ef987d Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sun, 12 May 2013 13:02:01 +0200 Subject: [PATCH 297/454] [files] fix mock creation and remove hardcoded 'require' statement --- apps/files/ajax/rename.php | 2 -- apps/files/tests/ajax_rename.php | 7 ++----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index d9ba68428ee..f4551858283 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -21,8 +21,6 @@ * */ -require_once realpath( dirname(__FILE__).'/../lib/app.php' ); - OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php index 6dc7c120b3b..23e5761ddda 100644 --- a/apps/files/tests/ajax_rename.php +++ b/apps/files/tests/ajax_rename.php @@ -21,18 +21,15 @@ * */ - -require_once dirname(__FILE__).'/../lib/app.php'; - class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase { function setUp() { // mock OC_L10n - $l10nMock = $this->getMock('\OC_L10N', array('t')); + $l10nMock = $this->getMock('\OC_L10N', array('t'), array(), '', false); $l10nMock->expects($this->any()) ->method('t') ->will($this->returnArgument(0)); - $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath')); + $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath'), array(), '', false); $viewMock->expects($this->any()) ->method('normalizePath') ->will($this->returnArgument(0)); -- GitLab From e8c154f3416e7ae596ce0ffc31acda84ffbaa71b Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Mon, 13 May 2013 02:10:20 +0200 Subject: [PATCH 298/454] [tx-robot] updated from transifex --- apps/user_ldap/l10n/tr.php | 16 ++++++++++++ l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 6 ++--- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/tr/user_ldap.po | 39 +++++++++++++++-------------- 13 files changed, 49 insertions(+), 32 deletions(-) diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php index e6d450301e5..6f75f4371db 100644 --- a/apps/user_ldap/l10n/tr.php +++ b/apps/user_ldap/l10n/tr.php @@ -1,4 +1,5 @@ "Sunucu uyunlama basarmadi ", "The configuration is valid and the connection could be established!" => "Uyunlama mantikli ve baglama yerlestirmek edebilmi.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Uyunlama gecerli, fakat Baglama yapamadi. Lutfen kontrol yapmak, eger bu iyi yerlertirdi. ", "The configuration is invalid. Please look in the ownCloud log for further details." => "Uyunma mantikli degil. Lutfen log daha kontrol yapmak. ", @@ -12,6 +13,8 @@ "Confirm Deletion" => "Silmeyi onayla", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Uyari Apps kullanici_Idap ve user_webdavauth uyunmayan. Bu belki sik degil. Lutfen sistem yonetici sormak on aktif yapmaya. ", "Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Ihbar Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin.", +"Server configuration" => "Sunucu uyunlama ", +"Add Server Configuration" => "Sunucu Uyunlama birlemek ", "Host" => "Sunucu", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol atlamak edesin, sadece SSL istiyorsaniz. O zaman, idapsile baslamak. ", "Base DN" => "Ana DN", @@ -31,19 +34,32 @@ "Defines the filter to apply, when retrieving groups." => "Filter uyunmak icin tayin ediyor, ne zaman grubalari tekrar aliyor. ", "without any placeholder, e.g. \"objectClass=posixGroup\"." => "siz bir yer tutucu, mes. 'objectClass=posixGroup ('posixGrubu''. ", "Connection Settings" => "Bağlantı ayarları", +"When unchecked, this configuration will be skipped." => "Ne zaman iptal, bu uynnlama isletici ", "Port" => "Port", +"Backup (Replica) Host" => "Sigorta Kopya Cephe ", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Bir kopya cevre vermek, kopya sunucu onemli olmali. ", +"Backup (Replica) Port" => "Kopya Port ", "Disable Main Server" => "Ana sunucuyu devredışı birak", +"When switched on, ownCloud will only connect to the replica server." => "Ne zaman acik, ownCloud sadece sunuce replikayin baglamis.", "Use TLS" => "TLS kullan", +"Do not use it additionally for LDAPS connections, it will fail." => "Bu LDAPS baglama icin kullamaminiz, basamacak. ", +"Case insensitve LDAP server (Windows)" => "Dusme sunucu LDAP zor degil. (Windows)", "Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Bagladiginda, bunla secene sadece calisiyor, sunucu LDAP SSL sunucun ithal etemek, dneyme sizine sunucu ownClouden. ", "Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.", +"Cache Time-To-Live" => "Cache Time-To-Live ", "in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.", +"Directory Settings" => "Parametrar Listesin Adresinin ", "User Display Name Field" => "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)", +"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP kategori kullanmaya adi ownCloud kullanicin uremek icin. ", "Base User Tree" => "Temel Kullanıcı Ağacı", +"One User Base DN per line" => "Bir Temel Kullanici DN her dizgi ", +"User Search Attributes" => "Kategorii Arama Kullanici ", "Group Display Name Field" => "Grub Ekrane Alani Adi", "The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP kullamayin grub adi ownCloud uremek icin. ", "Base Group Tree" => "Temel Grup Ağacı", "One Group Base DN per line" => "Bir Grubu Tabani DN her dizgi. ", +"Group Search Attributes" => "Kategorii Arama Grubu", "Group-Member association" => "Grup-Üye işbirliği", "in bytes" => "byte cinsinden", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ", diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index fd68e36e1a8..add748562e8 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 05e9cfd4f1a..53b57f51d58 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 472016e2ec2..57d87d4eade 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 3a714f79772..b67ce2ab6f4 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index e4c494813d6..f6cf67b6b58 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index ade10916876..0918e24fc24 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index dd93a02c1a5..1aff6304e94 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 2cd397f4db3..26655ad7043 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"POT-Creation-Date: 2013-05-13 02:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -172,13 +172,13 @@ msgstr "" msgid "MS SQL username and/or password not valid: %s" msgstr "" -#: setup.php:858 +#: setup.php:859 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "" -#: setup.php:859 +#: setup.php:860 #, php-format msgid "Please double check the installation guides." msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 356bb267b81..b2435c28e91 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:02+0200\n" +"POT-Creation-Date: 2013-05-13 02:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index ba8a5766964..2be0fb2ddaf 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 9215452368d..1cc91e1ae52 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po index dad12246488..d4a0ced72c1 100644 --- a/l10n/tr/user_ldap.po +++ b/l10n/tr/user_ldap.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# KAT.RAT12 , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"PO-Revision-Date: 2013-05-12 16:20+0000\n" +"Last-Translator: KAT.RAT12 \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +20,7 @@ msgstr "" #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" -msgstr "" +msgstr "Sunucu uyunlama basarmadi " #: ajax/testConfiguration.php:36 msgid "The configuration is valid and the connection could be established!" @@ -84,11 +85,11 @@ msgstr "Ihbar Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen #: templates/settings.php:15 msgid "Server configuration" -msgstr "" +msgstr "Sunucu uyunlama " #: templates/settings.php:31 msgid "Add Server Configuration" -msgstr "" +msgstr "Sunucu Uyunlama birlemek " #: templates/settings.php:36 msgid "Host" @@ -180,7 +181,7 @@ msgstr "" #: templates/settings.php:70 msgid "When unchecked, this configuration will be skipped." -msgstr "" +msgstr "Ne zaman iptal, bu uynnlama isletici " #: templates/settings.php:71 msgid "Port" @@ -188,17 +189,17 @@ msgstr "Port" #: templates/settings.php:72 msgid "Backup (Replica) Host" -msgstr "" +msgstr "Sigorta Kopya Cephe " #: templates/settings.php:72 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." -msgstr "" +msgstr "Bir kopya cevre vermek, kopya sunucu onemli olmali. " #: templates/settings.php:73 msgid "Backup (Replica) Port" -msgstr "" +msgstr "Kopya Port " #: templates/settings.php:74 msgid "Disable Main Server" @@ -206,7 +207,7 @@ msgstr "Ana sunucuyu devredışı birak" #: templates/settings.php:74 msgid "When switched on, ownCloud will only connect to the replica server." -msgstr "" +msgstr "Ne zaman acik, ownCloud sadece sunuce replikayin baglamis." #: templates/settings.php:75 msgid "Use TLS" @@ -214,11 +215,11 @@ msgstr "TLS kullan" #: templates/settings.php:75 msgid "Do not use it additionally for LDAPS connections, it will fail." -msgstr "" +msgstr "Bu LDAPS baglama icin kullamaminiz, basamacak. " #: templates/settings.php:76 msgid "Case insensitve LDAP server (Windows)" -msgstr "" +msgstr "Dusme sunucu LDAP zor degil. (Windows)" #: templates/settings.php:77 msgid "Turn off SSL certificate validation." @@ -236,7 +237,7 @@ msgstr "Önerilmez, sadece test için kullanın." #: templates/settings.php:78 msgid "Cache Time-To-Live" -msgstr "" +msgstr "Cache Time-To-Live " #: templates/settings.php:78 msgid "in seconds. A change empties the cache." @@ -244,7 +245,7 @@ msgstr "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir." #: templates/settings.php:80 msgid "Directory Settings" -msgstr "" +msgstr "Parametrar Listesin Adresinin " #: templates/settings.php:82 msgid "User Display Name Field" @@ -252,7 +253,7 @@ msgstr "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)" #: templates/settings.php:82 msgid "The LDAP attribute to use to generate the user`s ownCloud name." -msgstr "" +msgstr "LDAP kategori kullanmaya adi ownCloud kullanicin uremek icin. " #: templates/settings.php:83 msgid "Base User Tree" @@ -260,11 +261,11 @@ msgstr "Temel Kullanıcı Ağacı" #: templates/settings.php:83 msgid "One User Base DN per line" -msgstr "" +msgstr "Bir Temel Kullanici DN her dizgi " #: templates/settings.php:84 msgid "User Search Attributes" -msgstr "" +msgstr "Kategorii Arama Kullanici " #: templates/settings.php:84 templates/settings.php:87 msgid "Optional; one attribute per line" @@ -288,7 +289,7 @@ msgstr "Bir Grubu Tabani DN her dizgi. " #: templates/settings.php:87 msgid "Group Search Attributes" -msgstr "" +msgstr "Kategorii Arama Grubu" #: templates/settings.php:88 msgid "Group-Member association" -- GitLab From 0e55accee2f0843681d0515ffcbd7d5f1970b825 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Mon, 13 May 2013 02:42:18 +0200 Subject: [PATCH 299/454] Set the SQLite database lock timeout to 60 seconds which is the default in PHP anyways. I don't know why the MDB2 driver has this hardcoded to 0.1 seconds. This potentially fixes a lot of SQLite database lock problems and stuck in maintainance mode during upgrade issues. --- lib/MDB2/Driver/sqlite3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/MDB2/Driver/sqlite3.php b/lib/MDB2/Driver/sqlite3.php index aef0eab9bf1..693ceffa01c 100644 --- a/lib/MDB2/Driver/sqlite3.php +++ b/lib/MDB2/Driver/sqlite3.php @@ -387,7 +387,7 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common $php_errormsg = ''; $this->connection = new SQLite3($database_file); if(is_callable(array($this->connection, 'busyTimeout'))) {//busy timout is only available in php>=5.3 - $this->connection->busyTimeout(100); + $this->connection->busyTimeout(60000); } $this->_lasterror = $this->connection->lastErrorMsg(); if (!$this->connection) { -- GitLab From 739f79991202c6cc8c53e11ea2055dea4f33c1d5 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 13 May 2013 14:23:56 +0200 Subject: [PATCH 300/454] Add requesttoken to guest view Should fix #3321 --- core/templates/layout.guest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 04161925436..a3a8dc5f7ba 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -5,7 +5,7 @@ - + ownCloud -- GitLab From a6ef25ba08e9f026892a2715af479f0ff1299cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 13 May 2013 14:28:45 +0200 Subject: [PATCH 301/454] use preShare hook only to check if all pub keys are available and the postShare hook to finaly update the shareKeys if the file was shared successfully --- apps/files_encryption/hooks/hooks.php | 130 +++++++++++--------------- apps/files_encryption/lib/helper.php | 1 + apps/files_encryption/lib/proxy.php | 38 -------- 3 files changed, 57 insertions(+), 112 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 2d48198939b..e3890ce1d15 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -179,11 +179,40 @@ class Hooks { } } - + + /* + * @brief check if files can be encrypted to every user. + */ + public static function preShared($params) { + + $users = array(); + $view = new \OC\Files\View('/public-keys/'); + + switch ($params['shareType']) { + case \OCP\Share::SHARE_TYPE_USER: + $users[] = $params['shareWith']; + break; + case \OCP\Share::SHARE_TYPE_GROUP: + $users = \OC_Group::usersInGroup($params['shareWith']); + break; + } + + foreach ($users as $user) { + if (!$view->file_exists($user . '.public.key')) { + // Set flag var 'run' to notify emitting + // script that hook execution failed + $params['run']->run = false; + // TODO: Make sure files_sharing provides user + // feedback on failed share + break; + } + } + } + /** * @brief */ - public static function preShared( $params ) { + public static function postShared($params) { // NOTE: $params has keys: // [itemType] => file @@ -203,29 +232,28 @@ class Hooks { // [token] => // [run] => whether emitting script should continue to run // TODO: Should other kinds of item be encrypted too? - - if ( $params['itemType'] === 'file' || $params['itemType'] === 'folder' ) { - $view = new \OC_FilesystemView( '/' ); + if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') { + + $view = new \OC_FilesystemView('/'); $session = new Session($view); $userId = \OCP\User::getUser(); $util = new Util($view, $userId); - $path = $util->fileIdToPath( $params['itemSource'] ); + $path = $util->fileIdToPath($params['itemSource']); //if parent is set, then this is a re-share action - if( $params['parent'] ) { + if ($params['parent']) { // get the parent from current share - $parent = $util->getShareParent( $params['parent'] ); + $parent = $util->getShareParent($params['parent']); // if parent is file the it is an 1:1 share - if($parent['item_type'] === 'file') { - - // prefix path with Shared - $path = '/Shared'.$parent['file_target']; + if ($parent['item_type'] === 'file') { + // prefix path with Shared + $path = '/Shared' . $parent['file_target']; } else { - + // NOTE: parent is folder but shared was a file! // we try to rebuild the missing path // some examples we face here @@ -237,38 +265,29 @@ class Hooks { // so our path should be // /Shared/subfolder1/subsubfolder1/somefile.txt // while user3 is sharing - - if ( $params['itemType'] === 'file' ) { + + if ($params['itemType'] === 'file') { // get target path - $targetPath = $util->fileIdToPath( $params['fileSource'] ); - $targetPathSplit = array_reverse( explode( '/', $targetPath ) ); + $targetPath = $util->fileIdToPath($params['fileSource']); + $targetPathSplit = array_reverse(explode('/', $targetPath)); // init values $path = ''; - $sharedPart = ltrim( $parent['file_target'], '/' ); + $sharedPart = ltrim($parent['file_target'], '/'); // rebuild path - foreach ( $targetPathSplit as $pathPart ) { - - if ( $pathPart !== $sharedPart ) { - + foreach ($targetPathSplit as $pathPart) { + if ($pathPart !== $sharedPart) { $path = '/' . $pathPart . $path; - } else { - break; - } - } - // prefix path with Shared - $path = '/Shared'.$parent['file_target'].$path; - + $path = '/Shared' . $parent['file_target'] . $path; } else { - // prefix path with Shared - $path = '/Shared'.$parent['file_target'].$params['fileTarget']; + $path = '/Shared' . $parent['file_target'] . $params['fileTarget']; } } } @@ -276,52 +295,15 @@ class Hooks { $sharingEnabled = \OCP\Share::isEnabled(); // if a folder was shared, get a list if all (sub-)folders - if ( $params['itemType'] === 'folder' ) { - - $allFiles = $util->getAllFiles( $path ); - + if ($params['itemType'] === 'folder') { + $allFiles = $util->getAllFiles($path); } else { - - $allFiles = array( $path ); - + $allFiles = array($path); } - - // Set array for collecting paths which can't be shared - $failed = array(); - - foreach ( $allFiles as $path ) { - - $usersSharing = $util->getSharingUsersArray( $sharingEnabled, $path ); - // check if we share to a group - if($params['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) { - $usersSharing[] = reset(\OC_Group::usersInGroup($params['shareWith'])); - // check if we share with link - } else if($params['shareType'] === \OCP\Share::SHARE_TYPE_LINK) { - $usersSharing[] = 'owncloud'; - } else { - // Because this is a pre_share hook, the user - // being shared to is not yet included; add them - $usersSharing[] = $params['shareWith']; - } - - - // Attempt to set shareKey - if ( ! $util->setSharedFileKeyfiles( $session, $usersSharing, $path ) ) { - - $failed[] = $path; - } - } - - // If some attempts to set keyfiles failed - if ( ! empty( $failed ) ) { - - // Set flag var 'run' to notify emitting - // script that hook execution failed - $params['run']->run = false; - // TODO: Make sure files_sharing provides user - // feedback on failed share - + foreach ($allFiles as $path) { + $usersSharing = $util->getSharingUsersArray($sharingEnabled, $path); + $util->setSharedFileKeyfiles( $session, $usersSharing, $path ); } } } diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index b294a71ec1b..9b8d9ffc5b1 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -35,6 +35,7 @@ class Helper { public static function registerShareHooks() { \OCP\Util::connectHook( 'OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared' ); + \OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); \OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); \OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); } diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 3f8b8571252..36d05d7e0fe 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -164,45 +164,7 @@ class Proxy extends \OC_FileProxy { return true; } - - public function postFile_put_contents( $path, $length ) { - - $userId = \OCP\USER::getUser(); - $view = new \OC_FilesystemView( '/' ); - $util = new Util( $view, $userId ); - - // Check if recoveryAdmin is enabled for system and user - // TODO: Consider storing recoveryAdmin status for user in session - if ( - \OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ) - && $util->recoveryEnabledForUser() - ) { - - // Get owner UID and filepath - list( $owner, $ownerPath ) = $util->getUidAndFilename( $path ); - - $recoveryAdminUid = \OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ); - $usersSharing = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); - // Check if file is already shared to recoveryAdmin - if ( ! in_array( $recoveryAdminUid, $usersSharing ) ) { - - $relPath = $util->stripFilesPath( $path ); - - // Get file info from filecache - $fileInfo = \OC\Files\Filesystem::getFileInfo( $path ); - - // Register share to recoveryAdmin with share API - // FIXME: Some of these vars aren't set - // FIXME: What should the permission number be to grant all rights? -// \OCP\Share::shareItem( $itemType, $itemSource, 0, $recoveryAdminUid, 17 ); - - } - - } - - } - /** * @param string $path Path of file from which has been read * @param string $data Data that has been read from file -- GitLab From d1e2e47592515264bf06fc0d48645e430cddc394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 13 May 2013 15:15:35 +0200 Subject: [PATCH 302/454] generate random key name for share key to avoid name conflicts --- apps/files_encryption/hooks/hooks.php | 4 +- apps/files_encryption/lib/session.php | 45 +++++++++++-------- apps/files_encryption/lib/util.php | 9 +++- lib/public/share.php | 65 ++++++++++++++------------- 4 files changed, 69 insertions(+), 54 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e3890ce1d15..676507b5236 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -365,9 +365,9 @@ class Hooks { $userIds = \OC_Group::usersInGroup($params['shareWith']); - } else { + } else if ( $params['shareType'] == \OCP\Share::SHARE_TYPE_LINK ){ - $userIds = array( $params['shareWith'] ); + $userIds = array( $util->getPublicShareKeyId() ); } diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 22453131db7..920f0b6a9a3 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -45,10 +45,17 @@ class Session { $this->view->mkdir( 'owncloud_private_key' ); } + + $publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); + + if ($publicShareKeyId === null) { + $publicShareKeyId = substr(md5(time()),0,8); + \OC_Appconfig::setValue('files_encryption', 'publicShareKeyId', $publicShareKeyId); + } if ( - ! $this->view->file_exists( "/public-keys/owncloud.public.key" ) - || ! $this->view->file_exists( "/owncloud_private_key/owncloud.private.key" ) + ! $this->view->file_exists( "/public-keys/".$publicShareKeyId.".public.key" ) + || ! $this->view->file_exists( "/owncloud_private_key/".$publicShareKeyId.".private.key" ) ) { //FIXME: Bug: for some reason file_exists is returning @@ -57,23 +64,23 @@ class Session { // our app.php is being executed 18 times per page load // , causing 18 new keypairs and huge performance hit. -// $keypair = Crypt::createKeypair(); -// -// \OC_FileProxy::$enabled = false; -// -// // Save public key -// -// if (!$view->is_dir('/public-keys')) { -// $view->mkdir('/public-keys'); -// } -// -// $this->view->file_put_contents( '/public-keys/owncloud.public.key', $keypair['publicKey'] ); -// -// // Encrypt private key empthy passphrase -// $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); -// -// // Save private key -// $this->view->file_put_contents( '/owncloud_private_key/owncloud.private.key', $encryptedPrivateKey ); + $keypair = Crypt::createKeypair(); + + \OC_FileProxy::$enabled = false; + + // Save public key + + if (!$view->is_dir('/public-keys')) { + $view->mkdir('/public-keys'); + } + + $this->view->file_put_contents( '/public-keys/'.$publicShareKeyId.'.public.key', $keypair['publicKey'] ); + + // Encrypt private key empthy passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], '' ); + + // Save private key + $this->view->file_put_contents( '/owncloud_private_key/'.$publicShareKeyId.'.private.key', $encryptedPrivateKey ); \OC_FileProxy::$enabled = true; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index ae8c7ffd575..8162ae0a367 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -108,6 +108,7 @@ class Util { private $shareKeysPath; // Dir containing env keys for shared files private $publicKeyPath; // Path to user's public key private $privateKeyPath; // Path to user's private key + private $publicShareKeyId; public function __construct( \OC_FilesystemView $view, $userId, $client = false ) { @@ -123,7 +124,7 @@ class Util { $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys'; $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key - + $this->publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); } public function ready() { @@ -211,6 +212,10 @@ class Util { return true; } + + public function getPublicShareKeyId() { + return $this->publicShareKeyId; + } /** * @brief Check whether pwd recovery is enabled for a given user @@ -792,7 +797,7 @@ class Util { // Check that the user is encryption capable, or is the // public system user 'ownCloud' (for public shares) if ( - $user == 'owncloud' + $user == $this->publicShareKeyId or $util->ready() ) { diff --git a/lib/public/share.php b/lib/public/share.php index 418c0028ee5..b9cf05bbf7f 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -133,17 +133,17 @@ class Share { * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path, $user, $includeOwner = false, $removeDuplicates = true ) { + public static function getUsersSharingFile($path, $user, $includeOwner = false, $removeDuplicates = true) { $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); $path = ''; $shares = array(); - $view = new \OC\Files\View('/'.$user.'/files/'); + $view = new \OC\Files\View('/' . $user . '/files/'); foreach ($path_parts as $p) { - $path .= '/'.$p; + $path .= '/' . $p; $meta = $view->getFileInfo(\OC_Filesystem::normalizePath($path)); $source = $meta['fileid']; - + // Fetch all shares of this file path from DB $query = \OC_DB::prepare( 'SELECT share_with @@ -152,14 +152,14 @@ class Share { WHERE item_source = ? AND share_type = ?' ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_USER ) ); - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + $result = $query->execute(array($source, self::SHARE_TYPE_USER)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); } - while( $row = $result->fetchRow() ) { + while ($row = $result->fetchRow()) { $shares[] = $row['share_with']; } @@ -172,44 +172,47 @@ class Share { WHERE item_source = ? AND share_type = ?' ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP ) ); - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + $result = $query->execute(array($source, self::SHARE_TYPE_GROUP)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); } - while( $row = $result->fetchRow() ) { + while ($row = $result->fetchRow()) { $usersInGroup = \OC_Group::usersInGroup($row['share_with']); $shares = array_merge($shares, $usersInGroup); } - - //check for public link shares - $query = \OC_DB::prepare( - 'SELECT share_with + + $publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); + + if ($publicShareKeyId) { + //check for public link shares + $query = \OC_DB::prepare( + 'SELECT share_with FROM `*PREFIX*share` WHERE item_source = ? AND share_type = ?' - ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_LINK ) ); - - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); - } - - if ($result->fetchRow()) { - $shares[] = "owncloud"; + ); + + $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + } + + if ($result->fetchRow()) { + $shares[] = $publicShareKeyId; + } } } // Include owner in list of users, if requested - if ( $includeOwner ) { + if ($includeOwner) { $shares[] = $user; } - - return array_unique($shares); + return array_unique($shares); } /** -- GitLab From 2f4ba9d1e8ca6406abb509ad82869cfb6aca40c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 13 May 2013 15:45:30 +0200 Subject: [PATCH 303/454] if file was shared to user than userIds is just the users Id --- apps/files_encryption/hooks/hooks.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 676507b5236..71a0fc9268b 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -362,13 +362,11 @@ class Hooks { // for group shares get a list of the group members if ( $params['shareType'] == \OCP\Share::SHARE_TYPE_GROUP ) { - $userIds = \OC_Group::usersInGroup($params['shareWith']); - } else if ( $params['shareType'] == \OCP\Share::SHARE_TYPE_LINK ){ - $userIds = array( $util->getPublicShareKeyId() ); - + } else { + $userIds = array( $params['shareWith'] ); } // if we unshare a folder we need a list of all (sub-)files -- GitLab From 591b383f2dd1601009382152079e004034c4258d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Mon, 13 May 2013 15:54:45 +0200 Subject: [PATCH 304/454] peselect filename without extension on rename --- apps/files/js/filelist.js | 7 +++++++ core/js/js.js | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index b1e9a885063..c24d1fd8244 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -191,6 +191,13 @@ var FileList={ td.children('a.name').hide(); td.append(form); input.focus(); + //preselect input + var len = input.val().lastIndexOf('.'); + if (len === -1) { + len = input.val().length; + } + input.selectRange(0,len); + form.submit(function(event){ event.stopPropagation(); event.preventDefault(); diff --git a/core/js/js.js b/core/js/js.js index d85e6d88f8a..3cb4d3dd151 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -767,6 +767,26 @@ OC.set=function(name, value) { context[tail]=value; }; +/** + * select a range in an input field + * @link http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area + * @param {type} start + * @param {type} end + */ +$.fn.selectRange = function(start, end) { + return this.each(function() { + if (this.setSelectionRange) { + this.focus(); + this.setSelectionRange(start, end); + } else if (this.createTextRange) { + var range = this.createTextRange(); + range.collapse(true); + range.moveEnd('character', end); + range.moveStart('character', start); + range.select(); + } + }); +}; /** * Calls the server periodically every 15 mins to ensure that session doesnt -- GitLab From 71eed76dbef92363d5f6eeb423496c6b8dac0579 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Mon, 13 May 2013 11:17:08 -0400 Subject: [PATCH 305/454] Prevent backgroundScan() from looping if opendir() is failing for the same path --- lib/files/cache/scanner.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php index 661bc486330..b99dea23cbc 100644 --- a/lib/files/cache/scanner.php +++ b/lib/files/cache/scanner.php @@ -179,9 +179,11 @@ class Scanner { * walk over any folders that are not fully scanned yet and scan them */ public function backgroundScan() { - while (($path = $this->cache->getIncomplete()) !== false) { + $lastPath = null; + while (($path = $this->cache->getIncomplete()) !== false && $path !== $lastPath) { $this->scan($path); $this->cache->correctFolderSize($path); + $lastPath = $path; } } } -- GitLab From 517efdf952526ce0f0a03107874baca18742c49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 13 May 2013 17:26:21 +0200 Subject: [PATCH 306/454] don't create a recovery user, only generate recovery key similar to the public link share key --- apps/files_encryption/ajax/adminrecovery.php | 122 ++++++++---------- apps/files_encryption/js/settings-admin.js | 9 +- apps/files_encryption/lib/session.php | 10 +- apps/files_encryption/lib/util.php | 4 +- .../templates/settings-admin.php | 17 +-- 5 files changed, 63 insertions(+), 99 deletions(-) diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index c3c19943c0d..6a056dc7b3d 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -1,4 +1,5 @@ * This file is licensed under the Affero General Public License version 3 or later. @@ -6,87 +7,78 @@ * * @brief Script to handle admin settings for encrypted key recovery */ - use OCA\Encryption; \OCP\JSON::checkAdminUser(); -\OCP\JSON::checkAppEnabled( 'files_encryption' ); +\OCP\JSON::checkAppEnabled('files_encryption'); \OCP\JSON::callCheck(); -$return = $doSetup = false; +$return = false; // Enable recoveryAdmin -if ( - isset( $_POST['adminEnableRecovery'] ) - && 1 == $_POST['adminEnableRecovery'] -// && isset( $_POST['recoveryPassword'] ) -// && ! empty ( $_POST['recoveryPassword'] ) + +if ( + isset($_POST['adminEnableRecovery']) + && 1 == $_POST['adminEnableRecovery'] ) { - // TODO: Let the admin set this themselves - $recoveryAdminUid = 'recoveryAdmin'; - - // If desired recoveryAdmin UID is already in use - if ( ! \OC_User::userExists( $recoveryAdminUid ) ) { - - // Create new recoveryAdmin user - \OC_User::createUser( $recoveryAdminUid, $_POST['recoveryPassword'] ); - - // Make recovery user an administrator - \OC_Group::addToGroup ( $recoveryAdminUid, 'admin' ); - - $doSetup = true; - - } else { - - // Get list of admin users - $admins = OC_Group::usersInGroup( 'admin' ); - - // If the existing recoveryAdmin UID is an admin - if ( in_array( $recoveryAdminUid, $admins ) ) { - - // The desired recoveryAdmi UID pre-exists and can be used - $doSetup = true; - - // If the recoveryAdmin UID exists but doesn't have admin rights - } else { - - $return = false; - - } - + $view = new \OC\Files\View('/'); + + $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + + if ($recoveryKeyId === null) { + $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8); + \OC_Appconfig::setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId); } - - // Setup recoveryAdmin user for encryption - if ( $doSetup ) { - - $view = new \OC_FilesystemView( '/' ); - $util = new \OCA\Encryption\Util( $view, $recoveryAdminUid ); - - // Ensure recoveryAdmin is ready for encryption (has usable keypair etc.) - $util->setupServerSide( $_POST['recoveryPassword'] ); - - // Store the UID in the DB - OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminUid', $recoveryAdminUid ); - - $return = true; - + + if (!$view->is_dir('/owncloud_private_key')) { + $view->mkdir('/owncloud_private_key'); } - + + if ( + (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key") + || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key")) + && isset($_POST['recoveryPassword']) + && !empty($_POST['recoveryPassword']) + ) { + + $keypair = \OCA\Encryption\Crypt::createKeypair(); + + \OC_FileProxy::$enabled = false; + + // Save public key + + if (!$view->is_dir('/public-keys')) { + $view->mkdir('/public-keys'); + } + + $view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']); + + // Encrypt private key empthy passphrase + $encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $_POST['recoveryPassword']); + + // Save private key + $view->file_put_contents('/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey); + + \OC_FileProxy::$enabled = true; + + } + // Set recoveryAdmin as enabled - OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminEnabled', 1 ); + OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); + + $return = true; // Disable recoveryAdmin -} elseif ( - isset( $_POST['adminEnableRecovery'] ) - && 0 == $_POST['adminEnableRecovery'] +} elseif ( + isset($_POST['adminEnableRecovery']) + && 0 == $_POST['adminEnableRecovery'] ) { - - // Set recoveryAdmin as enabled - OC_Appconfig::setValue( 'files_encryption', 'recoveryAdminEnabled', 0 ); - - $return = true; + // Set recoveryAdmin as enabled + OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0); + + $return = true; } // Return success or failure diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index 8e9c8c22306..9cdb7aca68a 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -7,13 +7,6 @@ $(document).ready(function(){ - // Trigger ajax on filetype blacklist change - $('#encryption_blacklist').multiSelect({ - oncheck:blackListChange, - onuncheck:blackListChange, - createText:'...' - }); - // Trigger ajax on recoveryAdmin status change $( 'input:radio[name="adminEnableRecovery"]' ).change( function() { @@ -24,7 +17,7 @@ $(document).ready(function(){ if ( '' == recoveryPassword ) { // FIXME: add proper OC notification - alert( 'You must set a recovery account password first' ); + alert( 'You must set a recovery account password first' ); } else { diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 920f0b6a9a3..5444d0215ca 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -49,7 +49,7 @@ class Session { $publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); if ($publicShareKeyId === null) { - $publicShareKeyId = substr(md5(time()),0,8); + $publicShareKeyId = 'pubShare_'.substr(md5(time()),0,8); \OC_Appconfig::setValue('files_encryption', 'publicShareKeyId', $publicShareKeyId); } @@ -57,13 +57,7 @@ class Session { ! $this->view->file_exists( "/public-keys/".$publicShareKeyId.".public.key" ) || ! $this->view->file_exists( "/owncloud_private_key/".$publicShareKeyId.".private.key" ) ) { - - //FIXME: Bug: for some reason file_exists is returning - // false in above if statement, and causing new keys - // to be generated on each page load. At last check - // our app.php is being executed 18 times per page load - // , causing 18 new keypairs and huge performance hit. - + $keypair = Crypt::createKeypair(); \OC_FileProxy::$enabled = false; diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 8162ae0a367..732f5fece85 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -958,10 +958,10 @@ class Util { if ( $recoveryEnabled ) { // Find recoveryAdmin user ID - $recoveryAdminUid = \OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminUid' ); + $recoveryKeyId = \OC_Appconfig::getValue( 'files_encryption', 'recoveryKeyId' ); // Add recoveryAdmin to list of users sharing - $userIds[] = $recoveryAdminUid; + $userIds[] = $recoveryKeyId; } diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php index 863f1dfa9a5..be7beecf696 100644 --- a/apps/files_encryption/templates/settings-admin.php +++ b/apps/files_encryption/templates/settings-admin.php @@ -4,25 +4,10 @@

t( 'Encryption' )); ?>
- - t( "Exclude the following file types from encryption:" )); ?> -
- -

- - t( "Enable encryption passwords recovery account (allow sharing to recovery account):" )); ?> + t( "Enable encryption passwords recovery key (allow sharing to recovery key):" )); ?>
-
- t( "To perform a recovery log in using the 'recoveryAdmin' account and the specified password" )); ?>
-- GitLab From aa3eb6bb5be9979c31f402201241cf127573541e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Mon, 13 May 2013 17:40:57 +0200 Subject: [PATCH 307/454] don't handle public share keys in lib/public/share.php but in apps/files_encryption/lib/util.php instead --- apps/files_encryption/lib/util.php | 9 ++++++++- lib/public/share.php | 27 ++++++++++++--------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 732f5fece85..2a64680599f 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -109,6 +109,7 @@ class Util { private $publicKeyPath; // Path to user's public key private $privateKeyPath; // Path to user's private key private $publicShareKeyId; + private $recoveryKeyId; public function __construct( \OC_FilesystemView $view, $userId, $client = false ) { @@ -125,6 +126,7 @@ class Util { $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key $this->publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); + $this->recoveryKeyId = \OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); } public function ready() { @@ -798,6 +800,7 @@ class Util { // public system user 'ownCloud' (for public shares) if ( $user == $this->publicShareKeyId + or $user == $this->recoveryKeyId or $util->ready() ) { @@ -949,7 +952,11 @@ class Util { if ( $sharingEnabled ) { // Find out who, if anyone, is sharing the file - $userIds = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); + $result = \OCP\Share::getUsersSharingFile( $ownerPath, $owner,true, true, true ); + $userIds = $result['users']; + if ( $result['public'] ) { + $userIds[] = $this->publicShareKeyId; + } } diff --git a/lib/public/share.php b/lib/public/share.php index b9cf05bbf7f..10400e34c50 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -138,6 +138,7 @@ class Share { $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); $path = ''; $shares = array(); + $publicShare = false; $view = new \OC\Files\View('/' . $user . '/files/'); foreach ($path_parts as $p) { $path .= '/' . $p; @@ -184,27 +185,23 @@ class Share { $shares = array_merge($shares, $usersInGroup); } - $publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); - - if ($publicShareKeyId) { - //check for public link shares - $query = \OC_DB::prepare( - 'SELECT share_with + //check for public link shares + $query = \OC_DB::prepare( + 'SELECT share_with FROM `*PREFIX*share` WHERE item_source = ? AND share_type = ?' - ); + ); - $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); + $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); - if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); - } + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + } - if ($result->fetchRow()) { - $shares[] = $publicShareKeyId; - } + if ($result->fetchRow()) { + $publicShare = true; } } // Include owner in list of users, if requested @@ -212,7 +209,7 @@ class Share { $shares[] = $user; } - return array_unique($shares); + return array("users" => array_unique($shares), "public" => $publicShare); } /** -- GitLab From 6d95d130e4b5cefa757dbd59c6bfadf56e01722a Mon Sep 17 00:00:00 2001 From: raghunayyar Date: Mon, 13 May 2013 23:12:05 +0530 Subject: [PATCH 308/454] Keeping Font Colors Consistant on the headers. --- apps/files/css/files.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index ec323915b44..e9494b735ac 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -5,7 +5,8 @@ /* FILE MENU */ .actions { padding:.3em; height:2em; width: 100%; } .actions input, .actions button, .actions .button { margin:0; float:left; } - +.actions .button a { color: #555; } +.actions .button a:hover, .actions .button a:active { color: #333; } #new { height:17px; margin:0 0 0 1em; z-index:1010; float:left; } @@ -34,6 +35,7 @@ background-image:url('%webroot%/core/img/actions/upload.svg'); background-repeat:no-repeat; background-position:7px 6px; + opacity:0.65; } .file_upload_target { display:none; } .file_upload_form { display:inline; float:left; margin:0; padding:0; cursor:pointer; overflow:visible; } -- GitLab From d92f6b887d99a24b2bda1503f328c698c682d60e Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 13 May 2013 21:22:59 +0200 Subject: [PATCH 309/454] removed var_dump --- apps/files_encryption/tests/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index d0a988f96b9..efd3f03bc62 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -172,7 +172,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $files = $util->findEncFiles( '/', 'encrypted' ); - var_dump( $files ); + //var_dump( $files ); # TODO: Add more tests here to check that if any of the dirs are # then false will be returned. Use strict ordering? -- GitLab From 61ed347d26872bc62465be4df595da3391ea84bb Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 13 May 2013 21:24:59 +0200 Subject: [PATCH 310/454] added handling for public file access via files_sharing link --- apps/files_encryption/lib/keymanager.php | 2 +- apps/files_encryption/lib/session.php | 22 +++- apps/files_encryption/lib/stream.php | 16 +-- apps/files_encryption/lib/util.php | 144 +++++++++++++++-------- 4 files changed, 120 insertions(+), 64 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 6c2df6f8406..8ee7820b169 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -455,7 +455,7 @@ class Keymanager { list($owner, $filename) = $util->getUidAndFilename($filePath); - $shareKeyPath = '/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'; + $shareKeyPath = \OC\Files\Filesystem::normalizePath('/' . $owner . '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey'); if ( $view->file_exists( $shareKeyPath ) ) { $result = $view->file_get_contents( $shareKeyPath ); diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 5444d0215ca..f02315f95df 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -59,9 +59,11 @@ class Session { ) { $keypair = Crypt::createKeypair(); - - \OC_FileProxy::$enabled = false; - + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + // Save public key if (!$view->is_dir('/public-keys')) { @@ -76,9 +78,21 @@ class Session { // Save private key $this->view->file_put_contents( '/owncloud_private_key/'.$publicShareKeyId.'.private.key', $encryptedPrivateKey ); - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = $proxyStatus; } + + if(\OCP\USER::getUser() === false) { + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $encryptedKey = $this->view->file_get_contents( '/owncloud_private_key/'.$publicShareKeyId.'.private.key' ); + $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, '' ); + $this->setPrivateKey($privateKey); + + \OC_FileProxy::$enabled = $proxyStatus; + } } /** diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 33b3255e2af..3149b460b62 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -72,20 +72,20 @@ class Stream { private $rootView; // a fsview object set to '/' public function stream_open( $path, $mode, $options, &$opened_path ) { - - $this->userId = \OCP\User::getUser(); - - if ( ! isset( $this->rootView ) ) { + if ( ! isset( $this->rootView ) ) { $this->rootView = new \OC_FilesystemView( '/' ); - } - // Strip identifier text from path, this gives us the path relative to data//files - $this->relPath = str_replace( 'crypt://', '', $path ); + $util = new Util( $this->rootView, \OCP\USER::getUser()); + + $this->userId = $util->getUserId(); + + // Strip identifier text from path, this gives us the path relative to data//files + $this->relPath = \OC\Files\Filesystem::normalizePath(str_replace( 'crypt://', '', $path )); // rawPath is relative to the data directory - $this->rawPath = $this->userId . '/files/' . $this->relPath; + $this->rawPath = $util->getUserFilesDir() . $this->relPath; if ( dirname( $this->rawPath ) == 'streams' diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 2a64680599f..213bbd1d210 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -110,23 +110,47 @@ class Util { private $privateKeyPath; // Path to user's private key private $publicShareKeyId; private $recoveryKeyId; + private $isPublic; public function __construct( \OC_FilesystemView $view, $userId, $client = false ) { - + $this->view = $view; $this->userId = $userId; $this->client = $client; - $this->userDir = '/' . $this->userId; - $this->fileFolderName = 'files'; - $this->userFilesDir = '/' . $this->userId . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? - $this->publicKeyDir = '/' . 'public-keys'; - $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; - $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; - $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys'; - $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key - $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key - $this->publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); - $this->recoveryKeyId = \OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + $this->isPublic = false; + + $this->publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); + $this->recoveryKeyId = \OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + + // if we are anonymous/public + if($this->userId === false) { + $this->userId = $this->publicShareKeyId; + + // only handle for files_sharing app + if($GLOBALS['app'] === 'files_sharing') { + $this->userDir = '/' . $GLOBALS['fileOwner']; + $this->fileFolderName = 'files'; + $this->userFilesDir = '/' . $GLOBALS['fileOwner'] . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? + $this->publicKeyDir = '/' . 'public-keys'; + $this->encryptionDir = '/' . $GLOBALS['fileOwner'] . '/' . 'files_encryption'; + $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; + $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys'; + $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key + $this->privateKeyPath = '/owncloud_private_key/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key + $this->isPublic = true; + } + + } else { + $this->userDir = '/' . $this->userId; + $this->fileFolderName = 'files'; + $this->userFilesDir = '/' . $this->userId . '/' . $this->fileFolderName; // TODO: Does this need to be user configurable? + $this->publicKeyDir = '/' . 'public-keys'; + $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; + $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; + $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys'; + $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key + $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key + } } public function ready() { @@ -1069,46 +1093,54 @@ class Util { $view = new \OC\Files\View($this->userFilesDir); $fileOwnerUid = $view->getOwner( $path ); - - // Check that UID is valid - if ( ! \OCP\User::userExists( $fileOwnerUid ) ) { - - throw new \Exception( 'Could not find owner (UID = "' . var_export( $fileOwnerUid, 1 ) . '") of file "' . $path . '"' ); - - } - // NOTE: Bah, this dependency should be elsewhere - \OC\Files\Filesystem::initMountPoints( $fileOwnerUid ); - - // If the file owner is the currently logged in user - if ( $fileOwnerUid == $this->userId ) { - - // Assume the path supplied is correct - $filename = $path; - - } else { - - $info = $view->getFileInfo( $path ); - $ownerView = new \OC\Files\View( '/' . $fileOwnerUid . '/files' ); - - // Fetch real file path from DB - $filename = $ownerView->getPath( $info['fileid'] ); // TODO: Check that this returns a path without including the user data dir - - } - - // Make path relative for use by $view - $relpath = \OC\Files\Filesystem::normalizePath($fileOwnerUid . '/' . $this->fileFolderName . '/' . $filename); - - // Check that the filename we're using is working - if ( $this->view->file_exists( $relpath ) ) { - - return array ( $fileOwnerUid, $filename ); - - } else { - - return false; - - } + // handle public access + if($fileOwnerUid === false && $this->isPublic) { + $filename = $view->getPath( $GLOBALS['fileSource'] ); + $fileOwnerUid = $GLOBALS['fileOwner']; + + return array ( $fileOwnerUid, $filename ); + } else { + + // Check that UID is valid + if ( ! \OCP\User::userExists( $fileOwnerUid ) ) { + throw new \Exception( 'Could not find owner (UID = "' . var_export( $fileOwnerUid, 1 ) . '") of file "' . $path . '"' ); + } + + // NOTE: Bah, this dependency should be elsewhere + \OC\Files\Filesystem::initMountPoints( $fileOwnerUid ); + + // If the file owner is the currently logged in user + if ( $fileOwnerUid == $this->userId ) { + + // Assume the path supplied is correct + $filename = $path; + + } else { + + $info = $view->getFileInfo( $path ); + $ownerView = new \OC\Files\View( '/' . $fileOwnerUid . '/files' ); + + // Fetch real file path from DB + $filename = $ownerView->getPath( $info['fileid'] ); // TODO: Check that this returns a path without including the user data dir + + } + + // Make path relative for use by $view + $relpath = \OC\Files\Filesystem::normalizePath($fileOwnerUid . '/' . $this->fileFolderName . '/' . $filename); + + // Check that the filename we're using is working + if ( $this->view->file_exists( $relpath ) ) { + + return array ( $fileOwnerUid, $filename ); + + } else { + + return false; + + } + } + } @@ -1233,4 +1265,14 @@ class Util { } + public function getUserId() + { + return $this->userId; + } + + public function getUserFilesDir() + { + return $this->userFilesDir; + } + } -- GitLab From b2d021b2a5a603505c6c0e607472ee4e91962afe Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 13 May 2013 22:34:11 +0200 Subject: [PATCH 311/454] added post_createUser hook --- apps/files_encryption/hooks/hooks.php | 30 ++++++++++++++++----------- apps/files_encryption/lib/helper.php | 20 ++++++++++++++++++ 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 71a0fc9268b..ebaa9c51452 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -47,17 +47,11 @@ class Hooks { $view = new \OC_FilesystemView( '/' ); $util = new Util( $view, $params['uid'] ); - - // Check files_encryption infrastructure is ready for action - if ( ! $util->ready() ) { - - \OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started', \OC_Log::DEBUG ); - - if(!$util->setupServerSide( $params['password'] )) { - return false; - } - } + // setup user, if user not ready force relogin + if(Helper::setupUser($util, $params['password']) === false) { + return false; + } \OC_FileProxy::$enabled = false; @@ -120,8 +114,20 @@ class Hooks { return true; } - - /** + + /** + * @brief setup encryption backend upon user created + * @note This method should never be called for users using client side encryption + */ + public static function postCreateUser( $params ) { + $view = new \OC_FilesystemView( '/' ); + + $util = new Util( $view, $params['uid'] ); + + Helper::setupUser($util, $params['password']); + } + + /** * @brief Change a user's encryption passphrase * @param array $params keys: uid, password */ diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 9b8d9ffc5b1..3a5b2f78ce8 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -48,6 +48,7 @@ class Helper { \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); + \OCP\Util::connectHook( 'OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser' ); } /** @@ -68,5 +69,24 @@ class Helper { \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename'); } + /** + * @brief setup user for files_encryption + * + * @param Util $util + * @param string $password + * @return bool + */ + public static function setupUser($util, $password) { + // Check files_encryption infrastructure is ready for action + if ( ! $util->ready() ) { + \OC_Log::write( 'Encryption library', 'User account "' . $util->getUserId() . '" is not ready for encryption; configuration started', \OC_Log::DEBUG ); + + if(!$util->setupServerSide( $password )) { + return false; + } + } + + return true; + } } \ No newline at end of file -- GitLab From a4e9e2fc792f6300d93febd83a8b826c80bbcdc1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Mon, 13 May 2013 22:49:27 +0200 Subject: [PATCH 312/454] added post_deleteUser hook for cleanup public key --- apps/files_encryption/hooks/hooks.php | 19 +++++++++++++++++++ apps/files_encryption/lib/helper.php | 1 + 2 files changed, 20 insertions(+) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ebaa9c51452..134b038e7e4 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -127,6 +127,25 @@ class Hooks { Helper::setupUser($util, $params['password']); } + /** + * @brief cleanup encryption backend upon user deleted + * @note This method should never be called for users using client side encryption + */ + public static function postDeleteUser( $params ) { + $view = new \OC_FilesystemView( '/' ); + + // cleanup public key + $publicKey = '/public-keys/' . $params['uid'] . '.public.key'; + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $view->unlink($publicKey); + + \OC_FileProxy::$enabled = $proxyStatus; + } + /** * @brief Change a user's encryption passphrase * @param array $params keys: uid, password diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 3a5b2f78ce8..783cebeee5b 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -49,6 +49,7 @@ class Helper { \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); \OCP\Util::connectHook( 'OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser' ); + \OCP\Util::connectHook( 'OC_User', 'post_deleteUser', 'OCA\Encryption\Hooks', 'postDeleteUser' ); } /** -- GitLab From 81ae4cb5d07c1a7bf40a283bdb7e52c33dc243c6 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 14 May 2013 00:00:20 +0200 Subject: [PATCH 313/454] added test for public shared file via link --- apps/files_encryption/lib/util.php | 2 +- apps/files_encryption/tests/share.php | 88 ++++++++++++++++++++++++--- 2 files changed, 79 insertions(+), 11 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 213bbd1d210..8f20481db6c 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1096,7 +1096,7 @@ class Util { // handle public access if($fileOwnerUid === false && $this->isPublic) { - $filename = $view->getPath( $GLOBALS['fileSource'] ); + $filename = $this->fileIdToPath( $GLOBALS['fileSource'] ); $fileOwnerUid = $GLOBALS['fileOwner']; return array ( $fileOwnerUid, $filename ); diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index ca7209e1afd..850985c9f9f 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -136,10 +136,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user1'); // get file contents - $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared/' . $this->filename); + $retrievedCryptedFile = $this->view->file_get_contents('/user1/files/Shared/' . $this->filename); // check if data is the same as we previously written - $this->assertEquals($this->dataShort, $retreivedCryptedFile); + $this->assertEquals($this->dataShort, $retrievedCryptedFile); // cleanup if ($withTeardown) { @@ -184,10 +184,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user2'); // get file contents - $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $this->filename); + $retrievedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $this->filename); // check if data is the same as previously written - $this->assertEquals($this->dataShort, $retreivedCryptedFile); + $this->assertEquals($this->dataShort, $retrievedCryptedFile); // cleanup if ($withTeardown) { @@ -260,10 +260,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user1'); // get file contents - $retreivedCryptedFile = $this->view->file_get_contents('/user1/files/Shared' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); + $retrievedCryptedFile = $this->view->file_get_contents('/user1/files/Shared' . $this->folder1 . $this->subfolder . $this->subsubfolder . '/' . $this->filename); // check if data is the same - $this->assertEquals($this->dataShort, $retreivedCryptedFile); + $this->assertEquals($this->dataShort, $retrievedCryptedFile); // cleanup if ($withTeardown) { @@ -320,10 +320,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user2'); // get file contents - $retreivedCryptedFile = $this->view->file_get_contents('/user2/files/Shared' . $this->subfolder . $this->subsubfolder . '/' . $this->filename); + $retrievedCryptedFile = $this->view->file_get_contents('/user2/files/Shared' . $this->subfolder . $this->subsubfolder . '/' . $this->filename); // check if data is the same - $this->assertEquals($this->dataShort, $retreivedCryptedFile); + $this->assertEquals($this->dataShort, $retrievedCryptedFile); // get the file info $fileInfo = $this->view->getFileInfo('/user2/files/Shared' . $this->subfolder . $this->subsubfolder . '/' . $this->filename); @@ -344,10 +344,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user3'); // get file contents - $retreivedCryptedFile = $this->view->file_get_contents('/user3/files/Shared/' . $this->filename); + $retrievedCryptedFile = $this->view->file_get_contents('/user3/files/Shared/' . $this->filename); // check if data is the same - $this->assertEquals($this->dataShort, $retreivedCryptedFile); + $this->assertEquals($this->dataShort, $retrievedCryptedFile); // cleanup if ($withTeardown) { @@ -387,6 +387,74 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase } } + function testPublicShareFile() + { + // login as admin + $this->loginHelper('admin'); + + // save file with content + $cryptedFile = file_put_contents('crypt://' . $this->filename, $this->dataShort); + + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile)); + + // disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // get the file info from previous created file + $fileInfo = $this->view->getFileInfo('/admin/files/' . $this->filename); + + // check if we have a valid file info + $this->assertTrue(is_array($fileInfo)); + + // check if the unencrypted file size is stored + $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); + + // re-enable the file proxy + \OC_FileProxy::$enabled = $proxyStatus; + + // share the file + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null, false); + + // login as admin + $this->loginHelper('admin'); + + $publicShareKeyId = \OC_Appconfig::getValue('files_encryption', 'publicShareKeyId'); + + // check if share key for public exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.' . $publicShareKeyId . '.shareKey')); + + // some hacking to simulate public link + $GLOBALS['app'] = 'files_sharing'; + $GLOBALS['fileOwner'] = 'admin'; + $GLOBALS['fileSource'] = $fileInfo['fileid']; + \OC_User::setUserId(''); + + // get file contents + $retrievedCryptedFile = file_get_contents('crypt://' . $this->filename); + + // check if data is the same as we previously written + $this->assertEquals($this->dataShort, $retrievedCryptedFile); + + // tear down + + // login as admin + $this->loginHelper('admin'); + + // unshare the file + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.' . $publicShareKeyId . '.shareKey')); + + // cleanup + $this->view->unlink('/admin/files/' . $this->filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); + } + function loginHelper($user, $create = false) { if ($create) { -- GitLab From 2b84da9793342e63ddad6d6126a839430ea6b401 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 14 May 2013 02:04:01 +0200 Subject: [PATCH 314/454] [tx-robot] updated from transifex --- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index add748562e8..d34c5edc813 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 53b57f51d58..51c5ec0d518 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:03+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 57d87d4eade..2953ca91aa9 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index b67ce2ab6f4..2c71c833ee0 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index f6cf67b6b58..3c4199e04cd 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 0918e24fc24..d37f8da1adf 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 1aff6304e94..0281b59a187 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 26655ad7043..cc9146b348b 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:05+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index b2435c28e91..dc15a7ea4fa 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:05+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 2be0fb2ddaf..555205eb00d 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 1cc91e1ae52..b99f1fbd062 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" +"POT-Creation-Date: 2013-05-14 02:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -- GitLab From 18618c75aaa4933d8b82e006704c58738114fb45 Mon Sep 17 00:00:00 2001 From: raghunayyar Date: Tue, 14 May 2013 11:07:12 +0530 Subject: [PATCH 315/454] color change to crumb elements as well. --- apps/files/css/files.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/css/files.css b/apps/files/css/files.css index e9494b735ac..f788949b1b6 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -150,7 +150,7 @@ a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; } #scanning-message{ top:40%; left:40%; position:absolute; display:none; } -div.crumb a{ padding:0.9em 0 0.7em 0; } +div.crumb a{ padding:0.9em 0 0.7em 0; color:#555; } table.dragshadow { width:auto; -- GitLab From 0d8fa2eb9844f8ed3cf3462f21e5cc607c087541 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 14 May 2013 12:49:23 +0200 Subject: [PATCH 316/454] [files] add private declaration of $view --- apps/files/lib/app.php | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/files/lib/app.php b/apps/files/lib/app.php index 7cd6143e6c1..c2a4b9c2675 100644 --- a/apps/files/lib/app.php +++ b/apps/files/lib/app.php @@ -26,6 +26,7 @@ namespace OCA\Files; class App { private $l10n; + private $view; public function __construct($view, $l10n) { $this->view = $view; -- GitLab From 517105660d334b21b2e4b83d4c00704d9a5d275d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 14 May 2013 20:11:07 +0200 Subject: [PATCH 317/454] fix for public link share --- apps/files_encryption/lib/util.php | 2 +- apps/files_encryption/tests/share.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 8f20481db6c..0233804160d 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1096,7 +1096,7 @@ class Util { // handle public access if($fileOwnerUid === false && $this->isPublic) { - $filename = $this->fileIdToPath( $GLOBALS['fileSource'] ); + $filename = $path; $fileOwnerUid = $GLOBALS['fileOwner']; return array ( $fileOwnerUid, $filename ); diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 850985c9f9f..b8433821d3b 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -428,7 +428,6 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase // some hacking to simulate public link $GLOBALS['app'] = 'files_sharing'; $GLOBALS['fileOwner'] = 'admin'; - $GLOBALS['fileSource'] = $fileInfo['fileid']; \OC_User::setUserId(''); // get file contents -- GitLab From 96ff19a703774744f0d3176600e33ca5e250dbf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 14 May 2013 20:06:53 +0200 Subject: [PATCH 318/454] fix history template, print_unescaped() needs to include closing tags --- apps/files_versions/templates/history.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files_versions/templates/history.php b/apps/files_versions/templates/history.php index f7284439041..3a6d5f0c9e7 100644 --- a/apps/files_versions/templates/history.php +++ b/apps/files_versions/templates/history.php @@ -5,18 +5,18 @@ if( isset( $_['message'] ) ) { - if( isset($_['path'] ) ) print_unescaped('File: '.OC_Util::sanitizeHTML($_['path'])).'
'; - print_unescaped(''.OC_Util::sanitizeHTML($_['message']) ).'
'; + if( isset($_['path'] ) ) print_unescaped('File: '.OC_Util::sanitizeHTML($_['path']).'
'); + print_unescaped(''.OC_Util::sanitizeHTML($_['message']) .'
'); }else{ if( isset( $_['outcome_stat'] ) ) { - print_unescaped( '

'.OC_Util::sanitizeHTML($_['outcome_msg']) ).'


'; + print_unescaped( '

'.OC_Util::sanitizeHTML($_['outcome_msg']).'


'); } - print_unescaped( 'Versions of '.OC_Util::sanitizeHTML($_['path']) ).'
'; + print_unescaped( 'Versions of '.OC_Util::sanitizeHTML($_['path']).'
'); print_unescaped('

'.OC_Util::sanitizeHTML($l->t('Revert a file to a previous version by clicking on its revert button')).'


'); foreach ( $_['versions'] as $v ) { -- GitLab From 84c56a5d56eddfb9e5d0356575902253eb266da1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 14 May 2013 21:29:24 +0200 Subject: [PATCH 319/454] fix for zero size files --- apps/files_encryption/lib/stream.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index 3149b460b62..db7d2ad6173 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -477,9 +477,9 @@ class Stream { if ( $this->meta['mode']!='r' - and $this->meta['mode']!='rb' + and $this->meta['mode']!='rb' + and $this->size > 0 ) { - // Disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; -- GitLab From 0a7aa6e8cdbf96c3a54ea0a897eb5dfb8cd37c01 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 14 May 2013 22:32:39 +0200 Subject: [PATCH 320/454] fix for Allowed memory size of xx bytes exhausted while reading big files --- apps/files_encryption/lib/util.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 0233804160d..19c9cd72a19 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -480,13 +480,20 @@ class Util { */ public function isEncryptedPath( $path ) { - // Disable encryption proxy so data retreived is in its + // Disable encryption proxy so data retrieved is in its // original form + $proxyStatus = \OC_FileProxy::$enabled; \OC_FileProxy::$enabled = false; - - $data = $this->view->file_get_contents( $path ); - - \OC_FileProxy::$enabled = true; + + // we only need 24 byte from the last chunk + $data = ''; + $handle = $this->view->fopen( $path, 'r' ); + if(!fseek($handle, -24, SEEK_END)) { + $data = fgets($handle); + } + + // re-enable proxy + \OC_FileProxy::$enabled = $proxyStatus; return Crypt::isCatfileContent( $data ); -- GitLab From 87760007549cb1573a431784ace24ffa300d8d90 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Tue, 14 May 2013 23:19:16 +0200 Subject: [PATCH 321/454] fix for move file to an empty folder --- apps/files_encryption/hooks/hooks.php | 28 ++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 134b038e7e4..31175d1c346 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -462,8 +462,8 @@ class Hooks { $util = new Util( $view, $userId ); // Format paths to be relative to user files dir - $oldKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $params['oldpath']; - $newKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $params['newpath']; + $oldKeyfilePath = \OC\Files\Filesystem::normalizePath($userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $params['oldpath']); + $newKeyfilePath = \OC\Files\Filesystem::normalizePath($userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $params['newpath']); // add key ext if this is not an folder if (!$view->is_dir($oldKeyfilePath)) { @@ -474,19 +474,37 @@ class Hooks { $localKeyPath = $view->getLocalFile($userId.'/files_encryption/share-keys/'.$params['oldpath']); $matches = glob(preg_quote($localKeyPath).'*.shareKey'); foreach ($matches as $src) { - $dst = str_replace($params['oldpath'], $params['newpath'], $src); + $dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src)); + + // create destination folder if not exists + if(!file_exists(dirname($dst))) { + mkdir(dirname($dst), 0750, true); + } + rename($src, $dst); } } else { // handle share-keys folders - $oldShareKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $params['oldpath']; - $newShareKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $params['newpath']; + $oldShareKeyfilePath = \OC\Files\Filesystem::normalizePath($userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $params['oldpath']); + $newShareKeyfilePath = \OC\Files\Filesystem::normalizePath($userId . '/' . 'files_encryption' . '/' . 'share-keys' . '/' . $params['newpath']); + + // create destination folder if not exists + if(!$view->file_exists(dirname($newShareKeyfilePath))) { + $view->mkdir(dirname($newShareKeyfilePath), 0750, true); + } + $view->rename($oldShareKeyfilePath, $newShareKeyfilePath); } // Rename keyfile so it isn't orphaned if($view->file_exists($oldKeyfilePath)) { + + // create destination folder if not exists + if(!$view->file_exists(dirname($newKeyfilePath))) { + $view->mkdir(dirname($newKeyfilePath), 0750, true); + } + $view->rename($oldKeyfilePath, $newKeyfilePath); } -- GitLab From 6a788d1a545d5e0dcd6df6ec3c144fa593cf40c8 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Wed, 15 May 2013 02:02:45 +0200 Subject: [PATCH 322/454] [tx-robot] updated from transifex --- apps/files/l10n/ar.php | 2 +- apps/files/l10n/bn_BD.php | 2 +- apps/files/l10n/ca.php | 2 +- apps/files/l10n/cs_CZ.php | 2 +- apps/files/l10n/cy_GB.php | 2 +- apps/files/l10n/da.php | 2 +- apps/files/l10n/de.php | 2 +- apps/files/l10n/de_DE.php | 2 +- apps/files/l10n/el.php | 2 +- apps/files/l10n/eo.php | 2 +- apps/files/l10n/es.php | 2 +- apps/files/l10n/es_AR.php | 2 +- apps/files/l10n/et_EE.php | 2 +- apps/files/l10n/eu.php | 2 +- apps/files/l10n/fa.php | 2 +- apps/files/l10n/fi_FI.php | 2 +- apps/files/l10n/fr.php | 2 +- apps/files/l10n/gl.php | 2 +- apps/files/l10n/hu_HU.php | 2 +- apps/files/l10n/id.php | 2 +- apps/files/l10n/is.php | 2 +- apps/files/l10n/it.php | 2 +- apps/files/l10n/ja_JP.php | 2 +- apps/files/l10n/ka_GE.php | 2 +- apps/files/l10n/ko.php | 2 +- apps/files/l10n/lv.php | 2 +- apps/files/l10n/nl.php | 2 +- apps/files/l10n/nn_NO.php | 2 +- apps/files/l10n/pl.php | 2 +- apps/files/l10n/pt_BR.php | 2 +- apps/files/l10n/pt_PT.php | 2 +- apps/files/l10n/ro.php | 2 +- apps/files/l10n/ru.php | 2 +- apps/files/l10n/sk_SK.php | 2 +- apps/files/l10n/sl.php | 2 +- apps/files/l10n/sq.php | 2 +- apps/files/l10n/sr.php | 2 +- apps/files/l10n/sv.php | 2 +- apps/files/l10n/th_TH.php | 2 +- apps/files/l10n/tr.php | 2 +- apps/files/l10n/ug.php | 2 +- apps/files/l10n/uk.php | 2 +- apps/files/l10n/vi.php | 2 +- apps/files/l10n/zh_CN.php | 2 +- apps/files/l10n/zh_TW.php | 2 +- l10n/af_ZA/files.po | 84 ++++++++++++++-------------- l10n/ar/files.po | 84 ++++++++++++++-------------- l10n/be/files.po | 84 ++++++++++++++-------------- l10n/bg_BG/files.po | 84 ++++++++++++++-------------- l10n/bn_BD/files.po | 84 ++++++++++++++-------------- l10n/ca/files.po | 84 ++++++++++++++-------------- l10n/cs_CZ/files.po | 84 ++++++++++++++-------------- l10n/cy_GB/files.po | 38 +++++++------ l10n/da/files.po | 84 ++++++++++++++-------------- l10n/de/files.po | 38 +++++++------ l10n/de_DE/files.po | 38 +++++++------ l10n/el/files.po | 84 ++++++++++++++-------------- l10n/en@pirate/files.po | 38 +++++++------ l10n/eo/files.po | 84 ++++++++++++++-------------- l10n/es/files.po | 38 +++++++------ l10n/es_AR/files.po | 84 ++++++++++++++-------------- l10n/et_EE/files.po | 38 +++++++------ l10n/eu/files.po | 84 ++++++++++++++-------------- l10n/fa/files.po | 84 ++++++++++++++-------------- l10n/fi/files.po | 86 +++++++++++++++-------------- l10n/fi_FI/files.po | 84 ++++++++++++++-------------- l10n/fr/files.po | 38 +++++++------ l10n/gl/files.po | 38 +++++++------ l10n/he/files.po | 84 ++++++++++++++-------------- l10n/hi/files.po | 84 ++++++++++++++-------------- l10n/hr/files.po | 84 ++++++++++++++-------------- l10n/hu_HU/files.po | 84 ++++++++++++++-------------- l10n/hy/files.po | 86 +++++++++++++++-------------- l10n/ia/files.po | 36 ++++++------ l10n/id/files.po | 84 ++++++++++++++-------------- l10n/is/files.po | 84 ++++++++++++++-------------- l10n/it/files.po | 84 ++++++++++++++-------------- l10n/ja_JP/files.po | 84 ++++++++++++++-------------- l10n/ka/files.po | 84 ++++++++++++++-------------- l10n/ka_GE/files.po | 86 +++++++++++++++-------------- l10n/kn/files.po | 84 ++++++++++++++-------------- l10n/ko/files.po | 38 +++++++------ l10n/ku_IQ/files.po | 84 ++++++++++++++-------------- l10n/lb/files.po | 84 ++++++++++++++-------------- l10n/lt_LT/files.po | 84 ++++++++++++++-------------- l10n/lv/files.po | 84 ++++++++++++++-------------- l10n/mk/files.po | 84 ++++++++++++++-------------- l10n/ms_MY/files.po | 84 ++++++++++++++-------------- l10n/my_MM/files.po | 84 ++++++++++++++-------------- l10n/nb_NO/files.po | 84 ++++++++++++++-------------- l10n/ne/files.po | 84 ++++++++++++++-------------- l10n/nl/files.po | 84 ++++++++++++++-------------- l10n/nn_NO/files.po | 38 +++++++------ l10n/oc/files.po | 84 ++++++++++++++-------------- l10n/pl/files.po | 84 ++++++++++++++-------------- l10n/pl_PL/files.po | 86 +++++++++++++++-------------- l10n/pt_BR/files.po | 84 ++++++++++++++-------------- l10n/pt_PT/files.po | 84 ++++++++++++++-------------- l10n/ro/files.po | 86 +++++++++++++++-------------- l10n/ru/files.po | 84 ++++++++++++++-------------- l10n/si_LK/files.po | 84 ++++++++++++++-------------- l10n/sk/files.po | 84 ++++++++++++++-------------- l10n/sk_SK/files.po | 84 ++++++++++++++-------------- l10n/sl/files.po | 84 ++++++++++++++-------------- l10n/sq/files.po | 84 ++++++++++++++-------------- l10n/sr/files.po | 84 ++++++++++++++-------------- l10n/sr@latin/files.po | 84 ++++++++++++++-------------- l10n/sv/files.po | 84 ++++++++++++++-------------- l10n/sw_KE/files.po | 84 ++++++++++++++-------------- l10n/ta_LK/files.po | 84 ++++++++++++++-------------- l10n/te/files.po | 84 ++++++++++++++-------------- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 34 +++++++----- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/th_TH/files.po | 84 ++++++++++++++-------------- l10n/tr/files.po | 84 ++++++++++++++-------------- l10n/ug/files.po | 38 +++++++------ l10n/uk/files.po | 84 ++++++++++++++-------------- l10n/ur_PK/files.po | 84 ++++++++++++++-------------- l10n/vi/files.po | 38 +++++++------ l10n/zh_CN.GB2312/files.po | 84 ++++++++++++++-------------- l10n/zh_CN/files.po | 84 ++++++++++++++-------------- l10n/zh_HK/files.po | 84 ++++++++++++++-------------- l10n/zh_TW/files.po | 84 ++++++++++++++-------------- l10n/zh_TW/settings.po | 26 ++++----- 133 files changed, 3136 insertions(+), 2828 deletions(-) diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php index bc01a340622..ca198b7efe9 100644 --- a/apps/files/l10n/ar.php +++ b/apps/files/l10n/ar.php @@ -1,7 +1,6 @@ "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم", "Could not move %s" => "فشل في نقل %s", -"Unable to rename file" => "فشل في اعادة تسمية الملف", "No file was uploaded. Unknown error" => "لم يتم رفع أي ملف , خطأ غير معروف", "There is no error, the file uploaded with success" => "تم ترفيع الملفات بنجاح.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "حجم الملف المرفوع تجاوز قيمة upload_max_filesize الموجودة في ملف php.ini ", @@ -45,6 +44,7 @@ "{count} folders" => "{count} مجلدات", "1 file" => "ملف واحد", "{count} files" => "{count} ملفات", +"Unable to rename file" => "فشل في اعادة تسمية الملف", "Upload" => "رفع", "File handling" => "التعامل مع الملف", "Maximum upload size" => "الحد الأقصى لحجم الملفات التي يمكن رفعها", diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php index 42c78ab3470..83dd4dc36dc 100644 --- a/apps/files/l10n/bn_BD.php +++ b/apps/files/l10n/bn_BD.php @@ -1,7 +1,6 @@ "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান", "Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না", -"Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না", "No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।", "There is no error, the file uploaded with success" => "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ", @@ -40,6 +39,7 @@ "{count} folders" => "{count} টি ফোল্ডার", "1 file" => "১টি ফাইল", "{count} files" => "{count} টি ফাইল", +"Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না", "Upload" => "আপলোড", "File handling" => "ফাইল হ্যার্ডলিং", "Maximum upload size" => "আপলোডের সর্বোচ্চ আকার", diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index ff9572ad99e..6da312ae75b 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -1,7 +1,6 @@ "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom", "Could not move %s" => " No s'ha pogut moure %s", -"Unable to rename file" => "No es pot canviar el nom del fitxer", "No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut", "There is no error, the file uploaded with success" => "No hi ha errors, el fitxer s'ha carregat correctament", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} carpetes", "1 file" => "1 fitxer", "{count} files" => "{count} fitxers", +"Unable to rename file" => "No es pot canviar el nom del fitxer", "Upload" => "Puja", "File handling" => "Gestió de fitxers", "Maximum upload size" => "Mida màxima de pujada", diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index f28c6dad7e2..de6a1542421 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -1,7 +1,6 @@ "Nelze přesunout %s - existuje soubor se stejným názvem", "Could not move %s" => "Nelze přesunout %s", -"Unable to rename file" => "Nelze přejmenovat soubor", "No file was uploaded. Unknown error" => "Soubor nebyl odeslán. Neznámá chyba", "There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} složky", "1 file" => "1 soubor", "{count} files" => "{count} soubory", +"Unable to rename file" => "Nelze přejmenovat soubor", "Upload" => "Odeslat", "File handling" => "Zacházení se soubory", "Maximum upload size" => "Maximální velikost pro odesílání", diff --git a/apps/files/l10n/cy_GB.php b/apps/files/l10n/cy_GB.php index 6ec0e7f914f..ae339488910 100644 --- a/apps/files/l10n/cy_GB.php +++ b/apps/files/l10n/cy_GB.php @@ -1,7 +1,6 @@ "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli", "Could not move %s" => "Methwyd symud %s", -"Unable to rename file" => "Methu ailenwi ffeil", "No file was uploaded. Unknown error" => "Ni lwythwyd ffeil i fyny. Gwall anhysbys.", "There is no error, the file uploaded with success" => "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} plygell", "1 file" => "1 ffeil", "{count} files" => "{count} ffeil", +"Unable to rename file" => "Methu ailenwi ffeil", "Upload" => "Llwytho i fyny", "File handling" => "Trafod ffeiliau", "Maximum upload size" => "Maint mwyaf llwytho i fyny", diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index ff590aa9a3a..879fbc8451f 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -1,7 +1,6 @@ "Kunne ikke flytte %s - der findes allerede en fil med dette navn", "Could not move %s" => "Kunne ikke flytte %s", -"Unable to rename file" => "Kunne ikke omdøbe fil", "No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", "There is no error, the file uploaded with success" => "Der skete ingen fejl, filen blev succesfuldt uploadet", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} mapper", "1 file" => "1 fil", "{count} files" => "{count} filer", +"Unable to rename file" => "Kunne ikke omdøbe fil", "Upload" => "Upload", "File handling" => "Filhåndtering", "Maximum upload size" => "Maksimal upload-størrelse", diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index 14d084bc211..bcc3a4c6c9d 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -1,7 +1,6 @@ "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", "Could not move %s" => "Konnte %s nicht verschieben", -"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", "{count} files" => "{count} Dateien", +"Unable to rename file" => "Konnte Datei nicht umbenennen", "Upload" => "Hochladen", "File handling" => "Dateibehandlung", "Maximum upload size" => "Maximale Upload-Größe", diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 6f912976939..626af36c2b6 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -1,7 +1,6 @@ "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert bereits", "Could not move %s" => "Konnte %s nicht verschieben", -"Unable to rename file" => "Konnte Datei nicht umbenennen", "No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler", "There is no error, the file uploaded with success" => "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", "{count} files" => "{count} Dateien", +"Unable to rename file" => "Konnte Datei nicht umbenennen", "Upload" => "Hochladen", "File handling" => "Dateibehandlung", "Maximum upload size" => "Maximale Upload-Größe", diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php index d67a2fce36c..a8bb96cdfc8 100644 --- a/apps/files/l10n/el.php +++ b/apps/files/l10n/el.php @@ -1,7 +1,6 @@ "Αδυναμία μετακίνησης του %s - υπάρχει ήδη αρχείο με αυτό το όνομα", "Could not move %s" => "Αδυναμία μετακίνησης του %s", -"Unable to rename file" => "Αδυναμία μετονομασίας αρχείου", "No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα", "There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το αρχείο που εστάλει υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"upload_max_filesize\" του php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} φάκελοι", "1 file" => "1 αρχείο", "{count} files" => "{count} αρχεία", +"Unable to rename file" => "Αδυναμία μετονομασίας αρχείου", "Upload" => "Μεταφόρτωση", "File handling" => "Διαχείριση αρχείων", "Maximum upload size" => "Μέγιστο μέγεθος αποστολής", diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php index 936c9aef19d..3eeb88754c7 100644 --- a/apps/files/l10n/eo.php +++ b/apps/files/l10n/eo.php @@ -1,7 +1,6 @@ "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas", "Could not move %s" => "Ne eblis movi %s", -"Unable to rename file" => "Ne eblis alinomigi dosieron", "No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.", "There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ", @@ -42,6 +41,7 @@ "{count} folders" => "{count} dosierujoj", "1 file" => "1 dosiero", "{count} files" => "{count} dosierujoj", +"Unable to rename file" => "Ne eblis alinomigi dosieron", "Upload" => "Alŝuti", "File handling" => "Dosieradministro", "Maximum upload size" => "Maksimuma alŝutogrando", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index dd756142e42..2aee432b10b 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -1,7 +1,6 @@ "No se puede mover %s - Ya existe un archivo con ese nombre", "Could not move %s" => "No se puede mover %s", -"Unable to rename file" => "No se puede renombrar el archivo", "No file was uploaded. Unknown error" => "No se subió ningún archivo. Error desconocido", "There is no error, the file uploaded with success" => "No hay ningún error, el archivo se ha subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentas subir sobrepasa el tamaño definido por la variable upload_max_filesize en php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} carpetas", "1 file" => "1 archivo", "{count} files" => "{count} archivos", +"Unable to rename file" => "No se puede renombrar el archivo", "Upload" => "Subir", "File handling" => "Tratamiento de archivos", "Maximum upload size" => "Tamaño máximo de subida", diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php index 3b6a1f431e1..af6cf961612 100644 --- a/apps/files/l10n/es_AR.php +++ b/apps/files/l10n/es_AR.php @@ -1,7 +1,6 @@ "No se pudo mover %s - Un archivo con este nombre ya existe", "Could not move %s" => "No se pudo mover %s ", -"Unable to rename file" => "No fue posible cambiar el nombre al archivo", "No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido", "There is no error, the file uploaded with success" => "No hay errores, el archivo fue subido con éxito", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} directorios", "1 file" => "1 archivo", "{count} files" => "{count} archivos", +"Unable to rename file" => "No fue posible cambiar el nombre al archivo", "Upload" => "Subir", "File handling" => "Tratamiento de archivos", "Maximum upload size" => "Tamaño máximo de subida", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index 133f461a124..2214c4d3370 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -1,7 +1,6 @@ "Ei saa liigutada faili %s - samanimeline fail on juba olemas", "Could not move %s" => "%s liigutamine ebaõnnestus", -"Unable to rename file" => "Faili ümbernimetamine ebaõnnestus", "No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga", "There is no error, the file uploaded with success" => "Ühtegi tõrget polnud, fail on üles laetud", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse", @@ -47,6 +46,7 @@ "{count} folders" => "{count} kausta", "1 file" => "1 fail", "{count} files" => "{count} faili", +"Unable to rename file" => "Faili ümbernimetamine ebaõnnestus", "Upload" => "Lae üles", "File handling" => "Failide käsitlemine", "Maximum upload size" => "Maksimaalne üleslaadimise suurus", diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php index 74c096e1965..a4afc2e8ca8 100644 --- a/apps/files/l10n/eu.php +++ b/apps/files/l10n/eu.php @@ -1,7 +1,6 @@ "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da", "Could not move %s" => "Ezin dira fitxategiak mugitu %s", -"Unable to rename file" => "Ezin izan da fitxategia berrizendatu", "No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna", "There is no error, the file uploaded with success" => "Ez da errorerik egon, fitxategia ongi igo da", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} karpeta", "1 file" => "fitxategi bat", "{count} files" => "{count} fitxategi", +"Unable to rename file" => "Ezin izan da fitxategia berrizendatu", "Upload" => "Igo", "File handling" => "Fitxategien kudeaketa", "Maximum upload size" => "Igo daitekeen gehienezko tamaina", diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php index 10132fdf9e3..b97067ac193 100644 --- a/apps/files/l10n/fa.php +++ b/apps/files/l10n/fa.php @@ -1,7 +1,6 @@ "%s نمی تواند حرکت کند - در حال حاضر پرونده با این نام وجود دارد. ", "Could not move %s" => "%s نمی تواند حرکت کند ", -"Unable to rename file" => "قادر به تغییر نام پرونده نیست.", "No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس", "There is no error, the file uploaded with success" => "هیچ خطایی نیست بارگذاری پرونده موفقیت آمیز بود", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "پرونده آپلود شده بیش ازدستور ماکزیمم_حجم فایل_برای آپلود در php.ini استفاده کرده است.", @@ -47,6 +46,7 @@ "{count} folders" => "{ شمار} پوشه ها", "1 file" => "1 پرونده", "{count} files" => "{ شمار } فایل ها", +"Unable to rename file" => "قادر به تغییر نام پرونده نیست.", "Upload" => "بارگزاری", "File handling" => "اداره پرونده ها", "Maximum upload size" => "حداکثر اندازه بارگزاری", diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php index 08a07183238..3d0d7245781 100644 --- a/apps/files/l10n/fi_FI.php +++ b/apps/files/l10n/fi_FI.php @@ -1,7 +1,6 @@ "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa", "Could not move %s" => "Kohteen %s siirto ei onnistunut", -"Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut", "No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe", "There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Lähetetyn tiedoston koko ylittää php.ini-tiedoston upload_max_filesize-säännön:", @@ -43,6 +42,7 @@ "{count} folders" => "{count} kansiota", "1 file" => "1 tiedosto", "{count} files" => "{count} tiedostoa", +"Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut", "Upload" => "Lähetä", "File handling" => "Tiedostonhallinta", "Maximum upload size" => "Lähetettävän tiedoston suurin sallittu koko", diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index e4793ab5264..5620d86e48d 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -1,7 +1,6 @@ "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà", "Could not move %s" => "Impossible de déplacer %s", -"Unable to rename file" => "Impossible de renommer le fichier", "No file was uploaded. Unknown error" => "Aucun fichier n'a été envoyé. Erreur inconnue", "There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été envoyé avec succès.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} dossiers", "1 file" => "1 fichier", "{count} files" => "{count} fichiers", +"Unable to rename file" => "Impossible de renommer le fichier", "Upload" => "Envoyer", "File handling" => "Gestion des fichiers", "Maximum upload size" => "Taille max. d'envoi", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index 48145d44619..2352d9e15c4 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -1,7 +1,6 @@ "Non se moveu %s - Xa existe un ficheiro con ese nome.", "Could not move %s" => "Non foi posíbel mover %s", -"Unable to rename file" => "Non é posíbel renomear o ficheiro", "No file was uploaded. Unknown error" => "Non se enviou ningún ficheiro. Produciuse un erro descoñecido.", "There is no error, the file uploaded with success" => "Non houbo erros, o ficheiro enviouse correctamente", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede a directiva indicada por upload_max_filesize de php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} cartafoles", "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", +"Unable to rename file" => "Non é posíbel renomear o ficheiro", "Upload" => "Enviar", "File handling" => "Manexo de ficheiro", "Maximum upload size" => "Tamaño máximo do envío", diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php index cd5154fcd85..4520bfdd085 100644 --- a/apps/files/l10n/hu_HU.php +++ b/apps/files/l10n/hu_HU.php @@ -1,7 +1,6 @@ "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a névvel", "Could not move %s" => "Nem sikerült %s áthelyezése", -"Unable to rename file" => "Nem lehet átnevezni a fájlt", "No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba", "There is no error, the file uploaded with success" => "A fájlt sikerült feltölteni", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.", @@ -47,6 +46,7 @@ "{count} folders" => "{count} mappa", "1 file" => "1 fájl", "{count} files" => "{count} fájl", +"Unable to rename file" => "Nem lehet átnevezni a fájlt", "Upload" => "Feltöltés", "File handling" => "Fájlkezelés", "Maximum upload size" => "Maximális feltölthető fájlméret", diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php index 7cba9ae66eb..58cc0ea7fd9 100644 --- a/apps/files/l10n/id.php +++ b/apps/files/l10n/id.php @@ -1,7 +1,6 @@ "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada", "Could not move %s" => "Tidak dapat memindahkan %s", -"Unable to rename file" => "Tidak dapat mengubah nama berkas", "No file was uploaded. Unknown error" => "Tidak ada berkas yang diunggah. Galat tidak dikenal.", "There is no error, the file uploaded with success" => "Tidak ada galat, berkas sukses diunggah", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Berkas yang diunggah melampaui direktif upload_max_filesize pada php.ini", @@ -47,6 +46,7 @@ "{count} folders" => "{count} folder", "1 file" => "1 berkas", "{count} files" => "{count} berkas", +"Unable to rename file" => "Tidak dapat mengubah nama berkas", "Upload" => "Unggah", "File handling" => "Penanganan berkas", "Maximum upload size" => "Ukuran pengunggahan maksimum", diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php index f0a4aa81efa..aa10c838c1d 100644 --- a/apps/files/l10n/is.php +++ b/apps/files/l10n/is.php @@ -1,7 +1,6 @@ "Gat ekki fært %s - Skrá með þessu nafni er þegar til", "Could not move %s" => "Gat ekki fært %s", -"Unable to rename file" => "Gat ekki endurskýrt skrá", "No file was uploaded. Unknown error" => "Engin skrá var send inn. Óþekkt villa.", "There is no error, the file uploaded with success" => "Engin villa, innsending heppnaðist", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Innsend skrá er stærri en upload_max stillingin í php.ini:", @@ -40,6 +39,7 @@ "{count} folders" => "{count} möppur", "1 file" => "1 skrá", "{count} files" => "{count} skrár", +"Unable to rename file" => "Gat ekki endurskýrt skrá", "Upload" => "Senda inn", "File handling" => "Meðhöndlun skrár", "Maximum upload size" => "Hámarks stærð innsendingar", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index 77725b6770d..d5eca524d8a 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -1,7 +1,6 @@ "Impossibile spostare %s - un file con questo nome esiste già", "Could not move %s" => "Impossibile spostare %s", -"Unable to rename file" => "Impossibile rinominare il file", "No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto", "There is no error, the file uploaded with success" => "Non ci sono errori, il file è stato caricato correttamente", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} cartelle", "1 file" => "1 file", "{count} files" => "{count} file", +"Unable to rename file" => "Impossibile rinominare il file", "Upload" => "Carica", "File handling" => "Gestione file", "Maximum upload size" => "Dimensione massima upload", diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index bff9fa5b519..021a2104870 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -1,7 +1,6 @@ "%s を移動できませんでした ― この名前のファイルはすでに存在します", "Could not move %s" => "%s を移動できませんでした", -"Unable to rename file" => "ファイル名の変更ができません", "No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー", "There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} フォルダ", "1 file" => "1 ファイル", "{count} files" => "{count} ファイル", +"Unable to rename file" => "ファイル名の変更ができません", "Upload" => "アップロード", "File handling" => "ファイル操作", "Maximum upload size" => "最大アップロードサイズ", diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php index d237a81856a..c50ca2594b6 100644 --- a/apps/files/l10n/ka_GE.php +++ b/apps/files/l10n/ka_GE.php @@ -1,7 +1,6 @@ "%s –ის გადატანა ვერ მოხერხდა – ფაილი ამ სახელით უკვე არსებობს", "Could not move %s" => "%s –ის გადატანა ვერ მოხერხდა", -"Unable to rename file" => "ფაილის სახელის გადარქმევა ვერ მოხერხდა", "No file was uploaded. Unknown error" => "ფაილი არ აიტვირთა. უცნობი შეცდომა", "There is no error, the file uploaded with success" => "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", @@ -47,6 +46,7 @@ "{count} folders" => "{count} საქაღალდე", "1 file" => "1 ფაილი", "{count} files" => "{count} ფაილი", +"Unable to rename file" => "ფაილის სახელის გადარქმევა ვერ მოხერხდა", "Upload" => "ატვირთვა", "File handling" => "ფაილის დამუშავება", "Maximum upload size" => "მაქსიმუმ ატვირთის ზომა", diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php index 46955bd675f..c78f58542e4 100644 --- a/apps/files/l10n/ko.php +++ b/apps/files/l10n/ko.php @@ -1,7 +1,6 @@ "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함", "Could not move %s" => "%s 항목을 이딩시키지 못하였음", -"Unable to rename file" => "파일 이름바꾸기 할 수 없음", "No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다", "There is no error, the file uploaded with success" => "파일 업로드에 성공하였습니다.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:", @@ -47,6 +46,7 @@ "{count} folders" => "폴더 {count}개", "1 file" => "파일 1개", "{count} files" => "파일 {count}개", +"Unable to rename file" => "파일 이름바꾸기 할 수 없음", "Upload" => "업로드", "File handling" => "파일 처리", "Maximum upload size" => "최대 업로드 크기", diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php index 1e7e8657074..f62bdd2d492 100644 --- a/apps/files/l10n/lv.php +++ b/apps/files/l10n/lv.php @@ -1,7 +1,6 @@ "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu", "Could not move %s" => "Nevarēja pārvietot %s", -"Unable to rename file" => "Nevarēja pārsaukt datni", "No file was uploaded. Unknown error" => "Netika augšupielādēta neviena datne. Nezināma kļūda", "There is no error, the file uploaded with success" => "Viss kārtībā, datne augšupielādēta veiksmīga", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:", @@ -46,6 +45,7 @@ "{count} folders" => "{count} mapes", "1 file" => "1 datne", "{count} files" => "{count} datnes", +"Unable to rename file" => "Nevarēja pārsaukt datni", "Upload" => "Augšupielādēt", "File handling" => "Datņu pārvaldība", "Maximum upload size" => "Maksimālais datņu augšupielādes apjoms", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index aea25779dbc..430af50072f 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -1,7 +1,6 @@ "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam", "Could not move %s" => "Kon %s niet verplaatsen", -"Unable to rename file" => "Kan bestand niet hernoemen", "No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout", "There is no error, the file uploaded with success" => "De upload van het bestand is goedgegaan.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} mappen", "1 file" => "1 bestand", "{count} files" => "{count} bestanden", +"Unable to rename file" => "Kan bestand niet hernoemen", "Upload" => "Uploaden", "File handling" => "Bestand", "Maximum upload size" => "Maximale bestandsgrootte voor uploads", diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php index 2042e7bf8ad..6d5c4c56425 100644 --- a/apps/files/l10n/nn_NO.php +++ b/apps/files/l10n/nn_NO.php @@ -1,7 +1,6 @@ "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet", "Could not move %s" => "Klarte ikkje å flytta %s", -"Unable to rename file" => "Klarte ikkje å endra filnamnet", "No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil", "There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", @@ -47,6 +46,7 @@ "{count} folders" => "{count} mapper", "1 file" => "1 fil", "{count} files" => "{count} filer", +"Unable to rename file" => "Klarte ikkje å endra filnamnet", "Upload" => "Last opp", "File handling" => "Filhandtering", "Maximum upload size" => "Maksimal opplastingsstorleik", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index ef0fd525778..65d9a4e4be2 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -1,7 +1,6 @@ "Nie można było przenieść %s - Plik o takiej nazwie już istnieje", "Could not move %s" => "Nie można było przenieść %s", -"Unable to rename file" => "Nie można zmienić nazwy pliku", "No file was uploaded. Unknown error" => "Żaden plik nie został załadowany. Nieznany błąd", "There is no error, the file uploaded with success" => "Nie było błędów, plik wysłano poprawnie.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ", @@ -47,6 +46,7 @@ "{count} folders" => "Ilość folderów: {count}", "1 file" => "1 plik", "{count} files" => "Ilość plików: {count}", +"Unable to rename file" => "Nie można zmienić nazwy pliku", "Upload" => "Wyślij", "File handling" => "Zarządzanie plikami", "Maximum upload size" => "Maksymalny rozmiar wysyłanego pliku", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index f61084105de..7c68987652c 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -1,7 +1,6 @@ "Impossível mover %s - Um arquivo com este nome já existe", "Could not move %s" => "Impossível mover %s", -"Unable to rename file" => "Impossível renomear arquivo", "No file was uploaded. Unknown error" => "Nenhum arquivo foi enviado. Erro desconhecido", "There is no error, the file uploaded with success" => "Sem erros, o arquivo foi enviado com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ", @@ -47,6 +46,7 @@ "{count} folders" => "{count} pastas", "1 file" => "1 arquivo", "{count} files" => "{count} arquivos", +"Unable to rename file" => "Impossível renomear arquivo", "Upload" => "Upload", "File handling" => "Tratamento de Arquivo", "Maximum upload size" => "Tamanho máximo para carregar", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index a5de64cc1db..15d6fc80bd3 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -1,7 +1,6 @@ "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome", "Could not move %s" => "Não foi possível move o ficheiro %s", -"Unable to rename file" => "Não foi possível renomear o ficheiro", "No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido", "There is no error, the file uploaded with success" => "Não ocorreram erros, o ficheiro foi submetido com sucesso", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize", @@ -47,6 +46,7 @@ "{count} folders" => "{count} pastas", "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", +"Unable to rename file" => "Não foi possível renomear o ficheiro", "Upload" => "Carregar", "File handling" => "Manuseamento de ficheiros", "Maximum upload size" => "Tamanho máximo de envio", diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php index b2b6ee4963f..8fdf62aeb32 100644 --- a/apps/files/l10n/ro.php +++ b/apps/files/l10n/ro.php @@ -1,7 +1,6 @@ "Nu se poate de mutat %s - Fișier cu acest nume deja există", "Could not move %s" => "Nu s-a putut muta %s", -"Unable to rename file" => "Nu s-a putut redenumi fișierul", "No file was uploaded. Unknown error" => "Nici un fișier nu a fost încărcat. Eroare necunoscută", "There is no error, the file uploaded with success" => "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste upload_max_filesize permisi in php.ini: ", @@ -47,6 +46,7 @@ "{count} folders" => "{count} foldare", "1 file" => "1 fisier", "{count} files" => "{count} fisiere", +"Unable to rename file" => "Nu s-a putut redenumi fișierul", "Upload" => "Încărcare", "File handling" => "Manipulare fișiere", "Maximum upload size" => "Dimensiune maximă admisă la încărcare", diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php index 54d6780c3d1..83412bf2be8 100644 --- a/apps/files/l10n/ru.php +++ b/apps/files/l10n/ru.php @@ -1,7 +1,6 @@ "Невозможно переместить %s - файл с таким именем уже существует", "Could not move %s" => "Невозможно переместить %s", -"Unable to rename file" => "Невозможно переименовать файл", "No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка", "There is no error, the file uploaded with success" => "Файл загружен успешно.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер установленный upload_max_filesize в php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} папок", "1 file" => "1 файл", "{count} files" => "{count} файлов", +"Unable to rename file" => "Невозможно переименовать файл", "Upload" => "Загрузка", "File handling" => "Управление файлами", "Maximum upload size" => "Максимальный размер загружаемого файла", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index 86f01bfb0ed..b7f329c3626 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -1,7 +1,6 @@ "Nie je možné presunúť %s - súbor s týmto menom už existuje", "Could not move %s" => "Nie je možné presunúť %s", -"Unable to rename file" => "Nemožno premenovať súbor", "No file was uploaded. Unknown error" => "Žiaden súbor nebol odoslaný. Neznáma chyba", "There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} priečinkov", "1 file" => "1 súbor", "{count} files" => "{count} súborov", +"Unable to rename file" => "Nemožno premenovať súbor", "Upload" => "Odoslať", "File handling" => "Nastavenie správania sa k súborom", "Maximum upload size" => "Maximálna veľkosť odosielaného súboru", diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php index 44c33d62fbe..6902d311ab7 100644 --- a/apps/files/l10n/sl.php +++ b/apps/files/l10n/sl.php @@ -1,7 +1,6 @@ "Ni mogoče premakniti %s - datoteka s tem imenom že obstaja", "Could not move %s" => "Ni mogoče premakniti %s", -"Unable to rename file" => "Ni mogoče preimenovati datoteke", "No file was uploaded. Unknown error" => "Ni poslane datoteke. Neznana napaka.", "There is no error, the file uploaded with success" => "Datoteka je uspešno naložena.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Poslana datoteka presega dovoljeno velikost, ki je določena z možnostjo upload_max_filesize v datoteki php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} map", "1 file" => "1 datoteka", "{count} files" => "{count} datotek", +"Unable to rename file" => "Ni mogoče preimenovati datoteke", "Upload" => "Pošlji", "File handling" => "Upravljanje z datotekami", "Maximum upload size" => "Največja velikost za pošiljanja", diff --git a/apps/files/l10n/sq.php b/apps/files/l10n/sq.php index fe3ae9e7a96..63c95f692e2 100644 --- a/apps/files/l10n/sq.php +++ b/apps/files/l10n/sq.php @@ -1,7 +1,6 @@ "%s nuk u spostua - Aty ekziston një skedar me të njëjtin emër", "Could not move %s" => "%s nuk u spostua", -"Unable to rename file" => "Nuk është i mundur riemërtimi i skedarit", "No file was uploaded. Unknown error" => "Nuk u ngarkua asnjë skedar. Veprim i gabuar i panjohur", "There is no error, the file uploaded with success" => "Nuk pati veprime të gabuara, skedari u ngarkua me sukses", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Skedari i ngarkuar tejkalon udhëzimin upload_max_filesize tek php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} dosje", "1 file" => "1 skedar", "{count} files" => "{count} skedarë", +"Unable to rename file" => "Nuk është i mundur riemërtimi i skedarit", "Upload" => "Ngarko", "File handling" => "Trajtimi i skedarit", "Maximum upload size" => "Dimensioni maksimal i ngarkimit", diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php index a10bd82b4cc..3be6dde91a7 100644 --- a/apps/files/l10n/sr.php +++ b/apps/files/l10n/sr.php @@ -1,7 +1,6 @@ "Не могу да преместим %s – датотека с овим именом већ постоји", "Could not move %s" => "Не могу да преместим %s", -"Unable to rename file" => "Не могу да преименујем датотеку", "No file was uploaded. Unknown error" => "Ниједна датотека није отпремљена услед непознате грешке", "There is no error, the file uploaded with success" => "Није дошло до грешке. Датотека је успешно отпремљена.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Отпремљена датотека прелази смерницу upload_max_filesize у датотеци php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} фасцикле/и", "1 file" => "1 датотека", "{count} files" => "{count} датотеке/а", +"Unable to rename file" => "Не могу да преименујем датотеку", "Upload" => "Отпреми", "File handling" => "Управљање датотекама", "Maximum upload size" => "Највећа величина датотеке", diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php index c342db37538..82d169d569c 100644 --- a/apps/files/l10n/sv.php +++ b/apps/files/l10n/sv.php @@ -1,7 +1,6 @@ "Kunde inte flytta %s - Det finns redan en fil med detta namn", "Could not move %s" => "Kan inte flytta %s", -"Unable to rename file" => "Kan inte byta namn på filen", "No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel", "There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} mappar", "1 file" => "1 fil", "{count} files" => "{count} filer", +"Unable to rename file" => "Kan inte byta namn på filen", "Upload" => "Ladda upp", "File handling" => "Filhantering", "Maximum upload size" => "Maximal storlek att ladda upp", diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php index a707edb6283..06d26edfec8 100644 --- a/apps/files/l10n/th_TH.php +++ b/apps/files/l10n/th_TH.php @@ -1,7 +1,6 @@ "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว", "Could not move %s" => "ไม่สามารถย้าย %s ได้", -"Unable to rename file" => "ไม่สามารถเปลี่ยนชื่อไฟล์ได้", "No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ", "There is no error, the file uploaded with success" => "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini", @@ -46,6 +45,7 @@ "{count} folders" => "{count} โฟลเดอร์", "1 file" => "1 ไฟล์", "{count} files" => "{count} ไฟล์", +"Unable to rename file" => "ไม่สามารถเปลี่ยนชื่อไฟล์ได้", "Upload" => "อัพโหลด", "File handling" => "การจัดกาไฟล์", "Maximum upload size" => "ขนาดไฟล์สูงสุดที่อัพโหลดได้", diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php index 1df062c994c..fd5c6bc6f09 100644 --- a/apps/files/l10n/tr.php +++ b/apps/files/l10n/tr.php @@ -1,7 +1,6 @@ "%s taşınamadı. Bu isimde dosya zaten var.", "Could not move %s" => "%s taşınamadı", -"Unable to rename file" => "Dosya adı değiştirilemedi", "No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata", "There is no error, the file uploaded with success" => "Dosya başarıyla yüklendi, hata oluşmadı", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı.", @@ -47,6 +46,7 @@ "{count} folders" => "{count} dizin", "1 file" => "1 dosya", "{count} files" => "{count} dosya", +"Unable to rename file" => "Dosya adı değiştirilemedi", "Upload" => "Yükle", "File handling" => "Dosya taşıma", "Maximum upload size" => "Maksimum yükleme boyutu", diff --git a/apps/files/l10n/ug.php b/apps/files/l10n/ug.php index 1bcd78be5ae..fb8f187adef 100644 --- a/apps/files/l10n/ug.php +++ b/apps/files/l10n/ug.php @@ -1,6 +1,5 @@ "%s يۆتكىيەلمەيدۇ", -"Unable to rename file" => "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ", "No file was uploaded. Unknown error" => "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق", "No file was uploaded" => "ھېچقانداق ھۆججەت يۈكلەنمىدى", "Missing a temporary folder" => "ۋاقىتلىق قىسقۇچ كەم.", @@ -29,6 +28,7 @@ "1 folder" => "1 قىسقۇچ", "1 file" => "1 ھۆججەت", "{count} files" => "{count} ھۆججەت", +"Unable to rename file" => "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ", "Upload" => "يۈكلە", "Save" => "ساقلا", "New" => "يېڭى", diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php index 72915630cae..324b28936e7 100644 --- a/apps/files/l10n/uk.php +++ b/apps/files/l10n/uk.php @@ -1,7 +1,6 @@ "Не вдалося перемістити %s - Файл з таким ім'ям вже існує", "Could not move %s" => "Не вдалося перемістити %s", -"Unable to rename file" => "Не вдалося перейменувати файл", "No file was uploaded. Unknown error" => "Не завантажено жодного файлу. Невідома помилка", "There is no error, the file uploaded with success" => "Файл успішно вивантажено без помилок.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ", @@ -47,6 +46,7 @@ "{count} folders" => "{count} папок", "1 file" => "1 файл", "{count} files" => "{count} файлів", +"Unable to rename file" => "Не вдалося перейменувати файл", "Upload" => "Вивантажити", "File handling" => "Робота з файлами", "Maximum upload size" => "Максимальний розмір відвантажень", diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php index 77df2b0db41..c8aa11295c8 100644 --- a/apps/files/l10n/vi.php +++ b/apps/files/l10n/vi.php @@ -1,7 +1,6 @@ "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống", "Could not move %s" => "Không thể di chuyển %s", -"Unable to rename file" => "Không thể đổi tên file", "No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định", "There is no error, the file uploaded with success" => "Không có lỗi, các tập tin đã được tải lên thành công", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "The uploaded file exceeds the upload_max_filesize directive in php.ini: ", @@ -47,6 +46,7 @@ "{count} folders" => "{count} thư mục", "1 file" => "1 tập tin", "{count} files" => "{count} tập tin", +"Unable to rename file" => "Không thể đổi tên file", "Upload" => "Tải lên", "File handling" => "Xử lý tập tin", "Maximum upload size" => "Kích thước tối đa ", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 8d4d8b2c37c..d5d2b84d123 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -1,7 +1,6 @@ "无法移动 %s - 同名文件已存在", "Could not move %s" => "无法移动 %s", -"Unable to rename file" => "无法重命名文件", "No file was uploaded. Unknown error" => "没有文件被上传。未知错误", "There is no error, the file uploaded with success" => "文件上传成功,没有错误发生", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值", @@ -47,6 +46,7 @@ "{count} folders" => "{count} 个文件夹", "1 file" => "1 个文件", "{count} files" => "{count} 个文件", +"Unable to rename file" => "无法重命名文件", "Upload" => "上传", "File handling" => "文件处理", "Maximum upload size" => "最大上传大小", diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php index 5cc7e358f02..600048a321c 100644 --- a/apps/files/l10n/zh_TW.php +++ b/apps/files/l10n/zh_TW.php @@ -1,7 +1,6 @@ "無法移動 %s - 同名的檔案已經存在", "Could not move %s" => "無法移動 %s", -"Unable to rename file" => "無法重新命名檔案", "No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。", "There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:", @@ -47,6 +46,7 @@ "{count} folders" => "{count} 個資料夾", "1 file" => "1 個檔案", "{count} files" => "{count} 個檔案", +"Unable to rename file" => "無法重新命名檔案", "Upload" => "上傳", "File handling" => "檔案處理", "Maximum upload size" => "最大上傳檔案大小", diff --git a/l10n/af_ZA/files.po b/l10n/af_ZA/files.po index e6549742d74..a1b17ff718f 100644 --- a/l10n/af_ZA/files.po +++ b/l10n/af_ZA/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/ar/files.po b/l10n/ar/files.po index 11080e1536f..4e209e0c8e5 100644 --- a/l10n/ar/files.po +++ b/l10n/ar/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "فشل في نقل الملف %s - يوجد ملف بنفس هذا ال msgid "Could not move %s" msgstr "فشل في نقل %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "فشل في اعادة تسمية الملف" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "لم يتم رفع أي ملف , خطأ غير معروف" @@ -86,7 +82,7 @@ msgstr "شارك" msgid "Delete permanently" msgstr "حذف بشكل دائم" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "إلغاء" @@ -94,43 +90,43 @@ msgstr "إلغاء" msgid "Rename" msgstr "إعادة تسميه" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "قيد الانتظار" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} موجود مسبقا" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "استبدال" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "اقترح إسم" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "إلغاء" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "استبدل {new_name} بـ {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "تراجع" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "جاري تنفيذ عملية الحذف" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "جاري رفع 1 ملف" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "مساحتك التخزينية ممتلئة, لا يمكم تحديث msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "مساحتك التخزينية امتلأت تقريبا " -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "جاري تجهيز عملية التحميل. قد تستغرق بعض الوقت اذا كان حجم الملفات كبير." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "فشل في رفع ملفاتك , إما أنها مجلد أو حجمها 0 بايت" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "تم إلغاء عملية رفع الملفات ." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "عملية رفع الملفات قيد التنفيذ. اغلاق الصفحة سوف يلغي عملية رفع الملفات." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "عنوان ال URL لا يجوز أن يكون فارغا." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "إسم مجلد غير صحيح. استخدام مصطلح \"Shared\" محجوز للنظام" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "خطأ" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "اسم" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "حجم" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "معدل" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "مجلد عدد 1" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} مجلدات" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "ملف واحد" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ملفات" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "فشل في اعادة تسمية الملف" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "رفع" @@ -279,37 +283,37 @@ msgstr "حذف الملفات" msgid "Cancel upload" msgstr "إلغاء رفع الملفات" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "لا تملك صلاحيات الكتابة هنا." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "لا يوجد شيء هنا. إرفع بعض الملفات!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "تحميل" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "إلغاء مشاركة" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "حجم الترفيع أعلى من المسموح" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "حجم الملفات التي تريد ترفيعها أعلى من المسموح على الخادم." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "يرجى الانتظار , جاري فحص الملفات ." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "الفحص الحالي" diff --git a/l10n/be/files.po b/l10n/be/files.po index a7815f9dfb2..de9d057f6ad 100644 --- a/l10n/be/files.po +++ b/l10n/be/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/bg_BG/files.po b/l10n/bg_BG/files.po index 6460328a0ce..0d49d30e76d 100644 --- a/l10n/bg_BG/files.po +++ b/l10n/bg_BG/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "Споделяне" msgid "Delete permanently" msgstr "Изтриване завинаги" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Изтриване" @@ -94,43 +90,43 @@ msgstr "Изтриване" msgid "Rename" msgstr "Преименуване" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Чакащо" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "препокриване" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "отказ" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "възтановяване" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Качването е спряно." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Грешка" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Име" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Размер" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Променено" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 папка" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} папки" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 файл" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} файла" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Качване" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Спри качването" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Няма нищо тук. Качете нещо." -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Изтегляне" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Файлът който сте избрали за качване е прекалено голям" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файловете които се опитвате да качите са по-големи от позволеното за сървъра." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Файловете се претърсват, изчакайте." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/bn_BD/files.po b/l10n/bn_BD/files.po index e3b44fed116..ff66538e585 100644 --- a/l10n/bn_BD/files.po +++ b/l10n/bn_BD/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s কে স্থানান্তর করা সম্ভব হ msgid "Could not move %s" msgstr "%s কে স্থানান্তর করা সম্ভব হলো না" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।" @@ -86,7 +82,7 @@ msgstr "ভাগাভাগি কর" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "মুছে" @@ -94,43 +90,43 @@ msgstr "মুছে" msgid "Rename" msgstr "পূনঃনামকরণ" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "মুলতুবি" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} টি বিদ্যমান" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "প্রতিস্থাপন" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "নাম সুপারিশ করুন" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "বাতিল" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} কে {old_name} নামে প্রতিস্থাপন করা হয়েছে" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "ক্রিয়া প্রত্যাহার" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "১টি ফাইল আপলোড করা হচ্ছে" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "আপনার ফাইলটি আপলোড করা সম্ভব হলো না, কেননা এটি হয় একটি ফোল্ডার কিংবা এর আকার ০ বাইট" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "যথেষ্ঠ পরিমাণ স্থান নেই" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "আপলোড বাতিল করা হয়েছে।" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL ফাঁকা রাখা যাবে না।" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "সমস্যা" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "রাম" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "আকার" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "পরিবর্তিত" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "১টি ফোল্ডার" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} টি ফোল্ডার" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "১টি ফাইল" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} টি ফাইল" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "আপলোড" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "আপলোড বাতিল কর" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "এখানে কিছুই নেই। কিছু আপলোড করুন !" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "ডাউনলোড" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "ভাগাভাগি বাতিল " -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "আপলোডের আকারটি অনেক বড়" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন " -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "বর্তমান স্ক্যানিং" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index 52940b62b98..b131f8debde 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom" msgid "Could not move %s" msgstr " No s'ha pogut moure %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "No es pot canviar el nom del fitxer" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "No s'ha carregat cap fitxer. Error desconegut" @@ -86,7 +82,7 @@ msgstr "Comparteix" msgid "Delete permanently" msgstr "Esborra permanentment" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Esborra" @@ -94,43 +90,43 @@ msgstr "Esborra" msgid "Rename" msgstr "Reanomena" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendent" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} ja existeix" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "substitueix" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugereix un nom" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancel·la" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "s'ha substituït {old_name} per {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "desfés" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "executa d'operació d'esborrar" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fitxer pujant" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fitxers pujant" @@ -156,69 +152,77 @@ msgstr "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden ac msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "S'està preparant la baixada. Pot trigar una estona si els fitxers són grans." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "No hi ha prou espai disponible" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "La pujada s'ha cancel·lat." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "La URL no pot ser buida" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nom de carpeta no vàlid. L'ús de 'Shared' està reservat per Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Error" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nom" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Mida" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificat" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 carpeta" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} carpetes" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fitxer" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} fitxers" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "No es pot canviar el nom del fitxer" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Puja" @@ -279,37 +283,37 @@ msgstr "Fitxers esborrats" msgid "Cancel upload" msgstr "Cancel·la la pujada" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "No teniu permisos d'escriptura aquí." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Res per aquí. Pugeu alguna cosa!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Baixa" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Deixa de compartir" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "La pujada és massa gran" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada del servidor" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "S'estan escanejant els fitxers, espereu" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Actualment escanejant" diff --git a/l10n/cs_CZ/files.po b/l10n/cs_CZ/files.po index 4d8a59d8c79..38b1eebdac3 100644 --- a/l10n/cs_CZ/files.po +++ b/l10n/cs_CZ/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Nelze přesunout %s - existuje soubor se stejným názvem" msgid "Could not move %s" msgstr "Nelze přesunout %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nelze přejmenovat soubor" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Soubor nebyl odeslán. Neznámá chyba" @@ -86,7 +82,7 @@ msgstr "Sdílet" msgid "Delete permanently" msgstr "Trvale odstranit" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Smazat" @@ -94,43 +90,43 @@ msgstr "Smazat" msgid "Rename" msgstr "Přejmenovat" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Nevyřízené" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} již existuje" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "nahradit" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "navrhnout název" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "zrušit" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "nahrazeno {new_name} s {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "zpět" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "provést smazání" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "odesílá se 1 soubor" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "soubory se odesílají" @@ -156,69 +152,77 @@ msgstr "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubo msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Vaše úložiště je téměř plné ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše soubory ke stažení se připravují. Pokud jsou velké může to chvíli trvat." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nelze odeslat Váš soubor, protože je to adresář, nebo je jeho velikost 0 bajtů" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nedostatek dostupného místa" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Odesílání zrušeno." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL nemůže být prázdná" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neplatný název složky. Použití 'Shared' je rezervováno pro vnitřní potřeby Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Chyba" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Název" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Velikost" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Upraveno" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 složka" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} složky" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 soubor" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} soubory" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nelze přejmenovat soubor" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Odeslat" @@ -279,37 +283,37 @@ msgstr "Odstraněné soubory" msgid "Cancel upload" msgstr "Zrušit odesílání" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Nemáte zde práva zápisu." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Žádný obsah. Nahrajte něco." -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Stáhnout" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Zrušit sdílení" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Odesílaný soubor je příliš velký" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Soubory se prohledávají, prosím čekejte." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Aktuální prohledávání" diff --git a/l10n/cy_GB/files.po b/l10n/cy_GB/files.po index 7fa36284862..3c28222335f 100644 --- a/l10n/cy_GB/files.po +++ b/l10n/cy_GB/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 14:43+0000\n" -"Last-Translator: ubuntucymraeg \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "Methwyd symud %s - Mae ffeil gyda'r enw hwn eisoes yn bodoli" msgid "Could not move %s" msgstr "Methwyd symud %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Methu ailenwi ffeil" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ni lwythwyd ffeil i fyny. Gwall anhysbys." @@ -94,43 +90,43 @@ msgstr "Dileu" msgid "Rename" msgstr "Ailenwi" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "I ddod" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} yn bodoli'n barod" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "amnewid" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "awgrymu enw" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "diddymu" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "newidiwyd {new_name} yn lle {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "dadwneud" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "cyflawni gweithred dileu" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 ffeil yn llwytho i fyny" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "ffeiliau'n llwytho i fyny" @@ -219,6 +215,14 @@ msgstr "1 ffeil" msgid "{count} files" msgstr "{count} ffeil" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Methu ailenwi ffeil" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Llwytho i fyny" diff --git a/l10n/da/files.po b/l10n/da/files.po index 7c3fb5f5a27..3fcfd963c4b 100644 --- a/l10n/da/files.po +++ b/l10n/da/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Kunne ikke flytte %s - der findes allerede en fil med dette navn" msgid "Could not move %s" msgstr "Kunne ikke flytte %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Kunne ikke omdøbe fil" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil blev uploadet. Ukendt fejl." @@ -86,7 +82,7 @@ msgstr "Del" msgid "Delete permanently" msgstr "Slet permanent" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Slet" @@ -94,43 +90,43 @@ msgstr "Slet" msgid "Rename" msgstr "Omdøb" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Afventer" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} eksisterer allerede" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "erstat" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "fortryd" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "erstattede {new_name} med {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "fortryd" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "udfør slet operation" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fil uploades" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "uploader filer" @@ -156,69 +152,77 @@ msgstr "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Dit download forberedes. Dette kan tage lidt tid ved større filer." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kan ikke uploade din fil - det er enten en mappe eller en fil med et indhold på 0 bytes." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "ikke nok tilgængelig ledig plads " -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Upload afbrudt." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URLen kan ikke være tom." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ugyldigt mappenavn. Brug af \"Shared\" er forbeholdt Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fejl" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Navn" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Størrelse" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Ændret" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fil" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} filer" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Kunne ikke omdøbe fil" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Upload" @@ -279,37 +283,37 @@ msgstr "Slettede filer" msgid "Cancel upload" msgstr "Fortryd upload" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Du har ikke skriverettigheder her." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Her er tomt. Upload noget!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Download" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Fjern deling" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Upload er for stor" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Filerne bliver indlæst, vent venligst." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Indlæser" diff --git a/l10n/de/files.po b/l10n/de/files.po index 5a0a81b37da..fb3a8aac6c8 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-09 21:00+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert berei msgid "Could not move %s" msgstr "Konnte %s nicht verschieben" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Konnte Datei nicht umbenennen" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -95,43 +91,43 @@ msgstr "Löschen" msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Ausstehend" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "Namen vorschlagen" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} ersetzt durch {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Löschvorgang ausführen" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 Datei wird hochgeladen" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "Dateien werden hoch geladen" @@ -220,6 +216,14 @@ msgstr "1 Datei" msgid "{count} files" msgstr "{count} Dateien" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Konnte Datei nicht umbenennen" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Hochladen" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 55b91f87a79..02b73e2efab 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-09 20:00+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,10 +29,6 @@ msgstr "Konnte %s nicht verschieben. Eine Datei mit diesem Namen existiert berei msgid "Could not move %s" msgstr "Konnte %s nicht verschieben" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Konnte Datei nicht umbenennen" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Keine Datei hochgeladen. Unbekannter Fehler" @@ -96,43 +92,43 @@ msgstr "Löschen" msgid "Rename" msgstr "Umbenennen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Ausstehend" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} existiert bereits" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "Namen vorschlagen" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "abbrechen" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} wurde ersetzt durch {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "rückgängig machen" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Löschvorgang ausführen" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 Datei wird hochgeladen" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "Dateien werden hoch geladen" @@ -221,6 +217,14 @@ msgstr "1 Datei" msgid "{count} files" msgstr "{count} Dateien" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Konnte Datei nicht umbenennen" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Hochladen" diff --git a/l10n/el/files.po b/l10n/el/files.po index d411ad2cbc1..6f2c4fcdfa1 100644 --- a/l10n/el/files.po +++ b/l10n/el/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Αδυναμία μετακίνησης του %s - υπάρχει ήδ msgid "Could not move %s" msgstr "Αδυναμία μετακίνησης του %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Αδυναμία μετονομασίας αρχείου" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα" @@ -86,7 +82,7 @@ msgstr "Διαμοιρασμός" msgid "Delete permanently" msgstr "Μόνιμη διαγραφή" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Διαγραφή" @@ -94,43 +90,43 @@ msgstr "Διαγραφή" msgid "Rename" msgstr "Μετονομασία" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Εκκρεμεί" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} υπάρχει ήδη" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "αντικατέστησε" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "συνιστώμενο όνομα" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ακύρωση" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "αντικαταστάθηκε το {new_name} με {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "αναίρεση" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "εκτέλεση της διαδικασίας διαγραφής" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 αρχείο ανεβαίνει" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "αρχεία ανεβαίνουν" @@ -156,69 +152,77 @@ msgstr "Ο αποθηκευτικός σας χώρος είναι γεμάτο msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Δεν υπάρχει αρκετός διαθέσιμος χώρος" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Η αποστολή ακυρώθηκε." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Η URL δεν μπορεί να είναι κενή." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Μη έγκυρο όνομα φακέλου. Η χρήση του 'Κοινόχρηστος' χρησιμοποιείται από ο Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Σφάλμα" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Όνομα" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Μέγεθος" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Τροποποιήθηκε" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 φάκελος" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} φάκελοι" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 αρχείο" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} αρχεία" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Αδυναμία μετονομασίας αρχείου" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Μεταφόρτωση" @@ -279,37 +283,37 @@ msgstr "Διαγραμμένα αρχεία" msgid "Cancel upload" msgstr "Ακύρωση αποστολής" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Δεν έχετε δικαιώματα εγγραφής εδώ." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Λήψη" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Σταμάτημα διαμοιρασμού" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Πολύ μεγάλο αρχείο προς αποστολή" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Τρέχουσα ανίχνευση" diff --git a/l10n/en@pirate/files.po b/l10n/en@pirate/files.po index 941c39cc0a6..754680e81f5 100644 --- a/l10n/en@pirate/files.po +++ b/l10n/en@pirate/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -219,6 +215,14 @@ msgstr "" msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" diff --git a/l10n/eo/files.po b/l10n/eo/files.po index 8321aacc672..780fab4f57d 100644 --- a/l10n/eo/files.po +++ b/l10n/eo/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Ne eblis movi %s: dosiero kun ĉi tiu nomo jam ekzistas" msgid "Could not move %s" msgstr "Ne eblis movi %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Ne eblis alinomigi dosieron" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Neniu dosiero alŝutiĝis. Nekonata eraro." @@ -86,7 +82,7 @@ msgstr "Kunhavigi" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Forigi" @@ -94,43 +90,43 @@ msgstr "Forigi" msgid "Rename" msgstr "Alinomigi" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Traktotaj" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} jam ekzistas" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "anstataŭigi" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugesti nomon" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "nuligi" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "anstataŭiĝis {new_name} per {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "malfari" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 dosiero estas alŝutata" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "dosieroj estas alŝutataj" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Via elŝuto pretiĝatas. Ĉi tio povas daŭri iom da tempo se la dosieroj grandas." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Ne haveblas sufiĉa spaco" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "La alŝuto nuliĝis." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL ne povas esti malplena." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nevalida dosierujnomo. Uzo de “Shared” rezervatas de Owncloud." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Eraro" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nomo" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Grando" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modifita" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 dosierujo" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} dosierujoj" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 dosiero" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} dosierujoj" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Ne eblis alinomigi dosieron" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Alŝuti" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Nuligi alŝuton" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Nenio estas ĉi tie. Alŝutu ion!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Elŝuti" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Malkunhavigi" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Alŝuto tro larĝa" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Dosieroj estas skanataj, bonvolu atendi." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Nuna skano" diff --git a/l10n/es/files.po b/l10n/es/files.po index 74327252992..70c4d26e3d5 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-04 16:20+0000\n" -"Last-Translator: ggam \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "No se puede mover %s - Ya existe un archivo con ese nombre" msgid "Could not move %s" msgstr "No se puede mover %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "No se puede renombrar el archivo" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "No se subió ningún archivo. Error desconocido" @@ -95,43 +91,43 @@ msgstr "Eliminar" msgid "Rename" msgstr "Renombrar" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendientes" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "deshacer" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Eliminar" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "subiendo 1 archivo" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "subiendo archivos" @@ -220,6 +216,14 @@ msgstr "1 archivo" msgid "{count} files" msgstr "{count} archivos" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "No se puede renombrar el archivo" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Subir" diff --git a/l10n/es_AR/files.po b/l10n/es_AR/files.po index 76340a8c729..1341e2989fe 100644 --- a/l10n/es_AR/files.po +++ b/l10n/es_AR/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "No se pudo mover %s - Un archivo con este nombre ya existe" msgid "Could not move %s" msgstr "No se pudo mover %s " -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "No fue posible cambiar el nombre al archivo" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "El archivo no fue subido. Error desconocido" @@ -86,7 +82,7 @@ msgstr "Compartir" msgid "Delete permanently" msgstr "Borrar de manera permanente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Borrar" @@ -94,43 +90,43 @@ msgstr "Borrar" msgid "Rename" msgstr "Cambiar nombre" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendientes" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} ya existe" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "reemplazar" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugerir nombre" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "reemplazado {new_name} con {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "deshacer" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Eliminar" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Subiendo 1 archivo" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "Subiendo archivos" @@ -156,69 +152,77 @@ msgstr "El almacenamiento está lleno, los archivos no se pueden seguir actualiz msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "El almacenamiento está casi lleno ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "No hay suficiente espacio disponible" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "La subida fue cancelada" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "La URL no puede estar vacía" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nombre de carpeta inválido. El uso de 'Shared' está reservado por ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Error" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nombre" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamaño" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificado" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 directorio" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} directorios" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 archivo" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} archivos" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "No fue posible cambiar el nombre al archivo" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Subir" @@ -279,37 +283,37 @@ msgstr "Archivos Borrados" msgid "Cancel upload" msgstr "Cancelar subida" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "No tenés permisos de escritura acá." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "No hay nada. ¡Subí contenido!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Descargar" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Dejar de compartir" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "El tamaño del archivo que querés subir es demasiado grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los archivos que intentás subir sobrepasan el tamaño máximo " -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Se están escaneando los archivos, por favor esperá." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Escaneo actual" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index 8d0e78eabd3..1b7c5d88378 100644 --- a/l10n/et_EE/files.po +++ b/l10n/et_EE/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 09:40+0000\n" -"Last-Translator: Rivo Zängov \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Ei saa liigutada faili %s - samanimeline fail on juba olemas" msgid "Could not move %s" msgstr "%s liigutamine ebaõnnestus" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Faili ümbernimetamine ebaõnnestus" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ühtegi faili ei laetud üles. Tundmatu viga" @@ -95,43 +91,43 @@ msgstr "Kustuta" msgid "Rename" msgstr "Nimeta ümber" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Ootel" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} on juba olemas" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "asenda" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "soovita nime" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "loobu" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "asendas nime {old_name} nimega {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "tagasi" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "teosta kustutamine" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 faili üleslaadimisel" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "failide üleslaadimine" @@ -220,6 +216,14 @@ msgstr "1 fail" msgid "{count} files" msgstr "{count} faili" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Faili ümbernimetamine ebaõnnestus" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Lae üles" diff --git a/l10n/eu/files.po b/l10n/eu/files.po index 61fa18f263b..fd7b57bfd49 100644 --- a/l10n/eu/files.po +++ b/l10n/eu/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Ezin da %s mugitu - Izen hau duen fitxategia dagoeneko existitzen da" msgid "Could not move %s" msgstr "Ezin dira fitxategiak mugitu %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Ezin izan da fitxategia berrizendatu" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ez da fitxategirik igo. Errore ezezaguna" @@ -86,7 +82,7 @@ msgstr "Elkarbanatu" msgid "Delete permanently" msgstr "Ezabatu betirako" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Ezabatu" @@ -94,43 +90,43 @@ msgstr "Ezabatu" msgid "Rename" msgstr "Berrizendatu" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Zain" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} dagoeneko existitzen da" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ordeztu" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "aholkatu izena" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ezeztatu" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr " {new_name}-k {old_name} ordezkatu du" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "desegin" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Ezabatu" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "fitxategi 1 igotzen" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fitxategiak igotzen" @@ -156,69 +152,77 @@ msgstr "Zure biltegiratzea beterik dago, ezingo duzu aurrerantzean fitxategirik msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Zure biltegiratzea nahiko beterik dago (%{usedSpacePercent})" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Zure deskarga prestatu egin behar da. Denbora bat har lezake fitxategiak handiak badira. " -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Ezin izan da zure fitxategia igo karpeta bat delako edo 0 byte dituelako" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Ez dago leku nahikorik." -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Igoera ezeztatuta" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URLa ezin da hutsik egon." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Baliogabeako karpeta izena. 'Shared' izena Owncloudek erreserbatzen du" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Errorea" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Izena" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamaina" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Aldatuta" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "karpeta bat" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} karpeta" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "fitxategi bat" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} fitxategi" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Ezin izan da fitxategia berrizendatu" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Igo" @@ -279,37 +283,37 @@ msgstr "Ezabatutako fitxategiak" msgid "Cancel upload" msgstr "Ezeztatu igoera" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Ez duzu hemen idazteko baimenik." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ez dago ezer. Igo zerbait!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Deskargatu" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Ez elkarbanatu" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Igoera handiegia da" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Igotzen saiatzen ari zaren fitxategiak zerbitzari honek igotzeko onartzen duena baino handiagoak dira." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Fitxategiak eskaneatzen ari da, itxoin mezedez." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Orain eskaneatzen ari da" diff --git a/l10n/fa/files.po b/l10n/fa/files.po index 003b3ef9cca..d066b537fc2 100644 --- a/l10n/fa/files.po +++ b/l10n/fa/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s نمی تواند حرکت کند - در حال حاضر پرونده msgid "Could not move %s" msgstr "%s نمی تواند حرکت کند " -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "قادر به تغییر نام پرونده نیست." - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "هیچ فایلی آپلود نشد.خطای ناشناس" @@ -86,7 +82,7 @@ msgstr "اشتراک‌گذاری" msgid "Delete permanently" msgstr "حذف قطعی" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "حذف" @@ -94,43 +90,43 @@ msgstr "حذف" msgid "Rename" msgstr "تغییرنام" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "در انتظار" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{نام _جدید} در حال حاضر وجود دارد." -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "جایگزین" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "پیشنهاد نام" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "لغو" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{نام_جدید} با { نام_قدیمی} جایگزین شد." -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "بازگشت" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "انجام عمل حذف" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 پرونده آپلود شد." -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "بارگذاری فایل ها" @@ -156,69 +152,77 @@ msgstr "فضای ذخیره ی شما کاملا پر است، بیش از ای msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "فضای ذخیره ی شما تقریبا پر است ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "دانلود شما در حال آماده شدن است. در صورتیکه پرونده ها بزرگ باشند ممکن است مدتی طول بکشد." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "فضای کافی در دسترس نیست" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "بار گذاری لغو شد" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "آپلودکردن پرونده در حال پیشرفت است. در صورت خروج از صفحه آپلود لغو میگردد. " -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL نمی تواند خالی باشد." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "نام پوشه نامعتبر است. استفاده از \" به اشتراک گذاشته شده \" متعلق به سایت Owncloud است." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "خطا" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "نام" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "اندازه" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "تاریخ" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 پوشه" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{ شمار} پوشه ها" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 پرونده" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{ شمار } فایل ها" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "قادر به تغییر نام پرونده نیست." + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "بارگزاری" @@ -279,37 +283,37 @@ msgstr "فایل های حذف شده" msgid "Cancel upload" msgstr "متوقف کردن بار گذاری" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "شما اجازه ی نوشتن در اینجا را ندارید" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "اینجا هیچ چیز نیست." -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "دانلود" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "لغو اشتراک" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "پرونده ها در حال بازرسی هستند لطفا صبر کنید" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "بازرسی کنونی" diff --git a/l10n/fi/files.po b/l10n/fi/files.po index af389b21f9a..a43906c14d2 100644 --- a/l10n/fi/files.po +++ b/l10n/fi/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/fi_FI/files.po b/l10n/fi_FI/files.po index 861e5ebe9fd..8ef0a08d519 100644 --- a/l10n/fi_FI/files.po +++ b/l10n/fi_FI/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemas msgid "Could not move %s" msgstr "Kohteen %s siirto ei onnistunut" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Tiedoston nimeäminen uudelleen ei onnistunut" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Tiedostoa ei lähetetty. Tuntematon virhe" @@ -86,7 +82,7 @@ msgstr "Jaa" msgid "Delete permanently" msgstr "Poista pysyvästi" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Poista" @@ -94,43 +90,43 @@ msgstr "Poista" msgid "Rename" msgstr "Nimeä uudelleen" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Odottaa" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} on jo olemassa" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "korvaa" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "ehdota nimeä" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "peru" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "kumoa" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "suorita poistotoiminto" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkro msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Tallennustila on melkein loppu ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Lataustasi valmistellaan. Tämä saattaa kestää hetken, jos tiedostot ovat suuria kooltaan." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Tilaa ei ole riittävästi" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Lähetys peruttu." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Verkko-osoite ei voi olla tyhjä" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Virhe" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nimi" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Koko" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Muokattu" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 kansio" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} kansiota" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 tiedosto" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} tiedostoa" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Tiedoston nimeäminen uudelleen ei onnistunut" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Lähetä" @@ -279,37 +283,37 @@ msgstr "Poistetut tiedostot" msgid "Cancel upload" msgstr "Peru lähetys" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Tunnuksellasi ei ole kirjoitusoikeuksia tänne." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Täällä ei ole mitään. Lähetä tänne jotakin!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Lataa" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Peru jakaminen" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Lähetettävä tiedosto on liian suuri" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Tiedostoja tarkistetaan, odota hetki." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Tämänhetkinen tutkinta" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index f93f948ef90..bec531ce06b 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-07 15:00+0000\n" -"Last-Translator: MathieuP \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà" msgid "Could not move %s" msgstr "Impossible de déplacer %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Impossible de renommer le fichier" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Aucun fichier n'a été envoyé. Erreur inconnue" @@ -95,43 +91,43 @@ msgstr "Supprimer" msgid "Rename" msgstr "Renommer" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "En attente" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} existe déjà" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "remplacer" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "Suggérer un nom" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "annuler" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} a été remplacé par {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "annuler" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "effectuer l'opération de suppression" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fichier en cours d'envoi" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fichiers en cours d'envoi" @@ -220,6 +216,14 @@ msgstr "1 fichier" msgid "{count} files" msgstr "{count} fichiers" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Impossible de renommer le fichier" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Envoyer" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index 1287443bc34..0c0309bfa6e 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-04 09:50+0000\n" -"Last-Translator: mbouzada \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Non se moveu %s - Xa existe un ficheiro con ese nome." msgid "Could not move %s" msgstr "Non foi posíbel mover %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Non é posíbel renomear o ficheiro" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Non se enviou ningún ficheiro. Produciuse un erro descoñecido." @@ -95,43 +91,43 @@ msgstr "Eliminar" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendentes" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "Xa existe un {new_name}" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "substituír" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "suxerir nome" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "substituír {new_name} por {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "desfacer" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "realizar a operación de eliminación" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Enviándose 1 ficheiro" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "ficheiros enviándose" @@ -220,6 +216,14 @@ msgstr "1 ficheiro" msgid "{count} files" msgstr "{count} ficheiros" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Non é posíbel renomear o ficheiro" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Enviar" diff --git a/l10n/he/files.po b/l10n/he/files.po index 9466616bd3b..1082f58adcb 100644 --- a/l10n/he/files.po +++ b/l10n/he/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "לא הועלה קובץ. טעות בלתי מזוהה." @@ -86,7 +82,7 @@ msgstr "שתף" msgid "Delete permanently" msgstr "מחק לצמיתות" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "מחיקה" @@ -94,43 +90,43 @@ msgstr "מחיקה" msgid "Rename" msgstr "שינוי שם" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "ממתין" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} כבר קיים" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "החלפה" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "הצעת שם" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ביטול" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} הוחלף ב־{old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "ביטול" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "קובץ אחד נשלח" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "ההעלאה בוטלה." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "קישור אינו יכול להיות ריק." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "שגיאה" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "שם" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "גודל" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "זמן שינוי" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "תיקייה אחת" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} תיקיות" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "קובץ אחד" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} קבצים" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "העלאה" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "ביטול ההעלאה" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "אין כאן שום דבר. אולי ברצונך להעלות משהו?" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "הורדה" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "הסר שיתוף" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "העלאה גדולה מידי" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "הקבצים נסרקים, נא להמתין." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "הסריקה הנוכחית" diff --git a/l10n/hi/files.po b/l10n/hi/files.po index e2c6db13a0f..9474cdb73f6 100644 --- a/l10n/hi/files.po +++ b/l10n/hi/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/hr/files.po b/l10n/hr/files.po index bf86e8720ad..834f399695c 100644 --- a/l10n/hr/files.po +++ b/l10n/hr/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "Podijeli" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Obriši" @@ -94,43 +90,43 @@ msgstr "Obriši" msgid "Rename" msgstr "Promjeni ime" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "U tijeku" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "zamjeni" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "predloži ime" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "odustani" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "vrati" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 datoteka se učitava" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "datoteke se učitavaju" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nemoguće poslati datoteku jer je prazna ili je direktorij" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Slanje poništeno." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Učitavanje datoteke. Napuštanjem stranice će prekinuti učitavanje." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Greška" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Ime" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Veličina" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Zadnja promjena" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Učitaj" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Prekini upload" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Nema ničega u ovoj mapi. Pošalji nešto!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Preuzimanje" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Makni djeljenje" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Prijenos je preobiman" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Datoteke koje pokušavate prenijeti prelaze maksimalnu veličinu za prijenos datoteka na ovom poslužitelju." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Datoteke se skeniraju, molimo pričekajte." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Trenutno skeniranje" diff --git a/l10n/hu_HU/files.po b/l10n/hu_HU/files.po index 6b5c091cb94..e619f8ec6f9 100644 --- a/l10n/hu_HU/files.po +++ b/l10n/hu_HU/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s áthelyezése nem sikerült - már létezik másik fájl ezzel a név msgid "Could not move %s" msgstr "Nem sikerült %s áthelyezése" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nem lehet átnevezni a fájlt" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nem történt feltöltés. Ismeretlen hiba" @@ -86,7 +82,7 @@ msgstr "Megosztás" msgid "Delete permanently" msgstr "Végleges törlés" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Törlés" @@ -94,43 +90,43 @@ msgstr "Törlés" msgid "Rename" msgstr "Átnevezés" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Folyamatban" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} már létezik" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "írjuk fölül" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "legyen más neve" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "mégse" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} fájlt kicseréltük ezzel: {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "visszavonás" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "a törlés végrehajtása" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fájl töltődik föl" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fájl töltődik föl" @@ -156,69 +152,77 @@ msgstr "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhat msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "A tároló majdnem tele van ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nincs elég szabad hely" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "A feltöltést megszakítottuk." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Az URL nem lehet semmi." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Érvénytelen mappanév. A név használata csak a Owncloud számára lehetséges." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Hiba" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Név" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Méret" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Módosítva" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mappa" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mappa" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fájl" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} fájl" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nem lehet átnevezni a fájlt" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Feltöltés" @@ -279,37 +283,37 @@ msgstr "Törölt fájlok" msgid "Cancel upload" msgstr "A feltöltés megszakítása" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Itt nincs írásjoga." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Itt nincs semmi. Töltsön fel valamit!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Letöltés" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "A megosztás visszavonása" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "A feltöltés túl nagy" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "A fájllista ellenőrzése zajlik, kis türelmet!" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Ellenőrzés alatt" diff --git a/l10n/hy/files.po b/l10n/hy/files.po index f372a97b7a0..52f66f4a8d3 100644 --- a/l10n/hy/files.po +++ b/l10n/hy/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Ջնջել" @@ -94,43 +90,43 @@ msgstr "Ջնջել" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Բեռնել" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/ia/files.po b/l10n/ia/files.po index 4e14c66dfd8..94c9b971fa6 100644 --- a/l10n/ia/files.po +++ b/l10n/ia/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-04 01:58+0200\n" -"PO-Revision-Date: 2013-05-03 13:10+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -94,43 +90,43 @@ msgstr "Deler" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -219,6 +215,14 @@ msgstr "" msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Incargar" diff --git a/l10n/id/files.po b/l10n/id/files.po index b7dcb610f8b..12d75c1e307 100644 --- a/l10n/id/files.po +++ b/l10n/id/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Tidak dapat memindahkan %s - Berkas dengan nama ini sudah ada" msgid "Could not move %s" msgstr "Tidak dapat memindahkan %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Tidak dapat mengubah nama berkas" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Tidak ada berkas yang diunggah. Galat tidak dikenal." @@ -86,7 +82,7 @@ msgstr "Bagikan" msgid "Delete permanently" msgstr "Hapus secara permanen" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Hapus" @@ -94,43 +90,43 @@ msgstr "Hapus" msgid "Rename" msgstr "Ubah nama" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Menunggu" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} sudah ada" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ganti" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sarankan nama" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "batalkan" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "mengganti {new_name} dengan {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "urungkan" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Lakukan operasi penghapusan" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 berkas diunggah" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "berkas diunggah" @@ -156,69 +152,77 @@ msgstr "Ruang penyimpanan Anda penuh, berkas tidak dapat diperbarui atau disinkr msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ruang penyimpanan hampir penuh ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Unduhan Anda sedang disiapkan. Prosesnya dapat berlangsung agak lama jika ukuran berkasnya besar." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Gagal mengunggah berkas Anda karena berupa direktori atau mempunyai ukuran 0 byte" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Ruang penyimpanan tidak mencukupi" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Pengunggahan dibatalkan." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Berkas sedang diunggah. Meninggalkan halaman ini akan membatalkan proses." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL tidak boleh kosong" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nama folder salah. Nama 'Shared' telah digunakan oleh Owncloud." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Galat" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nama" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Ukuran" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 folder" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} folder" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 berkas" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} berkas" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Tidak dapat mengubah nama berkas" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Unggah" @@ -279,37 +283,37 @@ msgstr "Berkas yang dihapus" msgid "Cancel upload" msgstr "Batal pengunggahan" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Anda tidak memiliki izin menulis di sini." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Tidak ada apa-apa di sini. Unggah sesuatu!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Unduh" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Batalkan berbagi" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Yang diunggah terlalu besar" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Berkas sedang dipindai, silakan tunggu." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Yang sedang dipindai" diff --git a/l10n/is/files.po b/l10n/is/files.po index c9604990680..62c5f2deed6 100644 --- a/l10n/is/files.po +++ b/l10n/is/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Gat ekki fært %s - Skrá með þessu nafni er þegar til" msgid "Could not move %s" msgstr "Gat ekki fært %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Gat ekki endurskýrt skrá" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Engin skrá var send inn. Óþekkt villa." @@ -86,7 +82,7 @@ msgstr "Deila" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Eyða" @@ -94,43 +90,43 @@ msgstr "Eyða" msgid "Rename" msgstr "Endurskýra" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Bíður" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} er þegar til" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "yfirskrifa" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "stinga upp á nafni" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "hætta við" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "yfirskrifaði {new_name} með {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "afturkalla" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 skrá innsend" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Innsending á skrá mistókst, hugsanlega sendir þú möppu eða skráin er 0 bæti." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Ekki nægt pláss tiltækt" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Hætt við innsendingu." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Vefslóð má ekki vera tóm." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Óleyfilegt nafn á möppu. Nafnið 'Shared' er frátekið fyrir Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Villa" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nafn" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Stærð" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Breytt" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mappa" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} möppur" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 skrá" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} skrár" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Gat ekki endurskýrt skrá" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Senda inn" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Hætta við innsendingu" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ekkert hér. Settu eitthvað inn!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Niðurhal" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Hætta deilingu" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Innsend skrá er of stór" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Verið er að skima skrár, vinsamlegast hinkraðu." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Er að skima" diff --git a/l10n/it/files.po b/l10n/it/files.po index f5ae1c2dbea..59ff6298b47 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Impossibile spostare %s - un file con questo nome esiste già" msgid "Could not move %s" msgstr "Impossibile spostare %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Impossibile rinominare il file" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nessun file è stato inviato. Errore sconosciuto" @@ -86,7 +82,7 @@ msgstr "Condividi" msgid "Delete permanently" msgstr "Elimina definitivamente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Elimina" @@ -94,43 +90,43 @@ msgstr "Elimina" msgid "Rename" msgstr "Rinomina" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "In corso" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} esiste già" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "sostituisci" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "suggerisci nome" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "annulla" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "sostituito {new_name} con {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "annulla" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "esegui l'operazione di eliminazione" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 file in fase di caricamento" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "caricamento file" @@ -156,69 +152,77 @@ msgstr "Lo spazio di archiviazione è pieno, i file non possono essere più aggi msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Il tuo scaricamento è in fase di preparazione. Ciò potrebbe richiedere del tempo se i file sono grandi." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossibile caricare il file poiché è una cartella o ha una dimensione di 0 byte" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Spazio disponibile insufficiente" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Invio annullato" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "L'URL non può essere vuoto." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome della cartella non valido. L'uso di 'Shared' è riservato da ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Errore" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Dimensione" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificato" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 cartella" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} cartelle" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 file" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} file" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Impossibile rinominare il file" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Carica" @@ -279,37 +283,37 @@ msgstr "File eliminati" msgid "Cancel upload" msgstr "Annulla invio" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Qui non hai i permessi di scrittura." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Non c'è niente qui. Carica qualcosa!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Scarica" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Rimuovi condivisione" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Caricamento troppo grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "I file che stai provando a caricare superano la dimensione massima consentita su questo server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Scansione dei file in corso, attendi" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Scansione corrente" diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po index ef82ef3ed32..bf5947b4430 100644 --- a/l10n/ja_JP/files.po +++ b/l10n/ja_JP/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s を移動できませんでした ― この名前のファイルは msgid "Could not move %s" msgstr "%s を移動できませんでした" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "ファイル名の変更ができません" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ファイルは何もアップロードされていません。不明なエラー" @@ -86,7 +82,7 @@ msgstr "共有" msgid "Delete permanently" msgstr "完全に削除する" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "削除" @@ -94,43 +90,43 @@ msgstr "削除" msgid "Rename" msgstr "名前の変更" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "中断" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} はすでに存在しています" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "置き換え" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "推奨名称" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "キャンセル" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{old_name} を {new_name} に置換" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "元に戻す" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "削除を実行" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "ファイルを1つアップロード中" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "ファイルをアップロード中" @@ -156,69 +152,77 @@ msgstr "あなたのストレージは一杯です。ファイルの更新と同 msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "あなたのストレージはほぼ一杯です({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "ダウンロードの準備中です。ファイルサイズが大きい場合は少し時間がかかるかもしれません。" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ディレクトリもしくは0バイトのファイルはアップロードできません" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "利用可能なスペースが十分にありません" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "アップロードはキャンセルされました。" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URLは空にできません。" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無効なフォルダ名です。'Shared' の利用は ownCloud が予約済みです。" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "エラー" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "名前" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "サイズ" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "変更" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 フォルダ" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} フォルダ" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ファイル" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ファイル" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "ファイル名の変更ができません" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "アップロード" @@ -279,37 +283,37 @@ msgstr "削除ファイル" msgid "Cancel upload" msgstr "アップロードをキャンセル" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "あなたには書き込み権限がありません。" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "ここには何もありません。何かアップロードしてください。" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "ダウンロード" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "共有解除" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "アップロードには大きすぎます。" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "アップロードしようとしているファイルは、サーバで規定された最大サイズを超えています。" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "ファイルをスキャンしています、しばらくお待ちください。" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "スキャン中" diff --git a/l10n/ka/files.po b/l10n/ka/files.po index 25301e504fb..b139973c0ca 100644 --- a/l10n/ka/files.po +++ b/l10n/ka/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "გადმოწერა" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/ka_GE/files.po b/l10n/ka_GE/files.po index b20fd4c236f..4977e0d493f 100644 --- a/l10n/ka_GE/files.po +++ b/l10n/ka_GE/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 09:02+0000\n" -"Last-Translator: drlinux64 \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "%s –ის გადატანა ვერ მოხერხდა msgid "Could not move %s" msgstr "%s –ის გადატანა ვერ მოხერხდა" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "ფაილის სახელის გადარქმევა ვერ მოხერხდა" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ფაილი არ აიტვირთა. უცნობი შეცდომა" @@ -86,7 +82,7 @@ msgstr "გაზიარება" msgid "Delete permanently" msgstr "სრულად წაშლა" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "წაშლა" @@ -94,43 +90,43 @@ msgstr "წაშლა" msgid "Rename" msgstr "გადარქმევა" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "მოცდის რეჟიმში" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} უკვე არსებობს" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "შეცვლა" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "სახელის შემოთავაზება" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "უარყოფა" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} შეცვლილია {old_name}–ით" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "დაბრუნება" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "მიმდინარეობს წაშლის ოპერაცია" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 ფაილის ატვირთვა" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "ფაილები იტვირთება" @@ -156,69 +152,77 @@ msgstr "თქვენი საცავი გადაივსო. ფა msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "გადმოწერის მოთხოვნა მუშავდება. ის მოითხოვს გარკვეულ დროს რაგდან ფაილები არის დიდი ზომის." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "საკმარისი ადგილი არ არის" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "ატვირთვა შეჩერებულ იქნა." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL არ შეიძლება იყოს ცარიელი." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "დაუშვებელი ფოლდერის სახელი. 'Shared'–ის გამოყენება რეზერვირებულია Owncloud–ის მიერ" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "შეცდომა" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "სახელი" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "ზომა" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "შეცვლილია" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 საქაღალდე" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} საქაღალდე" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ფაილი" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ფაილი" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "ფაილის სახელის გადარქმევა ვერ მოხერხდა" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "ატვირთვა" @@ -279,37 +283,37 @@ msgstr "წაშლილი ფაილები" msgid "Cancel upload" msgstr "ატვირთვის გაუქმება" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "თქვენ არ გაქვთ ჩაწერის უფლება აქ." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "აქ არაფერი არ არის. ატვირთე რამე!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "ჩამოტვირთვა" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "გაუზიარებადი" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "ასატვირთი ფაილი ძალიან დიდია" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "მიმდინარეობს ფაილების სკანირება, გთხოვთ დაელოდოთ." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "მიმდინარე სკანირება" diff --git a/l10n/kn/files.po b/l10n/kn/files.po index 7e61c23fc10..6dc22644115 100644 --- a/l10n/kn/files.po +++ b/l10n/kn/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kannada (http://www.transifex.com/projects/p/owncloud/language/kn/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/ko/files.po b/l10n/ko/files.po index 6a764822f6c..6ca79779ec3 100644 --- a/l10n/ko/files.po +++ b/l10n/ko/files.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-08 15:50+0000\n" -"Last-Translator: Sungjin Gang \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,10 +29,6 @@ msgstr "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존 msgid "Could not move %s" msgstr "%s 항목을 이딩시키지 못하였음" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "파일 이름바꾸기 할 수 없음" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다" @@ -96,43 +92,43 @@ msgstr "삭제" msgid "Rename" msgstr "이름 바꾸기" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "대기 중" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name}이(가) 이미 존재함" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "바꾸기" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "이름 제안" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "취소" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{old_name}이(가) {new_name}(으)로 대체됨" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "되돌리기" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "삭제 작업중" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "파일 1개 업로드 중" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "파일 업로드중" @@ -221,6 +217,14 @@ msgstr "파일 1개" msgid "{count} files" msgstr "파일 {count}개" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "파일 이름바꾸기 할 수 없음" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "업로드" diff --git a/l10n/ku_IQ/files.po b/l10n/ku_IQ/files.po index 0eab1067b2f..faec0ff8edb 100644 --- a/l10n/ku_IQ/files.po +++ b/l10n/ku_IQ/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "ناونیشانی به‌سته‌ر نابێت به‌تاڵ بێت." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "هه‌ڵه" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "ناو" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "بارکردن" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "داگرتن" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/lb/files.po b/l10n/lb/files.po index 9c56c3d4da4..b1e060dc20e 100644 --- a/l10n/lb/files.po +++ b/l10n/lb/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "Deelen" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Läschen" @@ -94,43 +90,43 @@ msgstr "Läschen" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ersetzen" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ofbriechen" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "réckgängeg man" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kann deng Datei net eroplueden well et en Dossier ass oder 0 byte grouss ass." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Upload ofgebrach." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fehler" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Numm" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Gréisst" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Geännert" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Eroplueden" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Upload ofbriechen" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Hei ass näischt. Lued eppes rop!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Download" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Net méi deelen" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Upload ze grouss" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Fichieren gi gescannt, war weg." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Momentane Scan" diff --git a/l10n/lt_LT/files.po b/l10n/lt_LT/files.po index 2178a80a06b..4c54e269f65 100644 --- a/l10n/lt_LT/files.po +++ b/l10n/lt_LT/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "Dalintis" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Ištrinti" @@ -94,43 +90,43 @@ msgstr "Ištrinti" msgid "Rename" msgstr "Pervadinti" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Laukiantis" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} jau egzistuoja" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "pakeisti" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "pasiūlyti pavadinimą" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "atšaukti" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "pakeiskite {new_name} į {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "anuliuoti" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "įkeliamas 1 failas" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Įkėlimas atšauktas." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Klaida" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Pavadinimas" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Dydis" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Pakeista" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 aplankalas" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} aplankalai" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 failas" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} failai" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Įkelti" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Atšaukti siuntimą" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Čia tuščia. Įkelkite ką nors!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Atsisiųsti" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Nebesidalinti" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Įkėlimui failas per didelis" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Skenuojami failai, prašome palaukti." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Šiuo metu skenuojama" diff --git a/l10n/lv/files.po b/l10n/lv/files.po index f4d2f07452c..5077cd29172 100644 --- a/l10n/lv/files.po +++ b/l10n/lv/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu" msgid "Could not move %s" msgstr "Nevarēja pārvietot %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nevarēja pārsaukt datni" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Netika augšupielādēta neviena datne. Nezināma kļūda" @@ -86,7 +82,7 @@ msgstr "Dalīties" msgid "Delete permanently" msgstr "Dzēst pavisam" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Dzēst" @@ -94,43 +90,43 @@ msgstr "Dzēst" msgid "Rename" msgstr "Pārsaukt" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Gaida savu kārtu" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} jau eksistē" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "aizvietot" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "ieteiktais nosaukums" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "atcelt" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "aizvietoja {new_name} ar {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "atsaukt" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "veikt dzēšanas darbību" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Augšupielādē 1 datni" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tā ir 0 baitu liela" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nepietiek brīvas vietas" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Augšupielāde ir atcelta." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL nevar būt tukšs." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nederīgs mapes nosaukums. “Koplietots” izmantojums ir rezervēts ownCloud servisam." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Kļūda" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nosaukums" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Izmērs" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Mainīts" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mape" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mapes" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 datne" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} datnes" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nevarēja pārsaukt datni" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Augšupielādēt" @@ -279,37 +283,37 @@ msgstr "Dzēstās datnes" msgid "Cancel upload" msgstr "Atcelt augšupielādi" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Jums nav tiesību šeit rakstīt." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Lejupielādēt" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Pārtraukt dalīšanos" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Datne ir par lielu, lai to augšupielādētu" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Šobrīd tiek caurskatīts" diff --git a/l10n/mk/files.po b/l10n/mk/files.po index ee5a7fa3ff5..15433ffccd4 100644 --- a/l10n/mk/files.po +++ b/l10n/mk/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ниту еден фајл не се вчита. Непозната грешка" @@ -86,7 +82,7 @@ msgstr "Сподели" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Избриши" @@ -94,43 +90,43 @@ msgstr "Избриши" msgid "Rename" msgstr "Преименувај" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Чека" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} веќе постои" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "замени" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "предложи име" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "откажи" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "заменета {new_name} со {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "врати" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 датотека се подига" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Преземањето е прекинато." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Адресата неможе да биде празна." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Грешка" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Име" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Големина" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Променето" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 папка" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} папки" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 датотека" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} датотеки" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Подигни" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Откажи прикачување" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Тука нема ништо. Снимете нешто!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Преземи" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Не споделувај" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Фајлот кој се вчитува е преголем" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Се скенираат датотеки, ве молам почекајте." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Моментално скенирам" diff --git a/l10n/ms_MY/files.po b/l10n/ms_MY/files.po index ffc6777c0f3..df4e1fb7804 100644 --- a/l10n/ms_MY/files.po +++ b/l10n/ms_MY/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Tiada fail dimuatnaik. Ralat tidak diketahui." @@ -86,7 +82,7 @@ msgstr "Kongsi" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Padam" @@ -94,43 +90,43 @@ msgstr "Padam" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Dalam proses" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ganti" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "Batal" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Tidak boleh memuatnaik fail anda kerana mungkin ianya direktori atau saiz fail 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Muatnaik dibatalkan." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Ralat" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nama" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Saiz" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Dimodifikasi" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Muat naik" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Batal muat naik" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Tiada apa-apa di sini. Muat naik sesuatu!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Muat turun" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Muatnaik terlalu besar" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Fail sedang diimbas, harap bersabar." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Imbasan semasa" diff --git a/l10n/my_MM/files.po b/l10n/my_MM/files.po index c524b59a4cc..fedecb2ad5a 100644 --- a/l10n/my_MM/files.po +++ b/l10n/my_MM/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "ဒေါင်းလုတ်" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/nb_NO/files.po b/l10n/nb_NO/files.po index a7f905b6518..ea77c752b34 100644 --- a/l10n/nb_NO/files.po +++ b/l10n/nb_NO/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer ble lastet opp. Ukjent feil." @@ -86,7 +82,7 @@ msgstr "Del" msgid "Delete permanently" msgstr "Slett permanent" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Slett" @@ -94,43 +90,43 @@ msgstr "Slett" msgid "Rename" msgstr "Omdøp" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Ventende" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} finnes allerede" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "erstatt" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "foreslå navn" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "erstatt {new_name} med {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "angre" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fil lastes opp" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "filer lastes opp" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Opplasting avbrutt." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL-en kan ikke være tom." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Feil" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Navn" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Størrelse" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Endret" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mappe" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mapper" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fil" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} filer" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Last opp" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "Avbryt opplasting" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ingenting her. Last opp noe!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Last ned" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Avslutt deling" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Filen er for stor" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filene du prøver å laste opp er for store for å laste opp til denne serveren." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Skanner etter filer, vennligst vent." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Pågående skanning" diff --git a/l10n/ne/files.po b/l10n/ne/files.po index 1bd24b1346f..a20804fbfeb 100644 --- a/l10n/ne/files.po +++ b/l10n/ne/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Nepali (http://www.transifex.com/projects/p/owncloud/language/ne/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index f1d984cf414..1100a0517fb 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Kon %s niet verplaatsen - Er bestaat al een bestand met deze naam" msgid "Could not move %s" msgstr "Kon %s niet verplaatsen" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Kan bestand niet hernoemen" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Er was geen bestand geladen. Onbekende fout" @@ -86,7 +82,7 @@ msgstr "Delen" msgid "Delete permanently" msgstr "Verwijder definitief" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Verwijder" @@ -94,43 +90,43 @@ msgstr "Verwijder" msgid "Rename" msgstr "Hernoem" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "In behandeling" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} bestaat al" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "vervang" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "Stel een naam voor" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "annuleren" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "verving {new_name} met {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "ongedaan maken" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "uitvoeren verwijderactie" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 bestand wordt ge-upload" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "bestanden aan het uploaden" @@ -156,69 +152,77 @@ msgstr "Uw opslagruimte zit vol, Bestanden kunnen niet meer worden ge-upload of msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Uw download wordt voorbereid. Dit kan enige tijd duren bij grote bestanden." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Het lukt niet om uw bestand te uploaded, omdat het een folder of 0 bytes is" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Niet genoeg ruimte beschikbaar" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Uploaden geannuleerd." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL kan niet leeg zijn." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ongeldige mapnaam. Gebruik van'Gedeeld' is voorbehouden aan Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fout" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Naam" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Grootte" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Aangepast" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 map" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mappen" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 bestand" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} bestanden" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Kan bestand niet hernoemen" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Uploaden" @@ -279,37 +283,37 @@ msgstr "Verwijderde bestanden" msgid "Cancel upload" msgstr "Upload afbreken" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "U hebt hier geen schrijfpermissies." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Er bevindt zich hier niets. Upload een bestand!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Downloaden" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Stop met delen" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Upload is te groot" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "De bestanden die u probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Bestanden worden gescand, even wachten." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Er wordt gescand" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index 7f244a9be09..e817942480c 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-07 20:20+0000\n" -"Last-Translator: unhammer \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet msgid "Could not move %s" msgstr "Klarte ikkje å flytta %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Klarte ikkje å endra filnamnet" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen filer lasta opp. Ukjend feil" @@ -95,43 +91,43 @@ msgstr "Slett" msgid "Rename" msgstr "Endra namn" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Under vegs" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} finst allereie" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "byt ut" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "føreslå namn" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "bytte ut {new_name} med {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "angre" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "utfør sletting" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fil lastar opp" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "filer lastar opp" @@ -220,6 +216,14 @@ msgstr "1 fil" msgid "{count} files" msgstr "{count} filer" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Klarte ikkje å endra filnamnet" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Last opp" diff --git a/l10n/oc/files.po b/l10n/oc/files.po index 7bff1f0e1bc..3ce89e5ae39 100644 --- a/l10n/oc/files.po +++ b/l10n/oc/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "Parteja" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Escafa" @@ -94,43 +90,43 @@ msgstr "Escafa" msgid "Rename" msgstr "Torna nomenar" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Al esperar" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "remplaça" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "nom prepausat" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "anulla" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "defar" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 fichièr al amontcargar" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fichièrs al amontcargar" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossible d'amontcargar lo teu fichièr qu'es un repertòri o que ten pas que 0 octet." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Amontcargar anullat." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. " -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Error" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nom" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Talha" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificat" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Amontcarga" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr " Anulla l'amontcargar" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Pas res dedins. Amontcarga qualquaren" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Avalcarga" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Pas partejador" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Amontcargament tròp gròs" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Los fiichièrs son a èsser explorats, " -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Exploracion en cors" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index bd3470063b5..3316033db84 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Nie można było przenieść %s - Plik o takiej nazwie już istnieje" msgid "Could not move %s" msgstr "Nie można było przenieść %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nie można zmienić nazwy pliku" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Żaden plik nie został załadowany. Nieznany błąd" @@ -86,7 +82,7 @@ msgstr "Udostępnij" msgid "Delete permanently" msgstr "Trwale usuń" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Usuń" @@ -94,43 +90,43 @@ msgstr "Usuń" msgid "Rename" msgstr "Zmień nazwę" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Oczekujące" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} już istnieje" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "zastąp" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "zasugeruj nazwę" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "anuluj" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "zastąpiono {new_name} przez {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "cofnij" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "wykonaj operację usunięcia" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 plik wczytywany" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "pliki wczytane" @@ -156,69 +152,77 @@ msgstr "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchro msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Twój magazyn jest prawie pełny ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Pobieranie jest przygotowywane. Może to zająć trochę czasu jeśli pliki są duże." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nie można wczytać pliku, ponieważ jest on katalogiem lub ma 0 bajtów" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Za mało miejsca" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Wczytywanie anulowane." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL nie może być pusty." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nieprawidłowa nazwa folderu. Korzystanie z nazwy „Shared” jest zarezerwowane dla ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Błąd" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nazwa" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Rozmiar" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modyfikacja" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 folder" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "Ilość folderów: {count}" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 plik" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "Ilość plików: {count}" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nie można zmienić nazwy pliku" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Wyślij" @@ -279,37 +283,37 @@ msgstr "Pliki usunięte" msgid "Cancel upload" msgstr "Anuluj wysyłanie" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Nie masz uprawnień do zapisu w tym miejscu." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Pusto. Wyślij coś!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Pobierz" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Zatrzymaj współdzielenie" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Ładowany plik jest za duży" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Skanowanie plików, proszę czekać." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Aktualnie skanowane" diff --git a/l10n/pl_PL/files.po b/l10n/pl_PL/files.po index 4cf5e0b5477..8e524496642 100644 --- a/l10n/pl_PL/files.po +++ b/l10n/pl_PL/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 2e9f259cd2b..10892d43027 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Impossível mover %s - Um arquivo com este nome já existe" msgid "Could not move %s" msgstr "Impossível mover %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Impossível renomear arquivo" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nenhum arquivo foi enviado. Erro desconhecido" @@ -86,7 +82,7 @@ msgstr "Compartilhar" msgid "Delete permanently" msgstr "Excluir permanentemente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Excluir" @@ -94,43 +90,43 @@ msgstr "Excluir" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendente" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} já existe" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "substituir" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugerir nome" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "Substituído {old_name} por {new_name} " -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "desfazer" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "realizar operação de exclusão" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "enviando 1 arquivo" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "enviando arquivos" @@ -156,69 +152,77 @@ msgstr "Seu armazenamento está cheio, arquivos não podem mais ser atualizados msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Seu armazenamento está quase cheio ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Impossível enviar seus arquivo por ele ser um diretório ou ter 0 bytes." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Espaço de armazenamento insuficiente" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Upload em andamento. Sair da página agora resultará no cancelamento do envio." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL não pode ficar em branco" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de pasta inválido. O uso de 'Shared' é reservado para o Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Erro" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamanho" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificado" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 arquivo" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} arquivos" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Impossível renomear arquivo" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Upload" @@ -279,37 +283,37 @@ msgstr "Arquivos apagados" msgid "Cancel upload" msgstr "Cancelar upload" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Você não possui permissão de escrita aqui." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Nada aqui.Carrege alguma coisa!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Baixar" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Descompartilhar" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Upload muito grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Arquivos sendo escaneados, por favor aguarde." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Scanning atual" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 664e95876ae..dd8b0a58869 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse msgid "Could not move %s" msgstr "Não foi possível move o ficheiro %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Não foi possível renomear o ficheiro" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nenhum ficheiro foi carregado. Erro desconhecido" @@ -86,7 +82,7 @@ msgstr "Partilhar" msgid "Delete permanently" msgstr "Eliminar permanentemente" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Eliminar" @@ -94,43 +90,43 @@ msgstr "Eliminar" msgid "Rename" msgstr "Renomear" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pendente" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "O nome {new_name} já existe" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "substituir" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugira um nome" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "substituido {new_name} por {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "desfazer" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Executar a tarefa de apagar" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "A enviar 1 ficheiro" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "A enviar os ficheiros" @@ -156,69 +152,77 @@ msgstr "O seu armazenamento está cheio, os ficheiros não podem ser sincronizad msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Espaço em disco insuficiente!" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Envio cancelado." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "O URL não pode estar vazio." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Nome de pasta inválido. O Uso de 'shared' é reservado para o ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Erro" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nome" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Tamanho" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificado" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 pasta" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} pastas" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ficheiro" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ficheiros" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Não foi possível renomear o ficheiro" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Carregar" @@ -279,37 +283,37 @@ msgstr "Ficheiros eliminados" msgid "Cancel upload" msgstr "Cancelar envio" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Não tem permissões de escrita aqui." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Vazio. Envie alguma coisa!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Transferir" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Deixar de partilhar" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Upload muito grande" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Os ficheiros estão a ser analisados, por favor aguarde." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Análise actual" diff --git a/l10n/ro/files.po b/l10n/ro/files.po index 5b878d86c2b..c9651266b3f 100644 --- a/l10n/ro/files.po +++ b/l10n/ro/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 13:00+0000\n" -"Last-Translator: ripkid666 \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Nu se poate de mutat %s - Fișier cu acest nume deja există" msgid "Could not move %s" msgstr "Nu s-a putut muta %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nu s-a putut redenumi fișierul" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nici un fișier nu a fost încărcat. Eroare necunoscută" @@ -87,7 +83,7 @@ msgstr "Partajează" msgid "Delete permanently" msgstr "Stergere permanenta" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Șterge" @@ -95,43 +91,43 @@ msgstr "Șterge" msgid "Rename" msgstr "Redenumire" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "În așteptare" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} deja exista" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "înlocuire" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugerează nume" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "anulare" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} inlocuit cu {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "Anulează ultima acțiune" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "efectueaza operatiunea de stergere" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "un fișier se încarcă" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "fișiere se încarcă" @@ -157,69 +153,77 @@ msgstr "Spatiul de stocare este plin, nu mai puteti incarca s-au sincroniza alte msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Spatiul de stocare este aproape plin ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nu este suficient spațiu disponibil" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Încărcare anulată." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Adresa URL nu poate fi goală." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Invalid folder name. Usage of 'Shared' is reserved by Ownclou" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Eroare" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Nume" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Dimensiune" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modificat" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 folder" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} foldare" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fisier" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} fisiere" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nu s-a putut redenumi fișierul" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Încărcare" @@ -280,37 +284,37 @@ msgstr "Sterge fisierele" msgid "Cancel upload" msgstr "Anulează încărcarea" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Nu ai permisiunea de a sterge fisiere aici." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Nimic aici. Încarcă ceva!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Descarcă" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Anulare partajare" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Fișierul încărcat este prea mare" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Fișierele sunt scanate, te rog așteptă." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "În curs de scanare" diff --git a/l10n/ru/files.po b/l10n/ru/files.po index 0493878feb1..05c45719904 100644 --- a/l10n/ru/files.po +++ b/l10n/ru/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Невозможно переместить %s - файл с таким msgid "Could not move %s" msgstr "Невозможно переместить %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Невозможно переименовать файл" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Файл не был загружен. Неизвестная ошибка" @@ -86,7 +82,7 @@ msgstr "Открыть доступ" msgid "Delete permanently" msgstr "Удалено навсегда" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Удалить" @@ -94,43 +90,43 @@ msgstr "Удалить" msgid "Rename" msgstr "Переименовать" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Ожидание" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} уже существует" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "заменить" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "предложить название" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "отмена" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "заменено {new_name} на {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "отмена" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "выполняется операция удаления" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "загружается 1 файл" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "файлы загружаются" @@ -156,69 +152,77 @@ msgstr "Ваше дисковое пространство полностью з msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ваше хранилище почти заполнено ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Загрузка началась. Это может потребовать много времени, если файл большого размера." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Файл не был загружен: его размер 0 байт либо это не файл, а директория." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Недостаточно свободного места" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Загрузка отменена." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Ссылка не может быть пустой." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Неправильное имя каталога. Имя 'Shared' зарезервировано." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Ошибка" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Имя" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Размер" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Изменён" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 папка" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 файл" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} файлов" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Невозможно переименовать файл" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Загрузка" @@ -279,37 +283,37 @@ msgstr "Удалённые файлы" msgid "Cancel upload" msgstr "Отмена загрузки" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "У вас нет разрешений на запись здесь." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Здесь ничего нет. Загрузите что-нибудь!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Скачать" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Закрыть общий доступ" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Файл слишком велик" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Подождите, файлы сканируются." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Текущее сканирование" diff --git a/l10n/si_LK/files.po b/l10n/si_LK/files.po index eb144d24e47..5b8f542999b 100644 --- a/l10n/si_LK/files.po +++ b/l10n/si_LK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්" @@ -86,7 +82,7 @@ msgstr "බෙදා හදා ගන්න" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "මකා දමන්න" @@ -94,43 +90,43 @@ msgstr "මකා දමන්න" msgid "Rename" msgstr "නැවත නම් කරන්න" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ප්‍රතිස්ථාපනය කරන්න" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "නමක් යෝජනා කරන්න" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "අත් හරින්න" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "නිෂ්ප්‍රභ කරන්න" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 ගොනුවක් උඩගත කෙරේ" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "උඩුගත කිරීම අත් හරින්න ලදී" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "යොමුව හිස් විය නොහැක" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "දෝෂයක්" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "නම" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "ප්‍රමාණය" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "වෙනස් කළ" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 ෆොල්ඩරයක්" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ගොනුවක්" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "උඩුගත කරන්න" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "උඩුගත කිරීම අත් හරින්න" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "බාන්න" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "නොබෙදු" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "උඩුගත කිරීම විශාල වැඩිය" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ඔබ උඩුගත කිරීමට තැත් කරන ගොනු මෙම සේවාදායකයා උඩුගත කිරීමට ඉඩදී ඇති උපරිම ගොනු විශාලත්වයට වඩා වැඩිය" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "ගොනු පරික්ෂා කෙරේ. මඳක් රැඳී සිටින්න" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "වර්තමාන පරික්ෂාව" diff --git a/l10n/sk/files.po b/l10n/sk/files.po index b8788c7a3b8..29c0e202761 100644 --- a/l10n/sk/files.po +++ b/l10n/sk/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index f482515f73c..14299ed3914 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Nie je možné presunúť %s - súbor s týmto menom už existuje" msgid "Could not move %s" msgstr "Nie je možné presunúť %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nemožno premenovať súbor" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Žiaden súbor nebol odoslaný. Neznáma chyba" @@ -86,7 +82,7 @@ msgstr "Zdieľať" msgid "Delete permanently" msgstr "Zmazať trvalo" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Zmazať" @@ -94,43 +90,43 @@ msgstr "Zmazať" msgid "Rename" msgstr "Premenovať" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Prebieha" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} už existuje" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "nahradiť" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "pomôcť s menom" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "zrušiť" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "prepísaný {new_name} súborom {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "vrátiť" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "vykonať zmazanie" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 súbor sa posiela " -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "nahrávanie súborov" @@ -156,69 +152,77 @@ msgstr "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchroniz msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Vaše úložisko je takmer plné ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Vaše sťahovanie sa pripravuje. Ak sú sťahované súbory veľké, môže to chvíľu trvať." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nedá sa odoslať Váš súbor, pretože je to priečinok, alebo je jeho veľkosť 0 bajtov" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nie je k dispozícii dostatok miesta" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Odosielanie zrušené" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Opustenie stránky zruší práve prebiehajúce odosielanie súboru." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL nemôže byť prázdne" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neplatné meno priečinka. Používanie mena 'Shared' je vyhradené len pre Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Chyba" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Názov" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Veľkosť" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Upravené" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 priečinok" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} priečinkov" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 súbor" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} súborov" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nemožno premenovať súbor" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Odoslať" @@ -279,37 +283,37 @@ msgstr "Zmazané súbory" msgid "Cancel upload" msgstr "Zrušiť odosielanie" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Nemáte oprávnenie na zápis." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Žiadny súbor. Nahrajte niečo!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Sťahovanie" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Zrušiť zdieľanie" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Nahrávanie je príliš veľké" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Čakajte, súbory sú prehľadávané." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Práve prezerané" diff --git a/l10n/sl/files.po b/l10n/sl/files.po index 3cd5da7a411..dd91fd8974e 100644 --- a/l10n/sl/files.po +++ b/l10n/sl/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Ni mogoče premakniti %s - datoteka s tem imenom že obstaja" msgid "Could not move %s" msgstr "Ni mogoče premakniti %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Ni mogoče preimenovati datoteke" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ni poslane datoteke. Neznana napaka." @@ -86,7 +82,7 @@ msgstr "Souporaba" msgid "Delete permanently" msgstr "Izbriši dokončno" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Izbriši" @@ -94,43 +90,43 @@ msgstr "Izbriši" msgid "Rename" msgstr "Preimenuj" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "V čakanju ..." -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} že obstaja" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "zamenjaj" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "predlagaj ime" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "prekliči" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "preimenovano ime {new_name} z imenom {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "razveljavi" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "izvedi opravilo brisanja" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Pošiljanje 1 datoteke" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "poteka pošiljanje datotek" @@ -156,69 +152,77 @@ msgstr "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in us msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Mesto za shranjevanje je skoraj polno ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Postopek priprave datoteke za prejem je lahko dolgotrajen, če je datoteka zelo velika." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Pošiljanja ni mogoče izvesti, saj gre za mapo oziroma datoteko velikosti 0 bajtov." -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Na voljo ni dovolj prostora." -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Pošiljanje je preklicano." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Naslov URL ne sme biti prazna vrednost." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Neveljavno ime mape. Uporaba oznake \"Souporaba\" je zadržan za sistem ownCloud." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Napaka" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Ime" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Velikost" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Spremenjeno" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mapa" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} map" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 datoteka" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} datotek" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Ni mogoče preimenovati datoteke" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Pošlji" @@ -279,37 +283,37 @@ msgstr "Izbrisane datoteke" msgid "Cancel upload" msgstr "Prekliči pošiljanje" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Za to mesto ni ustreznih dovoljenj za pisanje." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Tukaj še ni ničesar. Najprej je treba kakšno datoteko poslati v oblak!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Prejmi" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Prekliči souporabo" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Prekoračenje omejitve velikosti" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Poteka preučevanje datotek, počakajte ..." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Trenutno poteka preučevanje" diff --git a/l10n/sq/files.po b/l10n/sq/files.po index 5a921c586ab..f6b060849e0 100644 --- a/l10n/sq/files.po +++ b/l10n/sq/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s nuk u spostua - Aty ekziston një skedar me të njëjtin emër" msgid "Could not move %s" msgstr "%s nuk u spostua" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Nuk është i mundur riemërtimi i skedarit" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Nuk u ngarkua asnjë skedar. Veprim i gabuar i panjohur" @@ -86,7 +82,7 @@ msgstr "Nda" msgid "Delete permanently" msgstr "Elimino përfundimisht" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Elimino" @@ -94,43 +90,43 @@ msgstr "Elimino" msgid "Rename" msgstr "Riemërto" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Pezulluar" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} ekziston" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "zëvëndëso" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "sugjero një emër" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "anulo" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "U zëvëndësua {new_name} me {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "anulo" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "ekzekuto operacionin e eliminimit" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Po ngarkohet 1 skedar" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "po ngarkoj skedarët" @@ -156,69 +152,77 @@ msgstr "Hapësira juaj e memorizimit është plot, nuk mund të ngarkoni apo sin msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Hapësira juaj e memorizimit është gati plot ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Shkarkimi juaj po përgatitet. Mund të duhet pak kohë nqse skedarët janë të mëdhenj." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Nuk është i mundur ngarkimi i skedarit tuaj sepse është dosje ose ka dimension 0 byte" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Nuk ka hapësirë memorizimi e mjaftueshme" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Ngarkimi u anulua." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Ngarkimi i skedarit është në vazhdim. Nqse ndërroni faqen tani ngarkimi do të anulohet." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL-i nuk mund të jetë bosh." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Emri i dosjes është i pavlefshëm. Përdorimi i \"Shared\" është i rezervuar nga Owncloud-i." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Veprim i gabuar" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Emri" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Dimensioni" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Modifikuar" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 dosje" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} dosje" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 skedar" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} skedarë" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Nuk është i mundur riemërtimi i skedarit" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Ngarko" @@ -279,37 +283,37 @@ msgstr "Skedarë të eliminuar" msgid "Cancel upload" msgstr "Anulo ngarkimin" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Nuk keni të drejta për të shkruar këtu." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Këtu nuk ka asgjë. Ngarkoni diçka!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Shkarko" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Hiq ndarjen" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Ngarkimi është shumë i madh" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Skedarët që doni të ngarkoni tejkalojnë dimensionet maksimale për ngarkimet në këtë server." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Skedarët po analizohen, ju lutemi pritni." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Analizimi aktual" diff --git a/l10n/sr/files.po b/l10n/sr/files.po index 9a0ef172ee6..1a261d747e7 100644 --- a/l10n/sr/files.po +++ b/l10n/sr/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Не могу да преместим %s – датотека с ови msgid "Could not move %s" msgstr "Не могу да преместим %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Не могу да преименујем датотеку" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ниједна датотека није отпремљена услед непознате грешке" @@ -86,7 +82,7 @@ msgstr "Дели" msgid "Delete permanently" msgstr "Обриши за стално" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Обриши" @@ -94,43 +90,43 @@ msgstr "Обриши" msgid "Rename" msgstr "Преименуј" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "На чекању" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} већ постоји" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "замени" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "предложи назив" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "откажи" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "замењено {new_name} са {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "опозови" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "обриши" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "Отпремам 1 датотеку" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "датотеке се отпремају" @@ -156,69 +152,77 @@ msgstr "Ваше складиште је пуно. Датотеке више н msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ваше складиште је скоро па пуно ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Припремам преузимање. Ово може да потраје ако су датотеке велике." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Нема довољно простора" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Отпремање је прекинуто." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "Адреса не може бити празна." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Неисправно име фасцикле. Фасцикла „Shared“ је резервисана за ownCloud." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Грешка" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Име" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Величина" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Измењено" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 фасцикла" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} фасцикле/и" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 датотека" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} датотеке/а" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Не могу да преименујем датотеку" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Отпреми" @@ -279,37 +283,37 @@ msgstr "Обрисане датотеке" msgid "Cancel upload" msgstr "Прекини отпремање" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Овде немате дозволу за писање." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Овде нема ничег. Отпремите нешто!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Преузми" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Укини дељење" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Датотека је превелика" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Датотеке које желите да отпремите прелазе ограничење у величини." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Скенирам датотеке…" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Тренутно скенирање" diff --git a/l10n/sr@latin/files.po b/l10n/sr@latin/files.po index d7489c98191..e7c6cc4f530 100644 --- a/l10n/sr@latin/files.po +++ b/l10n/sr@latin/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Obriši" @@ -94,43 +90,43 @@ msgstr "Obriši" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Ime" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Veličina" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Zadnja izmena" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Pošalji" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ovde nema ničeg. Pošaljite nešto!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Preuzmi" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Pošiljka je prevelika" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/sv/files.po b/l10n/sv/files.po index a36c0ffa80a..0baab452a74 100644 --- a/l10n/sv/files.po +++ b/l10n/sv/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Kunde inte flytta %s - Det finns redan en fil med detta namn" msgid "Could not move %s" msgstr "Kan inte flytta %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Kan inte byta namn på filen" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Ingen fil uppladdad. Okänt fel" @@ -86,7 +82,7 @@ msgstr "Dela" msgid "Delete permanently" msgstr "Radera permanent" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Radera" @@ -94,43 +90,43 @@ msgstr "Radera" msgid "Rename" msgstr "Byt namn" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Väntar" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} finns redan" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ersätt" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "föreslå namn" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "avbryt" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "ersatt {new_name} med {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "ångra" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "utför raderingen" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 filuppladdning" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "filer laddas upp" @@ -156,69 +152,77 @@ msgstr "Ditt lagringsutrymme är fullt, filer kan ej längre laddas upp eller sy msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ditt lagringsutrymme är nästan fullt ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Din nedladdning förbereds. Det kan ta tid om det är stora filer." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Kan inte ladda upp din fil eftersom det är en katalog eller har 0 bytes" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Inte tillräckligt med utrymme tillgängligt" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Uppladdning avbruten." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL kan inte vara tom." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Fel" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Namn" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Storlek" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Ändrad" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 mapp" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} mappar" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 fil" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} filer" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Kan inte byta namn på filen" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Ladda upp" @@ -279,37 +283,37 @@ msgstr "Raderade filer" msgid "Cancel upload" msgstr "Avbryt uppladdning" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Du saknar skrivbehörighet här." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Ingenting här. Ladda upp något!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Ladda ner" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Sluta dela" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "För stor uppladdning" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Filer skannas, var god vänta" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Aktuell skanning" diff --git a/l10n/sw_KE/files.po b/l10n/sw_KE/files.po index 13e9c0e6db0..a8b0ef83d08 100644 --- a/l10n/sw_KE/files.po +++ b/l10n/sw_KE/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:00+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index 3e527911022..dbcd1813fdd 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு" @@ -86,7 +82,7 @@ msgstr "பகிர்வு" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "நீக்குக" @@ -94,43 +90,43 @@ msgstr "நீக்குக" msgid "Rename" msgstr "பெயர்மாற்றம்" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "நிலுவையிலுள்ள" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} ஏற்கனவே உள்ளது" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "மாற்றிடுக" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "பெயரை பரிந்துரைக்க" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "இரத்து செய்க" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ஆனது {old_name} இனால் மாற்றப்பட்டது" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "முன் செயல் நீக்கம் " -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 கோப்பு பதிவேற்றப்படுகிறது" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL வெறுமையாக இருக்கமுடியாது." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "வழு" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "பெயர்" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "அளவு" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "மாற்றப்பட்டது" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 கோப்புறை" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{எண்ணிக்கை} கோப்புறைகள்" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 கோப்பு" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{எண்ணிக்கை} கோப்புகள்" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "பதிவேற்றுக" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "பதிவேற்றலை இரத்து செய்க" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "பதிவிறக்குக" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "பகிரப்படாதது" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "பதிவேற்றல் மிகப்பெரியது" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "நீங்கள் பதிவேற்ற முயற்சிக்கும் கோப்புகளானது இந்த சேவையகத்தில் கோப்பு பதிவேற்றக்கூடிய ஆகக்கூடிய அளவிலும் கூடியது." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "கோப்புகள் வருடப்படுகின்றன, தயவுசெய்து காத்திருங்கள்." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "தற்போது வருடப்படுபவை" diff --git a/l10n/te/files.po b/l10n/te/files.po index 3b1c8bdab4a..d13a3ed0228 100644 --- a/l10n/te/files.po +++ b/l10n/te/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "శాశ్వతంగా తొలగించు" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "తొలగించు" @@ -94,43 +90,43 @@ msgstr "తొలగించు" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "రద్దుచేయి" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "పొరపాటు" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "పేరు" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "పరిమాణం" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index d34c5edc813..6484f017d59 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 51c5ec0d518..3638badffca 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -219,6 +215,14 @@ msgstr "" msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 2953ca91aa9..582ea6b8bdd 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 2c71c833ee0..cef54068180 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 3c4199e04cd..466168d5ec3 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index d37f8da1adf..62e0e019d63 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 0281b59a187..0afc111950c 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index cc9146b348b..739486fd3e1 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index dc15a7ea4fa..babd591ec2e 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 02:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 555205eb00d..519b205bd91 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index b99f1fbd062..715af4d3568 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-14 02:01+0200\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/files.po b/l10n/th_TH/files.po index 55940d310ae..eda2b6d03df 100644 --- a/l10n/th_TH/files.po +++ b/l10n/th_TH/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "ไม่สามารถย้าย %s ได้ - ไฟล์ท msgid "Could not move %s" msgstr "ไม่สามารถย้าย %s ได้" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "ไม่สามารถเปลี่ยนชื่อไฟล์ได้" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ" @@ -86,7 +82,7 @@ msgstr "แชร์" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "ลบ" @@ -94,43 +90,43 @@ msgstr "ลบ" msgid "Rename" msgstr "เปลี่ยนชื่อ" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} มีอยู่แล้วในระบบ" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "แทนที่" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "แนะนำชื่อ" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ยกเลิก" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "แทนที่ {new_name} ด้วย {old_name} แล้ว" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "เลิกทำ" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "ดำเนินการตามคำสั่งลบ" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "กำลังอัพโหลดไฟล์ 1 ไฟล์" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "การอัพโหลดไฟล์" @@ -156,69 +152,77 @@ msgstr "พื้นที่จัดเก็บข้อมูลของค msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "กำลังเตรียมดาวน์โหลดข้อมูล หากไฟล์มีขนาดใหญ่ อาจใช้เวลาสักครู่" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่ หรือ มีขนาดไฟล์ 0 ไบต์" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "มีพื้นที่เหลือไม่เพียงพอ" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "การอัพโหลดถูกยกเลิก" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL ไม่สามารถเว้นว่างได้" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "ชื่อโฟลเดอร์ไม่ถูกต้อง การใช้งาน 'แชร์' สงวนไว้สำหรับ Owncloud เท่านั้น" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "ข้อผิดพลาด" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "ชื่อ" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "ขนาด" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "แก้ไขแล้ว" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 โฟลเดอร์" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} โฟลเดอร์" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 ไฟล์" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} ไฟล์" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "ไม่สามารถเปลี่ยนชื่อไฟล์ได้" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "อัพโหลด" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "ยกเลิกการอัพโหลด" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "ดาวน์โหลด" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "ยกเลิกการแชร์" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "ไฟล์ที่กำลังสแกนอยู่ขณะนี้" diff --git a/l10n/tr/files.po b/l10n/tr/files.po index 826904dd186..5c0d5d7ad5d 100644 --- a/l10n/tr/files.po +++ b/l10n/tr/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "%s taşınamadı. Bu isimde dosya zaten var." msgid "Could not move %s" msgstr "%s taşınamadı" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Dosya adı değiştirilemedi" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Dosya yüklenmedi. Bilinmeyen hata" @@ -86,7 +82,7 @@ msgstr "Paylaş" msgid "Delete permanently" msgstr "Kalıcı olarak sil" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Sil" @@ -94,43 +90,43 @@ msgstr "Sil" msgid "Rename" msgstr "İsim değiştir." -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Bekliyor" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} zaten mevcut" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "değiştir" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "Öneri ad" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "iptal" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "{new_name} ismi {old_name} ile değiştirildi" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "geri al" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "Silme işlemini gerçekleştir" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 dosya yüklendi" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "Dosyalar yükleniyor" @@ -156,69 +152,77 @@ msgstr "Depolama alanınız dolu, artık dosyalar güncellenmeyecek yada senkron msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Depolama alanınız neredeyse dolu ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "İndirmeniz hazırlanıyor. Dosya büyük ise biraz zaman alabilir." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Yeterli disk alanı yok" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Yükleme iptal edildi." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL boş olamaz." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Geçersiz dizin adı. Shared isminin kullanımı Owncloud tarafından rezerver edilmiştir." -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Hata" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "İsim" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Boyut" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Değiştirilme" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 dizin" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} dizin" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 dosya" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} dosya" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Dosya adı değiştirilemedi" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Yükle" @@ -279,37 +283,37 @@ msgstr "Dosyalar silindi" msgid "Cancel upload" msgstr "Yüklemeyi iptal et" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "Buraya erişim hakkınız yok." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Burada hiçbir şey yok. Birşeyler yükleyin!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "İndir" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Paylaşılmayan" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Yükleme çok büyük" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Yüklemeye çalıştığınız dosyalar bu sunucudaki maksimum yükleme boyutunu aşıyor." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Dosyalar taranıyor, lütfen bekleyin." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Güncel tarama" diff --git a/l10n/ug/files.po b/l10n/ug/files.po index fa4a56b319c..10168dedbcf 100644 --- a/l10n/ug/files.po +++ b/l10n/ug/files.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-04 12:00+0000\n" -"Last-Translator: Abduqadir Abliz \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "%s يۆتكىيەلمەيدۇ" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "ھېچقانداق ھۆججەت يۈكلەنمىدى. يوچۇن خاتالىق" @@ -94,43 +90,43 @@ msgstr "ئۆچۈر" msgid "Rename" msgstr "ئات ئۆزگەرت" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "كۈتۈۋاتىدۇ" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} مەۋجۇت" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "ئالماشتۇر" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "تەۋسىيە ئات" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "ۋاز كەچ" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "يېنىۋال" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 ھۆججەت يۈكلىنىۋاتىدۇ" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "ھۆججەت يۈكلىنىۋاتىدۇ" @@ -219,6 +215,14 @@ msgstr "1 ھۆججەت" msgid "{count} files" msgstr "{count} ھۆججەت" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "ھۆججەت ئاتىنى ئۆزگەرتكىلى بولمايدۇ" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "يۈكلە" diff --git a/l10n/uk/files.po b/l10n/uk/files.po index 6f4e493551b..c411fcf37cf 100644 --- a/l10n/uk/files.po +++ b/l10n/uk/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "Не вдалося перемістити %s - Файл з таким msgid "Could not move %s" msgstr "Не вдалося перемістити %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Не вдалося перейменувати файл" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Не завантажено жодного файлу. Невідома помилка" @@ -86,7 +82,7 @@ msgstr "Поділитися" msgid "Delete permanently" msgstr "Видалити назавжди" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "Видалити" @@ -94,43 +90,43 @@ msgstr "Видалити" msgid "Rename" msgstr "Перейменувати" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Очікування" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} вже існує" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "заміна" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "запропонуйте назву" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "відміна" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "замінено {new_name} на {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "відмінити" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "виконати операцію видалення" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 файл завантажується" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "файли завантажуються" @@ -156,69 +152,77 @@ msgstr "Ваше сховище переповнене, файли більше msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "Ваше сховище майже повне ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі." -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "Місця більше немає" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "Завантаження перервано." -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження." -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL не може бути пустим." -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "Невірне ім'я теки. Використання \"Shared\" зарезервовано Owncloud" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "Помилка" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "Ім'я" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "Розмір" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "Змінено" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 папка" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} папок" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 файл" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} файлів" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Не вдалося перейменувати файл" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Вивантажити" @@ -279,37 +283,37 @@ msgstr "Видалено файлів" msgid "Cancel upload" msgstr "Перервати завантаження" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "У вас тут немає прав на запис." -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "Тут нічого немає. Відвантажте що-небудь!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "Завантажити" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "Закрити доступ" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "Файл занадто великий" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "Файли скануються, зачекайте, будь-ласка." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "Поточне сканування" diff --git a/l10n/ur_PK/files.po b/l10n/ur_PK/files.po index 11f0069a817..c9ff60d2075 100644 --- a/l10n/ur_PK/files.po +++ b/l10n/ur_PK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "" @@ -94,43 +90,43 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "ایرر" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "شئیرنگ ختم کریں" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/vi/files.po b/l10n/vi/files.po index d6dfedc95a9..b0d71c5e22f 100644 --- a/l10n/vi/files.po +++ b/l10n/vi/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-04 17:40+0000\n" -"Last-Translator: xtdv \n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,10 +28,6 @@ msgstr "Không thể di chuyển %s - Đã có tên tập tin này trên hệ th msgid "Could not move %s" msgstr "Không thể di chuyển %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "Không thể đổi tên file" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "Không có tập tin nào được tải lên. Lỗi không xác định" @@ -95,43 +91,43 @@ msgstr "Xóa" msgid "Rename" msgstr "Sửa tên" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "Đang chờ" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} đã tồn tại" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "thay thế" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "tên gợi ý" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "hủy" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "đã thay thế {new_name} bằng {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "lùi lại" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "thực hiện việc xóa" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 tệp tin đang được tải lên" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "tệp tin đang được tải lên" @@ -220,6 +216,14 @@ msgstr "1 tập tin" msgid "{count} files" msgstr "{count} tập tin" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "Không thể đổi tên file" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "Tải lên" diff --git a/l10n/zh_CN.GB2312/files.po b/l10n/zh_CN.GB2312/files.po index c2de52c9959..1b4d4b16f1e 100644 --- a/l10n/zh_CN.GB2312/files.po +++ b/l10n/zh_CN.GB2312/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "没有上传文件。未知错误" @@ -86,7 +82,7 @@ msgstr "分享" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "删除" @@ -94,43 +90,43 @@ msgstr "删除" msgid "Rename" msgstr "重命名" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "等待中" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} 已存在" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "替换" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "推荐名称" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "取消" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "已用 {old_name} 替换 {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "撤销" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 个文件正在上传" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "个文件正在上传" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "不能上传您的文件,由于它是文件夹或者为空文件" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "上传取消了" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传。关闭页面会取消上传。" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "网址不能为空。" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "出错" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "名称" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "大小" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "修改日期" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 个文件夹" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 个文件" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} 个文件" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "上传" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "取消上传" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "这里没有东西.上传点什么!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "下载" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "取消分享" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "上传过大" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "你正在试图上传的文件超过了此服务器支持的最大的文件大小." -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "正在扫描文件,请稍候." -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "正在扫描" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index 6f0626fc694..a9ab24df245 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "无法移动 %s - 同名文件已存在" msgid "Could not move %s" msgstr "无法移动 %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "无法重命名文件" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "没有文件被上传。未知错误" @@ -86,7 +82,7 @@ msgstr "分享" msgid "Delete permanently" msgstr "永久删除" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "删除" @@ -94,43 +90,43 @@ msgstr "删除" msgid "Rename" msgstr "重命名" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "等待" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} 已存在" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "替换" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "建议名称" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "取消" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "已将 {old_name}替换成 {new_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "撤销" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "进行删除操作" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1个文件上传中" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "文件上传中" @@ -156,69 +152,77 @@ msgstr "您的存储空间已满,文件将无法更新或同步!" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "您的存储空间即将用完 ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "下载正在准备中。如果文件较大可能会花费一些时间。" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "无法上传您的文件,文件夹或者空文件" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "没有足够可用空间" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "上传已取消" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "文件正在上传中。现在离开此页会导致上传动作被取消。" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL不能为空" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "无效文件夹名。'共享' 是 Owncloud 预留的文件夹名。" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "错误" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "名称" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "大小" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "修改日期" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1个文件夹" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} 个文件夹" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 个文件" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} 个文件" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "无法重命名文件" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "上传" @@ -279,37 +283,37 @@ msgstr "删除文件" msgid "Cancel upload" msgstr "取消上传" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "您没有写权限" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "这里还什么都没有。上传些东西吧!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "下载" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "取消共享" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "上传文件过大" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "您正尝试上传的文件超过了此服务器可以上传的最大容量限制" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "文件正在被扫描,请稍候。" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "当前扫描" diff --git a/l10n/zh_HK/files.po b/l10n/zh_HK/files.po index c309f0cffbe..675fe9c8b4d 100644 --- a/l10n/zh_HK/files.po +++ b/l10n/zh_HK/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "" msgid "Could not move %s" msgstr "" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "" @@ -86,7 +82,7 @@ msgstr "分享" msgid "Delete permanently" msgstr "" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "刪除" @@ -94,43 +90,43 @@ msgstr "刪除" msgid "Rename" msgstr "" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "" @@ -156,69 +152,77 @@ msgstr "" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "錯誤" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "名稱" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{}文件夾" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "上傳" @@ -279,37 +283,37 @@ msgstr "" msgid "Cancel upload" msgstr "" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "下載" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "取消分享" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "" diff --git a/l10n/zh_TW/files.po b/l10n/zh_TW/files.po index d4eeb6cbc2f..92e7616365d 100644 --- a/l10n/zh_TW/files.po +++ b/l10n/zh_TW/files.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:27+0000\n" +"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"PO-Revision-Date: 2013-05-15 00:00+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -27,10 +27,6 @@ msgstr "無法移動 %s - 同名的檔案已經存在" msgid "Could not move %s" msgstr "無法移動 %s" -#: ajax/rename.php:22 ajax/rename.php:25 -msgid "Unable to rename file" -msgstr "無法重新命名檔案" - #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" msgstr "沒有檔案被上傳。未知的錯誤。" @@ -86,7 +82,7 @@ msgstr "分享" msgid "Delete permanently" msgstr "永久刪除" -#: js/fileactions.js:128 templates/index.php:94 templates/index.php:95 +#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94 msgid "Delete" msgstr "刪除" @@ -94,43 +90,43 @@ msgstr "刪除" msgid "Rename" msgstr "重新命名" -#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:414 +#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421 msgid "Pending" msgstr "等候中" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "{new_name} already exists" msgstr "{new_name} 已經存在" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "replace" msgstr "取代" -#: js/filelist.js:252 +#: js/filelist.js:259 msgid "suggest name" msgstr "建議檔名" -#: js/filelist.js:252 js/filelist.js:254 +#: js/filelist.js:259 js/filelist.js:261 msgid "cancel" msgstr "取消" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "replaced {new_name} with {old_name}" msgstr "使用 {new_name} 取代 {old_name}" -#: js/filelist.js:299 +#: js/filelist.js:306 msgid "undo" msgstr "復原" -#: js/filelist.js:324 +#: js/filelist.js:331 msgid "perform delete operation" msgstr "進行刪除動作" -#: js/filelist.js:406 +#: js/filelist.js:413 msgid "1 file uploading" msgstr "1 個檔案正在上傳" -#: js/filelist.js:409 js/filelist.js:463 +#: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" msgstr "檔案正在上傳中" @@ -156,69 +152,77 @@ msgstr "您的儲存空間已滿,沒有辦法再更新或是同步檔案!" msgid "Your storage is almost full ({usedSpacePercent}%)" msgstr "您的儲存空間快要滿了 ({usedSpacePercent}%)" -#: js/files.js:226 +#: js/files.js:231 msgid "" "Your download is being prepared. This might take some time if the files are " "big." msgstr "正在準備您的下載,若您的檔案較大,將會需要更多時間。" -#: js/files.js:259 +#: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" msgstr "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0" -#: js/files.js:272 +#: js/files.js:277 msgid "Not enough space available" msgstr "沒有足夠的可用空間" -#: js/files.js:312 +#: js/files.js:317 msgid "Upload cancelled." msgstr "上傳已取消" -#: js/files.js:408 +#: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." msgstr "檔案上傳中。離開此頁面將會取消上傳。" -#: js/files.js:481 +#: js/files.js:486 msgid "URL cannot be empty." msgstr "URL 不能為空白。" -#: js/files.js:486 +#: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" msgstr "無效的資料夾名稱,'Shared' 的使用被 ownCloud 保留" -#: js/files.js:515 js/files.js:531 js/files.js:821 js/files.js:859 +#: js/files.js:520 js/files.js:536 js/files.js:826 js/files.js:864 msgid "Error" msgstr "錯誤" -#: js/files.js:872 templates/index.php:70 +#: js/files.js:877 templates/index.php:69 msgid "Name" msgstr "名稱" -#: js/files.js:873 templates/index.php:81 +#: js/files.js:878 templates/index.php:80 msgid "Size" msgstr "大小" -#: js/files.js:874 templates/index.php:83 +#: js/files.js:879 templates/index.php:82 msgid "Modified" msgstr "修改" -#: js/files.js:893 +#: js/files.js:898 msgid "1 folder" msgstr "1 個資料夾" -#: js/files.js:895 +#: js/files.js:900 msgid "{count} folders" msgstr "{count} 個資料夾" -#: js/files.js:903 +#: js/files.js:908 msgid "1 file" msgstr "1 個檔案" -#: js/files.js:905 +#: js/files.js:910 msgid "{count} files" msgstr "{count} 個檔案" +#: lib/app.php:53 +msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" +msgstr "" + +#: lib/app.php:73 +msgid "Unable to rename file" +msgstr "無法重新命名檔案" + #: lib/helper.php:11 templates/index.php:18 msgid "Upload" msgstr "上傳" @@ -279,37 +283,37 @@ msgstr "已刪除的檔案" msgid "Cancel upload" msgstr "取消上傳" -#: templates/index.php:55 +#: templates/index.php:54 msgid "You don’t have write permissions here." msgstr "您在這裡沒有編輯權。" -#: templates/index.php:62 +#: templates/index.php:61 msgid "Nothing in here. Upload something!" msgstr "這裡什麼也沒有,上傳一些東西吧!" -#: templates/index.php:76 +#: templates/index.php:75 msgid "Download" msgstr "下載" -#: templates/index.php:88 templates/index.php:89 +#: templates/index.php:87 templates/index.php:88 msgid "Unshare" msgstr "取消共享" -#: templates/index.php:108 +#: templates/index.php:107 msgid "Upload too large" msgstr "上傳過大" -#: templates/index.php:110 +#: templates/index.php:109 msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." msgstr "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。" -#: templates/index.php:115 +#: templates/index.php:114 msgid "Files are being scanned, please wait." msgstr "正在掃描檔案,請稍等。" -#: templates/index.php:118 +#: templates/index.php:117 msgid "Current scanning" msgstr "目前掃描" diff --git a/l10n/zh_TW/settings.po b/l10n/zh_TW/settings.po index 9c5b7713d9d..7b0dd5b766f 100644 --- a/l10n/zh_TW/settings.po +++ b/l10n/zh_TW/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" +"POT-Creation-Date: 2013-05-15 02:00+0200\n" +"PO-Revision-Date: 2013-05-14 11:00+0000\n" "Last-Translator: pellaeon \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -125,44 +125,44 @@ msgstr "已更新" msgid "Saving..." msgstr "儲存中..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "已刪除" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "復原" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "無法刪除用戶" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "群組" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "群組 管理員" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "刪除" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "新增群組" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "一定要提供一個有效的用戶名" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "創建用戶時出現錯誤" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "一定要提供一個有效的密碼" @@ -329,7 +329,7 @@ msgstr "少" msgid "Version" msgstr "版本" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the Date: Wed, 15 May 2013 02:32:27 +0200 Subject: [PATCH 323/454] added setter for filesystem view this is needed because there is no possibility to set $defaultInstance to false after filesystem::init --- lib/files/filesystem.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php index c0e9d215fb5..df904e1f274 100644 --- a/lib/files/filesystem.php +++ b/lib/files/filesystem.php @@ -210,7 +210,7 @@ class Filesystem { return true; } - /** + /** * Initialize system and personal mount points for a user * * @param string $user @@ -306,6 +306,14 @@ class Filesystem { return self::$defaultInstance; } + /** + * set the default filesystem view + * + */ + static public function setView($view) { + self::$defaultInstance = $view; + } + /** * tear down the filesystem, removing all storage providers */ -- GitLab From ddedf201062c99f4dfce64b2dde8c912d8305491 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 02:34:36 +0200 Subject: [PATCH 324/454] prevent of infinite loop with FileProxy --- apps/files_encryption/lib/stream.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index db7d2ad6173..ab967835082 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -509,15 +509,15 @@ class Stream { // Save the sharekeys Keymanager::setShareKeys( $view, $this->relPath, $this->encKeyfiles['keys'] ); - // Re-enable proxy - our work is done - \OC_FileProxy::$enabled = $proxyStatus; - // get file info $fileInfo = $view->getFileInfo($this->rawPath); if(!is_array($fileInfo)) { $fileInfo = array(); } + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; + // set encryption data $fileInfo['encrypted'] = true; $fileInfo['size'] = $this->size; -- GitLab From 499fe6ca8e28d559ad8aba7724766c111c65290a Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 02:36:23 +0200 Subject: [PATCH 325/454] disabled FileProxy in Keymanager::getPrivateKey --- apps/files_encryption/lib/keymanager.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 8ee7820b169..74462a0d1ed 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -38,9 +38,14 @@ class Keymanager { public static function getPrivateKey( \OC_FilesystemView $view, $user ) { $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key'; - + + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + $key = $view->file_get_contents( $path ); - + + \OC_FileProxy::$enabled = $proxyStatus; + return $key; } -- GitLab From 7461e9c2b5bdabd0b712f91a22445a0d933cf88f Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 02:38:08 +0200 Subject: [PATCH 326/454] improved tests and added new tests for file rename and move --- apps/files_encryption/tests/crypt.php | 105 +++++++++++++++++---- apps/files_encryption/tests/keymanager.php | 25 +++-- apps/files_encryption/tests/share.php | 1 + apps/files_encryption/tests/util.php | 18 +++- 4 files changed, 117 insertions(+), 32 deletions(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index b2dea2f6538..de7ae38b173 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -35,6 +35,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { function setUp() { // reset backend + \OC_User::clearBackends(); \OC_User::useBackend('database'); // set content for encrypting / decrypting in tests @@ -58,17 +59,26 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $userHome = \OC_User::getHome($this->userId); $this->dataDir = str_replace('/'.$this->userId, '', $userHome); - \OC\Files\Filesystem::init($this->userId, '/'); - \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + // Filesystem related hooks + \OCA\Encryption\Helper::registerFilesystemHooks(); + + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + + \OC_Util::tearDownFS(); + \OC_User::setUserId(''); + \OC\Files\Filesystem::setView(false); + \OC_Util::setupFS($this->userId); + \OC_User::setUserId($this->userId); $params['uid'] = $this->userId; $params['password'] = $this->pass; OCA\Encryption\Hooks::login($params); + } function tearDown() { - } + } function testGenerateKey() { @@ -272,7 +282,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals( $this->dataShort, $manualDecrypt ); // Teardown - $this->view->unlink( $filename ); + $this->view->unlink( $this->userId . '/files/' . $filename ); Encryption\Keymanager::deleteFileKey( $this->view, $this->userId, $filename ); } @@ -350,7 +360,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Teardown - $this->view->unlink( $filename ); + $this->view->unlink( $this->userId . '/files/' . $filename ); Encryption\Keymanager::deleteFileKey( $this->view, $this->userId, $filename ); @@ -368,15 +378,14 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Test that data was successfully written $this->assertTrue( is_int( $cryptedFile ) ); - - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); - - $decrypt = file_get_contents( 'crypt://' . $filename ); + + // Get file decrypted contents + $decrypt = file_get_contents( 'crypt://' . $filename ); $this->assertEquals( $this->dataShort, $decrypt ); - + + // tear down + $this->view->unlink( $this->userId . '/files/' . $filename ); } function testSymmetricStreamDecryptLongFileContent() { @@ -388,15 +397,14 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Test that data was successfully written $this->assertTrue( is_int( $cryptedFile ) ); - - - // Get file contents without using any wrapper to get it's actual contents on disk - $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); - + + // Get file decrypted contents $decrypt = file_get_contents( 'crypt://' . $filename ); - + $this->assertEquals( $this->dataLong, $decrypt ); - + + // tear down + $this->view->unlink( $this->userId . '/files/' . $filename ); } // Is this test still necessary? @@ -623,6 +631,65 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { } + function testRenameFile() { + + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataLong, $decrypt ); + + $newFilename = 'tmp-new-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + $view->rename( $filename, $newFilename ); + + // Get file decrypted contents + $newDecrypt = file_get_contents( 'crypt://' . $newFilename ); + + $this->assertEquals( $this->dataLong, $newDecrypt ); + + // tear down + $view->unlink( $newFilename ); + } + + function testMoveFileIntoFolder() { + + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataLong, $decrypt ); + + $newFolder = '/newfolder1'; + $newFilename = 'tmp-new-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + $view->mkdir($newFolder); + $view->rename( $filename, $newFolder . '/' . $newFilename ); + + // Get file decrypted contents + $newDecrypt = file_get_contents( 'crypt://' . $newFolder . '/' . $newFilename ); + + $this->assertEquals( $this->dataLong, $newDecrypt ); + + // tear down + $view->unlink( $newFolder . '/' . $newFilename ); + $view->unlink( $newFolder ); + } + // function testEncryption(){ // // $key=uniqid(); diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 3acc781a096..d24dcaa0360 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -26,6 +26,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { function setUp() { // reset backend + \OC_User::clearBackends(); \OC_User::useBackend('database'); \OC_FileProxy::$enabled = false; @@ -41,18 +42,26 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { $keypair = Encryption\Crypt::createKeypair(); $this->genPublicKey = $keypair['publicKey']; $this->genPrivateKey = $keypair['privateKey']; - - $this->view = new \OC_FilesystemView( '/' ); - - \OC_User::setUserId( 'admin' ); - $this->userId = 'admin'; - $this->pass = 'admin'; + + $this->view = new \OC_FilesystemView( '/' ); + + \OC_User::setUserId( 'admin' ); + $this->userId = 'admin'; + $this->pass = 'admin'; $userHome = \OC_User::getHome($this->userId); $this->dataDir = str_replace('/'.$this->userId, '', $userHome); - \OC\Files\Filesystem::init( $this->userId, '/' ); - \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + // Filesystem related hooks + \OCA\Encryption\Helper::registerFilesystemHooks(); + + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + + \OC_Util::tearDownFS(); + \OC_User::setUserId(''); + \OC\Files\Filesystem::setView(false); + \OC_Util::setupFS($this->userId); + \OC_User::setUserId($this->userId); $params['uid'] = $this->userId; $params['password'] = $this->pass; diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index b8433821d3b..e2e26aa75b5 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -462,6 +462,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase \OC_Util::tearDownFS(); \OC_User::setUserId(''); + \OC\Files\Filesystem::setView(false); \OC_Util::setupFS($user); \OC_User::setUserId($user); diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index efd3f03bc62..2abf4096902 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -51,14 +51,22 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key - - $this->view = new \OC_FilesystemView( '/' ); + + $this->view = new \OC_FilesystemView( '/' ); $userHome = \OC_User::getHome($this->userId); $this->dataDir = str_replace('/'.$this->userId, '', $userHome); - \OC\Files\Filesystem::init( $this->userId, '/' ); - \OC\Files\Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => $this->dataDir), '/' ); + // Filesystem related hooks + \OCA\Encryption\Helper::registerFilesystemHooks(); + + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + + \OC_Util::tearDownFS(); + \OC_User::setUserId(''); + \OC\Files\Filesystem::setView(false); + \OC_Util::setupFS($this->userId); + \OC_User::setUserId($this->userId); $params['uid'] = $this->userId; $params['password'] = $this->pass; @@ -170,7 +178,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { $util = new Encryption\Util( $this->view, $this->userId ); - $files = $util->findEncFiles( '/', 'encrypted' ); + $files = $util->findEncFiles( '/'.$this->userId.'/'); //var_dump( $files ); -- GitLab From 807740a07a5385b0761aa23128f859a203e8b71a Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:19:38 +0200 Subject: [PATCH 327/454] fix for losing mount point "/" --- lib/files/filesystem.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php index eadd8a93faf..d60d430d77c 100644 --- a/lib/files/filesystem.php +++ b/lib/files/filesystem.php @@ -222,7 +222,10 @@ class Filesystem { return false; } self::$defaultInstance = new View($root); - self::$mounts = new Mount\Manager(); + + if(!self::$mounts) { + self::$mounts = new Mount\Manager(); + } //load custom mount config self::initMountPoints($user); -- GitLab From 751487ded7657c2cbc56717105c2891c7c967b42 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:20:19 +0200 Subject: [PATCH 328/454] merge changes for files_encryption --- lib/public/share.php | 82 +++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 29f9a1f0953..0d90ffb9b7b 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -133,83 +133,83 @@ class Share { * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile( $path, $user, $includeOwner = false, $removeDuplicates = true ) { + public static function getUsersSharingFile($path, $user, $includeOwner = false, $removeDuplicates = true) { $path_parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); $path = ''; $shares = array(); - $view = new \OC\Files\View('/'.$user.'/files/'); + $publicShare = false; + $view = new \OC\Files\View('/' . $user . '/files/'); foreach ($path_parts as $p) { - $path .= '/'.$p; + $path .= '/' . $p; $meta = $view->getFileInfo(\OC_Filesystem::normalizePath($path)); $source = $meta['fileid']; - + // Fetch all shares of this file path from DB $query = \OC_DB::prepare( - 'SELECT share_with - FROM - `*PREFIX*share` - WHERE - item_source = ? AND share_type = ?' + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ?' ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_USER ) ); - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + $result = $query->execute(array($source, self::SHARE_TYPE_USER)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); } - while( $row = $result->fetchRow() ) { + while ($row = $result->fetchRow()) { $shares[] = $row['share_with']; } // We also need to take group shares into account $query = \OC_DB::prepare( - 'SELECT share_with - FROM - `*PREFIX*share` - WHERE - item_source = ? AND share_type = ?' + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ?' ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_GROUP ) ); - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + $result = $query->execute(array($source, self::SHARE_TYPE_GROUP)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); } - while( $row = $result->fetchRow() ) { + while ($row = $result->fetchRow()) { $usersInGroup = \OC_Group::usersInGroup($row['share_with']); $shares = array_merge($shares, $usersInGroup); } - + //check for public link shares $query = \OC_DB::prepare( - 'SELECT share_with - FROM - `*PREFIX*share` - WHERE - item_source = ? AND share_type = ?' + 'SELECT share_with + FROM + `*PREFIX*share` + WHERE + item_source = ? AND share_type = ?' ); - - $result = $query->execute( array( $source, self::SHARE_TYPE_LINK ) ); - - if ( \OC_DB::isError( $result ) ) { - \OC_Log::write( 'OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR ); + + $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); + + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); } - + if ($result->fetchRow()) { - $shares[] = "owncloud"; + $publicShare = true; } } // Include owner in list of users, if requested - if ( $includeOwner ) { + if ($includeOwner) { $shares[] = $user; } - - return array_unique($shares); + return array("users" => array_unique($shares), "public" => $publicShare); } /** @@ -514,6 +514,7 @@ class Share { 'fileSource' => $item['file_source'], 'shareType' => $shareType, 'shareWith' => $shareWith, + 'itemParent' => $item['parent'], )); self::delete($item['id']); \OC_Hook::emit('OCP\Share', 'post_unshare', array( @@ -521,6 +522,7 @@ class Share { 'itemSource' => $itemSource, 'shareType' => $shareType, 'shareWith' => $shareWith, + 'itemParent' => $item['parent'], )); return true; } -- GitLab From 9b7f02f26736542a596d6e1dfb3b8cd9d1875395 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:20:52 +0200 Subject: [PATCH 329/454] removed FileProxy from test --- tests/lib/cache/file.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/lib/cache/file.php b/tests/lib/cache/file.php index 5dcd3268804..7da5a8b85c6 100644 --- a/tests/lib/cache/file.php +++ b/tests/lib/cache/file.php @@ -31,12 +31,13 @@ class Test_Cache_File extends Test_Cache { //clear all proxies and hooks so we can do clean testing OC_FileProxy::clearProxies(); OC_Hook::clear('OC_Filesystem'); - + + //disabled atm //enable only the encryption hook if needed - if(OC_App::isEnabled('files_encryption')) { - OC_FileProxy::register(new OC_FileProxy_Encryption()); - } - + //if(OC_App::isEnabled('files_encryption')) { + // OC_FileProxy::register(new OC_FileProxy_Encryption()); + //} + //set up temporary storage \OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::mount('\OC\Files\Storage\Temporary',array(),'/'); -- GitLab From 3d7534da7494e7e22cdffa880dc2158f0c6e4d25 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:21:56 +0200 Subject: [PATCH 330/454] improved files_encryption tests --- apps/files_encryption/tests/crypt.php | 2 +- apps/files_encryption/tests/keymanager.php | 2 +- apps/files_encryption/tests/share.php | 2 +- apps/files_encryption/tests/util.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index de7ae38b173..c694aa1140c 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -66,7 +66,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { \OC_Util::tearDownFS(); \OC_User::setUserId(''); - \OC\Files\Filesystem::setView(false); + \OC\Files\Filesystem::tearDown(); \OC_Util::setupFS($this->userId); \OC_User::setUserId($this->userId); diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index d24dcaa0360..d3078fdac9f 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -59,7 +59,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC_Util::tearDownFS(); \OC_User::setUserId(''); - \OC\Files\Filesystem::setView(false); + \OC\Files\Filesystem::tearDown(); \OC_Util::setupFS($this->userId); \OC_User::setUserId($this->userId); diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index e2e26aa75b5..6962cadc443 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -462,7 +462,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase \OC_Util::tearDownFS(); \OC_User::setUserId(''); - \OC\Files\Filesystem::setView(false); + \OC\Files\Filesystem::tearDown(); \OC_Util::setupFS($user); \OC_User::setUserId($user); diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 2abf4096902..1e4e39cc47b 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -64,7 +64,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { \OC_Util::tearDownFS(); \OC_User::setUserId(''); - \OC\Files\Filesystem::setView(false); + \OC\Files\Filesystem::tearDown(); \OC_Util::setupFS($this->userId); \OC_User::setUserId($this->userId); -- GitLab From 137039d35a6be69f42f79bf2bd15d7041a815c3b Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:52:23 +0200 Subject: [PATCH 331/454] workaround for blank page need an other solution --- apps/files_encryption/appinfo/app.php | 40 +++++++++++++-------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index b611eb798f3..ec594fd19f1 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -26,26 +26,26 @@ OCA\Encryption\Helper::registerFilesystemHooks(); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); -$view = new \OC\Files\View( '/' ); - -$session = new OCA\Encryption\Session( $view ); - -if ( - ! $session->getPrivateKey( \OCP\USER::getUser() ) - && OCP\User::isLoggedIn() - && OCA\Encryption\Crypt::mode() == 'server' -) { - - // Force the user to log-in again if the encryption key isn't unlocked - // (happens when a user is logged in before the encryption app is - // enabled) - OCP\User::logout(); - - header( "Location: " . OC::$WEBROOT.'/' ); - - exit(); - -} +$view = new OC_FilesystemView( '/' ); + +//$session = new \OCA\Encryption\Session( $view ); +// +//if ( +// ! $session->getPrivateKey( \OCP\USER::getUser() ) +// && OCP\User::isLoggedIn() +// && OCA\Encryption\Crypt::mode() == 'server' +//) { +// +// // Force the user to log-in again if the encryption key isn't unlocked +// // (happens when a user is logged in before the encryption app is +// // enabled) +// OCP\User::logout(); +// +// header( "Location: " . OC::$WEBROOT.'/' ); +// +// exit(); +// +//} // Register settings scripts OCP\App::registerAdmin( 'files_encryption', 'settings-admin' ); -- GitLab From d8ae2fa80d004a7c9de7e1c6d012a6c0b6a423aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 15 May 2013 11:42:22 +0200 Subject: [PATCH 332/454] only let the user change the recovery admin settings if a key passwords was entered. --- apps/files_encryption/js/settings-admin.js | 41 +++++++++---------- apps/files_encryption/settings-admin.php | 5 --- .../templates/settings-admin.php | 12 +++--- 3 files changed, 25 insertions(+), 33 deletions(-) diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index 9cdb7aca68a..2fffcf77b32 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -8,33 +8,32 @@ $(document).ready(function(){ // Trigger ajax on recoveryAdmin status change + var enabledStatus = $('#adminEnableRecovery').val(); + + $('input:password[name="recoveryPassword"]').keyup(function(event) { + var recoveryPassword = $( '#recoveryPassword' ).val(); + var checkedButton = $('input:radio[name="adminEnableRecovery"]:checked').val(); + var uncheckedValue = (1+parseInt(checkedButton)) % 2; + if (recoveryPassword != '' ) { + $('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').removeAttr("disabled"); + } else { + $('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').attr("disabled", "true"); + } + }); + $( 'input:radio[name="adminEnableRecovery"]' ).change( function() { var recoveryStatus = $( this ).val(); var recoveryPassword = $( '#recoveryPassword' ).val(); - - if ( '' == recoveryPassword ) { - - // FIXME: add proper OC notification - alert( 'You must set a recovery account password first' ); - - } else { - - $.post( - OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' ) - , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword } - , function( data ) { - alert( data ); - } - ); - - } + $.post( + OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' ) + , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword } + , function( data ) { + alert( data ); + } + ); } ); - function blackListChange(){ - var blackList=$( '#encryption_blacklist' ).val().join( ',' ); - OC.AppConfig.setValue( 'files_encryption', 'type_blacklist', blackList ); - } }) \ No newline at end of file diff --git a/apps/files_encryption/settings-admin.php b/apps/files_encryption/settings-admin.php index ae9a85643ef..66efc584367 100644 --- a/apps/files_encryption/settings-admin.php +++ b/apps/files_encryption/settings-admin.php @@ -10,18 +10,13 @@ $tmpl = new OCP\Template( 'files_encryption', 'settings-admin' ); -$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', '' ) ); - // Check if an adminRecovery account is enabled for recovering files after lost pwd $view = new OC_FilesystemView( '' ); $recoveryAdminEnabled = OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ); -$recoveryAdminUid = OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminUid' ); -$tmpl->assign( 'blacklist', $blackList ); $tmpl->assign( 'encryption_mode', \OC_Appconfig::getValue( 'files_encryption', 'mode', 'none' ) ); $tmpl->assign( 'recoveryEnabled', $recoveryAdminEnabled ); -$tmpl->assign( 'recoveryAdminUid', $recoveryAdminUid ); \OCP\Util::addscript( 'files_encryption', 'settings-admin' ); \OCP\Util::addscript( 'core', 'multiselect' ); diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php index be7beecf696..95c1b66681c 100644 --- a/apps/files_encryption/templates/settings-admin.php +++ b/apps/files_encryption/templates/settings-admin.php @@ -9,16 +9,14 @@ t( "Enable encryption passwords recovery key (allow sharing to recovery key):" )); ?>

- - - -
- + + +
/> + /> t( "Enabled" )); ?>
@@ -26,7 +24,7 @@ type='radio' name='adminEnableRecovery' value='0' - /> + /> t( "Disabled" )); ?>

-- GitLab From 162da3ce4e61f93345e587e1ae8ddc70272f8cb9 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 15 May 2013 13:53:15 +0200 Subject: [PATCH 333/454] Add Contacts repo to CONTRIBUTING.md --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f3cf20e9a5..fd87513ec2a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,11 +12,12 @@ If you have questions about how to use ownCloud, please direct these to the [mai - Apps: - [Bookmarks](https://github.com/owncloud/bookmarks/issues) - [Calendar](https://github.com/owncloud/calendar/issues) + - [Contacts](https://github.com/owncloud/contacts/issues) - [Mail](https://github.com/owncloud/mail/issues) - [News](https://github.com/owncloud/news/issues) - [Notes](https://github.com/owncloud/notes/issues) - [Shorty](https://github.com/owncloud/shorty/issues) - - [other apps](https://github.com/owncloud/apps/issues) (e.g. Contacts, Pictures, Music, ...) + - [other apps](https://github.com/owncloud/apps/issues) (e.g. Pictures, Music, Tasks, ...) If your issue appears to be a bug, and hasn't been reported, open a new issue. -- GitLab From 5b160edebba2a10de83b09a8010a811321dd6370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 15 May 2013 14:02:13 +0200 Subject: [PATCH 334/454] check if the user knows the correct recovery password before changing the recovery key settings --- .gitignore | 1 + apps/files_encryption/ajax/adminrecovery.php | 63 +++++++++++++++----- apps/files_encryption/hooks/hooks.php | 3 +- apps/files_encryption/js/settings-admin.js | 6 +- apps/files_encryption/lib/crypt.php | 10 +++- 5 files changed, 63 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index b57dd3d2058..bc0c1d53a55 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ data-autotest /tests/coverage* /tests/autoconfig* /tests/autotest* +/l10n/.tx/ \ No newline at end of file diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index 6a056dc7b3d..520c7156c89 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -15,16 +15,37 @@ use OCA\Encryption; $return = false; +function checkPassword($view, $password, $recoveryKeyId) { + $pathKey = '/owncloud_private_key/'. $recoveryKeyId . ".private.key"; + $pathControlData = '/control-file/controlfile.enc'; + + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $recoveryKey = $view->file_get_contents( $pathKey ); + + $decryptedRecoveryKey = \OCA\Encryption\Crypt::symmetricDecryptFileContent($recoveryKey, $password); + + $controlData = $view->file_get_contents($pathControlData); + $decryptedControlData = \OCA\Encryption\Crypt::keyDecrypt($controlData, $decryptedRecoveryKey); + + \OC_FileProxy::$enabled = $proxyStatus; + + if ($decryptedControlData === 'ownCloud') { + return true; + } else { + return false; + } +} + + // Enable recoveryAdmin -if ( - isset($_POST['adminEnableRecovery']) - && 1 == $_POST['adminEnableRecovery'] -) { +$recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); - $view = new \OC\Files\View('/'); +if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){ - $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + $view = new \OC\Files\View('/'); if ($recoveryKeyId === null) { $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8); @@ -38,8 +59,6 @@ if ( if ( (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key") || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key")) - && isset($_POST['recoveryPassword']) - && !empty($_POST['recoveryPassword']) ) { $keypair = \OCA\Encryption\Crypt::createKeypair(); @@ -60,25 +79,39 @@ if ( // Save private key $view->file_put_contents('/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey); + // create control file which let us check later on if the entered password was correct. + $encryptedControlData = \OCA\Encryption\Crypt::keyEncrypt("ownCloud", $keypair['publicKey']); + if (!$view->is_dir('/control-file')) { + $view->mkdir('/control-file'); + } + $view->file_put_contents('/control-file/controlfile.enc', $encryptedControlData); + \OC_FileProxy::$enabled = true; - } + // Set recoveryAdmin as enabled + OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); - // Set recoveryAdmin as enabled - OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); + $return = true; - $return = true; + } else { // get recovery key and check the password + $return = checkPassword($view, $_POST['recoveryPassword'] ,$recoveryKeyId); + if ($return) { + OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); + } + } // Disable recoveryAdmin } elseif ( isset($_POST['adminEnableRecovery']) && 0 == $_POST['adminEnableRecovery'] ) { + $view = new \OC\Files\View('/'); + $return = checkPassword($view, $_POST['recoveryPassword'], $recoveryKeyId); - // Set recoveryAdmin as enabled + if ($return) { + // Set recoveryAdmin as disabled OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0); - - $return = true; + } } // Return success or failure diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 31175d1c346..ed254fd8d8b 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -59,7 +59,8 @@ class Hooks { \OC_FileProxy::$enabled = true; - $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); + //$privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); + $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, "helloworld" ); $session = new Session( $view ); diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index 2fffcf77b32..fa353901c3f 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -25,12 +25,16 @@ $(document).ready(function(){ function() { var recoveryStatus = $( this ).val(); + var oldStatus = (1+parseInt(recoveryStatus)) % 2; var recoveryPassword = $( '#recoveryPassword' ).val(); $.post( OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' ) , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword } , function( data ) { - alert( data ); + if (data.status == "error") { + alert("Couldn't switch recovery key mode, please check your recovery key password!"); + $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true"); + } } ); } diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index f92930c2cbd..5267ba81f57 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -217,7 +217,7 @@ class Crypt { * @returns decrypted file */ public static function decrypt( $encryptedContent, $iv, $passphrase ) { - + if ( $plainContent = openssl_decrypt( $encryptedContent, 'AES-128-CFB', $passphrase, false, $iv ) ) { return $plainContent; @@ -463,9 +463,13 @@ class Crypt { */ public static function keyDecrypt( $encryptedContent, $privatekey ) { - openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey ); + $result = @openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey ); - return $plainContent; + if ( $result ) { + return $plainContent; + } + + return $result; } -- GitLab From 1fbdc3ce8fc4c5430b9fd85a95e984a317c75778 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 14:32:50 +0200 Subject: [PATCH 335/454] fix for previous workaround --- apps/files_encryption/appinfo/app.php | 41 ++++++++++++++------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php index ec594fd19f1..e56d012fee9 100644 --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@ -26,26 +26,27 @@ OCA\Encryption\Helper::registerFilesystemHooks(); stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' ); -$view = new OC_FilesystemView( '/' ); - -//$session = new \OCA\Encryption\Session( $view ); -// -//if ( -// ! $session->getPrivateKey( \OCP\USER::getUser() ) -// && OCP\User::isLoggedIn() -// && OCA\Encryption\Crypt::mode() == 'server' -//) { -// -// // Force the user to log-in again if the encryption key isn't unlocked -// // (happens when a user is logged in before the encryption app is -// // enabled) -// OCP\User::logout(); -// -// header( "Location: " . OC::$WEBROOT.'/' ); -// -// exit(); -// -//} +// check if we are logged in +if (OCP\User::isLoggedIn()) { + $view = new OC_FilesystemView('/'); + $session = new \OCA\Encryption\Session($view); + + // check if user has a private key + if ( + !$session->getPrivateKey(\OCP\USER::getUser()) + && OCA\Encryption\Crypt::mode() === 'server' + ) { + + // Force the user to log-in again if the encryption key isn't unlocked + // (happens when a user is logged in before the encryption app is + // enabled) + OCP\User::logout(); + + header("Location: " . OC::$WEBROOT . '/'); + + exit(); + } +} // Register settings scripts OCP\App::registerAdmin( 'files_encryption', 'settings-admin' ); -- GitLab From 63a790b415d0ad54f5d769976ff5c00f1c8df0eb Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 14:33:08 +0200 Subject: [PATCH 336/454] fix for broken tests --- apps/files_encryption/hooks/hooks.php | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index ed254fd8d8b..16e9f9177d7 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -52,16 +52,11 @@ class Hooks { if(Helper::setupUser($util, $params['password']) === false) { return false; } - - \OC_FileProxy::$enabled = false; - + $encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] ); - \OC_FileProxy::$enabled = true; - - //$privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); - $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, "helloworld" ); - + $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] ); + $session = new Session( $view ); $session->setPrivateKey( $privateKey, $params['uid'] ); @@ -86,13 +81,9 @@ class Hooks { $session->setLegacyKey( $plainLegacyKey ); } - - \OC_FileProxy::$enabled = false; - + $publicKey = Keymanager::getPublicKey( $view, $params['uid'] ); - \OC_FileProxy::$enabled = false; - // Encrypt existing user files: // This serves to upgrade old versions of the encryption // app (see appinfo/spec.txt) -- GitLab From d91161186b87965eab165ea536e026dde47df88a Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 15 May 2013 09:33:38 -0400 Subject: [PATCH 337/454] Fix finding mount in background watcher, fixes #3353 --- lib/files/cache/backgroundwatcher.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/files/cache/backgroundwatcher.php b/lib/files/cache/backgroundwatcher.php index 7549745e7d7..8933101577d 100644 --- a/lib/files/cache/backgroundwatcher.php +++ b/lib/files/cache/backgroundwatcher.php @@ -30,7 +30,7 @@ class BackgroundWatcher { return; } list($storageId, $internalPath) = $cacheItem; - $mounts = Mount::findByStorageId($storageId); + $mounts = Filesystem::getMountByStorageId($storageId); if (count($mounts) === 0) { //if the storage we need isn't mounted on default, try to find a user that has access to the storage @@ -40,7 +40,7 @@ class BackgroundWatcher { return; } Filesystem::initMountPoints($users[0]); - $mounts = Mount::findByStorageId($storageId); + $mounts = Filesystem::getMountByStorageId($storageId); if (count($mounts) === 0) { return; } -- GitLab From 64d94c540aeaba67e2f779b2551c72a80334aa3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 15 May 2013 16:12:20 +0200 Subject: [PATCH 338/454] enable admin to change the recovery password --- apps/files_encryption/ajax/adminrecovery.php | 31 ++-------- apps/files_encryption/js/settings-admin.js | 59 +++++++++++++++++++ apps/files_encryption/lib/util.php | 28 +++++++++ apps/files_encryption/settings-personal.php | 1 + .../templates/settings-admin.php | 27 ++++++++- 5 files changed, 118 insertions(+), 28 deletions(-) diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index 520c7156c89..0ab449709c3 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -15,30 +15,6 @@ use OCA\Encryption; $return = false; -function checkPassword($view, $password, $recoveryKeyId) { - $pathKey = '/owncloud_private_key/'. $recoveryKeyId . ".private.key"; - $pathControlData = '/control-file/controlfile.enc'; - - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - - $recoveryKey = $view->file_get_contents( $pathKey ); - - $decryptedRecoveryKey = \OCA\Encryption\Crypt::symmetricDecryptFileContent($recoveryKey, $password); - - $controlData = $view->file_get_contents($pathControlData); - $decryptedControlData = \OCA\Encryption\Crypt::keyDecrypt($controlData, $decryptedRecoveryKey); - - \OC_FileProxy::$enabled = $proxyStatus; - - if ($decryptedControlData === 'ownCloud') { - return true; - } else { - return false; - } -} - - // Enable recoveryAdmin $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); @@ -94,7 +70,8 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){ $return = true; } else { // get recovery key and check the password - $return = checkPassword($view, $_POST['recoveryPassword'] ,$recoveryKeyId); + $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); + $return = $util->checkRecoveryPassword($_POST['recoveryPassword']); if ($return) { OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); } @@ -105,8 +82,8 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){ isset($_POST['adminEnableRecovery']) && 0 == $_POST['adminEnableRecovery'] ) { - $view = new \OC\Files\View('/'); - $return = checkPassword($view, $_POST['recoveryPassword'], $recoveryKeyId); + $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); + $return = $util->checkRecoveryPassword($_POST['recoveryPassword']); if ($return) { // Set recoveryAdmin as disabled diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index fa353901c3f..9bc6ab6433c 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -5,6 +5,27 @@ * See the COPYING-README file. */ +OC.msg={ + startSaving:function(selector){ + $(selector) + .html( t('settings', 'Saving...') ) + .removeClass('success') + .removeClass('error') + .stop(true, true) + .show(); + }, + finishedSaving:function(selector, data){ + if( data.status === "success" ){ + $(selector).html( data.data.message ) + .addClass('success') + .stop(true, true) + .delay(3000) + .fadeOut(900); + }else{ + $(selector).html( data.data.message ).addClass('error'); + } + } +}; $(document).ready(function(){ // Trigger ajax on recoveryAdmin status change @@ -34,10 +55,48 @@ $(document).ready(function(){ if (data.status == "error") { alert("Couldn't switch recovery key mode, please check your recovery key password!"); $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true"); + } else { + if (recoveryStatus == "0") { + $('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true"); + $('input:password[name="changeRecoveryPassword"]').attr("disabled", "true"); + $('input:password[name="changeRecoveryPassword"]').val(""); + } else { + $('input:password[name="changeRecoveryPassword"]').removeAttr("disabled"); + } } } ); } ); + + // change password + + $('input:password[name="changeRecoveryPassword"]').keyup(function(event) { + var oldRecoveryPassword = $('input:password[id="oldRecoveryPassword"]').val(); + var newRecoveryPassword = $('input:password[id="newRecoveryPassword"]').val(); + if (newRecoveryPassword != '' && oldRecoveryPassword != '' ) { + $('button:button[name="submitChangeRecoveryKey"]').removeAttr("disabled"); + } else { + $('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true"); + } + }); + + + $('button:button[name="submitChangeRecoveryKey"]').click(function() { + var oldRecoveryPassword = $('input:password[id="oldRecoveryPassword"]').val(); + var newRecoveryPassword = $('input:password[id="newRecoveryPassword"]').val(); + OC.msg.startSaving('#encryption .msg'); + $.post( + OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' ) + , { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword } + , function( data ) { + if (data.status == "error") { + OC.msg.finishedSaving('#encryption .msg', data); + } else { + OC.msg.finishedSaving('#encryption .msg', data); + } + } + ); + }); }) \ No newline at end of file diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 19c9cd72a19..6cb4ccb8085 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1282,4 +1282,32 @@ class Util { return $this->userFilesDir; } + public function checkRecoveryPassword($password) { + + $pathKey = '/owncloud_private_key/' . $this->recoveryKeyId . ".private.key"; + $pathControlData = '/control-file/controlfile.enc'; + + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $recoveryKey = $this->view->file_get_contents($pathKey); + + $decryptedRecoveryKey = Crypt::symmetricDecryptFileContent($recoveryKey, $password); + + $controlData = $this->view->file_get_contents($pathControlData); + $decryptedControlData = Crypt::keyDecrypt($controlData, $decryptedRecoveryKey); + + \OC_FileProxy::$enabled = $proxyStatus; + + if ($decryptedControlData === 'ownCloud') { + return true; + } + + return false; + } + + public function getRecoveryKeyId() { + return $this->recoveryKeyId; + } + } diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php index 46efb61b029..90edc0eae24 100644 --- a/apps/files_encryption/settings-personal.php +++ b/apps/files_encryption/settings-personal.php @@ -32,6 +32,7 @@ $recoveryAdminEnabled = OC_Appconfig::getValue( 'files_encryption', 'recoveryAdm $recoveryEnabledForUser = $util->recoveryEnabledForUser(); \OCP\Util::addscript( 'files_encryption', 'settings-personal' ); +\OCP\Util::addScript( 'settings', 'personal' ); $tmpl->assign( 'recoveryEnabled', $recoveryAdminEnabled ); $tmpl->assign( 'recoveryEnabledForUser', $recoveryEnabledForUser ); diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php index 95c1b66681c..18fea1845f4 100644 --- a/apps/files_encryption/templates/settings-admin.php +++ b/apps/files_encryption/templates/settings-admin.php @@ -10,7 +10,7 @@

- +
/> t( "Disabled" )); ?>

+

+

+ t( "Change encryption passwords recovery key:" )); ?> +

+ /> + +
+ /> + +
+ + +

-- GitLab From 1a31dc036ac3ca30b266ce2715e0adee3d112299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 15 May 2013 16:14:54 +0200 Subject: [PATCH 339/454] added missing file to enable the admin to change the recovery key password --- .../ajax/changeRecoveryPassword.php | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 apps/files_encryption/ajax/changeRecoveryPassword.php diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php new file mode 100644 index 00000000000..d990796a4fb --- /dev/null +++ b/apps/files_encryption/ajax/changeRecoveryPassword.php @@ -0,0 +1,52 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + * + * @brief Script to change recovery key password + * + */ + +use OCA\Encryption; + +\OCP\JSON::checkAdminUser(); +\OCP\JSON::checkAppEnabled('files_encryption'); +\OCP\JSON::callCheck(); + +$l=OC_L10N::get('core'); + +$return = false; + +$oldPassword = $_POST['oldPassword']; +$newPassword = $_POST['newPassword']; + +$util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); + +$result = $util->checkRecoveryPassword($oldPassword); + +if ($result) { + $keyId = $util->getRecoveryKeyId(); + $keyPath = '/owncloud_private_key/' . $keyId . ".private.key"; + $view = new \OC\Files\View('/'); + + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $encryptedRecoveryKey = $view->file_get_contents($keyPath); + $decryptedRecoveryKey = \OCA\Encryption\Crypt::symmetricDecryptFileContent($encryptedRecoveryKey, $oldPassword); + $encryptedRecoveryKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword); + $view->file_put_contents($keyPath, $encryptedRecoveryKey); + + \OC_FileProxy::$enabled = $proxyStatus; + + $return = true; +} + +// success or failure +if ($return) { + \OCP\JSON::success(array("data" => array( "message" => $l->t('Password successfully changed.')))); +} else { + \OCP\JSON::error(array("data" => array( "message" => $l->t('Could not change the password. Maybe the old password was not correct.')))); +} \ No newline at end of file -- GitLab From 0916769f6764e2497f820419121599c3ce121e87 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 17:00:01 +0200 Subject: [PATCH 340/454] fix for SQLite3Result::fetchArray(): The SQLite3Result object has not been correctly initialised in post_addToGroup --- lib/public/share.php | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 0d90ffb9b7b..b2eeb29234a 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1519,31 +1519,34 @@ class Share { } public static function post_addToGroup($arguments) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' - .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], - self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], - $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); + + if(\OC_Config::getValue('installed')) { + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); + } } } } -- GitLab From 57c0a7ed693fec6ef487b71a514202b24dd70df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 15 May 2013 17:56:45 +0200 Subject: [PATCH 341/454] add recovery key to all files if the user enabled the feature and removes them again on disable --- apps/files_encryption/ajax/userrecovery.php | 6 ++++ apps/files_encryption/lib/util.php | 34 +++++++++++++++++++ .../templates/settings-personal.php | 3 +- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php index 85a799011d7..1f42b376e42 100644 --- a/apps/files_encryption/ajax/userrecovery.php +++ b/apps/files_encryption/ajax/userrecovery.php @@ -24,6 +24,12 @@ if ( // Save recovery preference to DB $return = $util->setRecoveryForUser( $_POST['userEnableRecovery'] ); + + if ($_POST['userEnableRecovery'] == "1") { + $util->addRecoveryKeys(); + } else { + $util->removeRecoveryKeys(); + } } else { diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 6cb4ccb8085..6eee1ada8a8 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1310,4 +1310,38 @@ class Util { return $this->recoveryKeyId; } + /** + * @brief add recovery key to all encrypted files + */ + public function addRecoveryKeys($path = '/') { + $dirContent = $this->view->getDirectoryContent($this->keyfilesPath.$path); + foreach ($dirContent as $item) { + $filePath = substr($item['path'], 25); + if ($item['type'] == 'dir') { + $this->addRecoveryKey($filePath.'/'); + } else { + $session = new Session(new \OC_FilesystemView('/')); + $sharingEnabled = \OCP\Share::isEnabled(); + $file = substr($filePath, 0, -4); + $usersSharing = $this->getSharingUsersArray($sharingEnabled, $file); + $this->setSharedFileKeyfiles( $session, $usersSharing, $file ); + } + } + } + + /** + * @brief remove recovery key to all encrypted files + */ + public function removeRecoveryKeys($path = '/') { + $dirContent = $this->view->getDirectoryContent($this->keyfilesPath.$path); + foreach ($dirContent as $item) { + $filePath = substr($item['path'], 25); + if ($item['type'] == 'dir') { + $this->removeRecoveryKeys($filePath.'/'); + } else { + $file = substr($filePath, 0, -4); + $this->view->unlink($this->shareKeysPath.'/'.$file.'.'.$this->recoveryKeyId.'.shareKey'); + } + } + } } diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php index 00f567ecb26..33989416d33 100644 --- a/apps/files_encryption/templates/settings-personal.php +++ b/apps/files_encryption/templates/settings-personal.php @@ -48,6 +48,7 @@


+ -- GitLab From cb41a30b00ef8d31676989017fa2b9ad416659b9 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 15 May 2013 18:56:54 +0200 Subject: [PATCH 342/454] Add Compound property to avoid double escaping values. --- lib/vobject/compoundproperty.php | 70 ++++++++++++++++++++++++++++++++ tests/lib/vobject.php | 19 +++++++++ 2 files changed, 89 insertions(+) create mode 100644 lib/vobject/compoundproperty.php diff --git a/lib/vobject/compoundproperty.php b/lib/vobject/compoundproperty.php new file mode 100644 index 00000000000..d702ab802e0 --- /dev/null +++ b/lib/vobject/compoundproperty.php @@ -0,0 +1,70 @@ +. + * + */ + +namespace OC\VObject; + +/** + * This class overrides \Sabre\VObject\Property::serialize() to not + * double escape commas and semi-colons in compound properties. +*/ +class CompoundProperty extends \Sabre\VObject\Property\Compound { + + /** + * Turns the object back into a serialized blob. + * + * @return string + */ + public function serialize() { + + $str = $this->name; + if ($this->group) { + $str = $this->group . '.' . $this->name; + } + + foreach($this->parameters as $param) { + $str.=';' . $param->serialize(); + } + $src = array( + "\n", + ); + $out = array( + '\n', + ); + $str.=':' . str_replace($src, $out, $this->value); + + $out = ''; + while(strlen($str) > 0) { + if (strlen($str) > 75) { + $out .= mb_strcut($str, 0, 75, 'utf-8') . "\r\n"; + $str = ' ' . mb_strcut($str, 75, strlen($str), 'utf-8'); + } else { + $out .= $str . "\r\n"; + $str = ''; + break; + } + } + + return $out; + + } + +} \ No newline at end of file diff --git a/tests/lib/vobject.php b/tests/lib/vobject.php index 1103a4b3297..f28d22a1fcd 100644 --- a/tests/lib/vobject.php +++ b/tests/lib/vobject.php @@ -10,10 +10,29 @@ class Test_VObject extends PHPUnit_Framework_TestCase { public function setUp() { Sabre\VObject\Property::$classMap['SUMMARY'] = 'OC\VObject\StringProperty'; + Sabre\VObject\Property::$classMap['ORG'] = 'OC\VObject\CompoundProperty'; } function testStringProperty() { $property = Sabre\VObject\Property::create('SUMMARY', 'Escape;this,please'); $this->assertEquals("SUMMARY:Escape\;this\,please\r\n", $property->serialize()); } + + function testCompoundProperty() { + + $arr = array( + 'ABC, Inc.', + 'North American Division', + 'Marketing;Sales', + ); + + $property = Sabre\VObject\Property::create('ORG'); + $property->setParts($arr); + + $this->assertEquals('ABC\, Inc.;North American Division;Marketing\;Sales', $property->value); + $this->assertEquals('ORG:ABC\, Inc.;North American Division;Marketing\;Sales' . "\r\n", $property->serialize()); + $this->assertEquals(3, count($property->getParts())); + $parts = $property->getParts(); + $this->assertEquals('Marketing;Sales', $parts[2]); + } } \ No newline at end of file -- GitLab From 68059b1ec39589472e4b6a490782b6ac2b02c56c Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 17:00:01 +0200 Subject: [PATCH 343/454] fix for SQLite3Result::fetchArray(): The SQLite3Result object has not been correctly initialised in post_addToGroup --- lib/public/share.php | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index a561319e9bd..d04411e0db1 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1401,31 +1401,34 @@ class Share { } public static function post_addToGroup($arguments) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' - .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], - self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], - $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); + + if(\OC_Config::getValue('installed')) { + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); + } } } } -- GitLab From c50bf3e3c54ccbad6b58538fb131924d4f0ff3d7 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 10:19:38 +0200 Subject: [PATCH 344/454] fix for losing mount point "/" --- lib/files/filesystem.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php index eadd8a93faf..d60d430d77c 100644 --- a/lib/files/filesystem.php +++ b/lib/files/filesystem.php @@ -222,7 +222,10 @@ class Filesystem { return false; } self::$defaultInstance = new View($root); - self::$mounts = new Mount\Manager(); + + if(!self::$mounts) { + self::$mounts = new Mount\Manager(); + } //load custom mount config self::initMountPoints($user); -- GitLab From 5fcb5f3aba90e24762d031ea4481ce65e34c018f Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 21:00:35 +0200 Subject: [PATCH 345/454] added test for password change --- apps/files_encryption/tests/crypt.php | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index c694aa1140c..f84536aaa13 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -690,6 +690,40 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $view->unlink( $newFolder ); } + function testChangePassphrase() { + + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataLong, $decrypt ); + + // change password + \OC_User::setPassword('admin', 'test'); + + // relogin + $params['uid'] = $this->userId; + $params['password'] = 'test'; + OCA\Encryption\Hooks::login($params); + + // Get file decrypted contents + $newDecrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataLong, $newDecrypt ); + + // tear down + // change password back + \OC_User::setPassword('admin', 'admin'); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + $view->unlink( $filename ); + } // function testEncryption(){ // // $key=uniqid(); -- GitLab From ec2e193a4413fa2d02ab6d127b1697294330e2bf Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 21:01:03 +0200 Subject: [PATCH 346/454] removed unused code --- apps/files_encryption/hooks/hooks.php | 38 --------------------------- apps/files_encryption/lib/helper.php | 3 +-- 2 files changed, 1 insertion(+), 40 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 16e9f9177d7..8f03087e568 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -169,33 +169,6 @@ class Hooks { } } - - /** - * @brief update the encryption key of the file uploaded by the client - */ - public static function updateKeyfile( $params ) { - - if ( Crypt::mode() == 'client' ) { - - if ( isset( $params['properties']['key'] ) ) { - - $view = new \OC_FilesystemView( '/' ); - $userId = \OCP\User::getUser(); - - Keymanager::setFileKey( $view, $params['path'], $userId, $params['properties']['key'] ); - - } else { - - \OC_Log::write( - 'Encryption library', "Client side encryption is enabled but the client doesn't provide a encryption key for the file!" - , \OC_Log::ERROR - ); - - } - - } - - } /* * @brief check if files can be encrypted to every user. @@ -426,17 +399,6 @@ class Hooks { } /** - * @brief - */ - public static function postUnshareAll( $params ) { - - // NOTE: It appears that this is never called for files, so - // we may not need to implement it - - } - - - /** * @brief after a file is renamed, rename its keyfile and share-keys also fix the file size and fix also the sharing * @param array with oldpath and newpath * diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 783cebeee5b..6d5aae4e8b5 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -37,7 +37,6 @@ class Helper { \OCP\Util::connectHook( 'OCP\Share', 'pre_shared', 'OCA\Encryption\Hooks', 'preShared' ); \OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' ); \OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' ); - \OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' ); } /** @@ -58,7 +57,7 @@ class Helper { */ public static function registerWebdavHooks() { - \OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfileFromClient' ); + } /** -- GitLab From b75a0abb6bee24b3f6e8276d129af3271a05e5d1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Wed, 15 May 2013 22:42:22 +0200 Subject: [PATCH 347/454] added test for rename folder --- apps/files_encryption/tests/crypt.php | 36 +++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index f84536aaa13..6168f69415e 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -690,6 +690,38 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $view->unlink( $newFolder ); } + function testRenameFolder() { + + $filename = '/tmp-'.time(); + + $folder = '/folder'; + $newFolder = '/newfolder'; + $view = new \OC\Files\View('/' . $this->userId . '/files'); + $view->mkdir($folder); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $folder . $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = file_get_contents( 'crypt://' . $folder . $filename ); + + $this->assertEquals( $this->dataLong, $decrypt ); + + // rename folder + $view->rename($folder, $newFolder); + + // Get file decrypted contents + $newDecrypt = file_get_contents( 'crypt://' . $newFolder . $filename ); + + $this->assertEquals( $this->dataLong, $newDecrypt ); + + // tear down + $view->unlink( $newFolder ); + } + function testChangePassphrase() { $filename = 'tmp-'.time(); @@ -706,7 +738,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals( $this->dataLong, $decrypt ); // change password - \OC_User::setPassword('admin', 'test'); + \OC_User::setPassword($this->userId, 'test'); // relogin $params['uid'] = $this->userId; @@ -720,7 +752,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // tear down // change password back - \OC_User::setPassword('admin', 'admin'); + \OC_User::setPassword($this->userId, $this->pass); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->unlink( $filename ); } -- GitLab From 990980392c754edac0b4f8325458f1055c7ba0d8 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Wed, 15 May 2013 22:44:15 +0200 Subject: [PATCH 348/454] No unit test coverage reports for pgsql - this causes issues on Jenkins. --- autotest.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/autotest.sh b/autotest.sh index fdf6d2fe098..267815e96d8 100755 --- a/autotest.sh +++ b/autotest.sh @@ -90,7 +90,12 @@ function execute_tests { rm -rf coverage-html-$1 mkdir coverage-html-$1 php -f enable_all.php - phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 + if [ "$1" == "pgsql" ] ; then + # no coverage with pg - causes segfault on ci.tmit.eu - reason unknown + phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml + else + phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 + fi } # -- GitLab From f355d797ff1dc5f92d09acbee48f3d6ff9fb4ecc Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Thu, 16 May 2013 00:23:05 +0200 Subject: [PATCH 349/454] Port OC.dialogs to use octemplate except for prompt() and form(). Also load octemplate per default. --- core/css/styles.css | 3 + core/js/oc-dialogs.js | 338 +++++++++++++++++++-------------- core/templates/filepicker.html | 11 ++ core/templates/message.html | 3 + lib/base.php | 1 + 5 files changed, 216 insertions(+), 140 deletions(-) create mode 100644 core/templates/filepicker.html create mode 100644 core/templates/message.html diff --git a/core/css/styles.css b/core/css/styles.css index 93f2cecbfe9..ee00196d669 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -385,10 +385,13 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin #dirup {width:4%;} #dirtree {width:92%;} #filelist {height:270px; overflow-y:auto; background-color:white; width:100%;} +#filelist img { margin: 2px 1em 0 4px; } +#filelist .date { float:right;margin-right:1em; } .filepicker_element_selected { background-color:lightblue;} .filepicker_loader {height:170px; width:100%; background-color:#333; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3; visibility:visible; position:absolute; top:0; left:0; text-align:center; padding-top:150px;} .ui-dialog {position:fixed !important;} span.ui-icon {float: left; margin: 3px 7px 30px 0;} +.loading { background: url('../img/loading.gif') no-repeat center; cursor: wait; } /* ---- CATEGORIES ---- */ #categoryform .scrollarea { position:absolute; left:10px; top:10px; right:10px; bottom:50px; overflow:auto; border:1px solid #ddd; background:#f8f8f8; } diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 990c3f8bf38..c0c035bafdd 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -1,7 +1,7 @@ /** * ownCloud * - * @author Bartek Przybylski + * @author Bartek Przybylski,Christopher Schäpers, Thomas Tanghus * @copyright 2012 Bartek Przybylski bartek@alefzero.eu * * This library is free software; you can redistribute it and/or @@ -31,8 +31,7 @@ var OCdialogs = { * @param modal make the dialog modal */ alert:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal); }, /** * displays info dialog @@ -42,8 +41,7 @@ var OCdialogs = { * @param modal make the dialog modal */ info:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal); }, /** * displays confirmation dialog @@ -53,8 +51,7 @@ var OCdialogs = { * @param modal make the dialog modal */ confirm:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.YES_NO_BUTTONS, callback, modal); + OCdialogs.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal); }, /** * prompt for user input @@ -66,7 +63,7 @@ var OCdialogs = { prompt:function(text, title, default_value, callback, modal) { var input = ''; var content = '

' + escapeHTML(text) + ':
' + input + '

'; - OCdialogs.message(content, title, OCdialogs.PROMPT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(content, title, 'prompt', OCdialogs.OK_BUTTON, callback, modal); }, /** * prompt user for input with custom form @@ -130,6 +127,39 @@ var OCdialogs = { }); OCdialogs.dialogs_counter++; }, + _getFilePickerTemplate: function() { + var defer = $.Deferred(); + if(!this.$filePickerTemplate) { + var self = this; + $.get(OC.filePath('core', 'templates', 'filepicker.html'), function(tmpl) { + self.$filePickerTemplate = $(tmpl); + self.$listTmpl = self.$filePickerTemplate.find('#filelist li:first-child').detach(); + defer.resolve(self.$filePickerTemplate); + }) + .fail(function() { + defer.reject(); + }); + } else { + defer.resolve(this.$filePickerTemplate); + } + return defer.promise(); + }, + _getMessageTemplate: function() { + var defer = $.Deferred(); + if(!this.$messageTemplate) { + var self = this; + $.get(OC.filePath('core', 'templates', 'message.html'), function(tmpl) { + self.$messageTemplate = $(tmpl); + defer.resolve(self.$messageTemplate); + }) + .fail(function() { + defer.reject(); + }); + } else { + defer.resolve(this.$messageTemplate); + } + return defer.promise(); + }, /** * show a file picker to pick a file from * @param title dialog title @@ -139,132 +169,146 @@ var OCdialogs = { * @param modal make the dialog modal */ filepicker:function(title, callback, multiselect, mimetype_filter, modal) { - var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; - var dialog_id = '#' + dialog_name; - var dialog_content = '
'; - var dialog_loader = '
'; - var dialog_div = '
' + dialog_content + dialog_loader + '
'; - if (modal === undefined) { modal = false }; - if (multiselect === undefined) { multiselect = false }; - if (mimetype_filter === undefined) { mimetype_filter = '' }; + $.when(this._getFilePickerTemplate()).then(function($tmpl) { + var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; + var dialog_id = '#' + dialog_name; + var $dlg = $tmpl.octemplate({ + dialog_name: dialog_name, + title: title + }).data('path', '/'); - $('body').append(dialog_div); + if (modal === undefined) { modal = false }; + if (multiselect === undefined) { multiselect = false }; + if (mimetype_filter === undefined) { mimetype_filter = '' }; - $(dialog_id).data('path', '/'); + $('body').append($dlg); - $(dialog_id + ' #dirtree').focus().change( {dcid: dialog_id}, OCdialogs.handleTreeListSelect ); - $(dialog_id + ' #dirup').click( {dcid: dialog_id}, OCdialogs.filepickerDirUp ); + $dlg.find('#dirtree').focus().change( {dcid: dialog_id}, OCdialogs.handleTreeListSelect ); + $dlg.find('#dirup').click( {dcid: dialog_id}, OCdialogs.filepickerDirUp ); - $(dialog_id).ready(function(){ - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), { mimetype: mimetype_filter } ,function(request) { - OCdialogs.fillFilePicker(request, dialog_id); - }); - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), { mimetype: "httpd/unix-directory" }, function(request) { - OCdialogs.fillTreeList(request, dialog_id); - }); - }).data('multiselect', multiselect).data('mimetype',mimetype_filter); + $dlg.find('#filelist').empty().addClass('loading'); + $dlg.ready(function(){ + $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), + {mimetype: mimetype_filter}, + function(response) { + OCdialogs.fillFilePicker(response, dialog_id); + }); + $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), + {mimetype: 'httpd/unix-directory'}, + function(response) { + OCdialogs.fillTreeList(response, dialog_id); + }); + }).data('multiselect', multiselect).data('mimetype',mimetype_filter); - // build buttons - var functionToCall = function() { - if (callback !== undefined) { - var datapath; - if (multiselect === true) { - datapath = []; - $(dialog_id + ' .filepicker_element_selected .filename').each(function(index, element) { - datapath.push( $(dialog_id).data('path') + $(element).text() ); - }); - } else { - var datapath = $(dialog_id).data('path'); - datapath += $(dialog_id+' .filepicker_element_selected .filename').text(); + // build buttons + var functionToCall = function() { + if (callback !== undefined) { + var datapath; + if (multiselect === true) { + datapath = []; + $(dialog_id + ' .filepicker_element_selected .filename').each(function(index, element) { + datapath.push( $(dialog_id).data('path') + $(element).text() ); + }); + } else { + var datapath = $(dialog_id).data('path'); + datapath += $(dialog_id+' .filepicker_element_selected .filename').text(); + } + callback(datapath); + $(dialog_id).dialog('close'); } - callback(datapath); - $(dialog_id).dialog('close'); - } - }; - var buttonlist = [{ - text: t('core', 'Choose'), - click: functionToCall - }, - { - text: t('core', 'Cancel'), - click: function(){$(dialog_id).dialog('close'); } - }]; + }; + var buttonlist = [{ + text: t('core', 'Choose'), + click: functionToCall + }, + { + text: t('core', 'Cancel'), + click: function(){$(dialog_id).dialog('close'); } + }]; - $(dialog_id).dialog({ - width: (4/9)*$(document).width(), - height: 420, - modal: modal, - buttons: buttonlist + $(dialog_id).dialog({ + width: (4/9)*$(document).width(), + height: 420, + modal: modal, + buttons: buttonlist + }); + OCdialogs.dialogs_counter++; + }) + .fail(function() { + alert(t('core', 'Error loading file picker template')); }); - OCdialogs.dialogs_counter++; }, /** * Displays raw dialog * You better use a wrapper instead ... */ message:function(content, title, dialog_type, buttons, callback, modal) { - var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; - var dialog_id = '#' + dialog_name; - var dialog_div = '
' + content + '
'; - if (modal === undefined) { modal = false }; - $('body').append(dialog_div); - var buttonlist = []; - switch (buttons) { - case OCdialogs.YES_NO_BUTTONS: - buttonlist = [{ - text: t('core', 'Yes'), - click: function(){ - if (callback !== undefined) { callback(true) }; - $(dialog_id).dialog('close'); - } - }, - { - text: t('core', 'No'), - click: function(){ - if (callback !== undefined) { callback(false) }; - $(dialog_id).dialog('close'); - } - }]; - break; - case OCdialogs.OK_BUTTON: - var functionToCall; - switch(dialog_type) { - case OCdialogs.ALERT_DIALOG: - functionToCall = function() { + $.when(this._getMessageTemplate()).then(function($tmpl) { + var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; + var dialog_id = '#' + dialog_name; + var $dlg = $tmpl.octemplate({ + dialog_name: dialog_name, + title: title, + message: content, + type: dialog_type + }); + if (modal === undefined) { modal = false }; + $('body').append($dlg); + var buttonlist = []; + switch (buttons) { + case OCdialogs.YES_NO_BUTTONS: + buttonlist = [{ + text: t('core', 'Yes'), + click: function(){ + if (callback !== undefined) { callback(true) }; $(dialog_id).dialog('close'); - if(callback !== undefined) { callback() }; - }; - break; - case OCdialogs.PROMPT_DIALOG: - buttonlist[1] = { - text: t('core', 'Cancel'), - click: function() { $(dialog_id).dialog('close'); } - }; - functionToCall = function() { OCdialogs.prompt_ok_handler(callback, dialog_id); }; - break; - } - buttonlist[0] = { - text: t('core', 'Ok'), - click: functionToCall - }; - break; - }; + } + }, + { + text: t('core', 'No'), + click: function(){ + if (callback !== undefined) { callback(false) }; + $(dialog_id).dialog('close'); + } + }]; + break; + case OCdialogs.OK_BUTTON: + var functionToCall; + switch(dialog_type) { + case 'prompt': + buttonlist[1] = { + text: t('core', 'Cancel'), + click: function() { $(dialog_id).dialog('close'); } + }; + functionToCall = function() { OCdialogs.prompt_ok_handler(callback, dialog_id); }; + break; + default: + functionToCall = function() { + $(dialog_id).dialog('close'); + if(callback !== undefined) { callback() }; + }; + break; + } + buttonlist[0] = { + text: t('core', 'Ok'), + click: functionToCall + }; + break; + }; - $(dialog_id).dialog({ - width: (4/9) * $(document).width(), - height: 180, - modal: modal, - buttons: buttonlist + $(dialog_id).dialog({ + modal: modal, + buttons: buttonlist + }); + OCdialogs.dialogs_counter++; + }) + .fail(function() { + alert(t('core', 'Error loading file picker template')); }); - OCdialogs.dialogs_counter++; }, // dialog button types YES_NO_BUTTONS: 70, OK_BUTTONS: 71, - // dialogs types - ALERT_DIALOG: 80, - INFO_DIALOG: 81, - FORM_DIALOG: 82, // used to name each dialog dialogs_counter: 0, @@ -278,7 +322,7 @@ var OCdialogs = { prompt_ok_handler: function(callback, dialog_id) { $(dialog_id).dialog('close'); - if (callback !== undefined) { callback($(dialog_id + " input#oc-dialog-prompt-input").val()) }; + if (callback !== undefined) { callback($(dialog_id + ' input#oc-dialog-prompt-input').val()) }; }, form_ok_handler: function(callback, dialog_id) { @@ -297,8 +341,7 @@ var OCdialogs = { * fills the filepicker with files */ fillFilePicker:function(request, dialog_content_id) { - var template_content = '*NAME*
*LASTMODDATE*
'; - var template = '
*CONTENT*
'; + var $filelist = $(dialog_content_id + ' #filelist').empty(); var files = ''; var dirs = []; var others = []; @@ -309,14 +352,24 @@ var OCdialogs = { others.push(file); } }); + var sorted = dirs.concat(others); - for (var i = 0; i < sorted.length; i++) { - files_content = template_content.replace('*LASTMODDATE*', OC.mtime2date(sorted[i].mtime)).replace('*NAME*', escapeHTML(sorted[i].name)).replace('*MIMETYPEICON*', sorted[i].mimetype_icon); - files += template.replace('*ENTRYNAME*', escapeHTML(sorted[i].name)).replace('*ENTRYTYPE*', escapeHTML(sorted[i].type)).replace('*CONTENT*', files_content); - } - $(dialog_content_id + ' #filelist').html(files); - $('#filelist div').click(function() { + var self = this; + $.each(sorted, function(idx, entry) { + $li = self.$listTmpl.octemplate({ + type: entry.type, + dcid: dialog_content_id, + imgsrc: entry.mimetype_icon, + filename: entry.name, + date: OC.mtime2date(entry.mtime) + }); + $filelist.append($li); + }); + + $filelist.removeClass('loading'); + + $filelist.on('click', 'li', function() { OCdialogs.handlePickerClick($(this), $(this).data('entryname'), dialog_content_id); }); @@ -326,24 +379,29 @@ var OCdialogs = { * fills the tree list with directories */ fillTreeList: function(request, dialog_id) { - var template = ''; - var paths = ''; + var $dirtree = $(dialog_id + ' #dirtree').empty(); + var $template = $(''); + $dirtree.append($template.octemplate({ + count: 0, + name: $(dialog_id).data('path') + })); $.each(request.data, function(index, file) { - paths += template.replace('*COUNT*', index).replace('*NAME*', escapeHTML(file.name)); + $dirtree.append($template.octemplate({ + count: index, + name: file.name + })); }); - - $(dialog_id + ' #dirtree').html(paths); }, /** * handle selection made in the tree list */ handleTreeListSelect:function(event) { - if ($("option:selected", this).html().indexOf('/') !== -1) { // if there's a slash in the selected path, don't append it - $(event.data.dcid).data('path', $("option:selected", this).html()); + if ($('option:selected', this).html().indexOf('/') !== -1) { // if there's a slash in the selected path, don't append it + $(event.data.dcid).data('path', $('option:selected', this).html()); } else { - $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $("option:selected", this).html() + '/'); + $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $('option:selected', this).html() + '/'); } - $(event.data.dcid + ' .filepicker_loader').css('visibility', 'visible'); + $(event.data.dcid).find('#filelist').addClass('loading'); $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -356,7 +414,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: $(event.data.dcid).data('path'), - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } ); @@ -366,13 +424,13 @@ var OCdialogs = { */ filepickerDirUp:function(event) { var old_path = $(event.data.dcid).data('path'); - if ( old_path !== "/") { + if ( old_path !== '/') { var splitted_path = old_path.split("/"); var new_path = "" for (var i = 0; i < splitted_path.length - 2; i++) { - new_path += splitted_path[i] + "/" + new_path += splitted_path[i] + '/' } - $(event.data.dcid).data('path', new_path); + $(event.data.dcid).data('path', new_path).find('#filelist').empty().addClass('loading');; $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -385,7 +443,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: $(event.data.dcid).data('path'), - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } ); @@ -395,16 +453,16 @@ var OCdialogs = { * handle clicks made in the filepicker */ handlePickerClick:function(element, name, dialog_content_id) { - if ( $(element).attr('data') === 'file' ){ + if ( $(element).data('type') === 'file' ){ if ( $(dialog_content_id).data('multiselect') !== true) { $(dialog_content_id + ' .filepicker_element_selected').removeClass('filepicker_element_selected'); } $(element).toggleClass('filepicker_element_selected'); return; - } else if ( $(element).attr('data') === 'dir' ) { + } else if ( $(element).data('type') === 'dir' ) { var datapath = escapeHTML( $(dialog_content_id).data('path') + name + '/' ); $(dialog_content_id).data('path', datapath); - $(dialog_content_id + ' .filepicker_loader').css('visibility', 'visible'); + $(dialog_content_id).find('#filelist').empty().addClass('loading'); $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -417,7 +475,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: datapath, - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, dialog_content_id) } ); diff --git a/core/templates/filepicker.html b/core/templates/filepicker.html new file mode 100644 index 00000000000..f29de390ef8 --- /dev/null +++ b/core/templates/filepicker.html @@ -0,0 +1,11 @@ +
+ + +
    +
  • + + {filename} + {date} +
  • +
+
diff --git a/core/templates/message.html b/core/templates/message.html new file mode 100644 index 00000000000..59048100f32 --- /dev/null +++ b/core/templates/message.html @@ -0,0 +1,3 @@ +
+

{message}

+
diff --git a/lib/base.php b/lib/base.php index 667202d3aef..2e2cee97eb0 100644 --- a/lib/base.php +++ b/lib/base.php @@ -260,6 +260,7 @@ class OC { OC_Util::addScript("jquery-tipsy"); OC_Util::addScript("compatibility"); OC_Util::addScript("oc-dialogs"); + OC_Util::addScript("octemplate"); OC_Util::addScript("js"); OC_Util::addScript("eventsource"); OC_Util::addScript("config"); -- GitLab From 8f963b95e53e54220bcce1931599496d9aa797b1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 00:30:01 +0200 Subject: [PATCH 350/454] added test for share with group --- apps/files_encryption/tests/share.php | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index 6962cadc443..e5427fdf504 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -79,6 +79,11 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->loginHelper('user1', true); $this->loginHelper('user2', true); $this->loginHelper('user3', true); + + // create group and assign users + \OC_Group::createGroup('group1'); + \OC_Group::addToGroup('user2', 'group1'); + \OC_Group::addToGroup('user3', 'group1'); } function tearDown() @@ -90,10 +95,15 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase OC_App::disable('files_trashbin'); } + // clean group + \OC_Group::deleteGroup('group1'); + // cleanup users \OC_User::deleteUser('user1'); \OC_User::deleteUser('user2'); \OC_User::deleteUser('user3'); + + \OC_FileProxy::clearProxies(); } function testShareFile($withTeardown = true) @@ -454,6 +464,70 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); } + function testShareFileWithGroup() + { + // login as admin + $this->loginHelper('admin'); + + // save file with content + $cryptedFile = file_put_contents('crypt://' . $this->filename, $this->dataShort); + + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile)); + + // disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // get the file info from previous created file + $fileInfo = $this->view->getFileInfo('/admin/files/' . $this->filename); + + // check if we have a valid file info + $this->assertTrue(is_array($fileInfo)); + + // check if the unencrypted file size is stored + $this->assertGreaterThan(0, $fileInfo['unencrypted_size']); + + // re-enable the file proxy + \OC_FileProxy::$enabled = $proxyStatus; + + // share the file + \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1', OCP\PERMISSION_ALL); + + // login as admin + $this->loginHelper('admin'); + + // check if share key for user2 and user3 exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey')); + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user3.shareKey')); + + // login as user1 + $this->loginHelper('user2'); + + // get file contents + $retrievedCryptedFile = $this->view->file_get_contents('/user2/files/Shared/' . $this->filename); + + // check if data is the same as we previously written + $this->assertEquals($this->dataShort, $retrievedCryptedFile); + + // login as admin + $this->loginHelper('admin'); + + // unshare the file + \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1'); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user3.shareKey')); + + // cleanup + $this->view->unlink('/admin/files/' . $this->filename); + + // check if share key not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); + + } + function loginHelper($user, $create = false) { if ($create) { -- GitLab From c0c4fe5fd3cd575656ed30b4464bb6bc3c6d4f40 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 00:31:17 +0200 Subject: [PATCH 351/454] fix if file is not yet created --- apps/files_encryption/lib/proxy.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 36d05d7e0fe..1d60770b4d7 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -131,8 +131,13 @@ class Proxy extends \OC_FileProxy { $encData = Crypt::symmetricEncryptFileContent( $data, $plainKey ); $sharingEnabled = \OCP\Share::isEnabled(); - - $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId ); + + // if file exists try to get sharing users + if($view->file_exists($path)) { + $uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId ); + } else { + $uniqueUserIds[] = $userId; + } // Fetch public keys for all users who will share the file $publicKeys = Keymanager::getPublicKeys( $view, $uniqueUserIds ); -- GitLab From c651950a17cf1381a832e172191e4f4cc172569b Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 00:34:45 +0200 Subject: [PATCH 352/454] fix for re-share and removed check if file exists because we are sometime into a pre_put_contents hook --- apps/files_encryption/hooks/hooks.php | 3 ++- apps/files_encryption/lib/util.php | 33 ++++++++++++++++----------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 8f03087e568..f843c7027d5 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -231,8 +231,9 @@ class Hooks { $util = new Util($view, $userId); $path = $util->fileIdToPath($params['itemSource']); + $share = $util->getParentFromShare($params['id']); //if parent is set, then this is a re-share action - if ($params['parent']) { + if ($share['parent'] != null) { // get the parent from current share $parent = $util->getShareParent($params['parent']); diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 6eee1ada8a8..91d86cc8558 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1133,19 +1133,7 @@ class Util { } - // Make path relative for use by $view - $relpath = \OC\Files\Filesystem::normalizePath($fileOwnerUid . '/' . $this->fileFolderName . '/' . $filename); - - // Check that the filename we're using is working - if ( $this->view->file_exists( $relpath ) ) { - - return array ( $fileOwnerUid, $filename ); - - } else { - - return false; - - } + return array ( $fileOwnerUid, $filename ); } @@ -1230,6 +1218,25 @@ class Util { } + /** + * @brief get shares parent. + * @param int $id of the current share + * @return array of the parent + */ + public static function getParentFromShare( $id ) { + + $query = \OC_DB::prepare( 'SELECT `parent`' + .' FROM `*PREFIX*share`' + .' WHERE `id` = ?' ); + + $result = $query->execute( array( $id ) ); + + $row = $result->fetchRow(); + + return $row; + + } + /** * @brief get owner of the shared files. * @param int $Id of a share -- GitLab From 0fca2f8f319d77b056516216ade0a931d21a2a69 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 00:36:40 +0200 Subject: [PATCH 353/454] added tests for put content, get content, touch and fopen --- apps/files_encryption/tests/crypt.php | 75 +++++++++++++++++++++- apps/files_encryption/tests/keymanager.php | 2 +- apps/files_encryption/tests/util.php | 2 +- 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 6168f69415e..3916b0e15e0 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -77,7 +77,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { } function tearDown() { - + \OC_FileProxy::clearProxies(); } function testGenerateKey() { @@ -756,6 +756,79 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->unlink( $filename ); } + + function testViewFilePutAndGetContents() { + + $filename = '/tmp-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + + // Save short data as encrypted file using stream wrapper + $cryptedFile = $view->file_put_contents( $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = $view->file_get_contents( $filename ); + + $this->assertEquals( $this->dataShort, $decrypt ); + + // Save long data as encrypted file using stream wrapper + $cryptedFileLong = $view->file_put_contents( $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFileLong ) ); + + // Get file decrypted contents + $decryptLong = $view->file_get_contents( $filename ); + + $this->assertEquals( $this->dataLong, $decryptLong ); + + // tear down + $view->unlink( $filename ); + } + + function testTouchFile() { + $filename = '/tmp-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + + // Save short data as encrypted file using stream wrapper + $cryptedFile = $view->file_put_contents( $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + $view->touch($filename); + + // Get file decrypted contents + $decrypt = $view->file_get_contents( $filename ); + + $this->assertEquals( $this->dataShort, $decrypt ); + + // tear down + $view->unlink( $filename ); + } + + function testFopenFile() { + $filename = '/tmp-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + + // Save short data as encrypted file using stream wrapper + $cryptedFile = $view->file_put_contents( $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + $handle = $view->fopen($filename, 'r'); + + // Get file decrypted contents + $decrypt = fgets($handle); + + $this->assertEquals( $this->dataShort, $decrypt ); + + // tear down + $view->unlink( $filename ); + } // function testEncryption(){ // // $key=uniqid(); diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index d3078fdac9f..28452d779ca 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -71,7 +71,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { function tearDown(){ \OC_FileProxy::$enabled = true; - + \OC_FileProxy::clearProxies(); } function testGetPrivateKey() { diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 1e4e39cc47b..2d637e20531 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -80,7 +80,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { function tearDown(){ m::close(); - + \OC_FileProxy::clearProxies(); } /** -- GitLab From 67a80e1870a47c0f060c58f65b3a6fc838c52b70 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 00:44:40 +0200 Subject: [PATCH 354/454] improved tests for touch --- apps/files_encryption/tests/crypt.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 3916b0e15e0..1caa9ea7da7 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -788,7 +788,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $view->unlink( $filename ); } - function testTouchFile() { + function testTouchExistingFile() { $filename = '/tmp-'.time(); $view = new \OC\Files\View('/' . $this->userId . '/files'); @@ -809,6 +809,27 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $view->unlink( $filename ); } + function testTouchFile() { + $filename = '/tmp-'.time(); + $view = new \OC\Files\View('/' . $this->userId . '/files'); + + $view->touch($filename); + + // Save short data as encrypted file using stream wrapper + $cryptedFile = $view->file_put_contents( $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file decrypted contents + $decrypt = $view->file_get_contents( $filename ); + + $this->assertEquals( $this->dataShort, $decrypt ); + + // tear down + $view->unlink( $filename ); + } + function testFopenFile() { $filename = '/tmp-'.time(); $view = new \OC\Files\View('/' . $this->userId . '/files'); -- GitLab From 966c2231e33682a04961e76ef75129f5412a0b7c Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Thu, 16 May 2013 02:01:37 +0200 Subject: [PATCH 355/454] [tx-robot] updated from transifex --- apps/files/l10n/de_DE.php | 1 + apps/files/l10n/es.php | 1 + apps/files/l10n/et_EE.php | 17 ++++++++-------- apps/files/l10n/fr.php | 1 + apps/files/l10n/gl.php | 1 + apps/files/l10n/it.php | 1 + apps/files/l10n/nl.php | 1 + apps/files/l10n/pl.php | 1 + apps/files/l10n/pt_BR.php | 1 + apps/files/l10n/zh_CN.php | 1 + apps/user_ldap/l10n/et_EE.php | 6 +++--- core/l10n/pl.php | 2 ++ l10n/de_DE/core.po | 6 +++--- l10n/de_DE/files.po | 9 +++++---- l10n/de_DE/user_ldap.po | 6 +++--- l10n/es/files.po | 9 +++++---- l10n/et_EE/files.po | 25 ++++++++++++----------- l10n/et_EE/lib.po | 20 +++++++++---------- l10n/et_EE/settings.po | 26 ++++++++++++------------ l10n/et_EE/user_ldap.po | 10 +++++----- l10n/fr/files.po | 9 +++++---- l10n/gl/files.po | 8 ++++---- l10n/it/files.po | 9 +++++---- l10n/it/settings.po | 31 +++++++++++++++-------------- l10n/nl/files.po | 9 +++++---- l10n/pl/core.po | 11 +++++----- l10n/pl/files.po | 9 +++++---- l10n/pl/settings.po | 31 +++++++++++++++-------------- l10n/pt_BR/files.po | 9 +++++---- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/templates/user_webdavauth.pot | 2 +- l10n/zh_CN/files.po | 9 +++++---- lib/l10n/et_EE.php | 2 +- settings/l10n/et_EE.php | 2 +- settings/l10n/it.php | 2 +- settings/l10n/pl.php | 1 + 45 files changed, 167 insertions(+), 142 deletions(-) diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php index 626af36c2b6..3c06c1ac83d 100644 --- a/apps/files/l10n/de_DE.php +++ b/apps/files/l10n/de_DE.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", "{count} files" => "{count} Dateien", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Ungültiger Ordnername. Die Verwendung von \"Shared\" ist ownCloud vorbehalten.", "Unable to rename file" => "Konnte Datei nicht umbenennen", "Upload" => "Hochladen", "File handling" => "Dateibehandlung", diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php index 2aee432b10b..b11adfabeb3 100644 --- a/apps/files/l10n/es.php +++ b/apps/files/l10n/es.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} carpetas", "1 file" => "1 archivo", "{count} files" => "{count} archivos", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para ownCloud", "Unable to rename file" => "No se puede renombrar el archivo", "Upload" => "Subir", "File handling" => "Tratamiento de archivos", diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php index 2214c4d3370..d3fab4b0bd1 100644 --- a/apps/files/l10n/et_EE.php +++ b/apps/files/l10n/et_EE.php @@ -3,7 +3,7 @@ "Could not move %s" => "%s liigutamine ebaõnnestus", "No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga", "There is no error, the file uploaded with success" => "Ühtegi tõrget polnud, fail on üles laetud", -"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse", +"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üleslaetud fail ületab MAX_FILE_SIZE suuruse, mis on HTML vormi jaoks määratud", "The uploaded file was only partially uploaded" => "Fail laeti üles ainult osaliselt", "No file was uploaded" => "Ühtegi faili ei laetud üles", @@ -24,18 +24,18 @@ "replaced {new_name} with {old_name}" => "asendas nime {old_name} nimega {new_name}", "undo" => "tagasi", "perform delete operation" => "teosta kustutamine", -"1 file uploading" => "1 faili üleslaadimisel", -"files uploading" => "failide üleslaadimine", +"1 file uploading" => "1 fail üleslaadimisel", +"files uploading" => "faili üleslaadimisel", "'.' is an invalid file name." => "'.' on vigane failinimi.", "File name cannot be empty." => "Faili nimi ei saa olla tühi.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatud.", -"Your storage is full, files can not be updated or synced anymore!" => "Sinu andmemaht on täis! Faile ei uuendata ja sünkroniseerimist ei toimu!", +"Your storage is full, files can not be updated or synced anymore!" => "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!", "Your storage is almost full ({usedSpacePercent}%)" => "Su andmemaht on peaaegu täis ({usedSpacePercent}%)", -"Your download is being prepared. This might take some time if the files are big." => "Valmistatakse allalaadimist. See võib võtta veidi aega kui on tegu suurte failidega. ", +"Your download is being prepared. This might take some time if the files are big." => "Valmistatakse allalaadimist. See võib võtta veidi aega, kui on tegu suurte failidega. ", "Unable to upload your file as it is a directory or has 0 bytes" => "Faili ei saa üles laadida, kuna see on kaust või selle suurus on 0 baiti", "Not enough space available" => "Pole piisavalt ruumi", "Upload cancelled." => "Üleslaadimine tühistati.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.", "URL cannot be empty." => "URL ei saa olla tühi.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Vigane kataloogi nimi. 'Shared' kasutamine on reserveeritud ownCloud poolt.", "Error" => "Viga", @@ -46,6 +46,7 @@ "{count} folders" => "{count} kausta", "1 file" => "1 fail", "{count} files" => "{count} faili", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Vigane kausta nimi. 'Shared' kasutamine on reserveeritud ownCloud poolt.", "Unable to rename file" => "Faili ümbernimetamine ebaõnnestus", "Upload" => "Lae üles", "File handling" => "Failide käsitlemine", @@ -68,7 +69,7 @@ "Unshare" => "Lõpeta jagamine", "Upload too large" => "Üleslaadimine on liiga suur", "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.", -"Files are being scanned, please wait." => "Faile skannitakse, palun oota", +"Files are being scanned, please wait." => "Faile skannitakse, palun oota.", "Current scanning" => "Praegune skannimine", -"Upgrading filesystem cache..." => "Uuendan failisüsteemi puhvrit..." +"Upgrading filesystem cache..." => "Failisüsteemi puhvri uuendamine..." ); diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php index 5620d86e48d..39c697396c9 100644 --- a/apps/files/l10n/fr.php +++ b/apps/files/l10n/fr.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} dossiers", "1 file" => "1 fichier", "{count} files" => "{count} fichiers", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud", "Unable to rename file" => "Impossible de renommer le fichier", "Upload" => "Envoyer", "File handling" => "Gestion des fichiers", diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php index 2352d9e15c4..d22ed4b8721 100644 --- a/apps/files/l10n/gl.php +++ b/apps/files/l10n/gl.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} cartafoles", "1 file" => "1 ficheiro", "{count} files" => "{count} ficheiros", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nome de cartafol incorrecto. O uso de «Compartido» e «Shared» está reservado para o ownClod", "Unable to rename file" => "Non é posíbel renomear o ficheiro", "Upload" => "Enviar", "File handling" => "Manexo de ficheiro", diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php index d5eca524d8a..c588285aaca 100644 --- a/apps/files/l10n/it.php +++ b/apps/files/l10n/it.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} cartelle", "1 file" => "1 file", "{count} files" => "{count} file", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nome della cartella non valido. L'uso di 'Shared' è riservato a ownCloud", "Unable to rename file" => "Impossibile rinominare il file", "Upload" => "Carica", "File handling" => "Gestione file", diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php index 430af50072f..bc4158df3b3 100644 --- a/apps/files/l10n/nl.php +++ b/apps/files/l10n/nl.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} mappen", "1 file" => "1 bestand", "{count} files" => "{count} bestanden", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Ongeldige mapnaam. Gebruik van 'Gedeeld' is voorbehouden aan Owncloud zelf", "Unable to rename file" => "Kan bestand niet hernoemen", "Upload" => "Uploaden", "File handling" => "Bestand", diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index 65d9a4e4be2..4bdac055781 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -46,6 +46,7 @@ "{count} folders" => "Ilość folderów: {count}", "1 file" => "1 plik", "{count} files" => "Ilość plików: {count}", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nieprawidłowa nazwa folderu. Wykorzystanie 'Shared' jest zarezerwowane przez ownCloud", "Unable to rename file" => "Nie można zmienić nazwy pliku", "Upload" => "Wyślij", "File handling" => "Zarządzanie plikami", diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php index 7c68987652c..0f349b69481 100644 --- a/apps/files/l10n/pt_BR.php +++ b/apps/files/l10n/pt_BR.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} pastas", "1 file" => "1 arquivo", "{count} files" => "{count} arquivos", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nome de pasta inválido. O uso do nome 'Compartilhado' é reservado ao ownCloud", "Unable to rename file" => "Impossível renomear arquivo", "Upload" => "Upload", "File handling" => "Tratamento de Arquivo", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index d5d2b84d123..c883670e848 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -46,6 +46,7 @@ "{count} folders" => "{count} 个文件夹", "1 file" => "1 个文件", "{count} files" => "{count} 个文件", +"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "无效的文件夹名。”Shared“ 是 Owncloud 预留的文件夹", "Unable to rename file" => "无法重命名文件", "Upload" => "上传", "File handling" => "文件处理", diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php index 9a65455ed23..1ee6906dfc5 100644 --- a/apps/user_ldap/l10n/et_EE.php +++ b/apps/user_ldap/l10n/et_EE.php @@ -5,10 +5,10 @@ "The configuration is invalid. Please look in the ownCloud log for further details." => "Seadistus on vigane. Palun vaata ownCloud logist täpsemalt.", "Deletion failed" => "Kustutamine ebaõnnestus", "Take over settings from recent server configuration?" => "Võta sätted viimasest serveri seadistusest?", -"Keep settings?" => "Säilitada seadistus?", +"Keep settings?" => "Säilitada seadistused?", "Cannot add server configuration" => "Ei suuda lisada serveri seadistust", -"Connection test succeeded" => "Test ühendus õnnestus", -"Connection test failed" => "Test ühendus ebaõnnestus", +"Connection test succeeded" => "Ühenduse testimine õnnestus", +"Connection test failed" => "Ühenduse testimine ebaõnnestus", "Do you really want to delete the current Server Configuration?" => "Oled kindel, et tahad kustutada praegust serveri seadistust?", "Confirm Deletion" => "Kinnita kustutamine", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Hoiatus: rakendused user_ldap ja user_webdavauht ei ole ühilduvad. Töös võib esineda ootamatuid tõrkeid.\nPalu oma süsteemihalduril üks neist rakendustest kasutusest eemaldada.", diff --git a/core/l10n/pl.php b/core/l10n/pl.php index 22cc24cd514..5c8434984cf 100644 --- a/core/l10n/pl.php +++ b/core/l10n/pl.php @@ -88,6 +88,7 @@ "The update was successful. Redirecting you to ownCloud now." => "Aktualizacji zakończyła się powodzeniem. Przekierowuję do ownCloud.", "ownCloud password reset" => "restart hasła ownCloud", "Use the following link to reset your password: {link}" => "Użyj tego odnośnika by zresetować hasło: {link}", +"Request failed!
Did you make sure your email/username was right?" => "Żądanie niepowiodło się!
Czy Twój email/nazwa użytkownika są poprawne?", "You will receive a link to reset your password via Email." => "Odnośnik służący do resetowania hasła zostanie wysłany na adres e-mail.", "Username" => "Nazwa użytkownika", "Request reset" => "Żądanie resetowania", @@ -123,6 +124,7 @@ "Database host" => "Komputer bazy danych", "Finish setup" => "Zakończ konfigurowanie", "web services under your control" => "Kontrolowane serwisy", +"%s is available. Get more information on how to update." => "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" => "Wyloguj", "Automatic logon rejected!" => "Automatyczne logowanie odrzucone!", "If you did not change your password recently, your account may be compromised!" => "Jeśli hasło było dawno niezmieniane, twoje konto może być zagrożone!", diff --git a/l10n/de_DE/core.po b/l10n/de_DE/core.po index da2cd95de1b..6d6212bdecb 100644 --- a/l10n/de_DE/core.po +++ b/l10n/de_DE/core.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-11 17:20+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 16:28+0000\n" +"Last-Translator: a.tangemann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 02b73e2efab..7a8a5a18265 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -3,15 +3,16 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# a.tangemann , 2013 # Marcel Kühlhorn , 2013 # Mirodin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 16:18+0000\n" +"Last-Translator: a.tangemann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -219,7 +220,7 @@ msgstr "{count} Dateien" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Ungültiger Ordnername. Die Verwendung von \"Shared\" ist ownCloud vorbehalten." #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po index 9fed068426f..d667c104a5c 100644 --- a/l10n/de_DE/user_ldap.po +++ b/l10n/de_DE/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-09 19:40+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 16:15+0000\n" +"Last-Translator: a.tangemann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/l10n/es/files.po b/l10n/es/files.po index 70c4d26e3d5..0d420010060 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Art O. Pal , 2013 # ggam , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 23:45+0000\n" +"Last-Translator: Art O. Pal \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -218,7 +219,7 @@ msgstr "{count} archivos" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nombre de carpeta invalido. El uso de \"Shared\" esta reservado para ownCloud" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/et_EE/files.po b/l10n/et_EE/files.po index 1b7c5d88378..cddc2e6137a 100644 --- a/l10n/et_EE/files.po +++ b/l10n/et_EE/files.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# pisike.sipelgas , 2013 # Rivo Zängov , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 06:40+0000\n" +"Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -39,7 +40,7 @@ msgstr "Ühtegi tõrget polnud, fail on üles laetud" #: ajax/upload.php:27 msgid "" "The uploaded file exceeds the upload_max_filesize directive in php.ini: " -msgstr "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse" +msgstr "Üleslaetava faili suurus ületab php.ini poolt määratud upload_max_filesize suuruse:" #: ajax/upload.php:29 msgid "" @@ -125,11 +126,11 @@ msgstr "teosta kustutamine" #: js/filelist.js:413 msgid "1 file uploading" -msgstr "1 faili üleslaadimisel" +msgstr "1 fail üleslaadimisel" #: js/filelist.js:416 js/filelist.js:470 msgid "files uploading" -msgstr "failide üleslaadimine" +msgstr "faili üleslaadimisel" #: js/files.js:52 msgid "'.' is an invalid file name." @@ -147,7 +148,7 @@ msgstr "Vigane nimi, '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' pole lubatu #: js/files.js:78 msgid "Your storage is full, files can not be updated or synced anymore!" -msgstr "Sinu andmemaht on täis! Faile ei uuendata ja sünkroniseerimist ei toimu!" +msgstr "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!" #: js/files.js:82 msgid "Your storage is almost full ({usedSpacePercent}%)" @@ -157,7 +158,7 @@ msgstr "Su andmemaht on peaaegu täis ({usedSpacePercent}%)" msgid "" "Your download is being prepared. This might take some time if the files are " "big." -msgstr "Valmistatakse allalaadimist. See võib võtta veidi aega kui on tegu suurte failidega. " +msgstr "Valmistatakse allalaadimist. See võib võtta veidi aega, kui on tegu suurte failidega. " #: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" @@ -174,7 +175,7 @@ msgstr "Üleslaadimine tühistati." #: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise." +msgstr "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise." #: js/files.js:486 msgid "URL cannot be empty." @@ -218,7 +219,7 @@ msgstr "{count} faili" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Vigane kausta nimi. 'Shared' kasutamine on reserveeritud ownCloud poolt." #: lib/app.php:73 msgid "Unable to rename file" @@ -312,7 +313,7 @@ msgstr "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetav #: templates/index.php:114 msgid "Files are being scanned, please wait." -msgstr "Faile skannitakse, palun oota" +msgstr "Faile skannitakse, palun oota." #: templates/index.php:117 msgid "Current scanning" @@ -320,4 +321,4 @@ msgstr "Praegune skannimine" #: templates/upgrade.php:2 msgid "Upgrading filesystem cache..." -msgstr "Uuendan failisüsteemi puhvrit..." +msgstr "Failisüsteemi puhvri uuendamine..." diff --git a/l10n/et_EE/lib.po b/l10n/et_EE/lib.po index 6cca7168ed1..7015ed74a80 100644 --- a/l10n/et_EE/lib.po +++ b/l10n/et_EE/lib.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-28 01:57+0200\n" -"PO-Revision-Date: 2013-04-27 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 08:40+0000\n" +"Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,25 +42,25 @@ msgstr "Rakendused" msgid "Admin" msgstr "Admin" -#: files.php:209 +#: files.php:207 msgid "ZIP download is turned off." msgstr "ZIP-ina allalaadimine on välja lülitatud." -#: files.php:210 +#: files.php:208 msgid "Files need to be downloaded one by one." msgstr "Failid tuleb alla laadida ükshaaval." -#: files.php:211 files.php:244 +#: files.php:209 files.php:242 msgid "Back to Files" msgstr "Tagasi failide juurde" -#: files.php:241 +#: files.php:239 msgid "Selected files too large to generate zip file." msgstr "Valitud failid on ZIP-faili loomiseks liiga suured." #: helper.php:228 msgid "couldn't be determined" -msgstr "Ei suuda tuvastada" +msgstr "ei suudetud tuvastada" #: json.php:28 msgid "Application is not enabled" @@ -173,13 +173,13 @@ msgstr "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s" msgid "MS SQL username and/or password not valid: %s" msgstr "MS SQL kasutajatunnus ja/või parool pole õiged: %s" -#: setup.php:858 +#: setup.php:859 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "Veebiserveri ei ole veel korralikult seadistatud võimaldamaks failide sünkroniseerimist, kuna WebDAV liides näib olevat mittetoimiv." -#: setup.php:859 +#: setup.php:860 #, php-format msgid "Please double check the
installation guides." msgstr "Palun tutvu veelkord paigalduse juhenditega." diff --git a/l10n/et_EE/settings.po b/l10n/et_EE/settings.po index 1724aa9431a..74945ae86c5 100644 --- a/l10n/et_EE/settings.po +++ b/l10n/et_EE/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 02:00+0200\n" -"PO-Revision-Date: 2013-04-30 09:30+0000\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 08:40+0000\n" "Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -125,44 +125,44 @@ msgstr "Uuendatud" msgid "Saving..." msgstr "Salvestamine..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "kustutatud" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "tagasi" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" -msgstr "Ei suuda kustutada kasutajat eemaldada" +msgstr "Kasutaja eemaldamine ebaõnnestus" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Grupid" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Grupi admin" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Kustuta" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "lisa grupp" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Sisesta nõuetele vastav kasutajatunnus" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Viga kasutaja loomisel" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Sisesta nõuetele vastav parool" diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po index a173e5abffe..778551dc00e 100644 --- a/l10n/et_EE/user_ldap.po +++ b/l10n/et_EE/user_ldap.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 09:30+0000\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 08:51+0000\n" "Last-Translator: Rivo Zängov \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" @@ -48,7 +48,7 @@ msgstr "Võta sätted viimasest serveri seadistusest?" #: js/settings.js:83 msgid "Keep settings?" -msgstr "Säilitada seadistus?" +msgstr "Säilitada seadistused?" #: js/settings.js:97 msgid "Cannot add server configuration" @@ -56,11 +56,11 @@ msgstr "Ei suuda lisada serveri seadistust" #: js/settings.js:121 msgid "Connection test succeeded" -msgstr "Test ühendus õnnestus" +msgstr "Ühenduse testimine õnnestus" #: js/settings.js:126 msgid "Connection test failed" -msgstr "Test ühendus ebaõnnestus" +msgstr "Ühenduse testimine ebaõnnestus" #: js/settings.js:136 msgid "Do you really want to delete the current Server Configuration?" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index bec531ce06b..3c1b02c6ad6 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -3,14 +3,15 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Christophe Lherieau , 2013 # MathieuP , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 13:57+0000\n" +"Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -218,7 +219,7 @@ msgstr "{count} fichiers" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/gl/files.po b/l10n/gl/files.po index 0c0309bfa6e..c7b3fdd97ca 100644 --- a/l10n/gl/files.po +++ b/l10n/gl/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 09:30+0000\n" +"Last-Translator: mbouzada \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -218,7 +218,7 @@ msgstr "{count} ficheiros" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nome de cartafol incorrecto. O uso de «Compartido» e «Shared» está reservado para o ownClod" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/it/files.po b/l10n/it/files.po index 59ff6298b47..2b0e33df571 100644 --- a/l10n/it/files.po +++ b/l10n/it/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Vincenzo Reale , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 07:30+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "{count} file" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nome della cartella non valido. L'uso di 'Shared' è riservato a ownCloud" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/it/settings.po b/l10n/it/settings.po index bed35b95812..5bc636cdbfe 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Vincenzo Reale , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 10:32+0000\n" +"Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -124,44 +125,44 @@ msgstr "Aggiornato" msgid "Saving..." msgstr "Salvataggio in corso..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "eliminati" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "annulla" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Impossibile rimuovere l'utente" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Gruppi" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Gruppi amministrati" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Elimina" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "aggiungi gruppo" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Deve essere fornito un nome utente valido" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Errore durante la creazione dell'utente" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Deve essere fornita una password valida" @@ -318,7 +319,7 @@ msgstr "Livello di log" #: templates/admin.php:227 msgid "More" -msgstr "Più" +msgstr "Altro" #: templates/admin.php:228 msgid "Less" @@ -328,7 +329,7 @@ msgstr "Meno" msgid "Version" msgstr "Versione" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 19:21+0000\n" +"Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "{count} bestanden" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Ongeldige mapnaam. Gebruik van 'Gedeeld' is voorbehouden aan Owncloud zelf" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/pl/core.po b/l10n/pl/core.po index ea1cd8ebbc9..9ca6778fd05 100644 --- a/l10n/pl/core.po +++ b/l10n/pl/core.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# adbrand , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 23:57+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 09:30+0000\n" +"Last-Translator: adbrand \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -405,7 +406,7 @@ msgstr "" #: lostpassword/templates/lostpassword.php:12 msgid "Request failed!
Did you make sure your email/username was right?" -msgstr "" +msgstr "Żądanie niepowiodło się!
Czy Twój email/nazwa użytkownika są poprawne?" #: lostpassword/templates/lostpassword.php:15 msgid "You will receive a link to reset your password via Email." @@ -563,7 +564,7 @@ msgstr "Kontrolowane serwisy" #: templates/layout.user.php:36 #, php-format msgid "%s is available. Get more information on how to update." -msgstr "" +msgstr "%s jest dostępna. Dowiedz się więcej na temat aktualizacji." #: templates/layout.user.php:61 msgid "Log out" diff --git a/l10n/pl/files.po b/l10n/pl/files.po index 3316033db84..22ee017964c 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# adbrand , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 09:30+0000\n" +"Last-Translator: adbrand \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "Ilość plików: {count}" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nieprawidłowa nazwa folderu. Wykorzystanie 'Shared' jest zarezerwowane przez ownCloud" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/pl/settings.po b/l10n/pl/settings.po index 111fad7ad06..4c6e0f42df1 100644 --- a/l10n/pl/settings.po +++ b/l10n/pl/settings.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# adbrand , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:17+0200\n" -"PO-Revision-Date: 2013-04-26 16:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 09:20+0000\n" +"Last-Translator: adbrand \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +29,7 @@ msgstr "Błąd uwierzytelniania" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "" +msgstr "Twoje wyświetlana nazwa została zmieniona." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" @@ -124,44 +125,44 @@ msgstr "Zaktualizowano" msgid "Saving..." msgstr "Zapisywanie..." -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "usunięto" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "cofnij" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" msgstr "Nie można usunąć użytkownika" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Grupy" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Administrator grupy" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Usuń" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "dodaj grupę" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Należy podać prawidłową nazwę użytkownika" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Błąd podczas tworzenia użytkownika" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Należy podać prawidłowe hasło" @@ -328,7 +329,7 @@ msgstr "Mniej" msgid "Version" msgstr "Wersja" -#: templates/admin.php:238 templates/personal.php:108 +#: templates/admin.php:237 templates/personal.php:108 msgid "" "Developed by the
ownCloud community, the , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 11:21+0000\n" +"Last-Translator: Flávio Veras \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "{count} arquivos" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "Nome de pasta inválido. O uso do nome 'Compartilhado' é reservado ao ownCloud" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 6484f017d59..a4d0a795df7 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 3638badffca..bc16218f67c 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 582ea6b8bdd..6d80b9510d9 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index cef54068180..4473c70a781 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 466168d5ec3..55693b95975 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 62e0e019d63..5f462c0498f 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 0afc111950c..d0973c00bcb 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 739486fd3e1..5269cee5d4e 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index babd591ec2e..7946a1355cd 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 02:00+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 519b205bd91..6a1a0ad2381 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 715af4d3568..223158a71f8 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index a9ab24df245..b799c7c163e 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# zhangmin , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"PO-Revision-Date: 2013-05-15 12:15+0000\n" +"Last-Translator: zhangmin \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -217,7 +218,7 @@ msgstr "{count} 个文件" #: lib/app.php:53 msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" -msgstr "" +msgstr "无效的文件夹名。”Shared“ 是 Owncloud 预留的文件夹" #: lib/app.php:73 msgid "Unable to rename file" diff --git a/lib/l10n/et_EE.php b/lib/l10n/et_EE.php index 90c9c416827..a4423343ce0 100644 --- a/lib/l10n/et_EE.php +++ b/lib/l10n/et_EE.php @@ -9,7 +9,7 @@ "Files need to be downloaded one by one." => "Failid tuleb alla laadida ükshaaval.", "Back to Files" => "Tagasi failide juurde", "Selected files too large to generate zip file." => "Valitud failid on ZIP-faili loomiseks liiga suured.", -"couldn't be determined" => "Ei suuda tuvastada", +"couldn't be determined" => "ei suudetud tuvastada", "Application is not enabled" => "Rakendus pole sisse lülitatud", "Authentication error" => "Autentimise viga", "Token expired. Please reload page." => "Kontrollkood aegus. Paelun lae leht uuesti.", diff --git a/settings/l10n/et_EE.php b/settings/l10n/et_EE.php index e52fce624d4..f4bf379b7ef 100644 --- a/settings/l10n/et_EE.php +++ b/settings/l10n/et_EE.php @@ -27,7 +27,7 @@ "Saving..." => "Salvestamine...", "deleted" => "kustutatud", "undo" => "tagasi", -"Unable to remove user" => "Ei suuda kustutada kasutajat eemaldada", +"Unable to remove user" => "Kasutaja eemaldamine ebaõnnestus", "Groups" => "Grupid", "Group Admin" => "Grupi admin", "Delete" => "Kustuta", diff --git a/settings/l10n/it.php b/settings/l10n/it.php index 74f8e17c782..4fc8dc5f64f 100644 --- a/settings/l10n/it.php +++ b/settings/l10n/it.php @@ -66,7 +66,7 @@ "Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Connettiti a questa istanza di ownCloud tramite HTTPS per abilitare o disabilitare la protezione SSL.", "Log" => "Log", "Log level" => "Livello di log", -"More" => "Più", +"More" => "Altro", "Less" => "Meno", "Version" => "Versione", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Sviluppato dalla comunità di ownCloud, il codice sorgente è rilasciato nei termini della licenza AGPL.", diff --git a/settings/l10n/pl.php b/settings/l10n/pl.php index e422601e2d8..810f8bf15ae 100644 --- a/settings/l10n/pl.php +++ b/settings/l10n/pl.php @@ -1,6 +1,7 @@ "Nie można wczytać listy aplikacji", "Authentication error" => "Błąd uwierzytelniania", +"Your display name has been changed." => "Twoje wyświetlana nazwa została zmieniona.", "Unable to change display name" => "Nie można zmienić wyświetlanej nazwy", "Group already exists" => "Grupa już istnieje", "Unable to add group" => "Nie można dodać grupy", -- GitLab From c8bbf90feb5a874b9988198747b79c4f43708740 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Thu, 16 May 2013 00:23:05 +0200 Subject: [PATCH 356/454] Port OC.dialogs to use octemplate except for prompt() and form(). Also load octemplate per default. --- core/css/styles.css | 3 + core/js/oc-dialogs.js | 338 +++++++++++++++++++-------------- core/templates/filepicker.html | 11 ++ core/templates/message.html | 3 + lib/base.php | 1 + 5 files changed, 216 insertions(+), 140 deletions(-) create mode 100644 core/templates/filepicker.html create mode 100644 core/templates/message.html diff --git a/core/css/styles.css b/core/css/styles.css index 93f2cecbfe9..ee00196d669 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -385,10 +385,13 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin #dirup {width:4%;} #dirtree {width:92%;} #filelist {height:270px; overflow-y:auto; background-color:white; width:100%;} +#filelist img { margin: 2px 1em 0 4px; } +#filelist .date { float:right;margin-right:1em; } .filepicker_element_selected { background-color:lightblue;} .filepicker_loader {height:170px; width:100%; background-color:#333; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3; visibility:visible; position:absolute; top:0; left:0; text-align:center; padding-top:150px;} .ui-dialog {position:fixed !important;} span.ui-icon {float: left; margin: 3px 7px 30px 0;} +.loading { background: url('../img/loading.gif') no-repeat center; cursor: wait; } /* ---- CATEGORIES ---- */ #categoryform .scrollarea { position:absolute; left:10px; top:10px; right:10px; bottom:50px; overflow:auto; border:1px solid #ddd; background:#f8f8f8; } diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 990c3f8bf38..c0c035bafdd 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -1,7 +1,7 @@ /** * ownCloud * - * @author Bartek Przybylski + * @author Bartek Przybylski,Christopher Schäpers, Thomas Tanghus * @copyright 2012 Bartek Przybylski bartek@alefzero.eu * * This library is free software; you can redistribute it and/or @@ -31,8 +31,7 @@ var OCdialogs = { * @param modal make the dialog modal */ alert:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal); }, /** * displays info dialog @@ -42,8 +41,7 @@ var OCdialogs = { * @param modal make the dialog modal */ info:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal); }, /** * displays confirmation dialog @@ -53,8 +51,7 @@ var OCdialogs = { * @param modal make the dialog modal */ confirm:function(text, title, callback, modal) { - var content = '

' + escapeHTML(text) + '

'; - OCdialogs.message(content, title, OCdialogs.ALERT_DIALOG, OCdialogs.YES_NO_BUTTONS, callback, modal); + OCdialogs.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal); }, /** * prompt for user input @@ -66,7 +63,7 @@ var OCdialogs = { prompt:function(text, title, default_value, callback, modal) { var input = ''; var content = '

' + escapeHTML(text) + ':
' + input + '

'; - OCdialogs.message(content, title, OCdialogs.PROMPT_DIALOG, OCdialogs.OK_BUTTON, callback, modal); + OCdialogs.message(content, title, 'prompt', OCdialogs.OK_BUTTON, callback, modal); }, /** * prompt user for input with custom form @@ -130,6 +127,39 @@ var OCdialogs = { }); OCdialogs.dialogs_counter++; }, + _getFilePickerTemplate: function() { + var defer = $.Deferred(); + if(!this.$filePickerTemplate) { + var self = this; + $.get(OC.filePath('core', 'templates', 'filepicker.html'), function(tmpl) { + self.$filePickerTemplate = $(tmpl); + self.$listTmpl = self.$filePickerTemplate.find('#filelist li:first-child').detach(); + defer.resolve(self.$filePickerTemplate); + }) + .fail(function() { + defer.reject(); + }); + } else { + defer.resolve(this.$filePickerTemplate); + } + return defer.promise(); + }, + _getMessageTemplate: function() { + var defer = $.Deferred(); + if(!this.$messageTemplate) { + var self = this; + $.get(OC.filePath('core', 'templates', 'message.html'), function(tmpl) { + self.$messageTemplate = $(tmpl); + defer.resolve(self.$messageTemplate); + }) + .fail(function() { + defer.reject(); + }); + } else { + defer.resolve(this.$messageTemplate); + } + return defer.promise(); + }, /** * show a file picker to pick a file from * @param title dialog title @@ -139,132 +169,146 @@ var OCdialogs = { * @param modal make the dialog modal */ filepicker:function(title, callback, multiselect, mimetype_filter, modal) { - var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; - var dialog_id = '#' + dialog_name; - var dialog_content = '
'; - var dialog_loader = '
'; - var dialog_div = '
' + dialog_content + dialog_loader + '
'; - if (modal === undefined) { modal = false }; - if (multiselect === undefined) { multiselect = false }; - if (mimetype_filter === undefined) { mimetype_filter = '' }; + $.when(this._getFilePickerTemplate()).then(function($tmpl) { + var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; + var dialog_id = '#' + dialog_name; + var $dlg = $tmpl.octemplate({ + dialog_name: dialog_name, + title: title + }).data('path', '/'); - $('body').append(dialog_div); + if (modal === undefined) { modal = false }; + if (multiselect === undefined) { multiselect = false }; + if (mimetype_filter === undefined) { mimetype_filter = '' }; - $(dialog_id).data('path', '/'); + $('body').append($dlg); - $(dialog_id + ' #dirtree').focus().change( {dcid: dialog_id}, OCdialogs.handleTreeListSelect ); - $(dialog_id + ' #dirup').click( {dcid: dialog_id}, OCdialogs.filepickerDirUp ); + $dlg.find('#dirtree').focus().change( {dcid: dialog_id}, OCdialogs.handleTreeListSelect ); + $dlg.find('#dirup').click( {dcid: dialog_id}, OCdialogs.filepickerDirUp ); - $(dialog_id).ready(function(){ - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), { mimetype: mimetype_filter } ,function(request) { - OCdialogs.fillFilePicker(request, dialog_id); - }); - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), { mimetype: "httpd/unix-directory" }, function(request) { - OCdialogs.fillTreeList(request, dialog_id); - }); - }).data('multiselect', multiselect).data('mimetype',mimetype_filter); + $dlg.find('#filelist').empty().addClass('loading'); + $dlg.ready(function(){ + $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), + {mimetype: mimetype_filter}, + function(response) { + OCdialogs.fillFilePicker(response, dialog_id); + }); + $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), + {mimetype: 'httpd/unix-directory'}, + function(response) { + OCdialogs.fillTreeList(response, dialog_id); + }); + }).data('multiselect', multiselect).data('mimetype',mimetype_filter); - // build buttons - var functionToCall = function() { - if (callback !== undefined) { - var datapath; - if (multiselect === true) { - datapath = []; - $(dialog_id + ' .filepicker_element_selected .filename').each(function(index, element) { - datapath.push( $(dialog_id).data('path') + $(element).text() ); - }); - } else { - var datapath = $(dialog_id).data('path'); - datapath += $(dialog_id+' .filepicker_element_selected .filename').text(); + // build buttons + var functionToCall = function() { + if (callback !== undefined) { + var datapath; + if (multiselect === true) { + datapath = []; + $(dialog_id + ' .filepicker_element_selected .filename').each(function(index, element) { + datapath.push( $(dialog_id).data('path') + $(element).text() ); + }); + } else { + var datapath = $(dialog_id).data('path'); + datapath += $(dialog_id+' .filepicker_element_selected .filename').text(); + } + callback(datapath); + $(dialog_id).dialog('close'); } - callback(datapath); - $(dialog_id).dialog('close'); - } - }; - var buttonlist = [{ - text: t('core', 'Choose'), - click: functionToCall - }, - { - text: t('core', 'Cancel'), - click: function(){$(dialog_id).dialog('close'); } - }]; + }; + var buttonlist = [{ + text: t('core', 'Choose'), + click: functionToCall + }, + { + text: t('core', 'Cancel'), + click: function(){$(dialog_id).dialog('close'); } + }]; - $(dialog_id).dialog({ - width: (4/9)*$(document).width(), - height: 420, - modal: modal, - buttons: buttonlist + $(dialog_id).dialog({ + width: (4/9)*$(document).width(), + height: 420, + modal: modal, + buttons: buttonlist + }); + OCdialogs.dialogs_counter++; + }) + .fail(function() { + alert(t('core', 'Error loading file picker template')); }); - OCdialogs.dialogs_counter++; }, /** * Displays raw dialog * You better use a wrapper instead ... */ message:function(content, title, dialog_type, buttons, callback, modal) { - var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; - var dialog_id = '#' + dialog_name; - var dialog_div = '
' + content + '
'; - if (modal === undefined) { modal = false }; - $('body').append(dialog_div); - var buttonlist = []; - switch (buttons) { - case OCdialogs.YES_NO_BUTTONS: - buttonlist = [{ - text: t('core', 'Yes'), - click: function(){ - if (callback !== undefined) { callback(true) }; - $(dialog_id).dialog('close'); - } - }, - { - text: t('core', 'No'), - click: function(){ - if (callback !== undefined) { callback(false) }; - $(dialog_id).dialog('close'); - } - }]; - break; - case OCdialogs.OK_BUTTON: - var functionToCall; - switch(dialog_type) { - case OCdialogs.ALERT_DIALOG: - functionToCall = function() { + $.when(this._getMessageTemplate()).then(function($tmpl) { + var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; + var dialog_id = '#' + dialog_name; + var $dlg = $tmpl.octemplate({ + dialog_name: dialog_name, + title: title, + message: content, + type: dialog_type + }); + if (modal === undefined) { modal = false }; + $('body').append($dlg); + var buttonlist = []; + switch (buttons) { + case OCdialogs.YES_NO_BUTTONS: + buttonlist = [{ + text: t('core', 'Yes'), + click: function(){ + if (callback !== undefined) { callback(true) }; $(dialog_id).dialog('close'); - if(callback !== undefined) { callback() }; - }; - break; - case OCdialogs.PROMPT_DIALOG: - buttonlist[1] = { - text: t('core', 'Cancel'), - click: function() { $(dialog_id).dialog('close'); } - }; - functionToCall = function() { OCdialogs.prompt_ok_handler(callback, dialog_id); }; - break; - } - buttonlist[0] = { - text: t('core', 'Ok'), - click: functionToCall - }; - break; - }; + } + }, + { + text: t('core', 'No'), + click: function(){ + if (callback !== undefined) { callback(false) }; + $(dialog_id).dialog('close'); + } + }]; + break; + case OCdialogs.OK_BUTTON: + var functionToCall; + switch(dialog_type) { + case 'prompt': + buttonlist[1] = { + text: t('core', 'Cancel'), + click: function() { $(dialog_id).dialog('close'); } + }; + functionToCall = function() { OCdialogs.prompt_ok_handler(callback, dialog_id); }; + break; + default: + functionToCall = function() { + $(dialog_id).dialog('close'); + if(callback !== undefined) { callback() }; + }; + break; + } + buttonlist[0] = { + text: t('core', 'Ok'), + click: functionToCall + }; + break; + }; - $(dialog_id).dialog({ - width: (4/9) * $(document).width(), - height: 180, - modal: modal, - buttons: buttonlist + $(dialog_id).dialog({ + modal: modal, + buttons: buttonlist + }); + OCdialogs.dialogs_counter++; + }) + .fail(function() { + alert(t('core', 'Error loading file picker template')); }); - OCdialogs.dialogs_counter++; }, // dialog button types YES_NO_BUTTONS: 70, OK_BUTTONS: 71, - // dialogs types - ALERT_DIALOG: 80, - INFO_DIALOG: 81, - FORM_DIALOG: 82, // used to name each dialog dialogs_counter: 0, @@ -278,7 +322,7 @@ var OCdialogs = { prompt_ok_handler: function(callback, dialog_id) { $(dialog_id).dialog('close'); - if (callback !== undefined) { callback($(dialog_id + " input#oc-dialog-prompt-input").val()) }; + if (callback !== undefined) { callback($(dialog_id + ' input#oc-dialog-prompt-input').val()) }; }, form_ok_handler: function(callback, dialog_id) { @@ -297,8 +341,7 @@ var OCdialogs = { * fills the filepicker with files */ fillFilePicker:function(request, dialog_content_id) { - var template_content = '*NAME*
*LASTMODDATE*
'; - var template = '
*CONTENT*
'; + var $filelist = $(dialog_content_id + ' #filelist').empty(); var files = ''; var dirs = []; var others = []; @@ -309,14 +352,24 @@ var OCdialogs = { others.push(file); } }); + var sorted = dirs.concat(others); - for (var i = 0; i < sorted.length; i++) { - files_content = template_content.replace('*LASTMODDATE*', OC.mtime2date(sorted[i].mtime)).replace('*NAME*', escapeHTML(sorted[i].name)).replace('*MIMETYPEICON*', sorted[i].mimetype_icon); - files += template.replace('*ENTRYNAME*', escapeHTML(sorted[i].name)).replace('*ENTRYTYPE*', escapeHTML(sorted[i].type)).replace('*CONTENT*', files_content); - } - $(dialog_content_id + ' #filelist').html(files); - $('#filelist div').click(function() { + var self = this; + $.each(sorted, function(idx, entry) { + $li = self.$listTmpl.octemplate({ + type: entry.type, + dcid: dialog_content_id, + imgsrc: entry.mimetype_icon, + filename: entry.name, + date: OC.mtime2date(entry.mtime) + }); + $filelist.append($li); + }); + + $filelist.removeClass('loading'); + + $filelist.on('click', 'li', function() { OCdialogs.handlePickerClick($(this), $(this).data('entryname'), dialog_content_id); }); @@ -326,24 +379,29 @@ var OCdialogs = { * fills the tree list with directories */ fillTreeList: function(request, dialog_id) { - var template = ''; - var paths = ''; + var $dirtree = $(dialog_id + ' #dirtree').empty(); + var $template = $(''); + $dirtree.append($template.octemplate({ + count: 0, + name: $(dialog_id).data('path') + })); $.each(request.data, function(index, file) { - paths += template.replace('*COUNT*', index).replace('*NAME*', escapeHTML(file.name)); + $dirtree.append($template.octemplate({ + count: index, + name: file.name + })); }); - - $(dialog_id + ' #dirtree').html(paths); }, /** * handle selection made in the tree list */ handleTreeListSelect:function(event) { - if ($("option:selected", this).html().indexOf('/') !== -1) { // if there's a slash in the selected path, don't append it - $(event.data.dcid).data('path', $("option:selected", this).html()); + if ($('option:selected', this).html().indexOf('/') !== -1) { // if there's a slash in the selected path, don't append it + $(event.data.dcid).data('path', $('option:selected', this).html()); } else { - $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $("option:selected", this).html() + '/'); + $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $('option:selected', this).html() + '/'); } - $(event.data.dcid + ' .filepicker_loader').css('visibility', 'visible'); + $(event.data.dcid).find('#filelist').addClass('loading'); $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -356,7 +414,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: $(event.data.dcid).data('path'), - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } ); @@ -366,13 +424,13 @@ var OCdialogs = { */ filepickerDirUp:function(event) { var old_path = $(event.data.dcid).data('path'); - if ( old_path !== "/") { + if ( old_path !== '/') { var splitted_path = old_path.split("/"); var new_path = "" for (var i = 0; i < splitted_path.length - 2; i++) { - new_path += splitted_path[i] + "/" + new_path += splitted_path[i] + '/' } - $(event.data.dcid).data('path', new_path); + $(event.data.dcid).data('path', new_path).find('#filelist').empty().addClass('loading');; $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -385,7 +443,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: $(event.data.dcid).data('path'), - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } ); @@ -395,16 +453,16 @@ var OCdialogs = { * handle clicks made in the filepicker */ handlePickerClick:function(element, name, dialog_content_id) { - if ( $(element).attr('data') === 'file' ){ + if ( $(element).data('type') === 'file' ){ if ( $(dialog_content_id).data('multiselect') !== true) { $(dialog_content_id + ' .filepicker_element_selected').removeClass('filepicker_element_selected'); } $(element).toggleClass('filepicker_element_selected'); return; - } else if ( $(element).attr('data') === 'dir' ) { + } else if ( $(element).data('type') === 'dir' ) { var datapath = escapeHTML( $(dialog_content_id).data('path') + name + '/' ); $(dialog_content_id).data('path', datapath); - $(dialog_content_id + ' .filepicker_loader').css('visibility', 'visible'); + $(dialog_content_id).find('#filelist').empty().addClass('loading'); $.getJSON( OC.filePath('files', 'ajax', 'rawlist.php'), { @@ -417,7 +475,7 @@ var OCdialogs = { OC.filePath('files', 'ajax', 'rawlist.php'), { dir: datapath, - mimetype: "httpd/unix-directory" + mimetype: 'httpd/unix-directory' }, function(request) { OCdialogs.fillTreeList(request, dialog_content_id) } ); diff --git a/core/templates/filepicker.html b/core/templates/filepicker.html new file mode 100644 index 00000000000..f29de390ef8 --- /dev/null +++ b/core/templates/filepicker.html @@ -0,0 +1,11 @@ +
+ + +
    +
  • + + {filename} + {date} +
  • +
+
diff --git a/core/templates/message.html b/core/templates/message.html new file mode 100644 index 00000000000..59048100f32 --- /dev/null +++ b/core/templates/message.html @@ -0,0 +1,3 @@ +
+

{message}

+
diff --git a/lib/base.php b/lib/base.php index 667202d3aef..2e2cee97eb0 100644 --- a/lib/base.php +++ b/lib/base.php @@ -260,6 +260,7 @@ class OC { OC_Util::addScript("jquery-tipsy"); OC_Util::addScript("compatibility"); OC_Util::addScript("oc-dialogs"); + OC_Util::addScript("octemplate"); OC_Util::addScript("js"); OC_Util::addScript("eventsource"); OC_Util::addScript("config"); -- GitLab From 9d1e60325c6f478484ff8f70ff3cd13d9d7d4913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 16 May 2013 14:53:04 +0200 Subject: [PATCH 357/454] allow admin to recover users files in case of password lost --- apps/files_encryption/hooks/hooks.php | 73 ++++++++++++++----- apps/files_encryption/js/settings-admin.js | 2 +- apps/files_encryption/lib/helper.php | 2 +- apps/files_encryption/lib/util.php | 84 +++++++++++++++++++++- lib/user.php | 7 +- settings/ajax/changepassword.php | 5 +- settings/css/settings.css | 2 + settings/js/users.js | 4 +- settings/templates/personal.php | 2 +- settings/templates/users.php | 5 ++ settings/users.php | 3 + 11 files changed, 159 insertions(+), 30 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index f843c7027d5..0af0845d7c1 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -142,32 +142,67 @@ class Hooks { * @brief Change a user's encryption passphrase * @param array $params keys: uid, password */ - public static function setPassphrase( $params ) { - + public static function setPassphrase($params) { + // Only attempt to change passphrase if server-side encryption // is in use (client-side encryption does not have access to // the necessary keys) - if ( Crypt::mode() == 'server' ) { + if (Crypt::mode() == 'server') { - $view = new \OC_FilesystemView( '/' ); + if ($params['uid'] == \OCP\User::getUser()) { - $session = new Session($view); - - // Get existing decrypted private key - $privateKey = $session->getPrivateKey(); - - // Encrypt private key with new user pwd as passphrase - $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $privateKey, $params['password'] ); - - // Save private key - Keymanager::setPrivateKey( $encryptedPrivateKey ); - - // NOTE: Session does not need to be updated as the - // private key has not changed, only the passphrase - // used to decrypt it has changed + $view = new \OC_FilesystemView('/'); + + $session = new Session($view); + + // Get existing decrypted private key + $privateKey = $session->getPrivateKey(); + + // Encrypt private key with new user pwd as passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($privateKey, $params['password']); + + // Save private key + Keymanager::setPrivateKey($encryptedPrivateKey); + + // NOTE: Session does not need to be updated as the + // private key has not changed, only the passphrase + // used to decrypt it has changed + + } else { // admin changed the password for a different user, create new keys and reencrypt file keys + + $user = $params['uid']; + $recoveryPassword = $params['recoveryPassword']; + $newUserPassword = $params['password']; + + $view = new \OC_FilesystemView('/'); + + // make sure that the users home is mounted + \OC\Files\Filesystem::initMountPoints($user); + + $keypair = Crypt::createKeypair(); + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + // Save public key + $view->file_put_contents( '/public-keys/'.$user.'.public.key', $keypair['publicKey'] ); + + // Encrypt private key empthy passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $keypair['privateKey'], $newUserPassword ); + + // Save private key + $view->file_put_contents( '/'.$user.'/files_encryption/'.$user.'.private.key', $encryptedPrivateKey ); + + if ( $recoveryPassword ) { // if recovery key is set we can re-encrypt the key files + $util = new Util($view, $user); + $util->recoverUsersFiles($recoveryPassword); + } + + \OC_FileProxy::$enabled = $proxyStatus; + } } - } /* diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js index 9bc6ab6433c..dbae42b011c 100644 --- a/apps/files_encryption/js/settings-admin.js +++ b/apps/files_encryption/js/settings-admin.js @@ -69,7 +69,7 @@ $(document).ready(function(){ } ); - // change password + // change recovery password $('input:password[name="changeRecoveryPassword"]').keyup(function(event) { var oldRecoveryPassword = $('input:password[id="oldRecoveryPassword"]').val(); diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 6d5aae4e8b5..86d860465e6 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -46,7 +46,7 @@ class Helper { public static function registerUserHooks() { \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); - \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); + \OCP\Util::connectHook( 'OC_User', 'post_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); \OCP\Util::connectHook( 'OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser' ); \OCP\Util::connectHook( 'OC_User', 'post_deleteUser', 'OCA\Encryption\Hooks', 'postDeleteUser' ); } diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 91d86cc8558..fab807b0141 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -929,7 +929,7 @@ class Util { // Get the current users's private key for decrypting existing keyfile $privateKey = $session->getPrivateKey(); - + $fileOwner = \OC\Files\Filesystem::getOwner( $filePath ); // Decrypt keyfile @@ -1336,7 +1336,7 @@ class Util { } } - /** + /** * @brief remove recovery key to all encrypted files */ public function removeRecoveryKeys($path = '/') { @@ -1351,4 +1351,84 @@ class Util { } } } + + /** + * @brief decrypt given file with recovery key and encrypt it again to the owner and his new key + * @param type $file + * @param type $privateKey recovery key to decrypt the file + */ + private function recoverFile($file, $privateKey) { + + $sharingEnabled = \OCP\Share::isEnabled(); + + // Find out who, if anyone, is sharing the file + if ($sharingEnabled) { + $result = \OCP\Share::getUsersSharingFile($file, $this->userId, true, true, true); + $userIds = $result['users']; + $userIds[] = $this->recoveryKeyId; + if ($result['public']) { + $userIds[] = $this->publicShareKeyId; + } + } else { + $userIds = array($this->userId, $this->recoveryKeyId); + } + $filteredUids = $this->filterShareReadyUsers($userIds); + + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + //decrypt file key + $encKeyfile = $this->view->file_get_contents($this->keyfilesPath.$file.".key"); + $shareKey = $this->view->file_get_contents($this->shareKeysPath.$file.".".$this->recoveryKeyId.".shareKey"); + $plainKeyfile = Crypt::multiKeyDecrypt($encKeyfile, $shareKey, $privateKey); + // encrypt file key again to all users, this time with the new public key for the recovered use + $userPubKeys = Keymanager::getPublicKeys($this->view, $filteredUids['ready']); + $multiEncKey = Crypt::multiKeyEncrypt($plainKeyfile, $userPubKeys); + + // write new keys to filesystem TDOO! + $this->view->file_put_contents($this->keyfilesPath.$file.'.key', $multiEncKey['data']); + foreach ($multiEncKey['keys'] as $userId => $shareKey) { + $shareKeyPath = $this->shareKeysPath.$file.'.'.$userId.'.shareKey'; + $this->view->file_put_contents($shareKeyPath, $shareKey); + } + + // Return proxy to original status + \OC_FileProxy::$enabled = $proxyStatus; + } + + /** + * @brief collect all files and recover them one by one + * @param type $path to look for files keys + * @param type $privateKey private recovery key which is used to decrypt the files + */ + private function recoverAllFiles($path, $privateKey) { + $dirContent = $this->view->getDirectoryContent($this->keyfilesPath . $path); + foreach ($dirContent as $item) { + $filePath = substr($item['path'], 25); + if ($item['type'] == 'dir') { + $this->addRecoveryKey($filePath . '/', $privateKey); + } else { + $file = substr($filePath, 0, -4); + $this->recoverFile($file, $privateKey); + } + } + } + + /** + * @brief recover users files in case of password lost + * @param type $recoveryPassword + */ + public function recoverUsersFiles($recoveryPassword) { + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = false; + + $encryptedKey = $this->view->file_get_contents( '/owncloud_private_key/'.$this->recoveryKeyId.'.private.key' ); + $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $recoveryPassword ); + + \OC_FileProxy::$enabled = $proxyStatus; + + $this->recoverAllFiles('/', $privateKey); + } } diff --git a/lib/user.php b/lib/user.php index 226b716188d..833e8866592 100644 --- a/lib/user.php +++ b/lib/user.php @@ -393,13 +393,14 @@ class OC_User { * @brief Set password * @param $uid The username * @param $password The new password + * @param $recoveryPassword for the encryption app to reset encryption keys * @returns true/false * * Change the password of a user */ - public static function setPassword( $uid, $password ) { + public static function setPassword( $uid, $password, $recoveryPassword = null ) { $run = true; - OC_Hook::emit( "OC_User", "pre_setPassword", array( "run" => &$run, "uid" => $uid, "password" => $password )); + OC_Hook::emit( "OC_User", "pre_setPassword", array( "run" => &$run, "uid" => $uid, "password" => $password, "recoveryPassword" => $recoveryPassword )); if( $run ) { $success = false; @@ -412,7 +413,7 @@ class OC_User { } // invalidate all login cookies OC_Preferences::deleteApp($uid, 'login_token'); - OC_Hook::emit( "OC_User", "post_setPassword", array( "uid" => $uid, "password" => $password )); + OC_Hook::emit( "OC_User", "post_setPassword", array( "uid" => $uid, "password" => $password, "recoveryPassword" => $recoveryPassword )); return $success; } else{ diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index 4f16bff63d5..fe63f27a6e2 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -8,8 +8,9 @@ OC_JSON::checkLoggedIn(); OC_APP::loadApps(); $username = isset($_POST["username"]) ? $_POST["username"] : OC_User::getUser(); -$password = isset($_POST["newpassword"]) ? $_POST["newpassword"] : null; +$password = isset($_POST["password"]) ? $_POST["password"] : null; $oldPassword=isset($_POST["oldpassword"])?$_POST["oldpassword"]:''; +$recoveryPassword=isset($_POST["recoveryPassword"])?$_POST["recoveryPassword"]:null; $userstatus = null; if(OC_User::isAdminUser(OC_User::getUser())) { @@ -28,7 +29,7 @@ if(is_null($userstatus)) { } // Return Success story -if(!is_null($password) && OC_User::setPassword( $username, $password )) { +if(!is_null($password) && OC_User::setPassword( $username, $password, $recoveryPassword )) { OC_JSON::success(array("data" => array( "username" => $username ))); } else{ diff --git a/settings/css/settings.css b/settings/css/settings.css index 46a0bbe7c32..950e8929012 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -45,6 +45,8 @@ table:not(.nostyle) { width:100%; } #rightcontent { padding-left: 1em; } div.quota { float:right; display:block; position:absolute; right:25em; top:-1px; } div.quota-select-wrapper { position: relative; } +div.recoveryPassword { left:50em; display:block; position:absolute; top:-1px; } +input#recoveryPassword {width:15em;} select.quota { position:absolute; left:0; top:0; width:10em; } select.quota-user { position:relative; left:0; top:0; width:10em; } div.quota>span { position:absolute; right:0; white-space:nowrap; top:.7em; color:#888; text-shadow:0 1px 0 #fff; } diff --git a/settings/js/users.js b/settings/js/users.js index 690c9ad0464..9bd7f31f0b2 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -351,9 +351,11 @@ $(document).ready(function () { input.keypress(function (event) { if (event.keyCode == 13) { if ($(this).val().length > 0) { + var recoveryPasswordVal = $('input:password[id="recoveryPassword"]').val(); + console.log("RECOVERY PASSWD: " + recoveryPasswordVal); $.post( OC.filePath('settings', 'ajax', 'changepassword.php'), - {username: uid, password: $(this).val()}, + {username: uid, password: $(this).val(), recoveryPassword: recoveryPasswordVal}, function (result) { } ); diff --git a/settings/templates/personal.php b/settings/templates/personal.php index cfb45e99c4d..da812e8ed9a 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -38,7 +38,7 @@ if($_['passwordChangeSupported']) {
t('Your password was changed');?>
t('Unable to change your password');?>
- diff --git a/settings/templates/users.php b/settings/templates/users.php index e86dd46efbe..a6df85983dd 100644 --- a/settings/templates/users.php +++ b/settings/templates/users.php @@ -29,6 +29,11 @@ $_['subadmingroups'] = array_flip($items); + +
+ +
+
t('Default Storage'));?> diff --git a/settings/users.php b/settings/users.php index 94e6d0a9a10..e5c8a7aaa8d 100644 --- a/settings/users.php +++ b/settings/users.php @@ -20,6 +20,8 @@ $users = array(); $groups = array(); $isadmin = OC_User::isAdminUser(OC_User::getUser()); +$recoveryAdminEnabled = OC_App::isEnabled('files_encryption') && + OC_Appconfig::getValue( 'files_encryption', 'recoveryAdminEnabled' ); if($isadmin) { $accessiblegroups = OC_Group::getGroups(); @@ -77,4 +79,5 @@ $tmpl->assign( 'numofgroups', count($accessiblegroups)); $tmpl->assign( 'quota_preset', $quotaPreset); $tmpl->assign( 'default_quota', $defaultQuota); $tmpl->assign( 'defaultQuotaIsUserDefined', $defaultQuotaIsUserDefined); +$tmpl->assign( 'recoveryAdminEnabled', $recoveryAdminEnabled); $tmpl->printPage(); -- GitLab From 8ae30891b3cd5781741ce797b0ff99d68eab7c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 16 May 2013 15:19:53 +0200 Subject: [PATCH 358/454] some error handling in case the recovery password is wrong --- settings/ajax/changepassword.php | 7 +++++-- settings/js/users.js | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index fe63f27a6e2..adb730e12c2 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -28,10 +28,13 @@ if(is_null($userstatus)) { exit(); } -// Return Success story -if(!is_null($password) && OC_User::setPassword( $username, $password, $recoveryPassword )) { +$util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); +if ( $recoveryPassword && ! $util->checkRecoveryPassword($recoveryPassword) ) { + OC_JSON::error(array("data" => array( "message" => "Wrong recovery admin password. Please check the password and try again." ))); +}elseif(!is_null($password) && OC_User::setPassword( $username, $password, $recoveryPassword )) { OC_JSON::success(array("data" => array( "username" => $username ))); } else{ OC_JSON::error(array("data" => array( "message" => "Unable to change password" ))); } +error_log("bliub"); diff --git a/settings/js/users.js b/settings/js/users.js index 9bd7f31f0b2..423068e51f3 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -357,6 +357,10 @@ $(document).ready(function () { OC.filePath('settings', 'ajax', 'changepassword.php'), {username: uid, password: $(this).val(), recoveryPassword: recoveryPasswordVal}, function (result) { + if (result.status != 'success') { + OC.dialogs.alert(result.data.message, + t('settings', 'Error changing password')); + } } ); input.blur(); -- GitLab From f1a5b8b524531567ba18c6e08a6f7110dcff18d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 16 May 2013 16:01:40 +0200 Subject: [PATCH 359/454] show nicer warning if the admin recovery password was wrong --- settings/ajax/changepassword.php | 2 +- settings/js/users.js | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index adb730e12c2..6b5bf9c66bd 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -30,7 +30,7 @@ if(is_null($userstatus)) { $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); if ( $recoveryPassword && ! $util->checkRecoveryPassword($recoveryPassword) ) { - OC_JSON::error(array("data" => array( "message" => "Wrong recovery admin password. Please check the password and try again." ))); + OC_JSON::error(array("data" => array( "message" => "Wrong admin recovery password. Please check the password and try again." ))); }elseif(!is_null($password) && OC_User::setPassword( $username, $password, $recoveryPassword )) { OC_JSON::success(array("data" => array( "username" => $username ))); } diff --git a/settings/js/users.js b/settings/js/users.js index 423068e51f3..f3fab34b090 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -351,15 +351,13 @@ $(document).ready(function () { input.keypress(function (event) { if (event.keyCode == 13) { if ($(this).val().length > 0) { - var recoveryPasswordVal = $('input:password[id="recoveryPassword"]').val(); - console.log("RECOVERY PASSWD: " + recoveryPasswordVal); + var recoveryPasswordVal = $('input:password[id="recoveryPassword"]').val(); $.post( OC.filePath('settings', 'ajax', 'changepassword.php'), {username: uid, password: $(this).val(), recoveryPassword: recoveryPasswordVal}, function (result) { if (result.status != 'success') { - OC.dialogs.alert(result.data.message, - t('settings', 'Error changing password')); + OC.Notification.show(t('admin', result.data.message)); } } ); @@ -374,6 +372,10 @@ $(document).ready(function () { img.css('display', ''); }); }); + $('input:password[id="recoveryPassword"]').keyup(function(event) { + OC.Notification.hide(); + }); + $('table').on('click', 'td.password', function (event) { $(this).children('img').click(); }); -- GitLab From 95297c246970f5e185b94cbc320b28d88a7c0d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 16 May 2013 17:44:28 +0200 Subject: [PATCH 360/454] add pre-shared hooks --- lib/public/share.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/public/share.php b/lib/public/share.php index b2eeb29234a..e1538152d80 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1207,6 +1207,17 @@ class Share { if ($shareType == self::SHARE_TYPE_GROUP) { $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], $uidOwner, $suggestedItemTarget); + \OC_Hook::emit('OCP\Share', 'pre_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $groupItemTarget, + 'shareType' => $shareType, + 'shareWith' => $shareWith['group'], + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'token' => $token + )); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { @@ -1282,6 +1293,17 @@ class Share { } else { $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedItemTarget); + \OC_Hook::emit('OCP\Share', 'pre_shared', array( + 'itemType' => $itemType, + 'itemSource' => $itemSource, + 'itemTarget' => $itemTarget, + 'shareType' => $shareType, + 'shareWith' => $shareWith, + 'uidOwner' => $uidOwner, + 'permissions' => $permissions, + 'fileSource' => $fileSource, + 'token' => $token + )); if (isset($fileSource)) { if ($parentFolder) { if ($parentFolder === true) { -- GitLab From 913941d894579ed332169a7573654fd6b0ca9eca Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Thu, 16 May 2013 18:19:28 +0200 Subject: [PATCH 361/454] Line length etc. --- core/js/oc-dialogs.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index c0c035bafdd..89897382878 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -1,7 +1,7 @@ /** * ownCloud * - * @author Bartek Przybylski,Christopher Schäpers, Thomas Tanghus + * @author Bartek Przybylski, Christopher Schäpers, Thomas Tanghus * @copyright 2012 Bartek Przybylski bartek@alefzero.eu * * This library is free software; you can redistribute it and/or @@ -396,7 +396,8 @@ var OCdialogs = { * handle selection made in the tree list */ handleTreeListSelect:function(event) { - if ($('option:selected', this).html().indexOf('/') !== -1) { // if there's a slash in the selected path, don't append it + // if there's a slash in the selected path, don't append it + if ($('option:selected', this).html().indexOf('/') !== -1) { $(event.data.dcid).data('path', $('option:selected', this).html()); } else { $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $('option:selected', this).html() + '/'); -- GitLab From d40d6aa3581fdacfc10532cfcfc2dc20835817d1 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 22:39:09 +0200 Subject: [PATCH 362/454] fix typo in addRecoveryKeys --- apps/files_encryption/lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index fab807b0141..038ec78bbdb 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1325,7 +1325,7 @@ class Util { foreach ($dirContent as $item) { $filePath = substr($item['path'], 25); if ($item['type'] == 'dir') { - $this->addRecoveryKey($filePath.'/'); + $this->addRecoveryKeys($filePath.'/'); } else { $session = new Session(new \OC_FilesystemView('/')); $sharingEnabled = \OCP\Share::isEnabled(); -- GitLab From 3793e4d2d6729f01a83c56d8f123226134f8c626 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Thu, 16 May 2013 22:57:55 +0200 Subject: [PATCH 363/454] fix for recover files in subfolder --- apps/files_encryption/lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index 038ec78bbdb..7acb3ce2dc3 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -1406,7 +1406,7 @@ class Util { foreach ($dirContent as $item) { $filePath = substr($item['path'], 25); if ($item['type'] == 'dir') { - $this->addRecoveryKey($filePath . '/', $privateKey); + $this->recoverAllFiles($filePath . '/', $privateKey); } else { $file = substr($filePath, 0, -4); $this->recoverFile($file, $privateKey); -- GitLab From 42b4963dd010830d1a99666052ee2bfc7295249a Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 00:58:41 +0200 Subject: [PATCH 364/454] moved enable and disable recovery to Helper class for unit tests --- apps/files_encryption/ajax/adminrecovery.php | 64 +------------- apps/files_encryption/lib/helper.php | 92 ++++++++++++++++++++ 2 files changed, 94 insertions(+), 62 deletions(-) diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php index 0ab449709c3..dc13bc57c11 100644 --- a/apps/files_encryption/ajax/adminrecovery.php +++ b/apps/files_encryption/ajax/adminrecovery.php @@ -21,74 +21,14 @@ $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){ - $view = new \OC\Files\View('/'); - - if ($recoveryKeyId === null) { - $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8); - \OC_Appconfig::setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId); - } - - if (!$view->is_dir('/owncloud_private_key')) { - $view->mkdir('/owncloud_private_key'); - } - - if ( - (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key") - || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key")) - ) { - - $keypair = \OCA\Encryption\Crypt::createKeypair(); - - \OC_FileProxy::$enabled = false; - - // Save public key - - if (!$view->is_dir('/public-keys')) { - $view->mkdir('/public-keys'); - } - - $view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']); - - // Encrypt private key empthy passphrase - $encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $_POST['recoveryPassword']); - - // Save private key - $view->file_put_contents('/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey); - - // create control file which let us check later on if the entered password was correct. - $encryptedControlData = \OCA\Encryption\Crypt::keyEncrypt("ownCloud", $keypair['publicKey']); - if (!$view->is_dir('/control-file')) { - $view->mkdir('/control-file'); - } - $view->file_put_contents('/control-file/controlfile.enc', $encryptedControlData); - - \OC_FileProxy::$enabled = true; - - // Set recoveryAdmin as enabled - OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); - - $return = true; - - } else { // get recovery key and check the password - $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); - $return = $util->checkRecoveryPassword($_POST['recoveryPassword']); - if ($return) { - OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); - } - } + $return = \Helper::adminEnableRecovery($recoveryKeyId, $_POST['recoveryPassword']); // Disable recoveryAdmin } elseif ( isset($_POST['adminEnableRecovery']) && 0 == $_POST['adminEnableRecovery'] ) { - $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); - $return = $util->checkRecoveryPassword($_POST['recoveryPassword']); - - if ($return) { - // Set recoveryAdmin as disabled - OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0); - } + $return = \Helper::adminDisableRecovery($_POST['recoveryPassword']); } // Return success or failure diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 86d860465e6..a04c65e251f 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -26,6 +26,10 @@ namespace OCA\Encryption; /** * @brief Class to manage registration of hooks an various helper methods */ +/** + * Class Helper + * @package OCA\Encryption + */ class Helper { /** @@ -89,4 +93,92 @@ class Helper { return true; } + + /** + * @brief enable recovery + * + * @param $recoveryKeyId + * @param $recoveryPassword + * @internal param \OCA\Encryption\Util $util + * @internal param string $password + * @return bool + */ + public static function adminEnableRecovery($recoveryKeyId, $recoveryPassword) { + $view = new \OC\Files\View('/'); + + if ($recoveryKeyId === null) { + $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8); + \OC_Appconfig::setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId); + } + + if (!$view->is_dir('/owncloud_private_key')) { + $view->mkdir('/owncloud_private_key'); + } + + if ( + (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key") + || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key")) + ) { + + $keypair = \OCA\Encryption\Crypt::createKeypair(); + + \OC_FileProxy::$enabled = false; + + // Save public key + + if (!$view->is_dir('/public-keys')) { + $view->mkdir('/public-keys'); + } + + $view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']); + + // Encrypt private key empthy passphrase + $encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $recoveryPassword); + + // Save private key + $view->file_put_contents('/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey); + + // create control file which let us check later on if the entered password was correct. + $encryptedControlData = \OCA\Encryption\Crypt::keyEncrypt("ownCloud", $keypair['publicKey']); + if (!$view->is_dir('/control-file')) { + $view->mkdir('/control-file'); + } + $view->file_put_contents('/control-file/controlfile.enc', $encryptedControlData); + + \OC_FileProxy::$enabled = true; + + // Set recoveryAdmin as enabled + \OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); + + $return = true; + + } else { // get recovery key and check the password + $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); + $return = $util->checkRecoveryPassword($_POST['recoveryPassword']); + if ($return) { + \OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1); + } + } + + return $return; + } + + + /** + * @brief disable recovery + * + * @param $recoveryPassword + * @return bool + */ + public static function adminDisableRecovery($recoveryPassword) { + $util = new Util(new \OC_FilesystemView('/'), \OCP\User::getUser()); + $return = $util->checkRecoveryPassword($recoveryPassword); + + if ($return) { + // Set recoveryAdmin as disabled + \OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0); + } + + return $return; + } } \ No newline at end of file -- GitLab From a4c0eb17569457784faa06ed0b65a319f7ec2f78 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 01:07:26 +0200 Subject: [PATCH 365/454] improved tests --- apps/files_encryption/tests/crypt.php | 17 +++++++++++++++- apps/files_encryption/tests/keymanager.php | 23 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 1caa9ea7da7..bfb5ca0ec8b 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -62,8 +62,17 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // Filesystem related hooks \OCA\Encryption\Helper::registerFilesystemHooks(); + // Filesystem related hooks + \OCA\Encryption\Helper::registerUserHooks(); + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + // remember files_trashbin state + $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); + + // we don't want to tests with app files_trashbin enabled + \OC_App::disable('files_trashbin'); + \OC_Util::tearDownFS(); \OC_User::setUserId(''); \OC\Files\Filesystem::tearDown(); @@ -78,6 +87,13 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { function tearDown() { \OC_FileProxy::clearProxies(); + + // reset app files_trashbin + if ($this->stateFilesTrashbin) { + OC_App::enable('files_trashbin'); + } else { + OC_App::disable('files_trashbin'); + } } function testGenerateKey() { @@ -686,7 +702,6 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals( $this->dataLong, $newDecrypt ); // tear down - $view->unlink( $newFolder . '/' . $newFilename ); $view->unlink( $newFolder ); } diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index 28452d779ca..3f6b936373c 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -57,6 +57,12 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); + // remember files_trashbin state + $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin'); + + // we don't want to tests with app files_trashbin enabled + \OC_App::disable('files_trashbin'); + \OC_Util::tearDownFS(); \OC_User::setUserId(''); \OC\Files\Filesystem::tearDown(); @@ -72,6 +78,13 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { \OC_FileProxy::$enabled = true; \OC_FileProxy::clearProxies(); + + // reset app files_trashbin + if ($this->stateFilesTrashbin) { + OC_App::enable('files_trashbin'); + } else { + OC_App::disable('files_trashbin'); + } } function testGetPrivateKey() { @@ -116,6 +129,16 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase { //$view = new \OC_FilesystemView( '/' . $this->userId . '/files_encryption/keyfiles' ); Encryption\Keymanager::setFileKey( $this->view, $file, $this->userId, $key['key'] ); + + // Disable encryption proxy to prevent recursive calls + $proxyStatus = \OC_FileProxy::$enabled; + \OC_FileProxy::$enabled = true; + + // cleanup + $this->view->unlink('/'.$this->userId . '/files/' . $file); + + // Re-enable proxy - our work is done + \OC_FileProxy::$enabled = $proxyStatus; } -- GitLab From 2b0bf4dc87a1117de5b2a6c0201f35736b80f0e7 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 01:07:50 +0200 Subject: [PATCH 366/454] added tests for recovery --- apps/files_encryption/tests/share.php | 144 +++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 2 deletions(-) diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index e5427fdf504..a40a992b804 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -528,12 +528,152 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase } - function loginHelper($user, $create = false) + function testRecoveryFile() + { + // login as admin + $this->loginHelper('admin'); + + \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); + $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + + // check if control file created + $this->assertTrue($this->view->file_exists('/control-file/controlfile.enc')); + + $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), 'admin'); + + // check if recovery password match + $this->assertTrue($util->checkRecoveryPassword('test123')); + + // enable recovery for admin + $this->assertTrue($util->setRecoveryForUser(true)); + + // create folder structure + $this->view->mkdir('/admin/files' . $this->folder1); + $this->view->mkdir('/admin/files' . $this->folder1 . $this->subfolder); + $this->view->mkdir('/admin/files' . $this->folder1 . $this->subfolder . $this->subsubfolder); + + // save file with content + $cryptedFile1 = file_put_contents('crypt://' . $this->filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt://' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename, $this->dataShort); + + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile1)); + $this->assertTrue(is_int($cryptedFile2)); + + // check if share key for admin and recovery exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.admin.shareKey')); + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.admin.shareKey')); + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + + // disable recovery for admin + $this->assertTrue($util->setRecoveryForUser(false)); + + // remove all recovery keys + $util->removeRecoveryKeys('/'); + + // check if share key for recovery not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + + // enable recovery for admin + $this->assertTrue($util->setRecoveryForUser(true)); + + // remove all recovery keys + $util->addRecoveryKeys('/'); + + // check if share key for admin and recovery exists + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertTrue($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + + // cleanup + $this->view->unlink('/admin/files/' . $this->filename); + $this->view->unlink('/admin/files/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename); + + // check if share key for recovery not exists + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + } + + function testRecoveryForUser() + { + // login as admin + $this->loginHelper('admin'); + + \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); + $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId'); + + // check if control file created + $this->assertTrue($this->view->file_exists('/control-file/controlfile.enc')); + + // login as user1 + $this->loginHelper('user1'); + + $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), 'user1'); + + // enable recovery for admin + $this->assertTrue($util->setRecoveryForUser(true)); + + // create folder structure + $this->view->mkdir('/user1/files' . $this->folder1); + $this->view->mkdir('/user1/files' . $this->folder1 . $this->subfolder); + $this->view->mkdir('/user1/files' . $this->folder1 . $this->subfolder . $this->subsubfolder); + + // save file with content + $cryptedFile1 = file_put_contents('crypt://' . $this->filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt://' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename, $this->dataShort); + + // test that data was successfully written + $this->assertTrue(is_int($cryptedFile1)); + $this->assertTrue(is_int($cryptedFile2)); + + // check if share key for user and recovery exists + $this->assertTrue($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->filename . '.user1.shareKey')); + $this->assertTrue($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertTrue($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.user1.shareKey')); + $this->assertTrue($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + + // login as admin + $this->loginHelper('admin'); + + // change password + \OC_User::setPassword('user1', 'test', 'test123'); + + // login as user1 + $this->loginHelper('user1', false, 'test'); + + // get file contents + $retrievedCryptedFile1 = file_get_contents('crypt://' . $this->filename); + $retrievedCryptedFile2 = file_get_contents('crypt://' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename); + + // check if data is the same as we previously written + $this->assertEquals($this->dataShort, $retrievedCryptedFile1); + $this->assertEquals($this->dataShort, $retrievedCryptedFile2); + + // cleanup + $this->view->unlink('/user1/files' . $this->folder1); + $this->view->unlink('/user1/files' . $this->filename); + + // check if share key for user and recovery exists + $this->assertFalse($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->filename . '.user1.shareKey')); + $this->assertFalse($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->filename . '.'.$recoveryKeyId.'.shareKey')); + $this->assertFalse($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.user1.shareKey')); + $this->assertFalse($this->view->file_exists('/user1/files_encryption/share-keys/' . $this->folder1 . $this->subfolder . $this->subsubfolder .'/'. $this->filename . '.'.$recoveryKeyId.'.shareKey')); + + // enable recovery for admin + $this->assertTrue($util->setRecoveryForUser(false)); + } + + function loginHelper($user, $create = false, $password = false) { if ($create) { \OC_User::createUser($user, $user); } + if($password === false) { + $password = $user; + } + \OC_Util::tearDownFS(); \OC_User::setUserId(''); \OC\Files\Filesystem::tearDown(); @@ -541,7 +681,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase \OC_User::setUserId($user); $params['uid'] = $user; - $params['password'] = $user; + $params['password'] = $password; OCA\Encryption\Hooks::login($params); } } -- GitLab From 469d6028ad10c9b39bffca9019d2c1fd9bdb0e3d Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 01:17:55 +0200 Subject: [PATCH 367/454] revert changes --- lib/public/share.php | 53 +++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index d04411e0db1..a561319e9bd 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1401,34 +1401,31 @@ class Share { } public static function post_addToGroup($arguments) { - - if(\OC_Config::getValue('installed')) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' - .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], - self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], - $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); - } + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); } } } -- GitLab From a92dead7540c73b43162dd1993d07bf542cdfabe Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 01:20:02 +0200 Subject: [PATCH 368/454] only connect share hooks if installation OC is installed --- lib/base.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/base.php b/lib/base.php index 667202d3aef..7d7e690aa6f 100644 --- a/lib/base.php +++ b/lib/base.php @@ -542,10 +542,12 @@ class OC { * register hooks for sharing */ public static function registerShareHooks() { - OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); - OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); - OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); - OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); + if(\OC_Config::getValue('installed')) { + OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); + OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); + OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); + OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); + } } /** -- GitLab From d7dc710c8b1d46947cb2afe13152e0adc9ee5594 Mon Sep 17 00:00:00 2001 From: Florin Peter Date: Fri, 17 May 2013 01:17:55 +0200 Subject: [PATCH 369/454] revert changes --- lib/public/share.php | 53 +++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index e1538152d80..03d662676c6 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1541,34 +1541,31 @@ class Share { } public static function post_addToGroup($arguments) { - - if(\OC_Config::getValue('installed')) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' - .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' - .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, - $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], - self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], - $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); - } + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,' + .' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,' + .' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, + $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], + self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], + $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); } } } -- GitLab From 6a6079176b75c81ee96ee22cc5cff0e0d47c09ef Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Fri, 17 May 2013 02:07:36 +0200 Subject: [PATCH 370/454] [tx-robot] updated from transifex --- apps/files/l10n/nn_NO.php | 20 +-- core/l10n/nn_NO.php | 24 +-- l10n/af_ZA/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ar/user_ldap.po | 220 ++++++++++++++++++--------- l10n/be/user_ldap.po | 220 ++++++++++++++++++--------- l10n/bg_BG/user_ldap.po | 220 ++++++++++++++++++--------- l10n/bn_BD/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ca/user_ldap.po | 220 ++++++++++++++++++--------- l10n/cs_CZ/user_ldap.po | 220 ++++++++++++++++++--------- l10n/cy_GB/user_ldap.po | 220 ++++++++++++++++++--------- l10n/da/user_ldap.po | 220 ++++++++++++++++++--------- l10n/de/user_ldap.po | 222 +++++++++++++++++++--------- l10n/de_DE/files.po | 4 +- l10n/de_DE/user_ldap.po | 222 +++++++++++++++++++--------- l10n/el/user_ldap.po | 220 ++++++++++++++++++--------- l10n/en@pirate/user_ldap.po | 222 +++++++++++++++++++--------- l10n/eo/user_ldap.po | 220 ++++++++++++++++++--------- l10n/es/files.po | 4 +- l10n/es/user_ldap.po | 220 ++++++++++++++++++--------- l10n/es_AR/user_ldap.po | 220 ++++++++++++++++++--------- l10n/et_EE/user_ldap.po | 222 +++++++++++++++++++--------- l10n/eu/user_ldap.po | 220 ++++++++++++++++++--------- l10n/fa/user_ldap.po | 220 ++++++++++++++++++--------- l10n/fi_FI/user_ldap.po | 220 ++++++++++++++++++--------- l10n/fr/files.po | 4 +- l10n/fr/user_ldap.po | 220 ++++++++++++++++++--------- l10n/gl/user_ldap.po | 220 ++++++++++++++++++--------- l10n/he/user_ldap.po | 222 +++++++++++++++++++--------- l10n/hi/user_ldap.po | 220 ++++++++++++++++++--------- l10n/hr/user_ldap.po | 220 ++++++++++++++++++--------- l10n/hu_HU/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ia/user_ldap.po | 220 ++++++++++++++++++--------- l10n/id/user_ldap.po | 220 ++++++++++++++++++--------- l10n/is/user_ldap.po | 220 ++++++++++++++++++--------- l10n/it/settings.po | 4 +- l10n/it/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ja_JP/user_ldap.po | 222 +++++++++++++++++++--------- l10n/ka/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ka_GE/user_ldap.po | 222 +++++++++++++++++++--------- l10n/kn/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ko/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ku_IQ/user_ldap.po | 220 ++++++++++++++++++--------- l10n/lb/user_ldap.po | 220 ++++++++++++++++++--------- l10n/lt_LT/user_ldap.po | 220 ++++++++++++++++++--------- l10n/lv/user_ldap.po | 220 ++++++++++++++++++--------- l10n/mk/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ms_MY/user_ldap.po | 220 ++++++++++++++++++--------- l10n/my_MM/user_ldap.po | 220 ++++++++++++++++++--------- l10n/nb_NO/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ne/user_ldap.po | 220 ++++++++++++++++++--------- l10n/nl/files.po | 4 +- l10n/nl/user_ldap.po | 220 ++++++++++++++++++--------- l10n/nn_NO/core.po | 29 ++-- l10n/nn_NO/files.po | 27 ++-- l10n/nn_NO/lib.po | 19 +-- l10n/nn_NO/settings.po | 65 ++++---- l10n/nn_NO/user_ldap.po | 220 ++++++++++++++++++--------- l10n/oc/user_ldap.po | 220 ++++++++++++++++++--------- l10n/pl/user_ldap.po | 220 ++++++++++++++++++--------- l10n/pt_BR/files.po | 4 +- l10n/pt_BR/user_ldap.po | 220 ++++++++++++++++++--------- l10n/pt_PT/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ro/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ru/user_ldap.po | 220 ++++++++++++++++++--------- l10n/si_LK/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sk/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sk_SK/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sl/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sq/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sr/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sr@latin/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sv/user_ldap.po | 220 ++++++++++++++++++--------- l10n/sw_KE/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ta_LK/user_ldap.po | 220 ++++++++++++++++++--------- l10n/te/user_ldap.po | 220 ++++++++++++++++++--------- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_trashbin.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 218 ++++++++++++++++++--------- l10n/templates/user_webdavauth.pot | 2 +- l10n/th_TH/user_ldap.po | 220 ++++++++++++++++++--------- l10n/tr/user_ldap.po | 222 +++++++++++++++++++--------- l10n/ug/user_ldap.po | 222 +++++++++++++++++++--------- l10n/uk/user_ldap.po | 220 ++++++++++++++++++--------- l10n/ur_PK/user_ldap.po | 220 ++++++++++++++++++--------- l10n/vi/user_ldap.po | 220 ++++++++++++++++++--------- l10n/zh_CN.GB2312/user_ldap.po | 220 ++++++++++++++++++--------- l10n/zh_CN/files.po | 4 +- l10n/zh_CN/user_ldap.po | 220 ++++++++++++++++++--------- l10n/zh_HK/user_ldap.po | 220 ++++++++++++++++++--------- l10n/zh_TW/user_ldap.po | 220 ++++++++++++++++++--------- lib/l10n/nn_NO.php | 2 +- settings/l10n/nn_NO.php | 40 ++--- 99 files changed, 11469 insertions(+), 5101 deletions(-) diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php index 6d5c4c56425..2b7c5cf89bd 100644 --- a/apps/files/l10n/nn_NO.php +++ b/apps/files/l10n/nn_NO.php @@ -1,6 +1,6 @@ "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet", -"Could not move %s" => "Klarte ikkje å flytta %s", +"Could not move %s - File with this name already exists" => "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet", +"Could not move %s" => "Klarte ikkje flytta %s", "No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil", "There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ", @@ -8,7 +8,7 @@ "The uploaded file was only partially uploaded" => "Fila vart berre delvis lasta opp", "No file was uploaded" => "Ingen filer vart lasta opp", "Missing a temporary folder" => "Manglar ei mellombels mappe", -"Failed to write to disk" => "Klarte ikkje å skriva til disk", +"Failed to write to disk" => "Klarte ikkje skriva til disk", "Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg", "Invalid directory." => "Ugyldig mappe.", "Files" => "Filer", @@ -32,11 +32,11 @@ "Your storage is full, files can not be updated or synced anymore!" => "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!", "Your storage is almost full ({usedSpacePercent}%)" => "Lagringa di er nesten full ({usedSpacePercent} %)", "Your download is being prepared. This might take some time if the files are big." => "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje å lasta opp fila sidan ho er ei mappe eller er på 0 byte", +"Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje lasta opp fila sidan ho er ei mappe eller er på 0 byte", "Not enough space available" => "Ikkje nok lagringsplass tilgjengeleg", "Upload cancelled." => "Opplasting avbroten.", -"File upload is in progress. Leaving the page now will cancel the upload." => "Fila lastar no opp. Viss du forlèt sida no vil opplastinga bli avbroten.", -"URL cannot be empty." => "URL-en kan ikkje vera tom.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.", +"URL cannot be empty." => "Nettadressa kan ikkje vera tom.", "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ugyldig mappenamn. Mappa «Shared» er reservert av ownCloud", "Error" => "Feil", "Name" => "Namn", @@ -46,13 +46,13 @@ "{count} folders" => "{count} mapper", "1 file" => "1 fil", "{count} files" => "{count} filer", -"Unable to rename file" => "Klarte ikkje å endra filnamnet", +"Unable to rename file" => "Klarte ikkje endra filnamnet", "Upload" => "Last opp", "File handling" => "Filhandtering", "Maximum upload size" => "Maksimal opplastingsstorleik", "max. possible: " => "maks. moglege:", -"Needed for multi-file and folder downloads." => "Naudsynt for fleirfils- og mappenedlastingar.", -"Enable ZIP-download" => "Skru på ZIP-nedlasting", +"Needed for multi-file and folder downloads." => "Nødvendig for fleirfils- og mappenedlastingar.", +"Enable ZIP-download" => "Slå på ZIP-nedlasting", "0 is unlimited" => "0 er ubegrensa", "Maximum input size for ZIP files" => "Maksimal storleik for ZIP-filer", "Save" => "Lagre", @@ -67,7 +67,7 @@ "Download" => "Last ned", "Unshare" => "Udel", "Upload too large" => "For stor opplasting", -"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren.", +"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.", "Files are being scanned, please wait." => "Skannar filer, ver venleg og vent.", "Current scanning" => "Køyrande skanning", "Upgrading filesystem cache..." => "Oppgraderer mellomlageret av filsystemet …" diff --git a/core/l10n/nn_NO.php b/core/l10n/nn_NO.php index 2055be1b9a4..d11ff92fa88 100644 --- a/core/l10n/nn_NO.php +++ b/core/l10n/nn_NO.php @@ -8,9 +8,9 @@ "This category already exists: %s" => "Denne kategorien finst alt: %s", "Object type not provided." => "Ingen objekttype.", "%s ID not provided." => "Ingen %s-ID.", -"Error adding %s to favorites." => "Klarte ikkje å leggja til %s i favorittar.", +"Error adding %s to favorites." => "Klarte ikkje leggja til %s i favorittar.", "No categories selected for deletion." => "Ingen kategoriar valt for sletting.", -"Error removing %s from favorites." => "Klarte ikkje å fjerna %s frå favorittar.", +"Error removing %s from favorites." => "Klarte ikkje fjerna %s frå favorittar.", "Sunday" => "Søndag", "Monday" => "Måndag", "Tuesday" => "Tysdag", @@ -40,8 +40,8 @@ "yesterday" => "i går", "{days} days ago" => "{days} dagar sidan", "last month" => "førre månad", -"{months} months ago" => "{months) månader sidan", -"months ago" => "månader sidan", +"{months} months ago" => "{months} månadar sidan", +"months ago" => "månadar sidan", "last year" => "i fjor", "years ago" => "år sidan", "Ok" => "Greitt", @@ -51,7 +51,7 @@ "No" => "Nei", "The object type is not specified." => "Objekttypen er ikkje spesifisert.", "Error" => "Feil", -"The app name is not specified." => "App-namnet er ikkje spesifisert.", +"The app name is not specified." => "Programnamnet er ikkje spesifisert.", "The required file {file} is not installed!" => "Den kravde fila {file} er ikkje installert!", "Shared" => "Delt", "Share" => "Del", @@ -66,8 +66,8 @@ "Password" => "Passord", "Email link to person" => "Send lenkja over e-post", "Send" => "Send", -"Set expiration date" => "Set utlaupsdato", -"Expiration date" => "Utlaupsdato", +"Set expiration date" => "Set utløpsdato", +"Expiration date" => "Utløpsdato", "Share via email:" => "Del over e-post:", "No people found" => "Fann ingen personar", "Resharing is not allowed" => "Vidaredeling er ikkje tillate", @@ -80,8 +80,8 @@ "delete" => "slett", "share" => "del", "Password protected" => "Passordverna", -"Error unsetting expiration date" => "Klarte ikkje å fjerna utlaupsdato", -"Error setting expiration date" => "Klarte ikkje å setja utlaupsdato", +"Error unsetting expiration date" => "Klarte ikkje fjerna utløpsdato", +"Error setting expiration date" => "Klarte ikkje setja utløpsdato", "Sending ..." => "Sender …", "Email sent" => "E-post sendt", "The update was unsuccessful. Please report this issue to the ownCloud community." => "Oppdateringa feila. Ver venleg og rapporter feilen til ownCloud-fellesskapet.", @@ -99,7 +99,7 @@ "Reset password" => "Nullstill passord", "Personal" => "Personleg", "Users" => "Brukarar", -"Apps" => "Applikasjonar", +"Apps" => "Program", "Admin" => "Admin", "Help" => "Hjelp", "Access forbidden" => "Tilgang forbudt", @@ -116,8 +116,8 @@ "Create an admin account" => "Lag ein admin-konto", "Advanced" => "Avansert", "Data folder" => "Datamappe", -"Configure the database" => "Konfigurer databasen", -"will be used" => "vil bli nytta", +"Configure the database" => "Set opp databasen", +"will be used" => "vil verta nytta", "Database user" => "Databasebrukar", "Database password" => "Databasepassord", "Database name" => "Databasenamn", diff --git a/l10n/af_ZA/user_ldap.po b/l10n/af_ZA/user_ldap.po index 21d7bba9752..9c44d57d8fc 100644 --- a/l10n/af_ZA/user_ldap.po +++ b/l10n/af_ZA/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/owncloud/language/af_ZA/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: af_ZA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Wagwoord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hulp" diff --git a/l10n/ar/user_ldap.po b/l10n/ar/user_ldap.po index ede2881fa3a..42658b5c8db 100644 --- a/l10n/ar/user_ldap.po +++ b/l10n/ar/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "كلمة المرور" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "المساعدة" diff --git a/l10n/be/user_ldap.po b/l10n/be/user_ldap.po index b6630ab6f2f..b922f51102f 100644 --- a/l10n/be/user_ldap.po +++ b/l10n/be/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Belarusian (http://www.transifex.com/projects/p/owncloud/language/be/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: be\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/bg_BG/user_ldap.po b/l10n/bg_BG/user_ldap.po index 0c18cd66039..834df076cc2 100644 --- a/l10n/bg_BG/user_ldap.po +++ b/l10n/bg_BG/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: bg_BG\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Парола" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Помощ" diff --git a/l10n/bn_BD/user_ldap.po b/l10n/bn_BD/user_ldap.po index 782011bb13e..a868139a96f 100644 --- a/l10n/bn_BD/user_ldap.po +++ b/l10n/bn_BD/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/projects/p/owncloud/language/bn_BD/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: bn_BD\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "হোস্ট" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "ভিত্তি DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "ব্যবহারকারি DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "কূটশব্দ" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "ব্যবহারকারির প্রবেশ ছাঁকনী" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "প্রবেশের চেষ্টা করার সময় প্রযোজ্য ছাঁকনীটি নির্ধারণ করবে। প্রবেশের সময় ব্যবহারকারী নামটি %%uid দিয়ে প্রতিস্থাপিত হবে।" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid স্থানধারক ব্যবহার করুন, উদাহরণঃ \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "ব্যবহারকারী তালিকা ছাঁকনী" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "ব্যবহারকারী উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "কোন স্থানধারক ব্যতীত, যেমনঃ \"objectClass=person\"।" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "গোষ্ঠী ছাঁকনী" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "গোষ্ঠীসমূহ উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "পোর্ট" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS ব্যবহার কর" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "অনুমোদিত নয়, শুধুমাত্র পরীক্ষামূলক ব্যবহারের জন্য।" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "ভিত্তি ব্যবহারকারি বৃক্ষাকারে" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "ভিত্তি গোষ্ঠী বৃক্ষাকারে" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "গোষ্ঠী-সদস্য সংস্থাপন" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "বাইটে" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "সহায়িকা" diff --git a/l10n/ca/user_ldap.po b/l10n/ca/user_ldap.po index 91d2f5617cb..a817cb82128 100644 --- a/l10n/ca/user_ldap.po +++ b/l10n/ca/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Ha fallat en eliminar la configuració del servidor" @@ -53,281 +57,363 @@ msgstr "Voleu mantenir la configuració?" msgid "Cannot add server configuration" msgstr "No es pot afegir la configuració del servidor" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "La prova de connexió ha reeixit" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "La prova de connexió ha fallat" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Voleu eliminar la configuració actual del servidor?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirma l'eliminació" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Avís: Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments no desitjats. Demaneu a l'administrador del sistema que en desactivi una." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Avís: El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuració del servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Afegeix la configuració del servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Equip remot" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN Base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Una DN Base per línia" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN Usuari" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "La DN de l'usuari client amb la que s'haurà de fer, per exemple uid=agent,dc=exemple,dc=com. Per un accés anònim, deixeu la DN i la contrasenya en blanc." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Contrasenya" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Per un accés anònim, deixeu la DN i la contrasenya en blanc." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtre d'inici de sessió d'usuari" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Defineix el filtre a aplicar quan s'intenta l'inici de sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "useu el paràmetre de substitució %%uid, per exemple \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Llista de filtres d'usuari" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Defineix el filtre a aplicar quan es mostren usuaris" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sense cap paràmetre de substitució, per exemple \"objectClass=persona\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtre de grup" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Defineix el filtre a aplicar quan es mostren grups." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sense cap paràmetre de substitució, per exemple \"objectClass=grupPosix\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Arranjaments de connexió" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuració activa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Si està desmarcat, aquesta configuració s'ometrà." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Màquina de còpia de serguretat (rèplica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Afegiu una màquina de còpia de seguretat opcional. Ha de ser una rèplica del servidor LDAP/AD principal." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Port de la còpia de seguretat (rèplica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Desactiva el servidor principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Quan està connectat, ownCloud només es connecta al servidor de la rèplica." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usa TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "No ho useu adicionalment per a conexions LDAPS, fallarà." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Desactiva la validació de certificat SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "No recomanat, ús només per proves." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Memòria de cau Time-To-Live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "en segons. Un canvi buidarà la memòria de cau." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Arranjaments de carpetes" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Camp per mostrar el nom d'usuari" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atribut LDAP a usar per generar el nom d'usuari ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Arbre base d'usuaris" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Una DN Base d'Usuari per línia" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributs de cerca d'usuari" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; Un atribut per línia" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Camp per mostrar el nom del grup" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atribut LDAP a usar per generar el nom de grup ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Arbre base de grups" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Una DN Base de Grup per línia" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributs de cerca de grup" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Associació membres-grup" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributs especials" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Camp de quota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Quota per defecte" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "en bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Camp de correu electrònic" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Norma per anomenar la carpeta arrel d'usuari" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Comprovació de la configuració" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ajuda" diff --git a/l10n/cs_CZ/user_ldap.po b/l10n/cs_CZ/user_ldap.po index ef1a936b3d1..4cfd61fae83 100644 --- a/l10n/cs_CZ/user_ldap.po +++ b/l10n/cs_CZ/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Selhalo smazání nastavení serveru" @@ -53,281 +57,363 @@ msgstr "Ponechat nastavení?" msgid "Cannot add server configuration" msgstr "Nelze přidat nastavení serveru" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Test spojení byl úspěšný" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Test spojení selhal" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Opravdu si přejete smazat současné nastavení serveru?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Potvrdit smazání" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Varování: Aplikace user_ldap a user_webdavauth nejsou kompatibilní. Může nastávat neočekávané chování. Požádejte, prosím, správce systému aby jednu z nich zakázal." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Varování: není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému aby jej nainstaloval." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Nastavení serveru" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Přidat nastavení serveru" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Počítač" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Základní DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Jedna základní DN na řádku" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Uživatelské DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN klentského uživatele ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte údaje DN and Heslo prázdné." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Heslo" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Pro anonymní přístup, ponechte údaje DN and heslo prázdné." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtr přihlášení uživatelů" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Určuje použitý filtr, při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "použijte zástupný vzor %%uid, např. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtr uživatelských seznamů" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Určuje použitý filtr, pro získávaní uživatelů." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez zástupných znaků, např. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtr skupin" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Určuje použitý filtr, pro získávaní skupin." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez zástupných znaků, např. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Nastavení spojení" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Nastavení aktivní" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Pokud není zaškrtnuto, bude nastavení přeskočeno." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Záložní (kopie) hostitel" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Zadejte volitelného záložního hostitele. Musí to být kopie hlavního serveru LDAP/AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Záložní (kopie) port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Zakázat hlavní serveru" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Při zapnutí se ownCloud připojí pouze k záložnímu serveru" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Použít TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Nepoužívejte pro spojení LDAP, selže." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server nerozlišující velikost znaků (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Vypnout ověřování SSL certifikátu." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Není doporučeno, pouze pro testovací účely." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "TTL vyrovnávací paměti" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "ve vteřinách. Změna vyprázdní vyrovnávací paměť." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Nastavení adresáře" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Pole pro zobrazované jméno uživatele" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atribut LDAP použitý k vytvoření jména uživatele ownCloud" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Základní uživatelský strom" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Jedna uživatelská základní DN na řádku" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributy vyhledávání uživatelů" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Volitelné, atribut na řádku" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Pole pro zobrazení jména skupiny" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atribut LDAP použitý k vytvoření jména skupiny ownCloud" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Základní skupinový strom" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Jedna skupinová základní DN na řádku" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributy vyhledávání skupin" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asociace člena skupiny" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Speciální atributy" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Pole pro kvótu" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Výchozí kvóta" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "v bajtech" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Pole e-mailu" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Pravidlo pojmenování domovské složky uživatele" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Vyzkoušet nastavení" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Nápověda" diff --git a/l10n/cy_GB/user_ldap.po b/l10n/cy_GB/user_ldap.po index 2c054ee1892..06a12595719 100644 --- a/l10n/cy_GB/user_ldap.po +++ b/l10n/cy_GB/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Welsh (United Kingdom) (http://www.transifex.com/projects/p/owncloud/language/cy_GB/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: cy_GB\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Cyfrinair" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Cymorth" diff --git a/l10n/da/user_ldap.po b/l10n/da/user_ldap.po index ed3dbcd50a3..39368c8e4a0 100644 --- a/l10n/da/user_ldap.po +++ b/l10n/da/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "You can specify Base DN for users and groups in the Advanced tab" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Bruger DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Kodeord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "For anonym adgang, skal du lade DN og Adgangskode tomme." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Bruger Login Filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Brugerliste Filter" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definere filteret der bruges ved indlæsning af brugere." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Gruppe Filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definere filteret der bruges når der indlæses grupper." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Brug TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Deaktiver SSL certifikat validering" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Anbefales ikke, brug kun for at teste." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "User Display Name Field" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Base Bruger Træ" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Base Group Tree" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Group-Member association" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "i bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hjælp" diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po index ae5ea47d002..ed388652131 100644 --- a/l10n/de/user_ldap.po +++ b/l10n/de/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-09 19:40+0000\n" -"Last-Translator: Marcel Kühlhorn \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Löschen der Serverkonfiguration fehlgeschlagen" @@ -54,281 +58,363 @@ msgstr "Einstellungen beibehalten?" msgid "Cannot add server configuration" msgstr "Das Hinzufügen der Serverkonfiguration schlug fehl" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Verbindungstest erfolgreich" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Verbindungstest fehlgeschlagen" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Löschung bestätigen" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Serverkonfiguration" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Serverkonfiguration hinzufügen" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Ein Basis-DN pro Zeile" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passwort" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Lasse die Felder DN und Passwort für anonymen Zugang leer." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwende %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Verbindungseinstellungen" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfiguration aktiv" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Konfiguration wird übersprungen wenn deaktiviert" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Backup Host (Kopie)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Backup Port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Hauptserver deaktivieren" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Benutze es nicht zusammen mit LDAPS Verbindungen, es wird fehlschlagen." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Schalte die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Speichere Time-To-Live zwischen" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Ordnereinstellungen" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Feld für den Anzeigenamen des Benutzers" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Basis-Benutzerbaum" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Ein Benutzer Basis-DN pro Zeile" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Benutzersucheigenschaften" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Optional; ein Attribut pro Zeile" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Feld für den Anzeigenamen der Gruppe" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Basis-Gruppenbaum" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Ein Gruppen Basis-DN pro Zeile" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Gruppensucheigenschaften" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Assoziation zwischen Gruppe und Benutzer" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Spezielle Eigenschaften" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kontingent Feld" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Standard Kontingent" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "in Bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-Mail Feld" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Benennungsregel für das Home-Verzeichnis des Benutzers" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testkonfiguration" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hilfe" diff --git a/l10n/de_DE/files.po b/l10n/de_DE/files.po index 7a8a5a18265..8560a8f9a29 100644 --- a/l10n/de_DE/files.po +++ b/l10n/de_DE/files.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 16:18+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: a.tangemann \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" diff --git a/l10n/de_DE/user_ldap.po b/l10n/de_DE/user_ldap.po index d667c104a5c..4fbd1dd320a 100644 --- a/l10n/de_DE/user_ldap.po +++ b/l10n/de_DE/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 16:15+0000\n" -"Last-Translator: a.tangemann \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (Germany) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Löschen der Serverkonfiguration fehlgeschlagen" @@ -54,281 +58,363 @@ msgstr "Einstellungen beibehalten?" msgid "Cannot add server configuration" msgstr "Das Hinzufügen der Serverkonfiguration schlug fehl" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Verbindungstest erfolgreich" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Verbindungstest fehlgeschlagen" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Löschung bestätigen" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwartetem Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Serverkonfiguration" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Serverkonfiguration hinzufügen" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Basis-DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Ein Basis-DN pro Zeile" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Benutzer-DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passwort" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Benutzer-Login-Filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Bestimmt den angewendeten Filter, wenn eine Anmeldung durchgeführt wird. %%uid ersetzt den Benutzernamen beim Anmeldeversuch." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "verwenden Sie %%uid Platzhalter, z. B. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Benutzer-Filter-Liste" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiert den Filter für die Anfrage der Benutzer." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Gruppen-Filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiert den Filter für die Anfrage der Gruppen." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Verbindungseinstellungen" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfiguration aktiv" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Wenn nicht angehakt, wird diese Konfiguration übersprungen." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Backup Host (Kopie)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Backup Port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Hauptserver deaktivieren" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Wenn aktiviert, wird ownCloud ausschließlich den Backupserver verwenden." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Nutze TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Schalten Sie die SSL-Zertifikatsprüfung aus." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nicht empfohlen, nur zu Testzwecken." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Speichere Time-To-Live zwischen" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "in Sekunden. Eine Änderung leert den Cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Ordnereinstellungen" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Feld für den Anzeigenamen des Benutzers" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. " -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Basis-Benutzerbaum" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Ein Benutzer Basis-DN pro Zeile" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Benutzersucheigenschaften" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Optional; ein Attribut pro Zeile" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Feld für den Anzeigenamen der Gruppe" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. " -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Basis-Gruppenbaum" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Ein Gruppen Basis-DN pro Zeile" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Gruppensucheigenschaften" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Assoziation zwischen Gruppe und Benutzer" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Spezielle Eigenschaften" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kontingent-Feld" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Standard-Kontingent" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "in Bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-Mail-Feld" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Benennungsregel für das Home-Verzeichnis des Benutzers" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls tragen Sie bitte ein LDAP/AD-Attribut ein." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testkonfiguration" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hilfe" diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po index 8b6e529e851..e333d516ca3 100644 --- a/l10n/el/user_ldap.po +++ b/l10n/el/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Αποτυχία διαγραφής ρυθμίσεων διακομιστή" @@ -53,281 +57,363 @@ msgstr "Διατήρηση ρυθμίσεων;" msgid "Cannot add server configuration" msgstr "Αδυναμία προσθήκης ρυθμίσεων διακομιστή" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Επιτυχημένη δοκιμαστική σύνδεση" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Αποτυχημένη δοκιμαστική σύνδεσης." -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Επιβεβαίωση Διαγραφής" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Προσοχή: Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Προσοχή: Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Ρυθμίσεις Διακομιστή" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Προσθήκη Ρυθμίσεων Διακομιστή" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Διακομιστής" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Ένα DN Βάσης ανά γραμμή " -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "User DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Συνθηματικό" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "User Login Filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την προσπάθεια σύνδεσης χρήστη. %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. " -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "χρησιμοποιήστε τη μεταβλητή %%uid, π.χ. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "User List Filter" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση επαφών." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=άτομο\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Group Filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Ρυθμίσεις Σύνδεσης" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Ενεργοποιηση ρυθμισεων" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Όταν δεν είναι επιλεγμένο, αυτή η ρύθμιση θα πρέπει να παραλειφθεί. " -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Θύρα" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Δημιουργία αντιγράφων ασφαλείας (Replica) Host " -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Δώστε μια προαιρετική εφεδρική υποδοχή. Πρέπει να είναι ένα αντίγραφο του κύριου LDAP / AD διακομιστη." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Δημιουργία αντιγράφων ασφαλείας (Replica) Υποδοχη" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Απενεργοποιηση του κεντρικου διακομιστη" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Όταν ενεργοποιηθεί, με το ownCloud θα συνδεθείτε με το διακομιστή ρεπλίκα." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Χρήση TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Μην το χρησιμοποιήσετε επιπροσθέτως, για LDAPS συνδέσεις , θα αποτύχει." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Δεν προτείνεται, χρήση μόνο για δοκιμές." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache Time-To-Live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Ρυθμίσεις Καταλόγου" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Πεδίο Ονόματος Χρήστη" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Base User Tree" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Ένα DN βάσης χρηστών ανά γραμμή" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Χαρακτηριστικά αναζήτησης των χρηστών " -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Προαιρετικά? Ένα χαρακτηριστικό ανά γραμμή " -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Group Display Name Field" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Base Group Tree" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Μια ομαδικη Βάση DN ανά γραμμή" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Ομάδα Χαρακτηριστικων Αναζήτηση" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Group-Member association" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Ειδικά Χαρακτηριστικά " -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Ποσοσταση πεδιου" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Προκαθισμενο πεδιο" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "σε bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Email τυπος" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Χρήστης Προσωπικόςφάκελος Ονομασία Κανόνας " -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Δοκιμαστικες ρυθμισεις" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Βοήθεια" diff --git a/l10n/en@pirate/user_ldap.po b/l10n/en@pirate/user_ldap.po index 084c4ad5edd..9e9a16cb2c4 100644 --- a/l10n/en@pirate/user_ldap.po +++ b/l10n/en@pirate/user_ldap.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-02 02:14+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Pirate English (http://www.transifex.com/projects/p/owncloud/language/en@pirate/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +17,10 @@ msgstr "" "Language: en@pirate\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passcode" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/eo/user_ldap.po b/l10n/eo/user_ldap.po index 6a84048239c..02508217bcd 100644 --- a/l10n/eo/user_ldap.po +++ b/l10n/eo/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Gastigo" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Bazo-DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Uzanto-DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Pasvorto" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtrilo de uzantensaluto" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Ĝi difinas la filtrilon aplikotan, kiam oni provas ensaluti. %%uid anstataŭigas la uzantonomon en la ensaluta ago." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "uzu la referencilon %%uid, ekz.: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtrilo de uzantolisto" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Ĝi difinas la filtrilon aplikotan, kiam veniĝas uzantoj." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sen ajna referencilo, ekz.: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtrilo de grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Ĝi difinas la filtrilon aplikotan, kiam veniĝas grupoj." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sen ajna referencilo, ekz.: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Pordo" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Uzi TLS-on" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-servilo blinda je litergrandeco (Vindozo)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Malkapabligi validkontrolon de SSL-atestiloj." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Ne rekomendata, uzu ĝin nur por testoj." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Kampo de vidignomo de uzanto" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la uzanto." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Baza uzantarbo" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Kampo de vidignomo de grupo" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Baza gruparbo" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asocio de grupo kaj membro" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "duumoke" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Helpo" diff --git a/l10n/es/files.po b/l10n/es/files.po index 0d420010060..a5ff79e96bc 100644 --- a/l10n/es/files.po +++ b/l10n/es/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 23:45+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: Art O. Pal \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/es/user_ldap.po b/l10n/es/user_ldap.po index 7c1c605a2ab..2fec96620a4 100644 --- a/l10n/es/user_ldap.po +++ b/l10n/es/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "No se pudo borrar la configuración del servidor" @@ -53,281 +57,363 @@ msgstr "Mantener la configuración?" msgid "Cannot add server configuration" msgstr "No se puede añadir la configuración del servidor" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "La prueba de conexión fue exitosa" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "La prueba de conexión falló" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "¿Realmente desea eliminar la configuración actual del servidor?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmar eliminación" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Advertencia: El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuración del Servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Agregar configuracion del servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Servidor" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Un DN Base por línea" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN usuario" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Contraseña" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acceso anónimo, deje DN y contraseña vacíos." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro de inicio de sesión de usuario" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define el filtro a aplicar cuando se ha realizado un login. %%uid remplazrá el nombre de usuario en el proceso de login." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar %%uid como placeholder, ej: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Lista de filtros de usuario" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Define el filtro a aplicar, cuando se obtienen usuarios." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sin placeholder, ej: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define el filtro a aplicar, cuando se obtienen grupos." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Con cualquier placeholder, ej: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Configuracion de coneccion" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuracion activa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Cuando deseleccione, esta configuracion sera omitida." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Puerto" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Host para backup (Replica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Dar un host de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Puerto para backup (Replica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Deshabilitar servidor principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Cuando se inicie, ownCloud unicamente estara conectado al servidor replica" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "No usar adicionalmente para conecciones LDAPS, estas fallaran" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Apagar la validación por certificado SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "No recomendado, sólo para pruebas." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache TTL" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "en segundos. Un cambio vacía la cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Configuracion de directorio" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Campo de nombre de usuario a mostrar" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Árbol base de usuario" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Un DN Base de Usuario por línea" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributos de la busqueda de usuario" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; un atributo por linea" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Campo de nombre de grupo a mostrar" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Árbol base de grupo" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Un DN Base de Grupo por línea" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributos de busqueda de grupo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asociación Grupo-Miembro" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributos especiales" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Cuota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Cuota por defecto" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "en bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-mail" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regla para la carpeta Home de usuario" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Configuración de prueba" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ayuda" diff --git a/l10n/es_AR/user_ldap.po b/l10n/es_AR/user_ldap.po index e5394097ae8..2f2f7af2915 100644 --- a/l10n/es_AR/user_ldap.po +++ b/l10n/es_AR/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Fallo al borrar la configuración del servidor" @@ -53,281 +57,363 @@ msgstr "¿Mantener preferencias?" msgid "Cannot add server configuration" msgstr "No se pudo añadir la configuración del servidor" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "El este de conexión ha sido completado satisfactoriamente" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Falló es test de conexión" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "¿Realmente desea borrar la configuración actual del servidor?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmar borrado" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Atención: El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuración del Servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Añadir Configuración del Servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Servidor" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Una DN base por línea" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Podés especificar el DN base para usuarios y grupos en la pestaña \"Avanzado\"" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN usuario" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, dejá DN y contraseña vacíos." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Contraseña" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acceso anónimo, dejá DN y contraseña vacíos." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro de inicio de sesión de usuario" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define el filtro a aplicar cuando se ha realizado un login. %%uid remplazará el nombre de usuario en el proceso de inicio de sesión." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar %%uid como plantilla, p. ej.: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Lista de filtros de usuario" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Define el filtro a aplicar, cuando se obtienen usuarios." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sin plantilla, p. ej.: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define el filtro a aplicar cuando se obtienen grupos." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Configuración de Conección" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuración activa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Si no está seleccionada, esta configuración será omitida." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Puerto" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Host para copia de seguridad (réplica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP/AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Puerto para copia de seguridad (réplica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Deshabilitar el Servidor Principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Al comenzar, ownCloud se conectará únicamente al servidor réplica" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "No usar adicionalmente para conexiones LDAPS, las mismas fallarán" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Desactivar la validación por certificado SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "No recomendado, sólo para pruebas." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Tiempo de vida del caché" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "en segundos. Cambiarlo vacía la cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Configuración de Directorio" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Campo de nombre de usuario a mostrar" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "El atributo LDAP a usar para generar el nombre de usuario de ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Árbol base de usuario" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Una DN base de usuario por línea" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributos de la búsqueda de usuario" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; un atributo por linea" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Campo de nombre de grupo a mostrar" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Árbol base de grupo" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Una DN base de grupo por línea" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributos de búsqueda de grupo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asociación Grupo-Miembro" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributos Especiales" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Campo de cuota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Cuota por defecto" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "en bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Campo de e-mail" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regla de nombre de los directorios de usuario" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Probar configuración" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ayuda" diff --git a/l10n/et_EE/user_ldap.po b/l10n/et_EE/user_ldap.po index 778551dc00e..9cc73eb82e4 100644 --- a/l10n/et_EE/user_ldap.po +++ b/l10n/et_EE/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 08:51+0000\n" -"Last-Translator: Rivo Zängov \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Serveri seadistuse kustutamine ebaõnnestus" @@ -54,281 +58,363 @@ msgstr "Säilitada seadistused?" msgid "Cannot add server configuration" msgstr "Ei suuda lisada serveri seadistust" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Ühenduse testimine õnnestus" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Ühenduse testimine ebaõnnestus" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Oled kindel, et tahad kustutada praegust serveri seadistust?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Kinnita kustutamine" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Hoiatus: rakendused user_ldap ja user_webdavauht ei ole ühilduvad. Töös võib esineda ootamatuid tõrkeid.\nPalu oma süsteemihalduril üks neist rakendustest kasutusest eemaldada." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Hoiatus:PHP LDAP moodul pole paigaldatud ning LDAP kasutamine ei ole võimalik. Palu oma süsteeihaldurit see paigaldada." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Serveri seadistus" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Lisa serveri seadistus" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Sa ei saa protokolli ära jätta, välja arvatud siis, kui sa nõuad SSL-ühendust. Sel juhul alusta eesliitega ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Baas DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Üks baas-DN rea kohta" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Kasutaja DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Parool" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Anonüümseks ligipääsuks jäta DN ja parool tühjaks." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Kasutajanime filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "kasuta %%uid kohatäitjat, nt. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Kasutajate nimekirja filter" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Määrab kasutajaid hankides filtri, mida rakendatakse." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ilma ühegi kohatäitjata, nt. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Grupi filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Määrab gruppe hankides filtri, mida rakendatakse." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Ühenduse seaded" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Seadistus aktiivne" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Kui märkimata, siis seadistust ei kasutata" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Varuserver" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Lisa täiendav LDAP/AD server, mida replikeeritakse peaserveriga." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Varuserveri (replika) port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Ära kasuta peaserverit" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Märgituna ownCloud ühendub ainult varuserverisse." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Kasuta TLS-i" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "LDAPS puhul ära kasuta. Ühendus ei toimi." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Mittetõstutundlik LDAP server (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Lülita SSL sertifikaadi kontrollimine välja." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Pole soovitatav, kasuta ainult testimiseks." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Puhvri iga" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "sekundites. Muudatus tühjendab vahemälu." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Kataloogi seaded" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Kasutaja näidatava nime väli" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP omadus, mida kasutatakse kasutaja ownCloudi nime loomiseks." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Baaskasutaja puu" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Üks kasutajate baas-DN rea kohta" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Kasutaja otsingu atribuudid" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Valikuline; üks atribuut rea kohta" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Grupi näidatava nime väli" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP omadus, mida kasutatakse ownCloudi grupi nime loomiseks." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Baasgrupi puu" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Üks grupi baas-DN rea kohta" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Grupi otsingu atribuudid" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Grupiliikme seotus" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Spetsiifilised atribuudid" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Mahupiirangu atribuut" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Vaikimisi mahupiirang" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "baitides" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Email atribuut" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Kasutaja kodukataloogi nimetamise reegel" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Kasutajanime (vaikeväärtus) kasutamiseks jäta tühjaks. Vastasel juhul määra LDAP/AD omadus." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testi seadistust" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Abiinfo" diff --git a/l10n/eu/user_ldap.po b/l10n/eu/user_ldap.po index 396651c963a..95bbdedaee0 100644 --- a/l10n/eu/user_ldap.po +++ b/l10n/eu/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Zerbitzariaren konfigurazioa ezabatzeak huts egin du" @@ -53,281 +57,363 @@ msgstr "Mantendu ezarpenak?" msgid "Cannot add server configuration" msgstr "Ezin da zerbitzariaren konfigurazioa gehitu" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Konexio froga ongi burutu da" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Konexio frogak huts egin du" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Ziur zaude Zerbitzariaren Konfigurazioa ezabatu nahi duzula?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Baieztatu Ezabatzea" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Abisua: user_ldap eta user_webdavauth aplikazioak bateraezinak dira. Portaera berezia izan dezakezu. Mesedez eskatu zure sistema kudeatzaileari bietako bat desgaitzeko." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Zerbitzariaren konfigurazioa" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Gehitu Zerbitzariaren Konfigurazioa" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Hostalaria" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Oinarrizko DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "DN Oinarri bat lerroko" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Erabiltzaile DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Lotura egingo den bezero erabiltzailearen DNa, adb. uid=agent,dc=example,dc=com. Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Pasahitza" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Erabiltzaileen saioa hasteko iragazkia" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Saioa hastean erabiliko den iragazkia zehazten du. %%uid-ek erabiltzaile izena ordezkatzen du saioa hasterakoan." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "erabili %%uid txantiloia, adb. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Erabiltzaile zerrendaren Iragazkia" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Erabiltzaileak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "txantiloirik gabe, adb. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Taldeen iragazkia" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "txantiloirik gabe, adb. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Konexio Ezarpenak" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfigurazio Aktiboa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Markatuta ez dagoenean, konfigurazio hau ez da kontutan hartuko." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Portua" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Babeskopia (Replica) Ostalaria" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Eman babeskopia ostalari gehigarri bat. LDAP/AD zerbitzari nagusiaren replica bat izan behar da." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Babeskopia (Replica) Ataka" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Desgaitu Zerbitzari Nagusia" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Markatuta dagoenean, ownCloud bakarrik replica zerbitzarira konektatuko da." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Erabili TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Ez erabili LDAPS konexioetarako, huts egingo du." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Ezgaitu SSL ziurtagirien egiaztapena." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Ez da aholkatzen, erabili bakarrik frogak egiteko." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Katxearen Bizi-Iraupena" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "segundutan. Aldaketak katxea husten du." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Karpetaren Ezarpenak" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Erabiltzaileen bistaratzeko izena duen eremua" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Oinarrizko Erabiltzaile Zuhaitza" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Erabiltzaile DN Oinarri bat lerroko" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Erabili Bilaketa Atributuak " -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Aukerakoa; atributu bat lerro bakoitzeko" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Taldeen bistaratzeko izena duen eremua" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Oinarrizko Talde Zuhaitza" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Talde DN Oinarri bat lerroko" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Taldekatu Bilaketa Atributuak " -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Talde-Kide elkarketak" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributu Bereziak" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kuota Eremua" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Kuota Lehenetsia" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "bytetan" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Eposta eremua" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Erabiltzailearen Karpeta Nagusia Izendatzeko Patroia" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Egiaztatu Konfigurazioa" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Laguntza" diff --git a/l10n/fa/user_ldap.po b/l10n/fa/user_ldap.po index a5b101124fb..f4363d8fdc4 100644 --- a/l10n/fa/user_ldap.po +++ b/l10n/fa/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "عملیات حذف پیکربندی سرور ناموفق ماند" @@ -53,281 +57,363 @@ msgstr "آیا تنظیمات ذخیره شود ؟" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "تست اتصال با موفقیت انجام گردید" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "تست اتصال ناموفق بود" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "آیا واقعا می خواهید پیکربندی کنونی سرور را حذف کنید؟" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "تایید حذف" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "پیکربندی سرور" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "افزودن پیکربندی سرور" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "میزبانی" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "گذرواژه" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "فیلتر گروه" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "درگاه" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "در بایت" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "راه‌نما" diff --git a/l10n/fi_FI/user_ldap.po b/l10n/fi_FI/user_ldap.po index 8cad6d46a11..e812025830a 100644 --- a/l10n/fi_FI/user_ldap.po +++ b/l10n/fi_FI/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "Säilytetäänkö asetukset?" msgid "Cannot add server configuration" msgstr "Palvelinasetusten lisäys epäonnistui" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Yhteystesti onnistui" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Yhteystesti epäonnistui" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Vahvista poisto" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Isäntä" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Oletus DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset'-välilehdeltä " -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Käyttäjän DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Asiakasohjelman DN, jolla yhdistäminen tehdään, ts. uid=agent,dc=example,dc=com. Mahdollistaaksesi anonyymin yhteyden, jätä DN ja salasana tyhjäksi." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Salasana" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Jos haluat mahdollistaa anonyymin pääsyn, jätä DN ja Salasana tyhjäksi " -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Login suodatus" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Määrittelee käytettävän suodattimen, kun sisäänkirjautumista yritetään. %%uid korvaa sisäänkirjautumisessa käyttäjätunnuksen." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "käytä %%uid paikanvaraajaa, ts. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Käyttäjien suodatus" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Määrittelee käytettävän suodattimen, kun käyttäjiä haetaan. " -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ilman paikanvaraustermiä, ts. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Ryhmien suodatus" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. " -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Yhteysasetukset" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Portti" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Poista pääpalvelin käytöstä" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Käytä TLS:ää" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Kirjainkoosta piittamaton LDAP-palvelin (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Poista käytöstä SSL-varmenteen vahvistus" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Ei suositella, käytä vain testausta varten." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "sekunneissa. Muutos tyhjentää välimuistin." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Hakemistoasetukset" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Käyttäjän näytettävän nimen kenttä" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä " -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Oletuskäyttäjäpuu" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Ryhmän \"näytettävä nimi\"-kenttä" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Ryhmien juuri" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Ryhmän ja jäsenen assosiaatio (yhteys)" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "tavuissa" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Sähköpostikenttä" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ohje" diff --git a/l10n/fr/files.po b/l10n/fr/files.po index 3c1b02c6ad6..f32e533d5ab 100644 --- a/l10n/fr/files.po +++ b/l10n/fr/files.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 13:57+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: Christophe Lherieau \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/fr/user_ldap.po b/l10n/fr/user_ldap.po index 26cf3a1a6d9..7ff7eb99390 100644 --- a/l10n/fr/user_ldap.po +++ b/l10n/fr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Échec de la suppression de la configuration du serveur" @@ -53,281 +57,363 @@ msgstr "Garder ces paramètres ?" msgid "Cannot add server configuration" msgstr "Impossible d'ajouter la configuration du serveur." -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Test de connexion réussi" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Le test de connexion a échoué" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmer la suppression" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Avertissement: Les applications user_ldap et user_webdavauth sont incompatibles. Des disfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Attention : Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuration du serveur" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Ajouter une configuration du serveur" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Hôte" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN Racine" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Un DN racine par ligne" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Vous pouvez spécifier les DN Racines de vos utilisateurs et groupes via l'onglet Avancé" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN Utilisateur (Autorisé à consulter l'annuaire)" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN de l'utilisateur client pour lequel la liaison doit se faire, par exemple uid=agent,dc=example,dc=com. Pour un accès anonyme, laisser le DN et le mot de passe vides." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Mot de passe" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Pour un accès anonyme, laisser le DN Utilisateur et le mot de passe vides." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Modèle d'authentification utilisateurs" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Définit le motif à appliquer, lors d'une tentative de connexion. %%uid est remplacé par le nom d'utilisateur lors de la connexion." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "veuillez utiliser le champ %%uid , ex.: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtre d'utilisateurs" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Définit le filtre à appliquer lors de la récupération des utilisateurs." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sans élément de substitution, par exemple \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtre de groupes" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Définit le filtre à appliquer lors de la récupération des groupes." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sans élément de substitution, par exemple \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Paramètres de connexion" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuration active" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Lorsque non cochée, la configuration sera ignorée." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Serveur de backup (réplique)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Port du serveur de backup (réplique)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Désactiver le serveur principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Utiliser TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "À ne pas utiliser pour les connexions LDAPS (cela échouera)." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Serveur LDAP insensible à la casse (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Désactiver la validation du certificat SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Non recommandé, utilisation pour tests uniquement." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Durée de vie du cache" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "en secondes. Tout changement vide le cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Paramètres du répertoire" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Champ \"nom d'affichage\" de l'utilisateur" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "DN racine de l'arbre utilisateurs" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Un DN racine utilisateur par ligne" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Recherche des attributs utilisateur" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Optionnel, un attribut par ligne" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Champ \"nom d'affichage\" du groupe" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "DN racine de l'arbre groupes" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Un DN racine groupe par ligne" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Recherche des attributs du groupe" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Association groupe-membre" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Attributs spéciaux" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Champ du quota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Quota par défaut" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "en octets" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Champ Email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Convention de nommage du répertoire utilisateur" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Laisser vide " -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Tester la configuration" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Aide" diff --git a/l10n/gl/user_ldap.po b/l10n/gl/user_ldap.po index 37a1e107ae4..ce0a5d57d5f 100644 --- a/l10n/gl/user_ldap.po +++ b/l10n/gl/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Non foi posíbel eliminar a configuración do servidor" @@ -53,281 +57,363 @@ msgstr "Manter os axustes?" msgid "Cannot add server configuration" msgstr "Non é posíbel engadir a configuración do servidor" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "A proba de conexión foi satisfactoria" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "A proba de conexión fracasou" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Confirma que quere eliminar a configuración actual do servidor?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmar a eliminación" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Aviso: Os aplicativos user_ldap e user_webdavauth son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Aviso: O módulo PHP LDAP non está instalado, o servidor non funcionará. Consulte co administrador do sistema para instalalo." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuración do servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Engadir a configuración do servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Servidor" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Un DN base por liña" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN do usuario" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Contrasinal" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Para o acceso anónimo deixe o DN e o contrasinal baleiros." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro de acceso de usuarios" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "usar a marca de posición %%uid, p.ex «uid=%%uid»" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtro da lista de usuarios" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Define o filtro a aplicar cando se recompilan os usuarios." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sen ningunha marca de posición, como p.ex «objectClass=persoa»." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtro de grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define o filtro a aplicar cando se recompilan os grupos." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix»." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Axustes da conexión" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuración activa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Se está sen marcar, omítese esta configuración." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Porto" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Servidor da copia de seguranza (Réplica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Indicar un servidor de copia de seguranza opcional. Debe ser unha réplica do servidor principal LDAP/AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Porto da copia de seguranza (Réplica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Desactivar o servidor principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Cando está activado, ownCloud só se conectará ao servidor de réplica." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Non utilizalo ademais para conexións LDAPS xa que fallará." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Desactiva a validación do certificado SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a conexión só funciona con esta opción importe o certificado SSL do servidor LDAP no seu servidor ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Non se recomenda. Só para probas." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Tempo de persistencia da caché" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "en segundos. Calquera cambio baleira a caché." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Axustes do directorio" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Campo de mostra do nome de usuario" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Base da árbore de usuarios" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Un DN base de usuario por liña" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributos de busca do usuario" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; un atributo por liña" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Campo de mostra do nome de grupo" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Base da árbore de grupo" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Un DN base de grupo por liña" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributos de busca do grupo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asociación de grupos e membros" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributos especiais" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Campo de cota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Cota predeterminada" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "en bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Campo do correo" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regra de nomeado do cartafol do usuario" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixar baleiro para o nome de usuario (predeterminado). Noutro caso, especifique un atributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Probar a configuración" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Axuda" diff --git a/l10n/he/user_ldap.po b/l10n/he/user_ldap.po index dea5250c455..de33f13ec10 100644 --- a/l10n/he/user_ldap.po +++ b/l10n/he/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-03 02:02+0200\n" -"PO-Revision-Date: 2013-05-02 13:50+0000\n" -"Last-Translator: Yaron Shahrabani \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -54,281 +58,363 @@ msgstr "האם לשמור את ההגדרות?" msgid "Cannot add server configuration" msgstr "לא ניתן להוסיף את הגדרות השרת" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "בדיקת החיבור עברה בהצלחה" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "בדיקת החיבור נכשלה" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "האם אכן למחוק את הגדרות השרת הנוכחיות?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "אישור המחיקה" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "הגדרות השרת" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "הוספת הגדרות השרת" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "מארח" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN משתמש" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "סיסמא" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "לגישה אנונימית, השאר את הDM והסיסמא ריקים." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "סנן כניסת משתמש" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "סנן רשימת משתמשים" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "סנן קבוצה" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "פורט" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "בשניות. שינוי מרוקן את המטמון." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "בבתים" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "עזרה" diff --git a/l10n/hi/user_ldap.po b/l10n/hi/user_ldap.po index 68d753a4e27..9b539eea4a9 100644 --- a/l10n/hi/user_ldap.po +++ b/l10n/hi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "पासवर्ड" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "सहयोग" diff --git a/l10n/hr/user_ldap.po b/l10n/hr/user_ldap.po index 7cec467c48a..127083fe20f 100644 --- a/l10n/hr/user_ldap.po +++ b/l10n/hr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: hr\n" "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;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Lozinka" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pomoć" diff --git a/l10n/hu_HU/user_ldap.po b/l10n/hu_HU/user_ldap.po index 55f3c268735..ff151467be3 100644 --- a/l10n/hu_HU/user_ldap.po +++ b/l10n/hu_HU/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: hu_HU\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Nem sikerült törölni a kiszolgáló konfigurációját" @@ -53,281 +57,363 @@ msgstr "Tartsuk meg a beállításokat?" msgid "Cannot add server configuration" msgstr "Az új kiszolgáló konfigurációja nem hozható létre" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "A kapcsolatellenőrzés eredménye: sikerült" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "A kapcsolatellenőrzés eredménye: nem sikerült" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Tényleg törölni szeretné a kiszolgáló beállításait?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "A törlés megerősítése" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Figyelem: a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "A kiszolgálók beállításai" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Új kiszolgáló beállításának hozzáadása" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Kiszolgáló" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "A protokoll előtag elhagyható, kivéve, ha SSL-t kíván használni. Ebben az esetben kezdje így: ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN-gyökér" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Soronként egy DN-gyökér" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "A Haladó fülre kattintva külön DN-gyökér állítható be a felhasználók és a csoportok számára" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "A kapcsolódó felhasználó DN-je" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Annak a felhasználónak a DN-je, akinek a nevében bejelentkezve kapcsolódunk a kiszolgálóhoz, pl. uid=agent,dc=example,dc=com. Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Jelszó" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Szűrő a bejelentkezéshez" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "használja az %%uid változót, pl. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "A felhasználók szűrője" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Ez a szűrő érvényes a felhasználók listázásakor." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "itt ne használjon változót, pl. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "A csoportok szűrője" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Ez a szűrő érvényes a csoportok listázásakor." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "itt ne használjunk változót, pl. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Kapcsolati beállítások" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "A beállítás aktív" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Ha nincs kipipálva, ez a beállítás kihagyódik." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Másodkiszolgáló (replika)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "A másodkiszolgáló (replika) portszáma" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "A fő szerver kihagyása" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Ha ezt bekapcsoljuk, akkor az ownCloud csak a másodszerverekhez kapcsolódik." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Használjunk TLS-t" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Ne ellenőrizzük az SSL-tanúsítvány érvényességét" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nem javasolt, csak tesztelésre érdemes használni." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "A gyorsítótár tárolási időtartama" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "másodpercben. A változtatás törli a cache tartalmát." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Címtár beállítások" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "A felhasználónév mezője" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "A felhasználói fa gyökere" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Soronként egy felhasználói fa gyökerét adhatjuk meg" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "A felhasználók lekérdezett attribútumai" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Nem kötelező megadni, soronként egy attribútum" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "A csoport nevének mezője" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "A csoportfa gyökere" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Soronként egy csoportfa gyökerét adhatjuk meg" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "A csoportok lekérdezett attribútumai" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "A csoporttagság attribútuma" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Különleges attribútumok" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kvóta mező" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Alapértelmezett kvóta" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "bájtban" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Email mező" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "A home könyvtár elérési útvonala" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "A beállítások tesztelése" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Súgó" diff --git a/l10n/ia/user_ldap.po b/l10n/ia/user_ldap.po index f0a118496f4..ba65dd7eac8 100644 --- a/l10n/ia/user_ldap.po +++ b/l10n/ia/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Contrasigno" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Adjuta" diff --git a/l10n/id/user_ldap.po b/l10n/id/user_ldap.po index 4a2648e5ce0..560387e3055 100644 --- a/l10n/id/user_ldap.po +++ b/l10n/id/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Gagal menghapus konfigurasi server" @@ -53,281 +57,363 @@ msgstr "Biarkan pengaturan?" msgid "Cannot add server configuration" msgstr "Gagal menambah konfigurasi server" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Tes koneksi sukses" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Tes koneksi gagal" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Anda ingin menghapus Konfigurasi Server saat ini?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Konfirmasi Penghapusan" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Peringatan:/b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami kejadian yang tidak diharapkan. Silakan minta administrator sistem untuk menonaktifkan salah satunya." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Peringatan: Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Konfigurasi server" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Tambah Konfigurasi Server" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokol dapat tidak ditulis, kecuali anda menggunakan SSL. Lalu jalankan dengan ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Satu Base DN per baris" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "User DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN dari klien pengguna yang dengannya tautan akan diterapkan, mis. uid=agen,dc=contoh,dc=com. Untuk akses anonim, biarkan DN dan kata sandi kosong." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Sandi" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Untuk akses anonim, biarkan DN dan Kata sandi kosong." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "gunakan saringan login" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definisikan filter untuk diterapkan, saat login dilakukan. %%uid menggantikan username saat login." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "gunakan pengganti %%uid, mis. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Daftar Filter Pengguna" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definisikan filter untuk diterapkan saat menerima pengguna." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "tanpa pengganti apapun, mis. \"objectClass=seseorang\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "saringan grup" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definisikan filter untuk diterapkan saat menerima grup." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "tanpa pengganti apapaun, mis. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Pengaturan Koneksi" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfigurasi Aktif" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Jika tidak dicentang, konfigurasi ini dilewati." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Host Cadangan (Replika)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Berikan pilihan host cadangan. Harus merupakan replika dari server LDAP/AD utama." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Port Cadangan (Replika)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Nonaktifkan Server Utama" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Saat diaktifkan, ownCloud hanya akan terhubung ke server replika." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "gunakan TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Jangan gunakan utamanya untuk koneksi LDAPS, koneksi akan gagal." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Server LDAP dengan kapitalisasi tidak sensitif (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "matikan validasi sertivikat SSL" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jika koneksi hanya bekerja dengan opsi ini, impor sertifikat SSL server LDAP dari server ownCloud anda." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "tidak disarankan, gunakan hanya untuk pengujian." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Gunakan Tembolok untuk Time-To-Live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "dalam detik. perubahan mengosongkan cache" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Pengaturan Direktori" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Bidang Tampilan Nama Pengguna" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atribut LDAP yang digunakan untuk menghasilkan nama pengguna ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Pohon Pengguna Dasar" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Satu Pengguna Base DN per baris" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atribut Pencarian Pengguna" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Pilihan; satu atribut per baris" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Bidang Tampilan Nama Grup" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atribut LDAP yang digunakan untuk menghasilkan nama grup ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Pohon Grup Dasar" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Satu Grup Base DN per baris" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atribut Pencarian Grup" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "asosiasi Anggota-Grup" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atribut Khusus" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Bidang Kuota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Kuota Baku" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "dalam bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Bidang Email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Aturan Penamaan Folder Home Pengguna" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Uji Konfigurasi" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Bantuan" diff --git a/l10n/is/user_ldap.po b/l10n/is/user_ldap.po index 707f5e97758..52c13fc9bfc 100644 --- a/l10n/is/user_ldap.po +++ b/l10n/is/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/owncloud/language/is/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Netþjónn" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Lykilorð" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hjálp" diff --git a/l10n/it/settings.po b/l10n/it/settings.po index 5bc636cdbfe..ecfe7df22ae 100644 --- a/l10n/it/settings.po +++ b/l10n/it/settings.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 10:32+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/it/user_ldap.po b/l10n/it/user_ldap.po index 55a4663df93..37733cea550 100644 --- a/l10n/it/user_ldap.po +++ b/l10n/it/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Eliminazione della configurazione del server non riuscita" @@ -53,281 +57,363 @@ msgstr "Vuoi mantenere le impostazioni?" msgid "Cannot add server configuration" msgstr "Impossibile aggiungere la configurazione del server" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Prova di connessione riuscita" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Prova di connessione non riuscita" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Vuoi davvero eliminare la configurazione attuale del server?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Conferma l'eliminazione" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Avviso: le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne uno." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Avviso: il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configurazione del server" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Aggiungi configurazione del server" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Un DN base per riga" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN utente" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Il DN per il client dell'utente con cui deve essere associato, ad esempio uid=agent,dc=example,dc=com. Per l'accesso anonimo, lasciare vuoti i campi DN e Password" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Password" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Per l'accesso anonimo, lasciare vuoti i campi DN e Password" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro per l'accesso utente" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "utilizza il segnaposto %%uid, ad esempio \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtro per l'elenco utenti" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Specifica quale filtro utilizzare durante il recupero degli utenti." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "senza nessun segnaposto, per esempio \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtro per il gruppo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Specifica quale filtro utilizzare durante il recupero dei gruppi." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "senza nessun segnaposto, per esempio \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Impostazioni di connessione" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configurazione attiva" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Se deselezionata, questa configurazione sarà saltata." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Porta" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Host di backup (Replica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Fornisci un host di backup opzionale. Deve essere una replica del server AD/LDAP principale." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Porta di backup (Replica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Disabilita server principale" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Se abilitata, ownCloud si collegherà solo al server di replica." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usa TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Da non utilizzare per le connessioni LDAPS, non funzionerà." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Case insensitve LDAP server (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Disattiva il controllo del certificato SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Non consigliato, utilizzare solo per test." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Tempo di vita della cache" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "in secondi. Il cambio svuota la cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Impostazioni delle cartelle" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Campo per la visualizzazione del nome utente" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "L'attributo LDAP da usare per generare il nome dell'utente ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Struttura base dell'utente" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Un DN base utente per riga" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Attributi di ricerca utente" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opzionale; un attributo per riga" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Campo per la visualizzazione del nome del gruppo" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "L'attributo LDAP da usare per generare il nome del gruppo ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Struttura base del gruppo" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Un DN base gruppo per riga" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Attributi di ricerca gruppo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Associazione gruppo-utente " -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Attributi speciali" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Campo Quota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Quota predefinita" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "in byte" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Campo Email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regola di assegnazione del nome della cartella utente" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lascia vuoto per il nome utente (predefinito). Altrimenti, specifica un attributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Prova configurazione" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Aiuto" diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po index 7e169d97e48..d3bf595a9be 100644 --- a/l10n/ja_JP/user_ldap.po +++ b/l10n/ja_JP/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-08 13:50+0000\n" -"Last-Translator: Daisuke Deguchi \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: ja_JP\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "サーバ設定の削除に失敗しました" @@ -54,281 +58,363 @@ msgstr "設定を保持しますか?" msgid "Cannot add server configuration" msgstr "サーバ設定を追加できません" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "接続テストに成功しました" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "接続テストに失敗しました" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "現在のサーバ設定を本当に削除してもよろしいですか?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "削除の確認" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "警告: user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能姓があります。システム管理者にどちらかを無効にするよう問い合わせてください。" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "警告: PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "サーバ設定" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "サーバ設定を追加" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "ホスト" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "ベースDN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "1行に1つのベースDN" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "拡張タブでユーザとグループのベースDNを指定することができます。" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "ユーザDN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "クライアントユーザーのDNは、特定のものに結びつけることはしません。 例えば uid=agent,dc=example,dc=com. だと匿名アクセスの場合、DNとパスワードは空のままです。" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "パスワード" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "匿名アクセスの場合は、DNとパスワードを空にしてください。" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "ユーザログインフィルタ" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "ログインするときに適用するフィルターを定義する。%%uid がログイン時にユーザー名に置き換えられます。" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid プレースホルダーを利用してください。例 \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "ユーザリストフィルタ" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "ユーザーを取得するときに適用するフィルターを定義する。" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "プレースホルダーを利用しないでください。例 \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "グループフィルタ" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "グループを取得するときに適用するフィルターを定義する。" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "プレースホルダーを利用しないでください。例 \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "接続設定" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "設定はアクティブです" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "チェックを外すと、この設定はスキップされます。" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "ポート" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "バックアップ(レプリカ)ホスト" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "バックアップ(レプリカ)ポート" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "メインサーバを無効にする" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "有効にすると、ownCloudはレプリカサーバにのみ接続します。" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLSを利用" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "大文字/小文字を区別しないLDAPサーバ(Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "SSL証明書の確認を無効にする。" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "推奨しません、テスト目的でのみ利用してください。" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "キャッシュのTTL" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "秒。変更後にキャッシュがクリアされます。" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "ディレクトリ設定" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "ユーザ表示名のフィールド" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "ユーザのownCloud名の生成に利用するLDAP属性。" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "ベースユーザツリー" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "1行に1つのユーザベースDN" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "ユーザ検索属性" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "オプション:1行に1属性" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "グループ表示名のフィールド" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "グループのownCloud名の生成に利用するLDAP属性。" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "ベースグループツリー" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "1行に1つのグループベースDN" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "グループ検索属性" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "グループとメンバーの関連付け" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "特殊属性" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "クォータフィールド" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "クォータのデフォルト" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "バイト" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "メールフィールド" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "ユーザのホームフォルダ命名規則" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "設定をテスト" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "ヘルプ" diff --git a/l10n/ka/user_ldap.po b/l10n/ka/user_ldap.po index a6e12c17b84..597ca225174 100644 --- a/l10n/ka/user_ldap.po +++ b/l10n/ka/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Georgian (http://www.transifex.com/projects/p/owncloud/language/ka/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ka\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "პაროლი" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "შველა" diff --git a/l10n/ka_GE/user_ldap.po b/l10n/ka_GE/user_ldap.po index cdc9f72873f..f083401586c 100644 --- a/l10n/ka_GE/user_ldap.po +++ b/l10n/ka_GE/user_ldap.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 09:04+0000\n" -"Last-Translator: drlinux64 \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Georgian (Georgia) (http://www.transifex.com/projects/p/owncloud/language/ka_GE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ka_GE\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "შეცდომა სერვერის კონფიგურაციის წაშლისას" @@ -53,281 +57,363 @@ msgstr "დავტოვოთ პარამეტრები?" msgid "Cannot add server configuration" msgstr "სერვერის პარამეტრების დამატება ვერ მოხერხდა" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "კავშირის ტესტირება მოხერხდა" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "კავშირის ტესტირება ვერ მოხერხდა" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "ნამდვილად გინდათ წაშალოთ სერვერის მიმდინარე პარამეტრები?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "წაშლის დადასტურება" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "გაფრთხილება: აპლიკაციის user_ldap და user_webdavauth არათავსებადია. თქვენ შეიძლება შეეჩეხოთ მოულოდნელ შშედეგებს. თხოვეთ თქვენს ადმინისტრატორს ჩათიშოს ერთერთი." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "გაფრთხილება: PHP LDAP მოდული არ არის ინსტალირებული, ბექენდი არ იმუშავებს. თხოვეთ თქვენს ადმინისტრატორს დააინსტალიროს ის." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "სერვერის პარამეტრები" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "სერვერის პარამეტრების დამატება" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "ჰოსტი" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "თქვენ შეგიძლიათ გამოტოვოთ პროტოკოლი. გარდა ამისა გჭირდებათ SSL. შემდეგ დაიწყეთ ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "საწყისი DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "ერთი საწყისი DN ერთ ხაზზე" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "თქვენ შეგიძლიათ მიუთითოთ საწყისი DN მომხმარებლებისთვის და ჯგუფებისთვის Advanced ტაბში" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "მომხმარებლის DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "მომხმარებლის DN რომელთანაც უნდა მოხდეს დაკავშირება მოხდება შემდეგნაირად მაგ: uid=agent,dc=example,dc=com. ხოლო ანონიმური დაშვებისთვის, დატოვეთ DN–ის და პაროლის ველები ცარიელი." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "პაროლი" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "ანონიმური დაშვებისთვის, დატოვეთ DN–ის და პაროლის ველები ცარიელი." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "მომხმარებლის ფილტრი" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "როცა შემოსვლა განხორციელდება ასეიძლება მოვახდინოთ გაფილტვრა. %%uid შეიცვლება იუზერნეიმით მომხმარებლის ველში." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "გამოიყენეთ %%uid დამასრულებელი მაგ: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "მომხმარებლებიის სიის ფილტრი" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "გაფილტვრა განხორციელდება, როცა მომხმარებლების სია ჩამოიტვირთება." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "ყოველგვარი დამასრულებელის გარეშე, მაგ: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "ჯგუფის ფილტრი" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "გაფილტვრა განხორციელდება, როცა ჯგუფის სია ჩამოიტვირთება." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "ყოველგვარი დამასრულებელის გარეშე, მაგ: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "კავშირის პარამეტრები" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "კონფიგურაცია აქტიურია" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "როცა გადანიშნულია, ეს კონფიგურაცია გამოტოვებული იქნება." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "პორტი" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "ბექაფ (რეპლიკა) ჰოსტი" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "მიუთითეთ რაიმე ბექაფ ჰოსტი. ის უნდა იყოს ძირითადი LDAP/AD სერვერის რეპლიკა." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "ბექაფ (რეპლიკა) პორტი" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "გამორთეთ ძირითადი სერვერი" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "როცა მონიშნულია, ownCloud დაუკავშირდება მხოლოდ რეპლიკა სერვერს." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "გამოიყენეთ TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "არ გამოიყენოთ დამატებით LDAPS კავშირი. ის წარუმატებლად დასრულდება." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "გამორთეთ SSL სერთიფიკატის ვალიდაცია." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "იმ შემთხვევაში თუ მუშაობს მხოლოდ ეს ოფცია, დააიმპორტეთ LDAP სერვერის SSL სერთიფიკატი თქვენს ownCloud სერვერზე." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "არ არის რეკომენდირებული, გამოიყენეთ მხოლოდ სატესტოდ." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "ქეშის სიცოცხლის ხანგრძლივობა" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "წამებში. ცვლილება ასუფთავებს ქეშს." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "დირექტორიის პარამეტრები" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "მომხმარებლის დისფლეის სახელის ფილდი" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP ატრიბუტი მომხმარებლის ownCloud სახელის გენერაციისთვის." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "ძირითად მომხმარებელთა სია" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "ერთი მომხმარებლის საწყისი DN ერთ ხაზზე" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "მომხმარებლის ძებნის ატრიბუტი" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "ოფციონალური; თითო ატრიბუტი თითო ხაზზე" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "ჯგუფის დისფლეის სახელის ფილდი" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP ატრიბუტი ჯგუფის ownCloud სახელის გენერაციისთვის." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "ძირითად ჯგუფთა სია" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "ერთი ჯგუფის საწყისი DN ერთ ხაზზე" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "ჯგუფური ძებნის ატრიბუტი" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "ჯგუფის წევრობის ასოციაცია" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "სპეციალური ატრიბუტები" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "ქვოტას ველი" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "საწყისი ქვოტა" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "ბაიტებში" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "იმეილის ველი" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "მომხმარებლის Home დირექტორიის სახელების დარქმევის წესი" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "დატოვეთ ცარიელი მომხმარებლის სახელი (default). სხვა დანარჩენში მიუთითეთ LDAP/AD ატრიბუტი." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "კავშირის ტესტირება" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "დახმარება" diff --git a/l10n/kn/user_ldap.po b/l10n/kn/user_ldap.po index 3b3ac191a81..f6390750e15 100644 --- a/l10n/kn/user_ldap.po +++ b/l10n/kn/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kannada (http://www.transifex.com/projects/p/owncloud/language/kn/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: kn\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/ko/user_ldap.po b/l10n/ko/user_ldap.po index e08a48a9b5c..de1ccbfd4a5 100644 --- a/l10n/ko/user_ldap.po +++ b/l10n/ko/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "설정을 유지합니까?" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "연결 시험 성공" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "연결 시험 실패" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "경고: user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여 둘 중 하나만 사용하도록 하십시오." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "경고: PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "호스트" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오." -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "기본 DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "기본 DN을 한 줄에 하나씩 입력하십시오" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다." -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "사용자 DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "암호" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "익명 접근을 허용하려면 DN과 암호를 비워 두십시오." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "사용자 로그인 필터" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "로그인을 시도할 때 적용할 필터입니다. %%uid는 로그인 작업에서의 사용자 이름으로 대체됩니다." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid 자리 비움자를 사용하십시오. 예제: \"uid=%%uid\"\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "사용자 목록 필터" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "사용자를 검색할 때 적용할 필터를 정의합니다." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "그룹 필터" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "그룹을 검색할 때 적용할 필터를 정의합니다." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "연결 설정" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "구성 활성화" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "포트" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "백업 (복제) 포트" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "백업 (복제) 포트" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "주 서버 비활성화" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS 사용" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "서버에서 대소문자를 구분하지 않음 (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "SSL 인증서 유효성 검사를 해제합니다." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "추천하지 않음, 테스트로만 사용하십시오." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "초. 항목 변경 시 캐시가 갱신됩니다." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "디렉토리 설정" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "사용자의 표시 이름 필드" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "기본 사용자 트리" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "사용자 DN을 한 줄에 하나씩 입력하십시오" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "사용자 검색 속성" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "그룹의 표시 이름 필드" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "기본 그룹 트리" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "그룹 기본 DN을 한 줄에 하나씩 입력하십시오" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "그룹 검색 속성" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "그룹-회원 연결" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "바이트" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "도움말" diff --git a/l10n/ku_IQ/user_ldap.po b/l10n/ku_IQ/user_ldap.po index 4830e9d27a5..47af30023bb 100644 --- a/l10n/ku_IQ/user_ldap.po +++ b/l10n/ku_IQ/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/owncloud/language/ku_IQ/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ku_IQ\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "وشەی تێپەربو" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "یارمەتی" diff --git a/l10n/lb/user_ldap.po b/l10n/lb/user_ldap.po index f6e6bd009ab..659bda9a14c 100644 --- a/l10n/lb/user_ldap.po +++ b/l10n/lb/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: lb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passwuert" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hëllef" diff --git a/l10n/lt_LT/user_ldap.po b/l10n/lt_LT/user_ldap.po index 26af0dbe278..8df6aa72795 100644 --- a/l10n/lt_LT/user_ldap.po +++ b/l10n/lt_LT/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: lt_LT\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Slaptažodis" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Grupės filtras" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Prievadas" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Naudoti TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Išjungti SSL sertifikato tikrinimą." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nerekomenduojama, naudokite tik testavimui." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pagalba" diff --git a/l10n/lv/user_ldap.po b/l10n/lv/user_ldap.po index 100f2ca501a..4eb1ccaa67b 100644 --- a/l10n/lv/user_ldap.po +++ b/l10n/lv/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Neizdevās izdzēst servera konfigurāciju" @@ -53,281 +57,363 @@ msgstr "Paturēt iestatījumus?" msgid "Cannot add server configuration" msgstr "Nevar pievienot servera konfigurāciju" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Savienojuma tests ir veiksmīgs" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Savienojuma tests cieta neveiksmi" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Apstiprināt dzēšanu" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Brīdinājums: lietotnes user_ldap un user_webdavauth ir nesavietojamas. Tās var izraisīt negaidītu uzvedību. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Brīdinājums: PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Servera konfigurācija" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Pievienot servera konfigurāciju" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Resursdators" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Bāzes DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Viena bāzes DN rindā" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Lietotāja DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Parole" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Lietotāja ierakstīšanās filtrs" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definē filtru, ko izmantot, kad mēģina ierakstīties. %%uid ierakstīšanās darbībā aizstāj lietotājvārdu." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "lieto %%uid vietturi, piemēram, \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Lietotāju saraksta filtrs" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definē filtru, ko izmantot, kad saņem lietotāju sarakstu." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez jebkādiem vietturiem, piemēram, \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Grupu filtrs" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definē filtru, ko izmantot, kad saņem grupu sarakstu." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez jebkādiem vietturiem, piemēram, \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Savienojuma iestatījumi" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfigurācija ir aktīva" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Ja nav atzīmēts, šī konfigurācija tiks izlaista." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Ports" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Rezerves (kopija) serveris" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Rezerves (kopijas) ports" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Deaktivēt galveno serveri" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Lietot TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Neizmanto papildu LDAPS savienojumus! Tas nestrādās." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Reģistrnejutīgs LDAP serveris (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Izslēgt SSL sertifikātu validēšanu." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nav ieteicams, izmanto tikai testēšanai!" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Kešatmiņas dzīvlaiks" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "sekundēs. Izmaiņas iztukšos kešatmiņu." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Direktorijas iestatījumi" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Lietotāja redzamā vārda lauks" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP atribūts, ko izmantot lietotāja ownCloud vārda veidošanai." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Bāzes lietotāju koks" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Viena lietotāju bāzes DN rindā" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Lietotāju meklēšanas atribūts" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Neobligāti; viens atribūts rindā" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Grupas redzamā nosaukuma lauks" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP atribūts, ko izmantot grupas ownCloud nosaukuma veidošanai." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Bāzes grupu koks" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Viena grupu bāzes DN rindā" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Grupu meklēšanas atribūts" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Grupu piederības asociācija" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Īpašie atribūti" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kvotu lauks" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Kvotas noklusējums" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "baitos" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-pasta lauks" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Lietotāja mājas mapes nosaukšanas kārtula" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testa konfigurācija" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Palīdzība" diff --git a/l10n/mk/user_ldap.po b/l10n/mk/user_ldap.po index 92d9c35763e..e41cfb4117c 100644 --- a/l10n/mk/user_ldap.po +++ b/l10n/mk/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: mk\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Домаќин" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Лозинка" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Помош" diff --git a/l10n/ms_MY/user_ldap.po b/l10n/ms_MY/user_ldap.po index f8d3c3c7fb1..530eb8780c5 100644 --- a/l10n/ms_MY/user_ldap.po +++ b/l10n/ms_MY/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ms_MY\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Kata laluan" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Bantuan" diff --git a/l10n/my_MM/user_ldap.po b/l10n/my_MM/user_ldap.po index 67429168c14..edf738755a0 100644 --- a/l10n/my_MM/user_ldap.po +++ b/l10n/my_MM/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Burmese (Myanmar) (http://www.transifex.com/projects/p/owncloud/language/my_MM/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: my_MM\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "စကားဝှက်" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "အကူအညီ" diff --git a/l10n/nb_NO/user_ldap.po b/l10n/nb_NO/user_ldap.po index 643c1a84bfa..90dc3040a4c 100644 --- a/l10n/nb_NO/user_ldap.po +++ b/l10n/nb_NO/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Klarte ikke å slette tjener-konfigurasjonen." @@ -53,281 +57,363 @@ msgstr "Behold innstillinger?" msgid "Cannot add server configuration" msgstr "Kan ikke legge til tjener-konfigurasjon" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Tilkoblingstest lyktes" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Tilkoblingstest mislyktes" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Er du sikker på at du vil slette aktiv tjener-konfigurasjon?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Bekreft sletting" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Advarsel:Apps user_ldap og user_webdavauth er ikke kompatible. Du kan oppleve uventet atferd fra systemet. Vennligst spør din system-administrator om å deaktivere en av dem." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Warning: PHP LDAP modulen er ikke installert, hjelperen vil ikke virke. Vennligst be din system-administrator om å installere den." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Tjener-konfigurasjon" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Legg til tjener-konfigurasjon" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Tjener" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du kan utelate protokollen, men du er påkrevd å bruke SSL. Deretter starte med ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "En hoved DN pr. linje" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kan spesifisere Base DN for brukere og grupper under Avansert fanen" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Bruker DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN nummeret til klienten som skal bindes til, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "For anonym tilgang, la DN- og passord-feltet stå tomt." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Brukerpålogging filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definerer filteret som skal brukes når et påloggingsforsøk blir utført. %%uid erstatter brukernavnet i innloggingshandlingen." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "bruk %%uid plassholder, f.eks. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Brukerliste filter" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definerer filteret som skal brukes, når systemet innhenter brukere." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "uten noe plassholder, f.eks. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Gruppefilter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definerer filteret som skal brukes, når systemet innhenter grupper." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "uten noe plassholder, f.eks. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfigurasjon aktiv" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Når ikke huket av så vil denne konfigurasjonen bli hoppet over." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Sikkerhetskopierings (Replica) vert" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Bruk TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Case-insensitiv LDAP tjener (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Slå av SSL-sertifikat validering" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Hvis tilgang kun fungerer med dette alternativet, importer LDAP-tjenerens SSL-sertifikat til din egen ownCloud tjener." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Ikke anbefalt, bruk kun for testing" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "i sekunder. En endring tømmer bufferen." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Vis brukerens navnfelt" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP-attributen å bruke for å generere brukers ownCloud navn." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Hovedbruker tre" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "En Bruker Base DN pr. linje" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Vis gruppens navnfelt" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP-attributen å bruke for å generere gruppens ownCloud navn." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Hovedgruppe tre" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "En gruppe hoved-DN pr. linje" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "gruppe-medlem assosiasjon" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "i bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hjelp" diff --git a/l10n/ne/user_ldap.po b/l10n/ne/user_ldap.po index 871723423d8..8bc9905662c 100644 --- a/l10n/ne/user_ldap.po +++ b/l10n/ne/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Nepali (http://www.transifex.com/projects/p/owncloud/language/ne/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ne\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/nl/files.po b/l10n/nl/files.po index 4f6f89f81f9..d50df3b23fd 100644 --- a/l10n/nl/files.po +++ b/l10n/nl/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 19:21+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: André Koot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/nl/user_ldap.po b/l10n/nl/user_ldap.po index e7ea1823141..3015b805fda 100644 --- a/l10n/nl/user_ldap.po +++ b/l10n/nl/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Verwijderen serverconfiguratie mislukt" @@ -53,281 +57,363 @@ msgstr "Instellingen bewaren?" msgid "Cannot add server configuration" msgstr "Kon de serverconfiguratie niet toevoegen" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Verbindingstest geslaagd" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Verbindingstest mislukt" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Bevestig verwijderen" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Waarschuwing: De Apps user_ldap en user_webdavauth zijn incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Waarschuwing: De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Serverconfiguratie" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Toevoegen serverconfiguratie" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Een Base DN per regel" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd." -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "User DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "De DN van de client gebruiker waarmee de verbinding zal worden gemaakt, bijv. uid=agent,dc=example,dc=com. Voor anonieme toegang laat je het DN en het wachtwoord leeg." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Wachtwoord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Voor anonieme toegang, laat de DN en het wachtwoord leeg." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Gebruikers Login Filter" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definiëerd de toe te passen filter indien er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam in de login actie." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "gebruik %%uid placeholder, bijv. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Gebruikers Lijst Filter" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiëerd de toe te passen filter voor het ophalen van gebruikers." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "zonder een placeholder, bijv. \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Groep Filter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiëerd de toe te passen filter voor het ophalen van groepen." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "zonder een placeholder, bijv. \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Verbindingsinstellingen" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuratie actief" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Als dit niet is ingeschakeld wordt deze configuratie overgeslagen." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Poort" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Backup (Replica) Host" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Opgeven optionele backup host. Het moet een replica van de hoofd LDAP/AD server." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Backup (Replica) Poort" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Deactiveren hoofdserver" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Gebruik TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Gebruik het niet voor LDAPS verbindingen, dat gaat niet lukken." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Niet-hoofdlettergevoelige LDAP server (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Schakel SSL certificaat validatie uit." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Niet aangeraden, gebruik alleen voor test doeleinden." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache time-to-live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "in seconden. Een verandering maakt de cache leeg." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Mapinstellingen" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Gebruikers Schermnaam Veld" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Basis Gebruikers Structuur" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Een User Base DN per regel" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Attributen voor gebruikerszoekopdrachten" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Optioneel; één attribuut per regel" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Groep Schermnaam Veld" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Basis Groupen Structuur" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Een Group Base DN per regel" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Attributen voor groepszoekopdrachten" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Groepslid associatie" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Speciale attributen" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Quota veld" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Quota standaard" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "in bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-mailveld" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Gebruikers Home map naamgevingsregel" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Test configuratie" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Help" diff --git a/l10n/nn_NO/core.po b/l10n/nn_NO/core.po index 6ffc7836248..e4d45cd6826 100644 --- a/l10n/nn_NO/core.po +++ b/l10n/nn_NO/core.po @@ -4,12 +4,13 @@ # # Translators: # unhammer , 2013 +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-07 18:40+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-16 09:30+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -70,7 +71,7 @@ msgstr "Ingen %s-ID." #: ajax/vcategories/addToFavorites.php:35 #, php-format msgid "Error adding %s to favorites." -msgstr "Klarte ikkje å leggja til %s i favorittar." +msgstr "Klarte ikkje leggja til %s i favorittar." #: ajax/vcategories/delete.php:35 js/oc-vcategories.js:136 msgid "No categories selected for deletion." @@ -79,7 +80,7 @@ msgstr "Ingen kategoriar valt for sletting." #: ajax/vcategories/removeFromFavorites.php:35 #, php-format msgid "Error removing %s from favorites." -msgstr "Klarte ikkje å fjerna %s frå favorittar." +msgstr "Klarte ikkje fjerna %s frå favorittar." #: js/config.php:34 msgid "Sunday" @@ -199,11 +200,11 @@ msgstr "førre månad" #: js/js.js:727 msgid "{months} months ago" -msgstr "{months) månader sidan" +msgstr "{months} månadar sidan" #: js/js.js:728 msgid "months ago" -msgstr "månader sidan" +msgstr "månadar sidan" #: js/js.js:729 msgid "last year" @@ -248,7 +249,7 @@ msgstr "Feil" #: js/oc-vcategories.js:179 msgid "The app name is not specified." -msgstr "App-namnet er ikkje spesifisert." +msgstr "Programnamnet er ikkje spesifisert." #: js/oc-vcategories.js:194 msgid "The required file {file} is not installed!" @@ -308,11 +309,11 @@ msgstr "Send" #: js/share.js:178 msgid "Set expiration date" -msgstr "Set utlaupsdato" +msgstr "Set utløpsdato" #: js/share.js:179 msgid "Expiration date" -msgstr "Utlaupsdato" +msgstr "Utløpsdato" #: js/share.js:211 msgid "Share via email:" @@ -364,11 +365,11 @@ msgstr "Passordverna" #: js/share.js:577 msgid "Error unsetting expiration date" -msgstr "Klarte ikkje å fjerna utlaupsdato" +msgstr "Klarte ikkje fjerna utløpsdato" #: js/share.js:589 msgid "Error setting expiration date" -msgstr "Klarte ikkje å setja utlaupsdato" +msgstr "Klarte ikkje setja utløpsdato" #: js/share.js:604 msgid "Sending ..." @@ -447,7 +448,7 @@ msgstr "Brukarar" #: strings.php:7 msgid "Apps" -msgstr "Applikasjonar" +msgstr "Program" #: strings.php:8 msgid "Admin" @@ -525,13 +526,13 @@ msgstr "Datamappe" #: templates/installation.php:74 msgid "Configure the database" -msgstr "Konfigurer databasen" +msgstr "Set opp databasen" #: templates/installation.php:79 templates/installation.php:91 #: templates/installation.php:102 templates/installation.php:113 #: templates/installation.php:125 msgid "will be used" -msgstr "vil bli nytta" +msgstr "vil verta nytta" #: templates/installation.php:137 msgid "Database user" diff --git a/l10n/nn_NO/files.po b/l10n/nn_NO/files.po index e817942480c..c5a3a400a62 100644 --- a/l10n/nn_NO/files.po +++ b/l10n/nn_NO/files.po @@ -4,13 +4,14 @@ # # Translators: # unhammer , 2013 +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-15 01:59+0200\n" -"PO-Revision-Date: 2013-05-15 00:00+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 09:40+0000\n" +"Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,12 +22,12 @@ msgstr "" #: ajax/move.php:17 #, php-format msgid "Could not move %s - File with this name already exists" -msgstr "Klarte ikkje å flytta %s – det finst allereie ei fil med dette namnet" +msgstr "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet" #: ajax/move.php:27 ajax/move.php:30 #, php-format msgid "Could not move %s" -msgstr "Klarte ikkje å flytta %s" +msgstr "Klarte ikkje flytta %s" #: ajax/upload.php:19 msgid "No file was uploaded. Unknown error" @@ -61,7 +62,7 @@ msgstr "Manglar ei mellombels mappe" #: ajax/upload.php:33 msgid "Failed to write to disk" -msgstr "Klarte ikkje å skriva til disk" +msgstr "Klarte ikkje skriva til disk" #: ajax/upload.php:51 msgid "Not enough storage available" @@ -161,7 +162,7 @@ msgstr "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store." #: js/files.js:264 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Klarte ikkje å lasta opp fila sidan ho er ei mappe eller er på 0 byte" +msgstr "Klarte ikkje lasta opp fila sidan ho er ei mappe eller er på 0 byte" #: js/files.js:277 msgid "Not enough space available" @@ -174,11 +175,11 @@ msgstr "Opplasting avbroten." #: js/files.js:413 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "Fila lastar no opp. Viss du forlèt sida no vil opplastinga bli avbroten." +msgstr "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten." #: js/files.js:486 msgid "URL cannot be empty." -msgstr "URL-en kan ikkje vera tom." +msgstr "Nettadressa kan ikkje vera tom." #: js/files.js:491 msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud" @@ -222,7 +223,7 @@ msgstr "" #: lib/app.php:73 msgid "Unable to rename file" -msgstr "Klarte ikkje å endra filnamnet" +msgstr "Klarte ikkje endra filnamnet" #: lib/helper.php:11 templates/index.php:18 msgid "Upload" @@ -242,11 +243,11 @@ msgstr "maks. moglege:" #: templates/admin.php:15 msgid "Needed for multi-file and folder downloads." -msgstr "Naudsynt for fleirfils- og mappenedlastingar." +msgstr "Nødvendig for fleirfils- og mappenedlastingar." #: templates/admin.php:17 msgid "Enable ZIP-download" -msgstr "Skru på ZIP-nedlasting" +msgstr "Slå på ZIP-nedlasting" #: templates/admin.php:20 msgid "0 is unlimited" @@ -308,7 +309,7 @@ msgstr "For stor opplasting" msgid "" "The files you are trying to upload exceed the maximum size for file uploads " "on this server." -msgstr "Filene du prøver å laste opp er større enn maksgrensa til denne tenaren." +msgstr "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren." #: templates/index.php:114 msgid "Files are being scanned, please wait." diff --git a/l10n/nn_NO/lib.po b/l10n/nn_NO/lib.po index 9521606544a..0fced10d321 100644 --- a/l10n/nn_NO/lib.po +++ b/l10n/nn_NO/lib.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 17:40+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-16 09:30+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -35,25 +36,25 @@ msgstr "Brukarar" #: app.php:398 msgid "Apps" -msgstr "Applikasjonar" +msgstr "Program" #: app.php:406 msgid "Admin" msgstr "Administrer" -#: files.php:209 +#: files.php:207 msgid "ZIP download is turned off." msgstr "" -#: files.php:210 +#: files.php:208 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:211 files.php:244 +#: files.php:209 files.php:242 msgid "Back to Files" msgstr "" -#: files.php:241 +#: files.php:239 msgid "Selected files too large to generate zip file." msgstr "" @@ -172,13 +173,13 @@ msgstr "" msgid "MS SQL username and/or password not valid: %s" msgstr "" -#: setup.php:858 +#: setup.php:859 msgid "" "Your web server is not yet properly setup to allow files synchronization " "because the WebDAV interface seems to be broken." msgstr "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt." -#: setup.php:859 +#: setup.php:860 #, php-format msgid "Please double check the installation guides." msgstr "Ver vennleg og dobbeltsjekk installasjonsrettleiinga." diff --git a/l10n/nn_NO/settings.po b/l10n/nn_NO/settings.po index ac35cb7aedc..8392d63c381 100644 --- a/l10n/nn_NO/settings.po +++ b/l10n/nn_NO/settings.po @@ -4,12 +4,13 @@ # # Translators: # unhammer , 2013 +# unhammer , 2013 msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-30 01:57+0200\n" -"PO-Revision-Date: 2013-04-29 17:40+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-16 09:40+0000\n" "Last-Translator: unhammer \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -29,11 +30,11 @@ msgstr "Autentiseringsfeil" #: ajax/changedisplayname.php:31 msgid "Your display name has been changed." -msgstr "Visningsnamnet ditt er endra." +msgstr "Visingsnamnet ditt er endra." #: ajax/changedisplayname.php:34 msgid "Unable to change display name" -msgstr "Klarte ikkje å endra visningsnamnet" +msgstr "Klarte ikkje endra visingsnamnet" #: ajax/creategroup.php:10 msgid "Group already exists" @@ -41,11 +42,11 @@ msgstr "Gruppa finst allereie" #: ajax/creategroup.php:19 msgid "Unable to add group" -msgstr "Klarte ikkje å leggja til gruppa" +msgstr "Klarte ikkje leggja til gruppa" #: ajax/enableapp.php:11 msgid "Could not enable app. " -msgstr "Klarte ikkje å aktivera app-en." +msgstr "Klarte ikkje slå på programmet." #: ajax/lostpassword.php:12 msgid "Email saved" @@ -61,7 +62,7 @@ msgstr "Klarte ikkje å sletta gruppa" #: ajax/removeuser.php:24 msgid "Unable to delete user" -msgstr "Klarte ikkje å sletta brukaren" +msgstr "Klarte ikkje sletta brukaren" #: ajax/setlanguage.php:15 msgid "Language changed" @@ -78,16 +79,16 @@ msgstr "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa" #: ajax/togglegroups.php:30 #, php-format msgid "Unable to add user to group %s" -msgstr "Klarte ikkje å leggja til brukaren til gruppa %s" +msgstr "Klarte ikkje leggja til brukaren til gruppa %s" #: ajax/togglegroups.php:36 #, php-format msgid "Unable to remove user from group %s" -msgstr "Klarte ikkje å fjerna brukaren frå gruppa %s" +msgstr "Klarte ikkje fjerna brukaren frå gruppa %s" #: ajax/updateapp.php:14 msgid "Couldn't update app." -msgstr "Klarte ikkje å oppdatera app-en." +msgstr "Klarte ikkje oppdatera programmet." #: js/apps.js:30 msgid "Update to {appversion}" @@ -125,44 +126,44 @@ msgstr "Oppdatert" msgid "Saving..." msgstr "Lagrar …" -#: js/users.js:43 +#: js/users.js:47 msgid "deleted" msgstr "sletta" -#: js/users.js:43 +#: js/users.js:47 msgid "undo" msgstr "angra" -#: js/users.js:75 +#: js/users.js:79 msgid "Unable to remove user" -msgstr "Klarte ikkje å fjerna brukaren" +msgstr "Klarte ikkje fjerna brukaren" -#: js/users.js:88 templates/users.php:26 templates/users.php:78 +#: js/users.js:92 templates/users.php:26 templates/users.php:78 #: templates/users.php:103 msgid "Groups" msgstr "Grupper" -#: js/users.js:91 templates/users.php:80 templates/users.php:115 +#: js/users.js:95 templates/users.php:80 templates/users.php:115 msgid "Group Admin" msgstr "Gruppestyrar" -#: js/users.js:111 templates/users.php:155 +#: js/users.js:115 templates/users.php:155 msgid "Delete" msgstr "Slett" -#: js/users.js:262 +#: js/users.js:269 msgid "add group" msgstr "legg til gruppe" -#: js/users.js:414 +#: js/users.js:420 msgid "A valid username must be provided" msgstr "Du må oppgje eit gyldig brukarnamn" -#: js/users.js:415 js/users.js:421 js/users.js:436 +#: js/users.js:421 js/users.js:427 js/users.js:442 msgid "Error creating user" msgstr "Feil ved oppretting av brukar" -#: js/users.js:420 +#: js/users.js:426 msgid "A valid password must be provided" msgstr "Du må oppgje eit gyldig passord" @@ -206,7 +207,7 @@ msgstr "Modulen «fileinfo» manglar" msgid "" "The PHP module 'fileinfo' is missing. We strongly recommend to enable this " "module to get best results with mime-type detection." -msgstr "PHP-modulen «fileinfo» manglar. Me rår sterkt til å skru på denne modulen for å best mogleg oppdaga MIME-typar." +msgstr "PHP-modulen «fileinfo» manglar. Me rår sterkt til å slå på denne modulen for å best mogleg oppdaga MIME-typar." #: templates/admin.php:58 msgid "Locale not working" @@ -218,7 +219,7 @@ msgid "" "This ownCloud server can't set system locale to %s. 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 %s." -msgstr "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som krevst for å støtta %s." +msgstr "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som trengst for å støtta %s." #: templates/admin.php:75 msgid "Internet connection not working" @@ -232,7 +233,7 @@ msgid "" "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" " of ownCloud." -msgstr "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud." +msgstr "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsprogram ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du slå på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud." #: templates/admin.php:92 msgid "Cron" @@ -260,7 +261,7 @@ msgstr "Deling" #: templates/admin.php:134 msgid "Enable Share API" -msgstr "Skru på API-et for deling" +msgstr "Slå på API-et for deling" #: templates/admin.php:135 msgid "Allow apps to use the Share API" @@ -307,7 +308,7 @@ msgstr "Krev at klientar koplar til ownCloud med ei kryptert tilkopling." msgid "" "Please connect to this ownCloud instance via HTTPS to enable or disable the " "SSL enforcement." -msgstr "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å skru av/på SSL-handhevinga." +msgstr "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å slå av/på SSL-handhevinga." #: templates/admin.php:195 msgid "Log" @@ -349,11 +350,11 @@ msgstr "Fleire app-ar" #: templates/apps.php:28 msgid "Select an App" -msgstr "Vel ein applikasjon" +msgstr "Vel eit program" #: templates/apps.php:34 msgid "See application page at apps.owncloud.com" -msgstr "Sjå applikasjonssida på apps.owncloud.com" +msgstr "Sjå programsida på apps.owncloud.com" #: templates/apps.php:36 msgid "-licensed by " @@ -410,7 +411,7 @@ msgstr "Passordet ditt er endra" #: templates/personal.php:39 msgid "Unable to change your password" -msgstr "Klarte ikkje å endra passordet" +msgstr "Klarte ikkje endra passordet" #: templates/personal.php:40 msgid "Current password" @@ -426,7 +427,7 @@ msgstr "Endra passord" #: templates/personal.php:56 templates/users.php:76 msgid "Display Name" -msgstr "Visningsnamn" +msgstr "Visingsnamn" #: templates/personal.php:68 msgid "Email" @@ -438,7 +439,7 @@ msgstr "Di epost-adresse" #: templates/personal.php:71 msgid "Fill in an email address to enable password recovery" -msgstr "Fyll inn e-postadressa di for å aktivera passordgjenoppretting" +msgstr "Fyll inn e-postadressa di for å gjera passordgjenoppretting mogleg" #: templates/personal.php:77 templates/personal.php:78 msgid "Language" @@ -482,7 +483,7 @@ msgstr "Lagring" #: templates/users.php:93 msgid "change display name" -msgstr "endra visningsnamn" +msgstr "endra visingsnamn" #: templates/users.php:97 msgid "set new password" diff --git a/l10n/nn_NO/user_ldap.po b/l10n/nn_NO/user_ldap.po index 8e326e3829f..97d542ba330 100644 --- a/l10n/nn_NO/user_ldap.po +++ b/l10n/nn_NO/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-01 01:59+0200\n" -"PO-Revision-Date: 2013-04-30 07:40+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Passord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hjelp" diff --git a/l10n/oc/user_ldap.po b/l10n/oc/user_ldap.po index 4da5e8266b1..c863a67f1f9 100644 --- a/l10n/oc/user_ldap.po +++ b/l10n/oc/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Senhal" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ajuda" diff --git a/l10n/pl/user_ldap.po b/l10n/pl/user_ldap.po index c1425a6570e..8966061fb97 100644 --- a/l10n/pl/user_ldap.po +++ b/l10n/pl/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Nie można usunąć konfiguracji serwera" @@ -53,281 +57,363 @@ msgstr "Zachować ustawienia?" msgid "Cannot add server configuration" msgstr "Nie można dodać konfiguracji serwera" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Test połączenia udany" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Test połączenia nie udany" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Czy chcesz usunąć bieżącą konfigurację serwera?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Potwierdź usunięcie" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Ostrzeżenie: Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Ostrzeżenie: Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Konfiguracja servera" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Dodaj konfigurację servera" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Host" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Baza DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Jedna baza DN na linię" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Użytkownik DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN użytkownika klienta, z którym powiązanie wykonuje się, np. uid=agent,dc=example,dc=com. Dla dostępu anonimowego pozostawić DN i hasło puste" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Hasło" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Dla dostępu anonimowego pozostawić DN i hasło puste." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtr logowania użytkownika" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definiuje filtr do zastosowania, gdy podejmowana jest próba logowania. %%uid zastępuje nazwę użytkownika w działaniu logowania." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Użyj %%uid zastępczy, np. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Lista filtrów użytkownika" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definiuje filtry do zastosowania, podczas pobierania użytkowników." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Grupa filtrów" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definiuje filtry do zastosowania, podczas pobierania grup." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Konfiguracja połączeń" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfiguracja archiwum" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Gdy niezaznaczone, ta konfiguracja zostanie pominięta." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Kopia zapasowa (repliki) host" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Dać opcjonalnie hosta kopii zapasowej . To musi być repliką głównego serwera LDAP/AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Kopia zapasowa (repliki) Port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Wyłącz serwer główny" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Po włączeniu, ownCloud tylko połączy się z serwerem repliki." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Użyj TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Nie używaj go dodatkowo dla połączeń protokołu LDAPS, zakończy się niepowodzeniem." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Wielkość liter serwera LDAP (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Wyłączyć sprawdzanie poprawności certyfikatu SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Niezalecane, użyj tylko testowo." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Przechowuj czas życia" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "w sekundach. Zmiana opróżnia pamięć podręczną." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Ustawienia katalogów" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Pole wyświetlanej nazwy użytkownika" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Drzewo bazy użytkowników" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Jeden użytkownik Bazy DN na linię" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Szukaj atrybutów" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcjonalnie; jeden atrybut w wierszu" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Pole wyświetlanej nazwy grupy" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atrybut LDAP służy do generowania nazwy grup ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Drzewo bazy grup" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Jedna grupa bazy DN na linię" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Grupa atrybutów wyszukaj" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Członek grupy stowarzyszenia" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Specjalne atrybuty" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Pole przydziału" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Przydział domyślny" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "w bajtach" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Pole email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Reguły nazewnictwa folderu domowego użytkownika" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Konfiguracja testowa" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pomoc" diff --git a/l10n/pt_BR/files.po b/l10n/pt_BR/files.po index 8696f9e914a..158e6f02865 100644 --- a/l10n/pt_BR/files.po +++ b/l10n/pt_BR/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 11:21+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: Flávio Veras \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/pt_BR/user_ldap.po b/l10n/pt_BR/user_ldap.po index 04273762bd8..e841f4f0a02 100644 --- a/l10n/pt_BR/user_ldap.po +++ b/l10n/pt_BR/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Falha ao deletar a configuração do servidor" @@ -53,281 +57,363 @@ msgstr "Manter ajustes?" msgid "Cannot add server configuration" msgstr "Impossível adicionar a configuração do servidor" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Teste de conexão bem sucedida" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Teste de conexão falhou" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Você quer realmente deletar as atuais Configurações de Servidor?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmar Exclusão" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Aviso: Os aplicativos user_ldap e user_webdavauth são incompatíveis. Você deverá experienciar comportamento inesperado. Por favor, peça ao seu administrador do sistema para desabilitar um deles." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Aviso: O módulo PHP LDAP não está instalado, o backend não funcionará. Por favor, peça ao seu administrador do sistema para instalá-lo." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configuração de servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Adicionar Configuração de Servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Servidor" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN Base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Uma base DN por linha" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Você pode especificar DN Base para usuários e grupos na guia Avançada" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN Usuário" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Senha" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acesso anônimo, deixe DN e Senha vazios." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro de Login de Usuário" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro pra aplicar ao efetuar uma tentativa de login. %%uuid substitui o nome de usuário na ação de login." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "use %%uid placeholder, ex. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtro de Lista de Usuário" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Define filtro a ser aplicado ao obter usuários." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtro de Grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Define o filtro a aplicar ao obter grupos." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Configurações de Conexão" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuração ativa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Quando não marcada, esta configuração será ignorada." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Porta" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Servidor de Backup (Réplica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Defina um servidor de backup opcional. Ele deverá ser uma réplica do servidor LDAP/AD principal." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Porta do Backup (Réplica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Desativar Servidor Principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Quando ativado, ownCloud somente se conectará ao servidor de réplica." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Não use adicionalmente para conexões LDAPS, pois falhará." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP sensível à caixa alta (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Desligar validação de certificado SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Não recomendado, use somente para testes." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache Time-To-Live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "em segundos. Uma mudança esvaziará o cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Configurações de Diretório" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Campo Nome de Exibição de Usuário" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "O atributo LDAP para usar para gerar nome ownCloud do usuário." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Árvore de Usuário Base" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Um usuário-base DN por linha" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atributos de Busca de Usuário" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; um atributo por linha" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Campo Nome de Exibição de Grupo" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "O atributo LDAP para usar para gerar nome ownCloud do grupo." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Árvore de Grupo Base" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Um grupo-base DN por linha" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributos de Busca de Grupo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Associação Grupo-Membro" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributos Especiais" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Campo de Cota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Cota Padrão" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "em bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Campo de Email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regra para Nome da Pasta Pessoal do Usuário" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Teste de Configuração" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ajuda" diff --git a/l10n/pt_PT/user_ldap.po b/l10n/pt_PT/user_ldap.po index d5ad8a47f57..c5446329815 100644 --- a/l10n/pt_PT/user_ldap.po +++ b/l10n/pt_PT/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Erro ao eliminar as configurações do servidor" @@ -53,281 +57,363 @@ msgstr "Manter as definições?" msgid "Cannot add server configuration" msgstr "Não foi possível adicionar as configurações do servidor." -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Teste de conecção passado com sucesso." -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Erro no teste de conecção." -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Deseja realmente apagar as configurações de servidor actuais?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Confirmar a operação de apagar" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Aviso: A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Aviso: O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Configurações do servidor" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Adicionar configurações do servidor" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Anfitrião" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN base" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Uma base DN por linho" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Pode especificar o ND Base para utilizadores e grupos no separador Avançado" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN do utilizador" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "O DN to cliente " -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Password" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Para acesso anónimo, deixe DN e a Palavra-passe vazios." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtro de login de utilizador" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Define o filtro a aplicar, para aquando de uma tentativa de login. %%uid substitui o nome de utilizador utilizado." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Use a variável %%uid , exemplo: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Utilizar filtro" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Defina o filtro a aplicar, ao recuperar utilizadores." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Sem variável. Exemplo: \"objectClass=pessoa\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filtrar por grupo" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Defina o filtro a aplicar, ao recuperar grupos." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Definições de ligação" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Configuração activa" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Se não estiver marcada, esta definição não será tida em conta." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Porto" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Servidor de Backup (Réplica)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Forneça um servidor (anfitrião) de backup. Deve ser uma réplica do servidor principal de LDAP/AD " -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Porta do servidor de backup (Replica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Desactivar servidor principal" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Usar TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Não utilize para adicionar ligações LDAP, irá falhar!" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Servidor LDAP (Windows) não sensível a maiúsculas." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Desligar a validação de certificado SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Não recomendado, utilizado apenas para testes!" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache do tempo de vida dos objetos no servidor" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "em segundos. Uma alteração esvazia a cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Definições de directorias" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Mostrador do nome de utilizador." -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atributo LDAP para gerar o nome de utilizador do ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Base da árvore de utilizadores." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Uma base de utilizador DN por linha" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Utilizar atributos de pesquisa" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Opcional; Um atributo por linha" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Mostrador do nome do grupo." -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atributo LDAP para gerar o nome do grupo do ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Base da árvore de grupos." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Uma base de grupo DN por linha" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributos de pesquisa de grupo" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Associar utilizador ao grupo." -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Atributos especiais" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Quota" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Quota padrão" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "em bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Campo de email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Regra da pasta inicial do utilizador" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testar a configuração" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ajuda" diff --git a/l10n/ro/user_ldap.po b/l10n/ro/user_ldap.po index 9dab61a2a4b..2f84b022865 100644 --- a/l10n/ro/user_ldap.po +++ b/l10n/ro/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Atentie: Apps user_ldap si user_webdavauth sunt incompatibile. Este posibil sa experimentati un comportament neasteptat. Vă rugăm să întrebați administratorul de sistem pentru a dezactiva una dintre ele." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Atenție Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Gazdă" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Puteți omite protocolul, decât dacă folosiți SSL. Atunci se începe cu ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN de bază" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Un Base DN pe linie" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Puteți să specificați DN de bază pentru utilizatori și grupuri în fila Avansat" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN al utilizatorului" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN-ul clientului utilizator cu care se va efectua conectarea, d.e. uid=agent,dc=example,dc=com. Pentru acces anonim, lăsăți DN și Parolă libere." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Parolă" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Pentru acces anonim, lăsați DN și Parolă libere." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filtrare după Nume Utilizator" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definește fitrele care trebuie aplicate, când se încearcă conectarea. %%uid înlocuiește numele utilizatorului în procesul de conectare." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "folosiți substituentul %%uid , d.e. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filtrarea după lista utilizatorilor" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definește filtrele care trebui aplicate, când se peiau utilzatorii." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "fără substituenți, d.e. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Fitrare Grup" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definește filtrele care se aplică, când se preiau grupurile." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "fără substituenți, d.e. \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Portul" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Utilizează TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Server LDAP insensibil la majuscule (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Oprește validarea certificatelor SSL " -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nu este recomandat, a se utiliza doar pentru testare." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "în secunde. O schimbare curăță memoria tampon." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Câmpul cu numele vizibil al utilizatorului" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atributul LDAP folosit pentru a genera numele de utilizator din ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Arborele de bază al Utilizatorilor" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Un User Base DN pe linie" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Câmpul cu numele grupului" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Arborele de bază al Grupurilor" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Un Group Base DN pe linie" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Asocierea Grup-Membru" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "în octeți" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ajutor" diff --git a/l10n/ru/user_ldap.po b/l10n/ru/user_ldap.po index cd1cb84f03d..7afc858efe9 100644 --- a/l10n/ru/user_ldap.po +++ b/l10n/ru/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ru\n" "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);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Не удалось удалить конфигурацию сервера" @@ -53,281 +57,363 @@ msgstr "Сохранить настройки?" msgid "Cannot add server configuration" msgstr "Не получилось добавить конфигурацию сервера" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Проверка соединения удалась" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Проверка соединения не удалась" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Вы действительно хотите удалить существующую конфигурацию сервера?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Подтверждение удаления" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Внимание:Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением. Пожалуйста, обратитесь к системному администратору, чтобы отключить одно из них." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Внимание: Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. " -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Конфигурация сервера" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Добавить конфигурацию сервера" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Сервер" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Базовый DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "По одному базовому DN в строке." -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенное\"" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN пользователя" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN-клиента пользователя, с которым связывают должно быть заполнено, например, uid=агент, dc=пример, dc=com. Для анонимного доступа, оставьте DN и пароль пустыми." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Пароль" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонимного доступа оставьте DN и пароль пустыми." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Фильтр входа пользователей" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "используйте заполнитель %%uid, например: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Фильтр списка пользователей" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Определяет фильтр для применения при получении пользователей." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без заполнителя, например: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Фильтр группы" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Определяет фильтр для применения при получении группы." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без заполнения, например \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Настройки подключения" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Конфигурация активна" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Когда галочка снята, эта конфигурация будет пропущена." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Порт" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Адрес резервного сервера" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Укажите дополнительный резервный сервер. Он должен быть репликой главного LDAP/AD сервера." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Порт резервного сервера" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Отключение главного сервера" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Когда включено, ownCloud будет соединяться только с резервным сервером." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Использовать TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Не используйте совместно с безопасными подключениями (LDAPS), это не сработает." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечувствительный к регистру сервер LDAP (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Отключить проверку сертификата SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Не рекомендуется, используйте только для тестирования." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Кэш времени жизни" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "в секундах. Изменение очистит кэш." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Настройки каталога" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Поле отображаемого имени пользователя" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Атрибут LDAP для генерации имени пользователя ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "База пользовательского дерева" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "По одной базовому DN пользователей в строке." -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Поисковые атрибуты пользователя" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Опционально; один атрибут на линию" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Поле отображаемого имени группы" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Атрибут LDAP для генерации имени группы ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "База группового дерева" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "По одной базовому DN групп в строке." -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Атрибуты поиска для группы" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Ассоциация Группа-Участник" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Специальные атрибуты" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Поле квота" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Квота по умолчанию" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "в байтах" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Поле адресса эллектронной почты" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Правило именования Домашней Папки Пользователя" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Тестовая конфигурация" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Помощь" diff --git a/l10n/si_LK/user_ldap.po b/l10n/si_LK/user_ldap.po index b535f61782c..a5be1936d7e 100644 --- a/l10n/si_LK/user_ldap.po +++ b/l10n/si_LK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: si_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "සත්කාරකය" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "SSL අවශ්‍යය වන විට පමණක් හැර, අන් අවස්ථාවන්හිදී ප්‍රොටොකෝලය අත් හැරිය හැක. භාවිතා කරන විට ldaps:// ලෙස ආරම්භ කරන්න" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "මුර පදය" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "පරිශීලක පිවිසුම් පෙරහන" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "පරිශීලක ලැයිස්තු පෙරහන" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "කණ්ඩායම් පෙරහන" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "කණ්ඩායම් සොයා ලබාගන්නා විට, යොදන පෙරහන නියම කරයි" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "තොට" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS භාවිතා කරන්න" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "නිර්දේශ කළ නොහැක. පරීක්ෂණ සඳහා පමණක් භාවිත කරන්න" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "උදව්" diff --git a/l10n/sk/user_ldap.po b/l10n/sk/user_ldap.po index 289b258772e..7e555cc8df9 100644 --- a/l10n/sk/user_ldap.po +++ b/l10n/sk/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/owncloud/language/sk/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/sk_SK/user_ldap.po b/l10n/sk_SK/user_ldap.po index 5cbcb942421..c5d0a3787b1 100644 --- a/l10n/sk_SK/user_ldap.po +++ b/l10n/sk_SK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Zlyhalo zmazanie nastavenia servera." @@ -53,281 +57,363 @@ msgstr "Ponechať nastavenia?" msgid "Cannot add server configuration" msgstr "Nemožno pridať nastavenie servera" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Test pripojenia bol úspešný" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Test pripojenia zlyhal" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Naozaj chcete zmazať súčasné nastavenie servera?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Potvrdiť vymazanie" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte administrátora systému aby jednu z nich zakázal." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Nastavenia servera" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Pridať nastavenia servera." -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Hostiteľ" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Základné DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Jedno základné DN na riadok" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Používateľské DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Heslo" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Pre anonymný prístup ponechajte údaje DN a Heslo prázdne." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filter prihlásenia používateľov" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahradzuje používateľské meno v činnosti prihlásenia." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "použite zástupný vzor %%uid, napr. \\\"uid=%%uid\\\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filter zoznamov používateľov" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definuje použitý filter, pre získanie používateľov." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bez zástupných znakov, napr. \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filter skupiny" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definuje použitý filter, pre získanie skupín." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "bez zástupných znakov, napr. \"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Nastavenie pripojenia" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Nastavenia sú aktívne " -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Ak nie je zaškrtnuté, nastavenie bude preskočené." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Záložný server (kópia) hosť" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Záložný server (kópia) port" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Zakázať hlavný server" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Pri zapnutí sa ownCloud pripojí len k záložnému serveru." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Použi TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Nepoužívajte pre pripojenie LDAPS, zlyhá." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP server nerozlišuje veľkosť znakov (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Vypnúť overovanie SSL certifikátu." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Nie je doporučované, len pre testovacie účely." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Životnosť objektov v cache" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Nastavenie priečinka" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Pole pre zobrazenia mena používateľa" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud " -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Základný používateľský strom" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Jedna používateľská základná DN na riadok" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Atribúty vyhľadávania používateľov" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Voliteľné, jeden atribút na jeden riadok" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Pole pre zobrazenie mena skupiny" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud " -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Základný skupinový strom" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Jedna skupinová základná DN na riadok" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atribúty vyhľadávania skupín" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Priradenie člena skupiny" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Špeciálne atribúty" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Pole kvóty" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Predvolená kvóta" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "v bajtoch" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Pole email" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Pravidlo pre nastavenie mena používateľského priečinka dát" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Test nastavenia" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pomoc" diff --git a/l10n/sl/user_ldap.po b/l10n/sl/user_ldap.po index e5fd3aba3e4..eb88eab348a 100644 --- a/l10n/sl/user_ldap.po +++ b/l10n/sl/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Brisanje nastavitev strežnika je spodletelo." @@ -53,281 +57,363 @@ msgstr "Ali nas se nastavitve ohranijo?" msgid "Cannot add server configuration" msgstr "Ni mogoče dodati nastavitev strežnika" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Preizkus povezave je uspešno končan." -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Preizkus povezave je spodletel." -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Ali res želite izbrisati trenutne nastavitve strežnika?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Potrdi brisanje" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Opozorilo: možnosti user_ldap in user_webdavauth nista združljivi. Pri uporabi je mogoče nepričakovano obnašanje sistema. Eno izmed možnosti je priporočeno onemgočiti." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Opozorilo: modul PHP LDAP mora biti nameščen, sicer vmesnik ne bo deloval. Paket je treba namestiti." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Nastavitev strežnika" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Dodaj nastavitve strežnika" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Gostitelj" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Osnovni DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "En osnovni DN na vrstico" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Osnovni DN za uporabnike in skupine lahko določite v zavihku naprednih možnosti." -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Uporabnik DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za brezimni dostop sta polji DN in geslo prazni." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Geslo" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Za brezimni dostop sta polji DN in geslo prazni." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filter prijav uporabnikov" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Določi filter, uporabljen pri prijavi. %%uid nadomesti uporabniško ime v postopku prijave." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "Uporabite vsebnik %%uid, npr. \"uid=%%uid\"." -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filter seznama uporabnikov" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Določi filter za uporabo med pridobivanjem uporabnikov." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "Brez kateregakoli vsebnika, npr. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Filter skupin" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Določi filter za uporabo med pridobivanjem skupin." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Nastavitve povezave" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Dejavna nastavitev" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Neizbrana možnost preskoči nastavitev." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Vrata" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Varnostna kopija (replika) podatkov gostitelja" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Podati je treba izbirno varnostno kopijo gostitelja. Ta mora biti natančna replika strežnika LDAP/AD." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Varnostna kopija (replika) podatka vrat" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Onemogoči glavni strežnik" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Ob priklopu bo strežnik ownCloud povezan le s kopijo (repliko) strežnika." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Uporabi TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Strežnika ni priporočljivo uporabljati za povezave LDAPS. Povezava bo spodletela." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Strežnik LDAP ne upošteva velikosti črk (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Onemogoči določanje veljavnosti potrdila SSL." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Kadar deluje povezava le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Dejanje ni priporočeno; uporabljeno naj bo le za preizkušanje delovanja." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Predpomni podatke TTL" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "v sekundah. Sprememba izprazni predpomnilnik." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Nastavitve mape" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Polje za uporabnikovo prikazano ime" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Atribut LDAP, uporabljen pri ustvarjanju uporabniških imen ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Osnovno uporabniško drevo" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Eno osnovno uporabniško ime DN na vrstico" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Uporabi atribute iskanja" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Izbirno; en atribut na vrstico" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Polje za prikazano ime skupine" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Atribut LDAP, uporabljen pri ustvarjanju imen skupin ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Osnovno drevo skupine" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Eno osnovno ime skupine DN na vrstico" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Atributi iskanja skupine" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Povezava član-skupina" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Posebni atributi" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Polje količinske omejitve" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Privzeta količinska omejitev" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "v bajtih" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Polje elektronske pošte" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Pravila poimenovanja uporabniške osebne mape" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Pustite prazno za uporabniško ime (privzeto), sicer navedite atribut LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Preizkusne nastavitve" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pomoč" diff --git a/l10n/sq/user_ldap.po b/l10n/sq/user_ldap.po index d7433610003..299948e7c4d 100644 --- a/l10n/sq/user_ldap.po +++ b/l10n/sq/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Albanian (http://www.transifex.com/projects/p/owncloud/language/sq/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Kodi" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Ndihmë" diff --git a/l10n/sr/user_ldap.po b/l10n/sr/user_ldap.po index a87033c8c50..7ce4478ba26 100644 --- a/l10n/sr/user_ldap.po +++ b/l10n/sr/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sr\n" "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);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Домаћин" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можете да изоставите протокол, осим ако захтевате SSL. У том случају почните са ldaps://." -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "База DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Корисник DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN корисника клијента са којим треба да се успостави веза, нпр. uid=agent,dc=example,dc=com. За анониман приступ, оставите поља DN и лозинка празним." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Лозинка" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "За анониман приступ, оставите поља DN и лозинка празним." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Филтер за пријаву корисника" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Одређује филтер за примењивање при покушају пријаве. %%uid замењује корисничко име." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "користите чувар места %%uid, нпр. „uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Филтер за списак корисника" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Одређује филтер за примењивање при прибављању корисника." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без икаквог чувара места, нпр. „objectClass=person“." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Филтер групе" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Одређује филтер за примењивање при прибављању група." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без икаквог чувара места, нпр. „objectClass=posixGroup“." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Порт" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Користи TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP сервер осетљив на велика и мала слова (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Искључите потврду SSL сертификата." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Увезите SSL сертификат LDAP сервера у свој ownCloud ако веза ради само са овом опцијом." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Не препоручује се; користите само за тестирање." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "у секундама. Промена испражњава кеш меморију." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Име приказа корисника" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP атрибут за стварање имена ownCloud-а корисника." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Основно стабло корисника" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Име приказа групе" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP атрибут за стварање имена ownCloud-а групе." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Основна стабло група" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Придруживање чланова у групу" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "у бајтовима" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Помоћ" diff --git a/l10n/sr@latin/user_ldap.po b/l10n/sr@latin/user_ldap.po index 39eaebf0ac7..f3a97db15e8 100644 --- a/l10n/sr@latin/user_ldap.po +++ b/l10n/sr@latin/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sr@latin\n" "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);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Lozinka" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Pomoć" diff --git a/l10n/sv/user_ldap.po b/l10n/sv/user_ldap.po index 3d51619fa06..1ad17b04128 100644 --- a/l10n/sv/user_ldap.po +++ b/l10n/sv/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Misslyckades med att radera serverinställningen" @@ -53,281 +57,363 @@ msgstr "Behåll inställningarna?" msgid "Cannot add server configuration" msgstr "Kunde inte lägga till serverinställning" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Anslutningstestet lyckades" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Anslutningstestet misslyckades" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Vill du verkligen radera den nuvarande serverinställningen?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Bekräfta radering" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Varning: Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dom." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Varning: PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Serverinställning" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Lägg till serverinställning" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Server" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Start DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Ett Start DN per rad" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Du kan ange start DN för användare och grupper under fliken Avancerat" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Användare DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN för användaren som skall användas, t.ex. uid=agent, dc=example, dc=com. För anonym åtkomst, lämna DN och lösenord tomt." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Lösenord" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "För anonym åtkomst, lämna DN och lösenord tomt." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Filter logga in användare" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Definierar filter att tillämpa vid inloggningsförsök. %% uid ersätter användarnamn i loginåtgärden." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "använd platshållare %%uid, t ex \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Filter lista användare" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Definierar filter att tillämpa vid listning av användare." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "utan platshållare, t.ex. \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Gruppfilter" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Definierar filter att tillämpa vid listning av grupper." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "utan platshållare, t.ex. \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Uppkopplingsinställningar" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Konfiguration aktiv" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Ifall denna är avbockad så kommer konfigurationen att skippas." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Säkerhetskopierings-värd (Replika)" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Ange en valfri värd för säkerhetskopiering. Den måste vara en replika av den huvudsakliga LDAP/AD-servern" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Säkerhetskopierins-port (Replika)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Inaktivera huvudserver" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "När denna är påkopplad kommer ownCloud att koppla upp till replika-servern, endast." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Använd TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Använd inte för LDAPS-anslutningar, det kommer inte att fungera." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "LDAP-servern är okänslig för gemener och versaler (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Stäng av verifiering av SSL-certifikat." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Rekommenderas inte, använd bara för test. " -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache Time-To-Live" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "i sekunder. En förändring tömmer cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Mappinställningar" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Attribut för användarnamn" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Attribut som används för att generera användarnamn i ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Bas för användare i katalogtjänst" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "En Användare start DN per rad" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Användarsökningsattribut" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Valfritt; ett attribut per rad" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Attribut för gruppnamn" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Attribut som används för att generera gruppnamn i ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Bas för grupper i katalogtjänst" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "En Grupp start DN per rad" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Gruppsökningsattribut" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Attribut för gruppmedlemmar" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Specialattribut" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Kvotfält" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Datakvot standard" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "i bytes" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "E-postfält" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Namnregel för hemkatalog" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Testa konfigurationen" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Hjälp" diff --git a/l10n/sw_KE/user_ldap.po b/l10n/sw_KE/user_ldap.po index b16b2afdf5e..61cca7831d4 100644 --- a/l10n/sw_KE/user_ldap.po +++ b/l10n/sw_KE/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-26 10:00+0200\n" -"PO-Revision-Date: 2013-04-26 08:02+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Swahili (Kenya) (http://www.transifex.com/projects/p/owncloud/language/sw_KE/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sw_KE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/ta_LK/user_ldap.po b/l10n/ta_LK/user_ldap.po index a82d11f9a13..7a74191cc6e 100644 --- a/l10n/ta_LK/user_ldap.po +++ b/l10n/ta_LK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ta_LK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "ஓம்புனர்" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "தள DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் " -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "பயனாளர் DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "கடவுச்சொல்" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "துறை " -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS ஐ பயன்படுத்தவும்" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "பரிந்துரைக்கப்படவில்லை, சோதனைக்காக மட்டும் பயன்படுத்தவும்." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "பயனாளர் காட்சிப்பெயர் புலம்" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "தள பயனாளர் மரம்" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "குழுவின் காட்சி பெயர் புலம் " -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "தள குழு மரம்" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "குழு உறுப்பினர் சங்கம்" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "bytes களில் " -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "உதவி" diff --git a/l10n/te/user_ldap.po b/l10n/te/user_ldap.po index 0166659309b..b417aa098fe 100644 --- a/l10n/te/user_ldap.po +++ b/l10n/te/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Telugu (http://www.transifex.com/projects/p/owncloud/language/te/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "సంకేతపదం" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "సహాయం" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index a4d0a795df7..7092183e746 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index bc16218f67c..ae93cc2d70d 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 6d80b9510d9..b186f4e3ed3 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 4473c70a781..25b7fff06e7 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 55693b95975..ab83c1a7eae 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot index 5f462c0498f..0ff5838f855 100644 --- a/l10n/templates/files_trashbin.pot +++ b/l10n/templates/files_trashbin.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index d0973c00bcb..0fb80731b0b 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 5269cee5d4e..0eedfd01c4f 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 7946a1355cd..99f0d759364 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 6a1a0ad2381..e8decb69c8b 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,10 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,279 +57,361 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may " "experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It " +"makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name " +"attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both " +"users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN " +"is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "" diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot index 223158a71f8..d0289509e2e 100644 --- a/l10n/templates/user_webdavauth.pot +++ b/l10n/templates/user_webdavauth.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud Core 5.0.0\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/user_ldap.po b/l10n/th_TH/user_ldap.po index a085e8c7329..e2cf3668aca 100644 --- a/l10n/th_TH/user_ldap.po +++ b/l10n/th_TH/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: th_TH\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว" @@ -53,281 +57,363 @@ msgstr "รักษาการตั้งค่าไว้?" msgid "Cannot add server configuration" msgstr "ไม่สามารถเพิ่มค่ากำหนดเซิร์ฟเวอร์ได้" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "ทดสอบการเชื่อมต่อสำเร็จ" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "ทดสอบการเชื่อมต่อล้มเหลว" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "ยืนยันการลบทิ้ง" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "คำเตือน: แอปฯ user_ldap และ user_webdavauth ไม่สามารถใช้งานร่วมกันได้. คุณอาจประสพปัญหาที่ไม่คาดคิดจากเหตุการณ์ดังกล่าว กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อระงับการใช้งานแอปฯ ตัวใดตัวหนึ่งข้างต้น" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "คำเตือน: โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "การกำหนดค่าเซิร์ฟเวอร์" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "เพิ่มการกำหนดค่าเซิร์ฟเวอร์" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "โฮสต์" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "คุณสามารถปล่อยช่องโปรโตคอลเว้นไว้ได้, ยกเว้นกรณีที่คุณต้องการใช้ SSL จากนั้นเริ่มต้นด้วย ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN ฐาน" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "หนึ่ง Base DN ต่อบรรทัด" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN ของผู้ใช้งาน" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN ของผู้ใช้งานที่เป็นลูกค้าอะไรก็ตามที่ผูกอยู่ด้วย เช่น uid=agent, dc=example, dc=com, สำหรับการเข้าถึงโดยบุคคลนิรนาม, ให้เว้นว่าง DN และ รหัสผ่านเอาไว้" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "รหัสผ่าน" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "สำหรับการเข้าถึงโดยบุคคลนิรนาม ให้เว้นว่าง DN และรหัสผ่านไว้" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "ตัวกรองข้อมูลการเข้าสู่ระบบของผู้ใช้งาน" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "กำหนดตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อมีความพยายามในการเข้าสู่ระบบ %%uid จะถูกนำไปแทนที่ชื่อผู้ใช้งานในการกระทำของการเข้าสู่ระบบ" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "ใช้ตัวยึด %%uid, เช่น \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "ตัวกรองข้อมูลรายชื่อผู้ใช้งาน" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลผู้ใช้งาน" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=person\"," -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "ตัวกรองข้อมูลกลุ่ม" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลกลุ่ม" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=posixGroup\"," -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "ตั้งค่าการเชื่อมต่อ" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "พอร์ต" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "ปิดใช้งานเซิร์ฟเวอร์หลัก" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "ใช้ TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "ไม่แนะนำให้ใช้งาน, ใช้สำหรับการทดสอบเท่านั้น" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "ตั้งค่าไดเร็กทอรี่" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สำหรับสร้างชื่อของผู้ใช้งาน ownCloud" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "รายการผู้ใช้งานหลักแบบ Tree" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "หนึ่ง User Base DN ต่อบรรทัด" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "คุณลักษณะการค้นหาชื่อผู้ใช้" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "ช่องแสดงชื่อกลุ่มที่ต้องการ" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "รายการกลุ่มหลักแบบ Tree" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "หนึ่ง Group Base DN ต่อบรรทัด" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "คุณลักษณะการค้นหาแบบกลุ่ม" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "ความสัมพันธ์ของสมาชิกในกลุ่ม" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "คุณลักษณะพิเศษ" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "ในหน่วยไบต์" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "ช่วยเหลือ" diff --git a/l10n/tr/user_ldap.po b/l10n/tr/user_ldap.po index d4a0ced72c1..e7ee60833c2 100644 --- a/l10n/tr/user_ldap.po +++ b/l10n/tr/user_ldap.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-13 02:04+0200\n" -"PO-Revision-Date: 2013-05-12 16:20+0000\n" -"Last-Translator: KAT.RAT12 \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Sunucu uyunlama basarmadi " @@ -54,281 +58,363 @@ msgstr "Ayarları kalsınmı?" msgid "Cannot add server configuration" msgstr "Sunucu uyunlama birlemek edemen. " -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Bağlantı testi başarılı oldu" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Bağlantı testi başarısız oldu" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Hakikatten, Sonuncu Funksyon durmak istiyor mi?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Silmeyi onayla" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Uyari Apps kullanici_Idap ve user_webdavauth uyunmayan. Bu belki sik degil. Lutfen sistem yonetici sormak on aktif yapmaya. " -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Ihbar Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Sunucu uyunlama " -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Sunucu Uyunlama birlemek " -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Sunucu" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Protokol atlamak edesin, sadece SSL istiyorsaniz. O zaman, idapsile baslamak. " -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Ana DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Bir Tabani DN herbir dizi. " -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Base DN kullanicileri ve kaynaklari icin tablosu Advanced tayin etmek ederiz. " -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Kullanıcı DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN musterinin, kimle baglamaya yapacagiz,meselâ uid=agent.dc mesela, dc=com Gecinme adisiz ici, DN ve Parola bos birakmak. " -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Parola" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Anonim erişim için DN ve Parola alanlarını boş bırakın." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Kullanıcı Oturum Filtresi" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Filter uyunlamak icin tayin ediyor, ne zaman girişmek isteminiz. % % uid adi kullanici girismeye karsi koymacak. " -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Kullanıcı Liste Filtresi" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Filter uyunmak icin tayin ediyor, ne zaman adi kullanici geri aliyor. " -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "bir yer tutucusu olmadan, örneğin \"objectClass=person\"" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Grup Süzgeci" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Filter uyunmak icin tayin ediyor, ne zaman grubalari tekrar aliyor. " -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "siz bir yer tutucu, mes. 'objectClass=posixGroup ('posixGrubu''. " -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Bağlantı ayarları" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Ne zaman iptal, bu uynnlama isletici " -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Port" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Sigorta Kopya Cephe " -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Bir kopya cevre vermek, kopya sunucu onemli olmali. " -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Kopya Port " -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Ana sunucuyu devredışı birak" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Ne zaman acik, ownCloud sadece sunuce replikayin baglamis." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS kullan" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Bu LDAPS baglama icin kullamaminiz, basamacak. " -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Dusme sunucu LDAP zor degil. (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "SSL sertifika doğrulamasını kapat." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Bagladiginda, bunla secene sadece calisiyor, sunucu LDAP SSL sunucun ithal etemek, dneyme sizine sunucu ownClouden. " -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Önerilmez, sadece test için kullanın." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Cache Time-To-Live " -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Parametrar Listesin Adresinin " -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "LDAP kategori kullanmaya adi ownCloud kullanicin uremek icin. " -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Temel Kullanıcı Ağacı" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Bir Temel Kullanici DN her dizgi " -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Kategorii Arama Kullanici " -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Grub Ekrane Alani Adi" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "LDAP kullamayin grub adi ownCloud uremek icin. " -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Temel Grup Ağacı" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Bir Grubu Tabani DN her dizgi. " -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Kategorii Arama Grubu" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Grup-Üye işbirliği" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "byte cinsinden" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Kullanıcı adı bölümünü boş bırakın (varsayılan). " -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Yardım" diff --git a/l10n/ug/user_ldap.po b/l10n/ug/user_ldap.po index f6fcf46d4e2..a883642bab8 100644 --- a/l10n/ug/user_ldap.po +++ b/l10n/ug/user_ldap.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-04 11:50+0000\n" -"Last-Translator: Abduqadir Abliz \n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Uighur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ug\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "باش ئاپپارات" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "ئىم" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "ئىشلەتكۈچى تىزىمغا كىرىش سۈزگۈچى" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "ئىشلەتكۈچى تىزىم سۈزگۈچى" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "گۇرۇپپا سۈزگۈچ" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "باغلىنىش تەڭشىكى" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "سەپلىمە ئاكتىپ" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "ئېغىز" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "TLS ئىشلەت" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "ياردەم" diff --git a/l10n/uk/user_ldap.po b/l10n/uk/user_ldap.po index 89484b09eee..984aca1e807 100644 --- a/l10n/uk/user_ldap.po +++ b/l10n/uk/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: uk\n" "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);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "Не вдалося видалити конфігурацію сервера" @@ -53,281 +57,363 @@ msgstr "Зберегти налаштування ?" msgid "Cannot add server configuration" msgstr "Неможливо додати конфігурацію сервера" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "Перевірка з'єднання пройшла успішно" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "Перевірка з'єднання завершилась неуспішно" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "Ви дійсно бажаєте видалити поточну конфігурацію сервера ?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "Підтвердіть Видалення" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "Увага: Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них." -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "Увага: Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його." -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "Налаштування Сервера" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "Додати налаштування Сервера" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Хост" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Базовий DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "Один Base DN на одній строчці" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "DN Користувача" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Пароль" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Для анонімного доступу, залиште DN і Пароль порожніми." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Фільтр Користувачів, що під'єднуються" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Визначає фільтр, який застосовується при спробі входу. %%uid замінює ім'я користувача при вході." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "використовуйте %%uid заповнювач, наприклад: \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Фільтр Списку Користувачів" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Визначає фільтр, який застосовується при отриманні користувачів" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Фільтр Груп" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Визначає фільтр, який застосовується при отриманні груп." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Налаштування З'єднання" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "Налаштування Активне" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "Якщо \"галочка\" знята, ця конфігурація буде пропущена." -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Порт" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "Сервер для резервних копій" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "Вкажіть додатковий резервний сервер. Він повинен бути копією головного LDAP/AD сервера." -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Порт сервера для резервних копій" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Вимкнути Головний Сервер" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "Коли увімкнуто, ownCloud буде приєднуватись лише до сервера з резервними копіями." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Використовуйте TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Не використовуйте це додатково для під'єднання до LDAP, бо виконано не буде." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Нечутливий до регістру LDAP сервер (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Вимкнути перевірку SSL сертифіката." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Не рекомендується, використовуйте лише для тестів." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "Час актуальності Кеша" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "в секундах. Зміна очищує кеш." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Налаштування Каталога" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Поле, яке відображає Ім'я Користувача" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Основне Дерево Користувачів" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "Один Користувач Base DN на одній строчці" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "Пошукові Атрибути Користувача" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Додатково; один атрибут на строчку" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Поле, яке відображає Ім'я Групи" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Атрибут LDAP, який використовується для генерації імен груп ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Основне Дерево Груп" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "Одна Група Base DN на одній строчці" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Пошукові Атрибути Групи" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Асоціація Група-Член" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Спеціальні Атрибути" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "Поле Квоти" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "Квота за замовчанням" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "в байтах" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "Поле Ел. пошти" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "Правило іменування домашньої теки користувача" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD." -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "Тестове налаштування" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Допомога" diff --git a/l10n/ur_PK/user_ldap.po b/l10n/ur_PK/user_ldap.po index 88926609e22..59f98edec42 100644 --- a/l10n/ur_PK/user_ldap.po +++ b/l10n/ur_PK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Urdu (Pakistan) (http://www.transifex.com/projects/p/owncloud/language/ur_PK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ur_PK\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "پاسورڈ" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "مدد" diff --git a/l10n/vi/user_ldap.po b/l10n/vi/user_ldap.po index 09d7c04c674..b0451d74ca8 100644 --- a/l10n/vi/user_ldap.po +++ b/l10n/vi/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "Máy chủ" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "DN cơ bản" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "Người dùng DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống." -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "Mật khẩu" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "Cho phép truy cập nặc danh , DN và mật khẩu trống." -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "Lọc người dùng đăng nhập" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "Xác định các bộ lọc để áp dụng, khi đăng nhập . uid%% thay thế tên người dùng trong các lần đăng nhập." -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "use %%uid placeholder, e.g. \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "Lọc danh sách thành viên" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "Xác định các bộ lọc để áp dụng, khi người dụng sử dụng." -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "mà không giữ chỗ nào, ví dụ như \"objectClass = person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "Bộ lọc nhóm" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "Xác định các bộ lọc để áp dụng, khi nhóm sử dụng." -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\"." -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "Connection Settings" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "Cổng" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "Cổng sao lưu (Replica)" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "Tắt máy chủ chính" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "When switched on, ownCloud will only connect to the replica server." -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "Sử dụng TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "Do not use it additionally for LDAPS connections, it will fail." -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "Trường hợp insensitve LDAP máy chủ (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "Tắt xác thực chứng nhận SSL" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn." -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "Không khuyến khích, Chỉ sử dụng để thử nghiệm." -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "trong vài giây. Một sự thay đổi bộ nhớ cache." -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "Directory Settings" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "Hiển thị tên người sử dụng" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud." -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "Cây người dùng cơ bản" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "User Search Attributes" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "Optional; one attribute per line" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "Hiển thị tên nhóm" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud." -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "Cây nhóm cơ bản" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "Group Search Attributes" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "Nhóm thành viên Cộng đồng" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "Special Attributes" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "Theo Byte" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "Giúp đỡ" diff --git a/l10n/zh_CN.GB2312/user_ldap.po b/l10n/zh_CN.GB2312/user_ldap.po index 0836d8955ed..e1d62e209cc 100644 --- a/l10n/zh_CN.GB2312/user_ldap.po +++ b/l10n/zh_CN.GB2312/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "主机" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "您可以忽略协议,除非您需要 SSL。然后用 ldaps:// 开头" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "基本判别名" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "您可以在高级选项卡中为用户和群组指定基本判别名" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "用户判别名" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "客户机用户的判别名,将用于绑定,例如 uid=agent, dc=example, dc=com。匿名访问请留空判别名和密码。" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "密码" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "匿名访问请留空判别名和密码。" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "用户登录过滤器" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "定义尝试登录时要应用的过滤器。用 %%uid 替换登录操作中使用的用户名。" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "使用 %%uid 占位符,例如 \"uid=%%uid\"" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "用户列表过滤器" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "定义撷取用户时要应用的过滤器。" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "不能使用占位符,例如 \"objectClass=person\"。" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "群组过滤器" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "定义撷取群组时要应用的过滤器" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "不能使用占位符,例如 \"objectClass=posixGroup\"。" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "端口" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "使用 TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "大小写不敏感的 LDAP 服务器 (Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "关闭 SSL 证书校验。" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "不推荐,仅供测试" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "以秒计。修改会清空缓存。" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "用户显示名称字段" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "用于生成用户的 ownCloud 名称的 LDAP 属性。" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "基本用户树" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "群组显示名称字段" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "用于生成群组的 ownCloud 名称的 LDAP 属性。" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "基本群组树" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "群组-成员组合" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "以字节计" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "用户名请留空 (默认)。否则,请指定一个 LDAP/AD 属性。" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "帮助" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index b799c7c163e..e28f93b7518 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-16 01:58+0200\n" -"PO-Revision-Date: 2013-05-15 12:15+0000\n" +"POT-Creation-Date: 2013-05-17 02:02+0200\n" +"PO-Revision-Date: 2013-05-16 08:53+0000\n" "Last-Translator: zhangmin \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/zh_CN/user_ldap.po b/l10n/zh_CN/user_ldap.po index 763966dd291..2d4086d25e1 100644 --- a/l10n/zh_CN/user_ldap.po +++ b/l10n/zh_CN/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "未能删除服务器配置" @@ -53,281 +57,363 @@ msgstr "保留设置吗?" msgid "Cannot add server configuration" msgstr "无法添加服务器配置" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "连接测试成功" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "连接测试失败" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "您真的想要删除当前服务器配置吗?" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "确认删除" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "警告:应用 user_ldap 和 user_webdavauth 不兼容。您可能遭遇未预料的行为。请垂询您的系统管理员禁用其中一个。" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "警告: PHP LDAP 模块未安装,后端将无法工作。请请求您的系统管理员安装该模块。" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "服务器配置" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "添加服务器配置" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "主机" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "可以忽略协议,但如要使用SSL,则需以ldaps://开头" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "Base DN" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "每行一个基本判别名" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "您可以在高级选项卡里为用户和组指定Base DN" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "User DN" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "客户端使用的DN必须与绑定的相同,比如uid=agent,dc=example,dc=com\n如需匿名访问,将DN和密码保留为空" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "密码" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "启用匿名访问,将DN和密码保留为空" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "用户登录过滤" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "定义当尝试登录时的过滤器。 在登录过程中,%%uid将会被用户名替换" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "使用 %%uid作为占位符,例如“uid=%%uid”" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "用户列表过滤" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "定义拉取用户时的过滤器" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "没有任何占位符,如 \"objectClass=person\"." -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "组过滤" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "定义拉取组信息时的过滤器" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "无需占位符,例如\"objectClass=posixGroup\"" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "连接设置" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "现行配置" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "当反选后,此配置将被忽略。" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "端口" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "备份 (镜像) 主机" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "给出一个可选的备份主机。它必须为主 LDAP/AD 服务器的一个镜像。" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "备份 (镜像) 端口" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "禁用主服务器" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "当开启后,ownCloud 将仅连接到镜像服务器。" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "使用TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "对于 LDAPS 连接不要额外启用它,连接必然失败。" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "大小写敏感LDAP服务器(Windows)" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "关闭SSL证书验证" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "暂不推荐,仅供测试" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "缓存存活时间" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "以秒计。修改将清空缓存。" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "目录设置" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "用户显示名称字段" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "用来生成用户的ownCloud名称的 LDAP属性" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "基础用户树" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "每行一个用户基准判别名" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "用户搜索属性" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "可选;每行一个属性" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "组显示名称字段" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "用来生成组的ownCloud名称的LDAP属性" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "基础组树" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "每行一个群组基准判别名" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "群组搜索属性" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "组成员关联" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "特殊属性" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "配额字段" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "默认配额" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "字节数" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "电邮字段" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "用户主目录命名规则" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "将用户名称留空(默认)。否则指定一个LDAP/AD属性" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "测试配置" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "帮助" diff --git a/l10n/zh_HK/user_ldap.po b/l10n/zh_HK/user_ldap.po index 1ca72824101..40fcbd80f3e 100644 --- a/l10n/zh_HK/user_ldap.po +++ b/l10n/zh_HK/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-04-27 02:16+0200\n" -"PO-Revision-Date: 2013-04-26 08:31+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Hong Kong) (http://www.transifex.com/projects/p/owncloud/language/zh_HK/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: zh_HK\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "密碼" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "連接埠" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "幫助" diff --git a/l10n/zh_TW/user_ldap.po b/l10n/zh_TW/user_ldap.po index 29607494a30..6b33c425aa3 100644 --- a/l10n/zh_TW/user_ldap.po +++ b/l10n/zh_TW/user_ldap.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2013-05-12 02:01+0200\n" -"PO-Revision-Date: 2013-05-06 07:20+0000\n" +"POT-Creation-Date: 2013-05-17 02:03+0200\n" +"PO-Revision-Date: 2013-05-17 00:04+0000\n" "Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ajax/clearMappings.php:34 +msgid "Failed to clear the mappings." +msgstr "" + #: ajax/deleteConfiguration.php:34 msgid "Failed to delete the server configuration" msgstr "" @@ -53,281 +57,363 @@ msgstr "" msgid "Cannot add server configuration" msgstr "" -#: js/settings.js:121 +#: js/settings.js:111 +msgid "mappings cleared" +msgstr "" + +#: js/settings.js:112 +msgid "Success" +msgstr "" + +#: js/settings.js:117 +msgid "Error" +msgstr "" + +#: js/settings.js:141 msgid "Connection test succeeded" msgstr "" -#: js/settings.js:126 +#: js/settings.js:146 msgid "Connection test failed" msgstr "" -#: js/settings.js:136 +#: js/settings.js:156 msgid "Do you really want to delete the current Server Configuration?" msgstr "" -#: js/settings.js:137 +#: js/settings.js:157 msgid "Confirm Deletion" msgstr "" -#: templates/settings.php:8 +#: templates/settings.php:9 msgid "" "Warning: Apps user_ldap and user_webdavauth are incompatible. You may" " experience unexpected behaviour. Please ask your system administrator to " "disable one of them." msgstr "" -#: templates/settings.php:11 +#: templates/settings.php:12 msgid "" "Warning: The PHP LDAP module is not installed, the backend will not " "work. Please ask your system administrator to install it." msgstr "" -#: templates/settings.php:15 +#: templates/settings.php:16 msgid "Server configuration" msgstr "" -#: templates/settings.php:31 +#: templates/settings.php:32 msgid "Add Server Configuration" msgstr "" -#: templates/settings.php:36 +#: templates/settings.php:37 msgid "Host" msgstr "主機" -#: templates/settings.php:38 +#: templates/settings.php:39 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" msgstr "" -#: templates/settings.php:39 +#: templates/settings.php:40 msgid "Base DN" msgstr "" -#: templates/settings.php:40 +#: templates/settings.php:41 msgid "One Base DN per line" msgstr "" -#: templates/settings.php:41 +#: templates/settings.php:42 msgid "You can specify Base DN for users and groups in the Advanced tab" msgstr "" -#: templates/settings.php:43 +#: templates/settings.php:44 msgid "User DN" msgstr "" -#: templates/settings.php:45 +#: templates/settings.php:46 msgid "" "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." msgstr "" -#: templates/settings.php:46 +#: templates/settings.php:47 msgid "Password" msgstr "密碼" -#: templates/settings.php:49 +#: templates/settings.php:50 msgid "For anonymous access, leave DN and Password empty." msgstr "" -#: templates/settings.php:50 +#: templates/settings.php:51 msgid "User Login Filter" msgstr "" -#: templates/settings.php:53 +#: templates/settings.php:54 #, php-format msgid "" "Defines the filter to apply, when login is attempted. %%uid replaces the " "username in the login action." msgstr "" -#: templates/settings.php:54 +#: templates/settings.php:55 #, php-format msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" msgstr "" -#: templates/settings.php:55 +#: templates/settings.php:56 msgid "User List Filter" msgstr "" -#: templates/settings.php:58 +#: templates/settings.php:59 msgid "Defines the filter to apply, when retrieving users." msgstr "" -#: templates/settings.php:59 +#: templates/settings.php:60 msgid "without any placeholder, e.g. \"objectClass=person\"." msgstr "" -#: templates/settings.php:60 +#: templates/settings.php:61 msgid "Group Filter" msgstr "" -#: templates/settings.php:63 +#: templates/settings.php:64 msgid "Defines the filter to apply, when retrieving groups." msgstr "" -#: templates/settings.php:64 +#: templates/settings.php:65 msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." msgstr "" -#: templates/settings.php:68 +#: templates/settings.php:69 msgid "Connection Settings" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "Configuration Active" msgstr "" -#: templates/settings.php:70 +#: templates/settings.php:71 msgid "When unchecked, this configuration will be skipped." msgstr "" -#: templates/settings.php:71 +#: templates/settings.php:72 msgid "Port" msgstr "連接阜" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "Backup (Replica) Host" msgstr "" -#: templates/settings.php:72 +#: templates/settings.php:73 msgid "" "Give an optional backup host. It must be a replica of the main LDAP/AD " "server." msgstr "" -#: templates/settings.php:73 +#: templates/settings.php:74 msgid "Backup (Replica) Port" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "Disable Main Server" msgstr "" -#: templates/settings.php:74 +#: templates/settings.php:75 msgid "When switched on, ownCloud will only connect to the replica server." msgstr "" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Use TLS" msgstr "使用TLS" -#: templates/settings.php:75 +#: templates/settings.php:76 msgid "Do not use it additionally for LDAPS connections, it will fail." msgstr "" -#: templates/settings.php:76 +#: templates/settings.php:77 msgid "Case insensitve LDAP server (Windows)" msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Turn off SSL certificate validation." msgstr "關閉 SSL 憑證驗證" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "" "If connection only works with this option, import the LDAP server's SSL " "certificate in your ownCloud server." msgstr "" -#: templates/settings.php:77 +#: templates/settings.php:78 msgid "Not recommended, use for testing only." msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "Cache Time-To-Live" msgstr "" -#: templates/settings.php:78 +#: templates/settings.php:79 msgid "in seconds. A change empties the cache." msgstr "" -#: templates/settings.php:80 +#: templates/settings.php:81 msgid "Directory Settings" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "User Display Name Field" msgstr "" -#: templates/settings.php:82 +#: templates/settings.php:83 msgid "The LDAP attribute to use to generate the user`s ownCloud name." msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "Base User Tree" msgstr "" -#: templates/settings.php:83 +#: templates/settings.php:84 msgid "One User Base DN per line" msgstr "" -#: templates/settings.php:84 +#: templates/settings.php:85 msgid "User Search Attributes" msgstr "" -#: templates/settings.php:84 templates/settings.php:87 +#: templates/settings.php:85 templates/settings.php:88 msgid "Optional; one attribute per line" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "Group Display Name Field" msgstr "" -#: templates/settings.php:85 +#: templates/settings.php:86 msgid "The LDAP attribute to use to generate the groups`s ownCloud name." msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "Base Group Tree" msgstr "" -#: templates/settings.php:86 +#: templates/settings.php:87 msgid "One Group Base DN per line" msgstr "" -#: templates/settings.php:87 +#: templates/settings.php:88 msgid "Group Search Attributes" msgstr "" -#: templates/settings.php:88 +#: templates/settings.php:89 msgid "Group-Member association" msgstr "" -#: templates/settings.php:90 +#: templates/settings.php:91 msgid "Special Attributes" msgstr "" -#: templates/settings.php:92 +#: templates/settings.php:93 msgid "Quota Field" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "Quota Default" msgstr "" -#: templates/settings.php:93 +#: templates/settings.php:94 msgid "in bytes" msgstr "" -#: templates/settings.php:94 +#: templates/settings.php:95 msgid "Email Field" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "User Home Folder Naming Rule" msgstr "" -#: templates/settings.php:95 +#: templates/settings.php:96 msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:101 +msgid "Internal Username" +msgstr "" + +#: templates/settings.php:102 +msgid "" +"By default the internal username will be created from the UUID attribute. It" +" makes sure that the username is unique and characters do not need to be " +"converted. The internal username has the restriction that only these " +"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced " +"with their ASCII correspondence or simply omitted. On collisions a number " +"will be added/increased. The internal username is used to identify a user " +"internally. It is also the default name for the user home folder in " +"ownCloud. It is also a port of remote URLs, for instance for all *DAV " +"services. With this setting, the default behaviour can be overriden. To " +"achieve a similar behaviour as before ownCloud 5 enter the user display name" +" attribute in the following field. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users." +msgstr "" + +#: templates/settings.php:103 +msgid "Internal Username Attribute:" +msgstr "" + +#: templates/settings.php:104 +msgid "Override UUID detection" +msgstr "" + +#: templates/settings.php:105 +msgid "" +"By default, ownCloud autodetects the UUID attribute. The UUID attribute is " +"used to doubtlessly identify LDAP users and groups. Also, the internal " +"username will be created based on the UUID, if not specified otherwise " +"above. You can override the setting and pass an attribute of your choice. " +"You must make sure that the attribute of your choice can be fetched for both" +" users and groups and it is unique. Leave it empty for default behaviour. " +"Changes will have effect only on newly mapped (added) LDAP users and groups." +msgstr "" + +#: templates/settings.php:106 +msgid "UUID Attribute:" +msgstr "" + +#: templates/settings.php:107 +msgid "Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:108 +msgid "" +"ownCloud uses usernames to store and assign (meta) data. In order to " +"precisely identify and recognize users, each LDAP user will have a internal " +"username. This requires a mapping from ownCloud username to LDAP user. The " +"created username is mapped to the UUID of the LDAP user. Additionally the DN" +" is cached as well to reduce LDAP interaction, but it is not used for " +"identification. If the DN changes, the changes will be found by ownCloud. " +"The internal ownCloud name is used all over in ownCloud. Clearing the " +"Mappings will have leftovers everywhere. Clearing the Mappings is not " +"configuration sensitive, it affects all LDAP configurations! Do never clear " +"the mappings in a production environment. Only clear mappings in a testing " +"or experimental stage." +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Username-LDAP User Mapping" +msgstr "" + +#: templates/settings.php:109 +msgid "Clear Groupname-LDAP Group Mapping" +msgstr "" + +#: templates/settings.php:111 msgid "Test Configuration" msgstr "" -#: templates/settings.php:99 +#: templates/settings.php:111 msgid "Help" msgstr "說明" diff --git a/lib/l10n/nn_NO.php b/lib/l10n/nn_NO.php index f8f15c9fba6..8241573f9ae 100644 --- a/lib/l10n/nn_NO.php +++ b/lib/l10n/nn_NO.php @@ -3,7 +3,7 @@ "Personal" => "Personleg", "Settings" => "Innstillingar", "Users" => "Brukarar", -"Apps" => "Applikasjonar", +"Apps" => "Program", "Admin" => "Administrer", "Authentication error" => "Feil i autentisering", "Files" => "Filer", diff --git a/settings/l10n/nn_NO.php b/settings/l10n/nn_NO.php index 0e4d0a66a14..3008873c861 100644 --- a/settings/l10n/nn_NO.php +++ b/settings/l10n/nn_NO.php @@ -1,21 +1,21 @@ "Klarer ikkje å lasta inn liste fra app-butikken", "Authentication error" => "Autentiseringsfeil", -"Your display name has been changed." => "Visningsnamnet ditt er endra.", -"Unable to change display name" => "Klarte ikkje å endra visningsnamnet", +"Your display name has been changed." => "Visingsnamnet ditt er endra.", +"Unable to change display name" => "Klarte ikkje endra visingsnamnet", "Group already exists" => "Gruppa finst allereie", -"Unable to add group" => "Klarte ikkje å leggja til gruppa", -"Could not enable app. " => "Klarte ikkje å aktivera app-en.", +"Unable to add group" => "Klarte ikkje leggja til gruppa", +"Could not enable app. " => "Klarte ikkje slå på programmet.", "Email saved" => "E-postadresse lagra", "Invalid email" => "Ugyldig e-postadresse", "Unable to delete group" => "Klarte ikkje å sletta gruppa", -"Unable to delete user" => "Klarte ikkje å sletta brukaren", +"Unable to delete user" => "Klarte ikkje sletta brukaren", "Language changed" => "Språk endra", "Invalid request" => "Ugyldig førespurnad", "Admins can't remove themself from the admin group" => "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa", -"Unable to add user to group %s" => "Klarte ikkje å leggja til brukaren til gruppa %s", -"Unable to remove user from group %s" => "Klarte ikkje å fjerna brukaren frå gruppa %s", -"Couldn't update app." => "Klarte ikkje å oppdatera app-en.", +"Unable to add user to group %s" => "Klarte ikkje leggja til brukaren til gruppa %s", +"Unable to remove user from group %s" => "Klarte ikkje fjerna brukaren frå gruppa %s", +"Couldn't update app." => "Klarte ikkje oppdatera programmet.", "Update to {appversion}" => "Oppdater til {appversion}", "Disable" => "Slå av", "Enable" => "Slå på", @@ -27,7 +27,7 @@ "Saving..." => "Lagrar …", "deleted" => "sletta", "undo" => "angra", -"Unable to remove user" => "Klarte ikkje å fjerna brukaren", +"Unable to remove user" => "Klarte ikkje fjerna brukaren", "Groups" => "Grupper", "Group Admin" => "Gruppestyrar", "Delete" => "Slett", @@ -42,17 +42,17 @@ "Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Tenaren din er ikkje enno rett innstilt til å tilby filsynkronisering sidan WebDAV-grensesnittet ser ut til å vera øydelagt.", "Please double check the installation guides." => "Ver venleg og dobbeltsjekk installasjonsrettleiinga.", "Module 'fileinfo' missing" => "Modulen «fileinfo» manglar", -"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP-modulen «fileinfo» manglar. Me rår sterkt til å skru på denne modulen for å best mogleg oppdaga MIME-typar.", +"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP-modulen «fileinfo» manglar. Me rår sterkt til å slå på denne modulen for å best mogleg oppdaga MIME-typar.", "Locale not working" => "Regionaldata fungerer ikkje", -"This ownCloud server can't set system locale to %s. 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 %s." => "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som krevst for å støtta %s.", +"This ownCloud server can't set system locale to %s. 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 %s." => "Denne ownCloud-tenaren kan ikkje stilla regionen til %s. Dette tyder at det kan vera problem med visse teikn i filnamn. Me rår sterkt til å installera systempakkane som trengst for å støtta %s.", "Internet connection not working" => "Nettilkoplinga fungerer ikkje", -"This ownCloud 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 of ownCloud." => "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsapplikasjonar ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du skrur på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud.", +"This ownCloud 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 of ownCloud." => "Denne ownCloud-tenaren har ikkje nokon fungerande nettilkopling. Difor vil visse funksjonar, t.d. montering av ekstern lagring, varsling om oppdatering, eller installering av tredjepartsprogram ikkje fungera. Varslingsepostar og ekstern tilgang til filer vil kanskje heller ikkje fungera. Me foreslår at du slå på nettilkoplinga til denne tenaren viss du vil nytta alle funksjonane til ownCloud.", "Cron" => "Cron", "Execute one task with each page loaded" => "Utfør éi oppgåve for kvar sidelasting", "cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php er registrert ved ei webcron-teneste. Last sida cron.php i ownCloud-rota ein gong i minuttet over http.", "Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Bruk cron-tenesta til systemet. Køyr fila cron.php i ownCloud-mappa frå ein cron-jobb på systemet ein gong i minuttet.", "Sharing" => "Deling", -"Enable Share API" => "Skru på API-et for deling", +"Enable Share API" => "Slå på API-et for deling", "Allow apps to use the Share API" => "La app-ar bruka API-et til deling", "Allow links" => "Tillat lenkjer", "Allow users to share items to the public with links" => "La brukarar dela ting offentleg med lenkjer", @@ -63,7 +63,7 @@ "Security" => "Tryggleik", "Enforce HTTPS" => "Krev HTTPS", "Enforces the clients to connect to ownCloud via an encrypted connection." => "Krev at klientar koplar til ownCloud med ei kryptert tilkopling.", -"Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å skru av/på SSL-handhevinga.", +"Please connect to this ownCloud instance via HTTPS to enable or disable the SSL enforcement." => "Ver venleg og kopla denne ownCloud-instansen til via HTTPS for å slå av/på SSL-handhevinga.", "Log" => "Logg", "Log level" => "Log nivå", "More" => "Meir", @@ -72,8 +72,8 @@ "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Kjeldekoden, utvikla av ownCloud-fellesskapet, er lisensiert under AGPL.", "Add your App" => "Legg til din app", "More Apps" => "Fleire app-ar", -"Select an App" => "Vel ein applikasjon", -"See application page at apps.owncloud.com" => "Sjå applikasjonssida på apps.owncloud.com", +"Select an App" => "Vel eit program", +"See application page at apps.owncloud.com" => "Sjå programsida på apps.owncloud.com", "-licensed by " => "Lisensiert under av ", "Update" => "Oppdater", "User Documentation" => "Brukardokumentasjon", @@ -87,14 +87,14 @@ "Show First Run Wizard again" => "Vis Oppstartvegvisaren igjen", "Password" => "Passord", "Your password was changed" => "Passordet ditt er endra", -"Unable to change your password" => "Klarte ikkje å endra passordet", +"Unable to change your password" => "Klarte ikkje endra passordet", "Current password" => "Passord", "New password" => "Nytt passord", "Change password" => "Endra passord", -"Display Name" => "Visningsnamn", +"Display Name" => "Visingsnamn", "Email" => "E-post", "Your email address" => "Di epost-adresse", -"Fill in an email address to enable password recovery" => "Fyll inn e-postadressa di for å aktivera passordgjenoppretting", +"Fill in an email address to enable password recovery" => "Fyll inn e-postadressa di for å gjera passordgjenoppretting mogleg", "Language" => "Språk", "Help translate" => "Hjelp oss å omsetja", "WebDAV" => "WebDAV", @@ -105,7 +105,7 @@ "Unlimited" => "Ubegrensa", "Other" => "Anna", "Storage" => "Lagring", -"change display name" => "endra visningsnamn", +"change display name" => "endra visingsnamn", "set new password" => "lag nytt passord", "Default" => "Standard" ); -- GitLab From 152e275c8a780c220c5022ef059dd7b12adc7cf1 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Fri, 17 May 2013 04:54:08 +0200 Subject: [PATCH 371/454] Various cleanups in OC.dialogs --- apps/files/ajax/rawlist.php | 8 ++ core/css/styles.css | 15 ++- core/js/oc-dialogs.js | 235 ++++++++++++++------------------- core/templates/filepicker.html | 8 +- 4 files changed, 118 insertions(+), 148 deletions(-) diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php index 1cd2944483c..f568afad4da 100644 --- a/apps/files/ajax/rawlist.php +++ b/apps/files/ajax/rawlist.php @@ -15,6 +15,14 @@ $mimetype = isset($_GET['mimetype']) ? $_GET['mimetype'] : ''; // make filelist $files = array(); +// If a type other than directory is requested first load them. +if($mimetype && strpos($mimetype, 'httpd/unix-directory') === false) { + foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, 'httpd/unix-directory' ) as $i ) { + $i["date"] = OCP\Util::formatDate($i["mtime"] ); + $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']); + $files[] = $i; + } +} foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) { $i["date"] = OCP\Util::formatDate($i["mtime"] ); $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']); diff --git a/core/css/styles.css b/core/css/styles.css index ee00196d669..2038417685c 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -382,13 +382,14 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin .ui-datepicker-prev,.ui-datepicker-next{ border:1px solid #ddd; background:#fff; } /* ---- DIALOGS ---- */ -#dirup {width:4%;} -#dirtree {width:92%;} -#filelist {height:270px; overflow-y:auto; background-color:white; width:100%;} -#filelist img { margin: 2px 1em 0 4px; } -#filelist .date { float:right;margin-right:1em; } -.filepicker_element_selected { background-color:lightblue;} -.filepicker_loader {height:170px; width:100%; background-color:#333; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; filter:alpha(opacity=30); opacity:.3; visibility:visible; position:absolute; top:0; left:0; text-align:center; padding-top:150px;} +#oc-dialog-filepicker-content .dirup {width:4%; font-weight: bold;} +#oc-dialog-filepicker-content .dirtree {width:92%; overflow:hidden; font-weight: bold; } +#oc-dialog-filepicker-content .dirtree span { cursor: pointer; } +#oc-dialog-filepicker-content .dirtree span:not(last-child)::after { content: '>'; padding: 3px;} +#oc-dialog-filepicker-content .filelist {height:270px; overflow-y:auto; background-color:white; width:100%;} +#oc-dialog-filepicker-content .filelist img { margin: 2px 1em 0 4px; } +#oc-dialog-filepicker-content .filelist .date { float:right;margin-right:1em; } +#oc-dialog-filepicker-content .filepicker_element_selected { background-color:lightblue;} .ui-dialog {position:fixed !important;} span.ui-icon {float: left; margin: 3px 7px 30px 0;} .loading { background: url('../img/loading.gif') no-repeat center; cursor: wait; } diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 89897382878..4da9623c0a7 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -133,7 +133,7 @@ var OCdialogs = { var self = this; $.get(OC.filePath('core', 'templates', 'filepicker.html'), function(tmpl) { self.$filePickerTemplate = $(tmpl); - self.$listTmpl = self.$filePickerTemplate.find('#filelist li:first-child').detach(); + self.$listTmpl = self.$filePickerTemplate.find('.filelist li:first-child').detach(); defer.resolve(self.$filePickerTemplate); }) .fail(function() { @@ -160,6 +160,12 @@ var OCdialogs = { } return defer.promise(); }, + _getFileList: function(dir, mimeType) { + return $.getJSON( + OC.filePath('files', 'ajax', 'rawlist.php'), + {dir: dir, mimetype: mimeType} + ); + }, /** * show a file picker to pick a file from * @param title dialog title @@ -169,35 +175,35 @@ var OCdialogs = { * @param modal make the dialog modal */ filepicker:function(title, callback, multiselect, mimetype_filter, modal) { + var self = this; $.when(this._getFilePickerTemplate()).then(function($tmpl) { - var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content'; + var dialog_name = 'oc-dialog-filepicker-content'; var dialog_id = '#' + dialog_name; - var $dlg = $tmpl.octemplate({ + if(self.$filePicker) { + self.$filePicker.dialog('close'); + } + self.$filePicker = $tmpl.octemplate({ dialog_name: dialog_name, title: title - }).data('path', '/'); + }).data('path', ''); if (modal === undefined) { modal = false }; if (multiselect === undefined) { multiselect = false }; if (mimetype_filter === undefined) { mimetype_filter = '' }; - $('body').append($dlg); + $('body').append(self.$filePicker); - $dlg.find('#dirtree').focus().change( {dcid: dialog_id}, OCdialogs.handleTreeListSelect ); - $dlg.find('#dirup').click( {dcid: dialog_id}, OCdialogs.filepickerDirUp ); - $dlg.find('#filelist').empty().addClass('loading'); - $dlg.ready(function(){ - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), - {mimetype: mimetype_filter}, - function(response) { - OCdialogs.fillFilePicker(response, dialog_id); - }); - $.getJSON(OC.filePath('files', 'ajax', 'rawlist.php'), - {mimetype: 'httpd/unix-directory'}, - function(response) { - OCdialogs.fillTreeList(response, dialog_id); + self.$filePicker.ready(function() { + self.$filelist = self.$filePicker.find('.filelist'); + self.$dirUp = self.$filePicker.find('.dirup'); + self.$dirTree = self.$filePicker.find('.dirtree'); + self.$dirTree.on('click', 'span', self, self.handleTreeListSelect); + self.$dirUp.click(self, self.filepickerDirUp); + self.$filelist.on('click', 'li', function(event) { + self.handlePickerClick(event, $(this)); }); + self.fillFilePicker(''); }).data('multiselect', multiselect).data('mimetype',mimetype_filter); // build buttons @@ -206,15 +212,15 @@ var OCdialogs = { var datapath; if (multiselect === true) { datapath = []; - $(dialog_id + ' .filepicker_element_selected .filename').each(function(index, element) { - datapath.push( $(dialog_id).data('path') + $(element).text() ); + self.$filelist.find('.filepicker_element_selected .filename').each(function(index, element) { + datapath.push(self.$filePicker.data('path') + '/' + $(element).text()); }); } else { - var datapath = $(dialog_id).data('path'); - datapath += $(dialog_id+' .filepicker_element_selected .filename').text(); + var datapath = self.$filePicker.data('path'); + datapath += '/' + self.$filelist.find('.filepicker_element_selected .filename').text(); } callback(datapath); - $(dialog_id).dialog('close'); + self.$filePicker.dialog('close'); } }; var buttonlist = [{ @@ -223,16 +229,19 @@ var OCdialogs = { }, { text: t('core', 'Cancel'), - click: function(){$(dialog_id).dialog('close'); } + click: function(){self.$filePicker.dialog('close'); } }]; - $(dialog_id).dialog({ + self.$filePicker.dialog({ width: (4/9)*$(document).width(), height: 420, modal: modal, - buttons: buttonlist + buttons: buttonlist, + close: function(event, ui) { + self.$filePicker.dialog('destroy').remove(); + self.$filePicker = null; + } }); - OCdialogs.dialogs_counter++; }) .fail(function() { alert(t('core', 'Error loading file picker template')); @@ -340,146 +349,98 @@ var OCdialogs = { /** * fills the filepicker with files */ - fillFilePicker:function(request, dialog_content_id) { - var $filelist = $(dialog_content_id + ' #filelist').empty(); - var files = ''; + fillFilePicker:function(dir) { var dirs = []; var others = []; - $.each(request.data, function(index, file) { - if (file.type === 'dir') { - dirs.push(file); - } else { - others.push(file); - } - }); - - var sorted = dirs.concat(others); - var self = this; - $.each(sorted, function(idx, entry) { - $li = self.$listTmpl.octemplate({ - type: entry.type, - dcid: dialog_content_id, - imgsrc: entry.mimetype_icon, - filename: entry.name, - date: OC.mtime2date(entry.mtime) + this.$filelist.empty().addClass('loading'); + this.$filePicker.data('path', dir); + $.when(this._getFileList(dir, this.$filePicker.data('mimetype'))).then(function(response) { + $.each(response.data, function(index, file) { + if (file.type === 'dir') { + dirs.push(file); + } else { + others.push(file); + } }); - $filelist.append($li); - }); - $filelist.removeClass('loading'); + self.fillTreeList(); + var sorted = dirs.concat(others); - $filelist.on('click', 'li', function() { - OCdialogs.handlePickerClick($(this), $(this).data('entryname'), dialog_content_id); - }); + $.each(sorted, function(idx, entry) { + $li = self.$listTmpl.octemplate({ + type: entry.type, + dir: dir, + imgsrc: entry.mimetype_icon, + filename: entry.name, + date: OC.mtime2date(entry.mtime) + }); + self.$filelist.append($li); + }); - $(dialog_content_id + ' .filepicker_loader').css('visibility', 'hidden'); + self.$filelist.removeClass('loading'); + }); }, /** * fills the tree list with directories */ - fillTreeList: function(request, dialog_id) { - var $dirtree = $(dialog_id + ' #dirtree').empty(); - var $template = $(''); - $dirtree.append($template.octemplate({ - count: 0, - name: $(dialog_id).data('path') - })); - $.each(request.data, function(index, file) { - $dirtree.append($template.octemplate({ - count: index, - name: file.name + fillTreeList: function() { + this.$dirTree.empty(); + var self = this + var path = this.$filePicker.data('path'); + if(!path) { + return; + } + var $template = $('{name}'); + var paths = path.split('/'); + paths.pop(); + $.each(paths, function(index, dir) { + var dir = paths.pop(); + if(dir === '') { + return false; + } + self.$dirTree.prepend($template.octemplate({ + dir: paths.join('/') + '/' + dir, + name: dir })); }); + self.$dirTree.prepend($template.octemplate({ + dir: '', + name: '/' + })); }, /** * handle selection made in the tree list */ handleTreeListSelect:function(event) { - // if there's a slash in the selected path, don't append it - if ($('option:selected', this).html().indexOf('/') !== -1) { - $(event.data.dcid).data('path', $('option:selected', this).html()); - } else { - $(event.data.dcid).data('path', $(event.data.dcid).data('path') + $('option:selected', this).html() + '/'); - } - $(event.data.dcid).find('#filelist').addClass('loading'); - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: $(event.data.dcid).data('path'), - mimetype: $(event.data.dcid).data('mimetype') - }, - function(request) { OCdialogs.fillFilePicker(request, event.data.dcid) } - ); - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: $(event.data.dcid).data('path'), - mimetype: 'httpd/unix-directory' - }, - function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } - ); + var self = event.data; + var dir = $(event.target).data('dir'); + self.fillFilePicker(dir); }, /** * go one directory up */ filepickerDirUp:function(event) { - var old_path = $(event.data.dcid).data('path'); - if ( old_path !== '/') { - var splitted_path = old_path.split("/"); - var new_path = "" - for (var i = 0; i < splitted_path.length - 2; i++) { - new_path += splitted_path[i] + '/' - } - $(event.data.dcid).data('path', new_path).find('#filelist').empty().addClass('loading');; - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: $(event.data.dcid).data('path'), - mimetype: $(event.data.dcid).data('mimetype') - }, - function(request) { OCdialogs.fillFilePicker(request, event.data.dcid) } - ); - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: $(event.data.dcid).data('path'), - mimetype: 'httpd/unix-directory' - }, - function(request) { OCdialogs.fillTreeList(request, event.data.dcid) } - ); + var self = event.data; + var old_path = self.$filePicker.data('path'); + if (old_path !== '') { + var splitted_path = old_path.split('/'); + splitted_path.pop(); + self.fillFilePicker(splitted_path.join('/')); } }, /** * handle clicks made in the filepicker */ - handlePickerClick:function(element, name, dialog_content_id) { - if ( $(element).data('type') === 'file' ){ - if ( $(dialog_content_id).data('multiselect') !== true) { - $(dialog_content_id + ' .filepicker_element_selected').removeClass('filepicker_element_selected'); + handlePickerClick:function(event, $element) { + if ($element.data('type') === 'file') { + if (this.$filePicker.data('multiselect') !== true || !event.ctrlKey) { + this.$filelist.find('.filepicker_element_selected').removeClass('filepicker_element_selected'); } - $(element).toggleClass('filepicker_element_selected'); + $element.toggleClass('filepicker_element_selected'); return; - } else if ( $(element).data('type') === 'dir' ) { - var datapath = escapeHTML( $(dialog_content_id).data('path') + name + '/' ); - $(dialog_content_id).data('path', datapath); - $(dialog_content_id).find('#filelist').empty().addClass('loading'); - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: datapath, - mimetype: $(dialog_content_id).data('mimetype') - }, - function(request){ OCdialogs.fillFilePicker(request, dialog_content_id) } - ); - $.getJSON( - OC.filePath('files', 'ajax', 'rawlist.php'), - { - dir: datapath, - mimetype: 'httpd/unix-directory' - }, - function(request) { OCdialogs.fillTreeList(request, dialog_content_id) } - ); + } else if ( $element.data('type') === 'dir' ) { + this.fillFilePicker(this.$filePicker.data('path') + '/' + $element.data('entryname')) } } }; diff --git a/core/templates/filepicker.html b/core/templates/filepicker.html index f29de390ef8..e7aa77a732a 100644 --- a/core/templates/filepicker.html +++ b/core/templates/filepicker.html @@ -1,8 +1,8 @@
- - -